Merge branch 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm
[pandora-kernel.git] / include / linux / scx200_gpio.h
index 83ab8a1..ece4e55 100644 (file)
@@ -1,23 +1,22 @@
-#include <linux/spinlock.h>
-
-u32 scx200_gpio_configure(int index, u32 set, u32 clear);
+u32 scx200_gpio_configure(unsigned index, u32 set, u32 clear);
 
 extern unsigned scx200_gpio_base;
-extern long scx200_gpio_shadow[2];
+extern unsigned long scx200_gpio_shadow[2];
+extern struct nsc_gpio_ops scx200_gpio_ops;
 
 #define scx200_gpio_present() (scx200_gpio_base!=0)
 
 /* Definitions to make sure I do the same thing in all functions */
 #define __SCx200_GPIO_BANK unsigned bank = index>>5
 #define __SCx200_GPIO_IOADDR unsigned short ioaddr = scx200_gpio_base+0x10*bank
-#define __SCx200_GPIO_SHADOW long *shadow = scx200_gpio_shadow+bank
+#define __SCx200_GPIO_SHADOW unsigned long *shadow = scx200_gpio_shadow+bank
 #define __SCx200_GPIO_INDEX index &= 31
 
 #define __SCx200_GPIO_OUT __asm__ __volatile__("outsl":"=mS" (shadow):"d" (ioaddr), "0" (shadow))
 
 /* returns the value of the GPIO pin */
 
-static inline int scx200_gpio_get(int index) {
+static inline int scx200_gpio_get(unsigned index) {
        __SCx200_GPIO_BANK;
        __SCx200_GPIO_IOADDR + 0x04;
        __SCx200_GPIO_INDEX;
@@ -29,7 +28,7 @@ static inline int scx200_gpio_get(int index) {
    driven if the GPIO is configured as an output, it might not be the
    state of the GPIO right now if the GPIO is configured as an input) */
 
-static inline int scx200_gpio_current(int index) {
+static inline int scx200_gpio_current(unsigned index) {
         __SCx200_GPIO_BANK;
        __SCx200_GPIO_INDEX;
                
@@ -38,29 +37,29 @@ static inline int scx200_gpio_current(int index) {
 
 /* drive the GPIO signal high */
 
-static inline void scx200_gpio_set_high(int index) {
+static inline void scx200_gpio_set_high(unsigned index) {
        __SCx200_GPIO_BANK;
        __SCx200_GPIO_IOADDR;
        __SCx200_GPIO_SHADOW;
        __SCx200_GPIO_INDEX;
-       set_bit(index, shadow);
+       set_bit(index, shadow); /* __set_bit()? */
        __SCx200_GPIO_OUT;
 }
 
 /* drive the GPIO signal low */
 
-static inline void scx200_gpio_set_low(int index) {
+static inline void scx200_gpio_set_low(unsigned index) {
        __SCx200_GPIO_BANK;
        __SCx200_GPIO_IOADDR;
        __SCx200_GPIO_SHADOW;
        __SCx200_GPIO_INDEX;
-       clear_bit(index, shadow);
+       clear_bit(index, shadow); /* __clear_bit()? */
        __SCx200_GPIO_OUT;
 }
 
 /* drive the GPIO signal to state */
 
-static inline void scx200_gpio_set(int index, int state) {
+static inline void scx200_gpio_set(unsigned index, int state) {
        __SCx200_GPIO_BANK;
        __SCx200_GPIO_IOADDR;
        __SCx200_GPIO_SHADOW;
@@ -73,7 +72,7 @@ static inline void scx200_gpio_set(int index, int state) {
 }
 
 /* toggle the GPIO signal */
-static inline void scx200_gpio_change(int index) {
+static inline void scx200_gpio_change(unsigned index) {
        __SCx200_GPIO_BANK;
        __SCx200_GPIO_IOADDR;
        __SCx200_GPIO_SHADOW;