do not try load IMQ modules
[tomato.git] / release / src-rt-6.x.4708 / router / rc / gpio.c
blob01819daba2e736dc8603d67fc152309f97a5c258
1 /*
3 Tomato Firmware
4 Copyright (C) 2006-2009 Jonathan Zarate
6 */
7 #include "rc.h"
9 int gpio_main(int argc, char *argv[])
11 const char hex[] = "0123456789ABCDEF";
12 unsigned long v;
13 int bit;
14 int i;
15 char s[17];
16 int f;
18 if ((argc == 3) && ((strncmp(argv[1], "en", 2) == 0) || (strncmp(argv[1], "di", 2) == 0))) {
19 bit = atoi(argv[2]);
20 if ((bit >= 0) && (bit <= 20)) {
21 bit = 1 << bit;
23 gpio_write(bit, argv[1][0] == 'e');
24 return 0;
28 else if (argc >= 2) {
29 if (strncmp(argv[1], "po", 2) == 0) {
30 if (argc >= 3)
31 bit = atoi(argv[2]);
32 else
33 bit = 0;
34 printf("Enable gpio mask: 0x%04X\n", bit);
36 if ((f = gpio_open(bit)) < 0) {
37 printf("Failed to open gpio\n");
38 return 0;
40 while ((v = _gpio_read(f)) != ~0) {
41 for (i = 15; i >= 0; --i) {
42 s[i] = (v & (1 << i)) ? hex[i] : '.';
44 s[16] = 0;
45 printf("%08lX %s\n", v, s);
46 sleep(1);
48 close(f);
49 return 0;
53 usage_exit(argv[0], "<enable|disable|poll> <pin|[poll_mask]>\n");