logo       

[patch 13/19] chardev: pc8736x_gpio - move gpio_dump into nsc_gpio: msg#00021

Subject: [patch 13/19] chardev: pc8736x_gpio - move gpio_dump into nsc_gpio
GPIO SUPPORT FOR SCx200 & PC8736x

This patch-set reworks the 2.4 vintage scx200_gpio driver for modern
2.6, and refactors GPIO support to reuse it in a new driver for the
GPIO on PC-8736x chips.

13/19. patch.common-dump

gpio_dump() doesnt belong in scx200.ko module, put it in nsc_gpio.ko instead.
For now, we keep using printk...

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

diffstat 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 k16r-13/arch/i386/kernel/scx200.c 
k16r-14/arch/i386/kernel/scx200.c
--- k16r-13/arch/i386/kernel/scx200.c   2006-05-28 12:21:07.000000000 -0600
+++ k16r-14/arch/i386/kernel/scx200.c   2006-05-28 12:22:39.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,7 +129,6 @@ 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 k16r-13/drivers/char/nsc_gpio.c 
k16r-14/drivers/char/nsc_gpio.c
--- k16r-13/drivers/char/nsc_gpio.c     2006-05-28 12:22:06.000000000 -0600
+++ k16r-14/drivers/char/nsc_gpio.c     2006-05-28 12:22:39.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 k16r-13/drivers/char/scx200_gpio.c 
k16r-14/drivers/char/scx200_gpio.c
--- k16r-13/drivers/char/scx200_gpio.c  2006-05-28 12:22:07.000000000 -0600
+++ k16r-14/drivers/char/scx200_gpio.c  2006-05-28 12:22:39.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,


<Prev in Thread] Current Thread [Next in Thread>