aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/nsc_gpio.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/nsc_gpio.c')
-rw-r--r--drivers/char/nsc_gpio.c16
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
22void 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
22ssize_t nsc_gpio_write(struct file *file, const char __user *data, 35ssize_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 */
103EXPORT_SYMBOL(nsc_gpio_write); 116EXPORT_SYMBOL(nsc_gpio_write);
104EXPORT_SYMBOL(nsc_gpio_read); 117EXPORT_SYMBOL(nsc_gpio_read);
118EXPORT_SYMBOL(nsc_gpio_dump);
105 119
106static int __init nsc_gpio_init(void) 120static int __init nsc_gpio_init(void)
107{ 121{