Merge branch 'gpio/next' of git://git.secretlab.ca/git/linux-2.6
[pandora-kernel.git] / arch / arm / mach-omap1 / gpio7xx.c
index c6ad248..5ab63ea 100644 (file)
@@ -39,11 +39,22 @@ static struct __initdata resource omap7xx_mpu_gpio_resources[] = {
        },
 };
 
+static struct omap_gpio_reg_offs omap7xx_mpuio_regs = {
+       .revision       = USHRT_MAX,
+       .direction      = OMAP_MPUIO_IO_CNTL / 2,
+       .datain         = OMAP_MPUIO_INPUT_LATCH / 2,
+       .dataout        = OMAP_MPUIO_OUTPUT / 2,
+       .irqstatus      = OMAP_MPUIO_GPIO_INT / 2,
+       .irqenable      = OMAP_MPUIO_GPIO_MASKIT / 2,
+       .irqenable_inv  = true,
+};
+
 static struct __initdata omap_gpio_platform_data omap7xx_mpu_gpio_config = {
        .virtual_irq_start      = IH_MPUIO_BASE,
        .bank_type              = METHOD_MPUIO,
        .bank_width             = 32,
        .bank_stride            = 2,
+       .regs                   = &omap7xx_mpuio_regs,
 };
 
 static struct platform_device omap7xx_mpu_gpio = {
@@ -69,10 +80,21 @@ static struct __initdata resource omap7xx_gpio1_resources[] = {
        },
 };
 
+static struct omap_gpio_reg_offs omap7xx_gpio_regs = {
+       .revision       = USHRT_MAX,
+       .direction      = OMAP7XX_GPIO_DIR_CONTROL,
+       .datain         = OMAP7XX_GPIO_DATA_INPUT,
+       .dataout        = OMAP7XX_GPIO_DATA_OUTPUT,
+       .irqstatus      = OMAP7XX_GPIO_INT_STATUS,
+       .irqenable      = OMAP7XX_GPIO_INT_MASK,
+       .irqenable_inv  = true,
+};
+
 static struct __initdata omap_gpio_platform_data omap7xx_gpio1_config = {
        .virtual_irq_start      = IH_GPIO_BASE,
        .bank_type              = METHOD_GPIO_7XX,
        .bank_width             = 32,
+       .regs                   = &omap7xx_gpio_regs,
 };
 
 static struct platform_device omap7xx_gpio1 = {
@@ -102,6 +124,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio2_config = {
        .virtual_irq_start      = IH_GPIO_BASE + 32,
        .bank_type              = METHOD_GPIO_7XX,
        .bank_width             = 32,
+       .regs                   = &omap7xx_gpio_regs,
 };
 
 static struct platform_device omap7xx_gpio2 = {
@@ -131,6 +154,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio3_config = {
        .virtual_irq_start      = IH_GPIO_BASE + 64,
        .bank_type              = METHOD_GPIO_7XX,
        .bank_width             = 32,
+       .regs                   = &omap7xx_gpio_regs,
 };
 
 static struct platform_device omap7xx_gpio3 = {
@@ -160,6 +184,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio4_config = {
        .virtual_irq_start      = IH_GPIO_BASE + 96,
        .bank_type              = METHOD_GPIO_7XX,
        .bank_width             = 32,
+       .regs                   = &omap7xx_gpio_regs,
 };
 
 static struct platform_device omap7xx_gpio4 = {
@@ -189,6 +214,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio5_config = {
        .virtual_irq_start      = IH_GPIO_BASE + 128,
        .bank_type              = METHOD_GPIO_7XX,
        .bank_width             = 32,
+       .regs                   = &omap7xx_gpio_regs,
 };
 
 static struct platform_device omap7xx_gpio5 = {
@@ -218,6 +244,7 @@ static struct __initdata omap_gpio_platform_data omap7xx_gpio6_config = {
        .virtual_irq_start      = IH_GPIO_BASE + 160,
        .bank_type              = METHOD_GPIO_7XX,
        .bank_width             = 32,
+       .regs                   = &omap7xx_gpio_regs,
 };
 
 static struct platform_device omap7xx_gpio6 = {