[patch -mm 12/20] chardev: GPIO for SCx200 & PC-8736x: migrate gpio_dumpto common module

From: Jim Cromie
Date: Sat Jun 17 2006 - 14:32:05 EST


12/20. patch.common-dump

Since the meaning of config-bits is the same for scx200 and pc8736x
_gpios, we can share a function to deliver this to user. Since it is
called via the vtable, its also completely replaceable.
For now, we keep using printk...


Signed-off-by: Jim Cromie <jim.cromie@xxxxxxxxx>

---

diffstat gpio-scx/patch.common-dump
arch/i386/kernel/scx200.c | 16 ----------------
drivers/char/nsc_gpio.c | 16 +++++++++++++++-
drivers/char/scx200_gpio.c | 4 ++--
3 files changed, 17 insertions(+), 19 deletions(-)

diff -ruNp -X dontdiff -X exclude-diffs ax-11/arch/i386/kernel/scx200.c ax-12/arch/i386/kernel/scx200.c
--- ax-11/arch/i386/kernel/scx200.c 2006-06-17 01:17:11.000000000 -0600
+++ ax-12/arch/i386/kernel/scx200.c 2006-06-17 01:36:56.000000000 -0600
@@ -110,21 +110,6 @@ u32 scx200_gpio_configure(unsigned index
return config;
}

-void scx200_gpio_dump(unsigned index)
-{
- u32 config = scx200_gpio_configure(index, ~0, 0);
-
- 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 rising/falling edge */ - (config & 64) ? "DEBOUNCE" : ""); /* debounce */
-}
-
static int __init scx200_init(void)
{
printk(KERN_INFO NAME ": NatSemi SCx200 Driver\n");
@@ -144,5 +129,4 @@ module_exit(scx200_cleanup);
EXPORT_SYMBOL(scx200_gpio_base);
EXPORT_SYMBOL(scx200_gpio_shadow);
EXPORT_SYMBOL(scx200_gpio_configure);
-EXPORT_SYMBOL(scx200_gpio_dump);
EXPORT_SYMBOL(scx200_cb_base);
diff -ruNp -X dontdiff -X exclude-diffs ax-11/drivers/char/nsc_gpio.c ax-12/drivers/char/nsc_gpio.c
--- ax-11/drivers/char/nsc_gpio.c 2006-06-17 01:33:50.000000000 -0600
+++ ax-12/drivers/char/nsc_gpio.c 2006-06-17 01:36:56.000000000 -0600
@@ -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,
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 -ruNp -X dontdiff -X exclude-diffs ax-11/drivers/char/scx200_gpio.c ax-12/drivers/char/scx200_gpio.c
--- ax-11/drivers/char/scx200_gpio.c 2006-06-17 01:33:50.000000000 -0600
+++ ax-12/drivers/char/scx200_gpio.c 2006-06-17 01:36:56.000000000 -0600
@@ -35,7 +35,7 @@ static int major = 0; /* default to dyn
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
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,


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/