diff options
| -rw-r--r-- | arch/i386/kernel/scx200.c | 16 | ||||
| -rw-r--r-- | drivers/char/nsc_gpio.c | 16 | ||||
| -rw-r--r-- | drivers/char/scx200_gpio.c | 4 |
3 files changed, 17 insertions, 19 deletions
diff --git a/arch/i386/kernel/scx200.c b/arch/i386/kernel/scx200.c index 27be55349c65..edead73ebef2 100644 --- a/arch/i386/kernel/scx200.c +++ b/arch/i386/kernel/scx200.c | |||
| @@ -110,21 +110,6 @@ u32 scx200_gpio_configure(unsigned index, u32 mask, u32 bits) | |||
| 110 | return config; | 110 | return config; |
| 111 | } | 111 | } |
| 112 | 112 | ||
| 113 | void scx200_gpio_dump(unsigned index) | ||
| 114 | { | ||
| 115 | u32 config = scx200_gpio_configure(index, ~0, 0); | ||
| 116 | |||
| 117 | printk(KERN_INFO NAME ": GPIO-%02u: 0x%08lx %s %s %s %s %s %s %s\n", | ||
| 118 | index, (unsigned long) config, | ||
| 119 | (config & 1) ? "OE" : "TS", /* output enabled / tristate */ | ||
| 120 | (config & 2) ? "PP" : "OD", /* push pull / open drain */ | ||
| 121 | (config & 4) ? "PUE" : "PUD", /* pull up enabled/disabled */ | ||
| 122 | (config & 8) ? "LOCKED" : "", /* locked / unlocked */ | ||
| 123 | (config & 16) ? "LEVEL" : "EDGE", /* level/edge input */ | ||
| 124 | (config & 32) ? "HI" : "LO", /* trigger on rising/falling edge */ | ||
| 125 | (config & 64) ? "DEBOUNCE" : ""); /* debounce */ | ||
| 126 | } | ||
| 127 | |||
| 128 | static int __init scx200_init(void) | 113 | static int __init scx200_init(void) |
| 129 | { | 114 | { |
| 130 | printk(KERN_INFO NAME ": NatSemi SCx200 Driver\n"); | 115 | printk(KERN_INFO NAME ": NatSemi SCx200 Driver\n"); |
| @@ -144,5 +129,4 @@ module_exit(scx200_cleanup); | |||
| 144 | EXPORT_SYMBOL(scx200_gpio_base); | 129 | EXPORT_SYMBOL(scx200_gpio_base); |
| 145 | EXPORT_SYMBOL(scx200_gpio_shadow); | 130 | EXPORT_SYMBOL(scx200_gpio_shadow); |
| 146 | EXPORT_SYMBOL(scx200_gpio_configure); | 131 | EXPORT_SYMBOL(scx200_gpio_configure); |
| 147 | EXPORT_SYMBOL(scx200_gpio_dump); | ||
| 148 | EXPORT_SYMBOL(scx200_cb_base); | 132 | EXPORT_SYMBOL(scx200_cb_base); |
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 | { |
diff --git a/drivers/char/scx200_gpio.c b/drivers/char/scx200_gpio.c index eb9a84777598..442367b3f5dc 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 */ | |||
| 35 | module_param(major, int, 0); | 35 | module_param(major, int, 0); |
| 36 | MODULE_PARM_DESC(major, "Major device number"); | 36 | MODULE_PARM_DESC(major, "Major device number"); |
| 37 | 37 | ||
| 38 | extern void scx200_gpio_dump(unsigned index); | 38 | extern void nsc_gpio_dump(unsigned index); |
| 39 | 39 | ||
| 40 | extern ssize_t nsc_gpio_write(struct file *file, const char __user *data, | 40 | extern ssize_t nsc_gpio_write(struct file *file, const char __user *data, |
| 41 | size_t len, loff_t *ppos); | 41 | size_t len, loff_t *ppos); |
| @@ -46,7 +46,7 @@ extern ssize_t nsc_gpio_read(struct file *file, char __user *buf, | |||
| 46 | struct nsc_gpio_ops scx200_access = { | 46 | struct nsc_gpio_ops scx200_access = { |
| 47 | .owner = THIS_MODULE, | 47 | .owner = THIS_MODULE, |
| 48 | .gpio_config = scx200_gpio_configure, | 48 | .gpio_config = scx200_gpio_configure, |
| 49 | .gpio_dump = scx200_gpio_dump, | 49 | .gpio_dump = nsc_gpio_dump, |
| 50 | .gpio_get = scx200_gpio_get, | 50 | .gpio_get = scx200_gpio_get, |
| 51 | .gpio_set = scx200_gpio_set, | 51 | .gpio_set = scx200_gpio_set, |
| 52 | .gpio_set_high = scx200_gpio_set_high, | 52 | .gpio_set_high = scx200_gpio_set_high, |
