summaryrefslogtreecommitdiffstats
path: root/drivers/char
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char')
-rw-r--r--drivers/char/nsc_gpio.c16
-rw-r--r--drivers/char/scx200_gpio.c4
2 files changed, 17 insertions, 3 deletions
diff --git a/drivers/char/nsc_gpio.c b/drivers/char/nsc_gpio.c
index 3842c27..72b0a57 100644
--- a/drivers/char/nsc_gpio.c
+++ b/drivers/char/nsc_gpio.c
@@ -19,6 +19,19 @@
#define NAME "nsc_gpio"
+void nsc_gpio_dump(unsigned index, u32 config)
+{
+ printk(KERN_INFO NAME ": GPIO-%02u: 0x%08lx %s %s %s %s %s %s %s\n",
+ index, (unsigned long)config,
+ (config & 1) ? "OE" : "TS", /* output-enabled/tristate */
+ (config & 2) ? "PP" : "OD", /* push pull / open drain */
+ (config & 4) ? "PUE" : "PUD", /* pull up enabled/disabled */
+ (config & 8) ? "LOCKED" : "", /* locked / unlocked */
+ (config & 16) ? "LEVEL" : "EDGE",/* level/edge input */
+ (config & 32) ? "HI" : "LO", /* trigger on rise/fall edge */
+ (config & 64) ? "DEBOUNCE" : ""); /* debounce */
+}
+
ssize_t nsc_gpio_write(struct file *file, const char __user *data,
size_t len, loff_t *ppos)
{
@@ -99,9 +112,10 @@ ssize_t nsc_gpio_read(struct file *file, char __user * buf,
return 1;
}
-/* common routines for both scx200_gpio and pc87360_gpio */
+/* common file-ops routines for both scx200_gpio and pc87360_gpio */
EXPORT_SYMBOL(nsc_gpio_write);
EXPORT_SYMBOL(nsc_gpio_read);
+EXPORT_SYMBOL(nsc_gpio_dump);
static int __init nsc_gpio_init(void)
{
diff --git a/drivers/char/scx200_gpio.c b/drivers/char/scx200_gpio.c
index eb9a847..442367b 100644
--- a/drivers/char/scx200_gpio.c
+++ b/drivers/char/scx200_gpio.c
@@ -35,7 +35,7 @@ static int major = 0; /* default to dynamic major */
module_param(major, int, 0);
MODULE_PARM_DESC(major, "Major device number");
-extern void scx200_gpio_dump(unsigned index);
+extern void nsc_gpio_dump(unsigned index);
extern ssize_t nsc_gpio_write(struct file *file, const char __user *data,
size_t len, loff_t *ppos);
@@ -46,7 +46,7 @@ extern ssize_t nsc_gpio_read(struct file *file, char __user *buf,
struct nsc_gpio_ops scx200_access = {
.owner = THIS_MODULE,
.gpio_config = scx200_gpio_configure,
- .gpio_dump = scx200_gpio_dump,
+ .gpio_dump = nsc_gpio_dump,
.gpio_get = scx200_gpio_get,
.gpio_set = scx200_gpio_set,
.gpio_set_high = scx200_gpio_set_high,
OpenPOWER on IntegriCloud