diff options
Diffstat (limited to 'arch/arm/plat-iop')
-rw-r--r-- | arch/arm/plat-iop/adma.c | 2 | ||||
-rw-r--r-- | arch/arm/plat-iop/gpio.c | 43 | ||||
-rw-r--r-- | arch/arm/plat-iop/i2c.c | 5 | ||||
-rw-r--r-- | arch/arm/plat-iop/io.c | 4 | ||||
-rw-r--r-- | arch/arm/plat-iop/pci.c | 5 | ||||
-rw-r--r-- | arch/arm/plat-iop/time.c | 6 |
6 files changed, 53 insertions, 12 deletions
diff --git a/arch/arm/plat-iop/adma.c b/arch/arm/plat-iop/adma.c index 53c5e9a..f724208 100644 --- a/arch/arm/plat-iop/adma.c +++ b/arch/arm/plat-iop/adma.c @@ -19,7 +19,7 @@ #include <linux/platform_device.h> #include <asm/hardware/iop3xx.h> #include <linux/dma-mapping.h> -#include <asm/arch/adma.h> +#include <mach/adma.h> #include <asm/hardware/iop_adma.h> #ifdef CONFIG_ARCH_IOP32X diff --git a/arch/arm/plat-iop/gpio.c b/arch/arm/plat-iop/gpio.c index eda4360..640e498 100644 --- a/arch/arm/plat-iop/gpio.c +++ b/arch/arm/plat-iop/gpio.c @@ -11,6 +11,10 @@ */ #include <linux/device.h> +#include <linux/init.h> +#include <linux/types.h> +#include <linux/errno.h> +#include <linux/gpio.h> #include <asm/hardware/iop3xx.h> void gpio_line_config(int line, int direction) @@ -46,3 +50,42 @@ void gpio_line_set(int line, int value) local_irq_restore(flags); } EXPORT_SYMBOL(gpio_line_set); + +static int iop3xx_gpio_direction_input(struct gpio_chip *chip, unsigned gpio) +{ + gpio_line_config(gpio, GPIO_IN); + return 0; +} + +static int iop3xx_gpio_direction_output(struct gpio_chip *chip, unsigned gpio, int level) +{ + gpio_line_set(gpio, level); + gpio_line_config(gpio, GPIO_OUT); + return 0; +} + +static int iop3xx_gpio_get_value(struct gpio_chip *chip, unsigned gpio) +{ + return gpio_line_get(gpio); +} + +static void iop3xx_gpio_set_value(struct gpio_chip *chip, unsigned gpio, int value) +{ + gpio_line_set(gpio, value); +} + +static struct gpio_chip iop3xx_chip = { + .label = "iop3xx", + .direction_input = iop3xx_gpio_direction_input, + .get = iop3xx_gpio_get_value, + .direction_output = iop3xx_gpio_direction_output, + .set = iop3xx_gpio_set_value, + .base = 0, + .ngpio = IOP3XX_N_GPIOS, +}; + +static int __init iop3xx_gpio_setup(void) +{ + return gpiochip_add(&iop3xx_chip); +} +arch_initcall(iop3xx_gpio_setup); diff --git a/arch/arm/plat-iop/i2c.c b/arch/arm/plat-iop/i2c.c index e99909b..4efe392 100644 --- a/arch/arm/plat-iop/i2c.c +++ b/arch/arm/plat-iop/i2c.c @@ -18,16 +18,15 @@ #include <linux/serial.h> #include <linux/tty.h> #include <linux/serial_core.h> -#include <asm/io.h> +#include <linux/io.h> #include <asm/pgtable.h> #include <asm/page.h> #include <asm/mach/map.h> #include <asm/setup.h> #include <asm/system.h> #include <asm/memory.h> -#include <asm/hardware.h> +#include <mach/hardware.h> #include <asm/hardware/iop3xx.h> -#include <asm/mach-types.h> #include <asm/mach/arch.h> #ifdef CONFIG_ARCH_IOP32X diff --git a/arch/arm/plat-iop/io.c b/arch/arm/plat-iop/io.c index 498675d..ed0bbec 100644 --- a/arch/arm/plat-iop/io.c +++ b/arch/arm/plat-iop/io.c @@ -18,8 +18,8 @@ */ #include <linux/kernel.h> #include <linux/module.h> -#include <asm/hardware.h> -#include <asm/io.h> +#include <linux/io.h> +#include <mach/hardware.h> void * __iomem __iop3xx_ioremap(unsigned long cookie, size_t size, unsigned int mtype) diff --git a/arch/arm/plat-iop/pci.c b/arch/arm/plat-iop/pci.c index d9bc15a..77fa7cc 100644 --- a/arch/arm/plat-iop/pci.c +++ b/arch/arm/plat-iop/pci.c @@ -17,14 +17,13 @@ #include <linux/mm.h> #include <linux/init.h> #include <linux/ioport.h> -#include <asm/io.h> +#include <linux/io.h> #include <asm/irq.h> #include <asm/signal.h> #include <asm/system.h> -#include <asm/hardware.h> +#include <mach/hardware.h> #include <asm/mach/pci.h> #include <asm/hardware/iop3xx.h> -#include <asm/mach-types.h> // #define DEBUG diff --git a/arch/arm/plat-iop/time.c b/arch/arm/plat-iop/time.c index 6fe481f..3695bbe 100644 --- a/arch/arm/plat-iop/time.c +++ b/arch/arm/plat-iop/time.c @@ -18,13 +18,13 @@ #include <linux/time.h> #include <linux/init.h> #include <linux/timex.h> -#include <asm/hardware.h> -#include <asm/io.h> +#include <linux/io.h> +#include <mach/hardware.h> #include <asm/irq.h> #include <asm/uaccess.h> #include <asm/mach/irq.h> #include <asm/mach/time.h> -#include <asm/arch/time.h> +#include <mach/time.h> static unsigned long ticks_per_jiffy; static unsigned long ticks_per_usec; |