diff options
Diffstat (limited to 'drivers/char/nsc_gpio.c')
-rw-r--r-- | drivers/char/nsc_gpio.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/char/nsc_gpio.c b/drivers/char/nsc_gpio.c index 3842c2727118..72b0a5791ed8 100644 --- a/drivers/char/nsc_gpio.c +++ b/drivers/char/nsc_gpio.c | |||
@@ -19,6 +19,19 @@ | |||
19 | 19 | ||
20 | #define NAME "nsc_gpio" | 20 | #define NAME "nsc_gpio" |
21 | 21 | ||
22 | void nsc_gpio_dump(unsigned index, u32 config) | ||
23 | { | ||
24 | printk(KERN_INFO NAME ": GPIO-%02u: 0x%08lx %s %s %s %s %s %s %s\n", | ||
25 | index, (unsigned long)config, | ||
26 | (config & 1) ? "OE" : "TS", /* output-enabled/tristate */ | ||
27 | (config & 2) ? "PP" : "OD", /* push pull / open drain */ | ||
28 | (config & 4) ? "PUE" : "PUD", /* pull up enabled/disabled */ | ||
29 | (config & 8) ? "LOCKED" : "", /* locked / unlocked */ | ||
30 | (config & 16) ? "LEVEL" : "EDGE",/* level/edge input */ | ||
31 | (config & 32) ? "HI" : "LO", /* trigger on rise/fall edge */ | ||
32 | (config & 64) ? "DEBOUNCE" : ""); /* debounce */ | ||
33 | } | ||
34 | |||
22 | ssize_t nsc_gpio_write(struct file *file, const char __user *data, | 35 | ssize_t nsc_gpio_write(struct file *file, const char __user *data, |
23 | size_t len, loff_t *ppos) | 36 | size_t len, loff_t *ppos) |
24 | { | 37 | { |
@@ -99,9 +112,10 @@ ssize_t nsc_gpio_read(struct file *file, char __user * buf, | |||
99 | return 1; | 112 | return 1; |
100 | } | 113 | } |
101 | 114 | ||
102 | /* common routines for both scx200_gpio and pc87360_gpio */ | 115 | /* common file-ops routines for both scx200_gpio and pc87360_gpio */ |
103 | EXPORT_SYMBOL(nsc_gpio_write); | 116 | EXPORT_SYMBOL(nsc_gpio_write); |
104 | EXPORT_SYMBOL(nsc_gpio_read); | 117 | EXPORT_SYMBOL(nsc_gpio_read); |
118 | EXPORT_SYMBOL(nsc_gpio_dump); | ||
105 | 119 | ||
106 | static int __init nsc_gpio_init(void) | 120 | static int __init nsc_gpio_init(void) |
107 | { | 121 | { |