From: Albert H. <he...@us...> - 2009-02-01 18:50:36
|
Update of /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv19060/arch/powerpc/platforms/embedded6xx Modified Files: starlet-gpio.c Log Message: - add GPIO fixes (now hopefully) Index: starlet-gpio.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/powerpc/platforms/embedded6xx/starlet-gpio.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- starlet-gpio.c 1 Feb 2009 18:29:35 -0000 1.2 +++ starlet-gpio.c 1 Feb 2009 18:50:33 -0000 1.3 @@ -24,7 +24,7 @@ }; struct stgpio_regs { - __be32 data, dir; + __be32 out, dir, in; }; @@ -41,7 +41,7 @@ u32 pin_mask = 1 << (31 - gpio); unsigned int val; - val = !!(in_be32(®s->data) & pin_mask); + val = !!(in_be32(®s->in) & pin_mask); pr_debug("%s: gpio: %d val: %d\n", __func__, gpio, val); @@ -58,10 +58,10 @@ unsigned long flags; spin_lock_irqsave(&st_gc->lock, flags); - data = in_be32(®s->data) & ~pin_mask; + data = in_be32(®s->in) & ~pin_mask; if (val) data |= pin_mask; - out_be32(®s->data, data); + out_be32(®s->out, data); spin_unlock_irqrestore(&st_gc->lock, flags); pr_debug("%s: gpio: %d val: %d\n", __func__, gpio, val); @@ -90,7 +90,7 @@ return 0; } -static int stgpio_add32(struct device_node *np) +int stgpio_add32(struct device_node *np) { struct of_mm_gpio_chip *mm_gc; struct of_gpio_chip *of_gc; |