diff for duplicates of <20091019001911.GL12576@atomide.com> diff --git a/a/2.hdr b/a/2.hdr deleted file mode 100644 index cf34848..0000000 --- a/a/2.hdr +++ /dev/null @@ -1,2 +0,0 @@ -Content-Type: text/x-diff; charset=us-ascii -Content-Disposition: inline; filename="gpio-ioremap-v2.patch" diff --git a/a/2.txt b/a/2.txt deleted file mode 100644 index e8a9ec5..0000000 --- a/a/2.txt +++ /dev/null @@ -1,387 +0,0 @@ ->From db6d20507b61d75534a9a36d34b41356c1de710c Mon Sep 17 00:00:00 2001 -From: Tony Lindgren <tony@atomide.com> -Date: Fri, 16 Oct 2009 15:55:09 -0700 -Subject: [PATCH] omap: Use ioremap in gpio.c - -Use ioremap in gpio.c - -Signed-off-by: Tony Lindgren <tony@atomide.com> - -diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c -index b0c7361..7c753c3 100644 ---- a/arch/arm/plat-omap/gpio.c -+++ b/arch/arm/plat-omap/gpio.c -@@ -45,10 +45,10 @@ - /* - * OMAP1610 specific GPIO registers - */ --#define OMAP1610_GPIO1_BASE OMAP1_IO_ADDRESS(0xfffbe400) --#define OMAP1610_GPIO2_BASE OMAP1_IO_ADDRESS(0xfffbec00) --#define OMAP1610_GPIO3_BASE OMAP1_IO_ADDRESS(0xfffbb400) --#define OMAP1610_GPIO4_BASE OMAP1_IO_ADDRESS(0xfffbbc00) -+#define OMAP1610_GPIO1_BASE 0xfffbe400 -+#define OMAP1610_GPIO2_BASE 0xfffbec00 -+#define OMAP1610_GPIO3_BASE 0xfffbb400 -+#define OMAP1610_GPIO4_BASE 0xfffbbc00 - #define OMAP1610_GPIO_REVISION 0x0000 - #define OMAP1610_GPIO_SYSCONFIG 0x0010 - #define OMAP1610_GPIO_SYSSTATUS 0x0014 -@@ -70,12 +70,12 @@ - /* - * OMAP7XX specific GPIO registers - */ --#define OMAP7XX_GPIO1_BASE OMAP1_IO_ADDRESS(0xfffbc000) --#define OMAP7XX_GPIO2_BASE OMAP1_IO_ADDRESS(0xfffbc800) --#define OMAP7XX_GPIO3_BASE OMAP1_IO_ADDRESS(0xfffbd000) --#define OMAP7XX_GPIO4_BASE OMAP1_IO_ADDRESS(0xfffbd800) --#define OMAP7XX_GPIO5_BASE OMAP1_IO_ADDRESS(0xfffbe000) --#define OMAP7XX_GPIO6_BASE OMAP1_IO_ADDRESS(0xfffbe800) -+#define OMAP7XX_GPIO1_BASE 0xfffbc000 -+#define OMAP7XX_GPIO2_BASE 0xfffbc800 -+#define OMAP7XX_GPIO3_BASE 0xfffbd000 -+#define OMAP7XX_GPIO4_BASE 0xfffbd800 -+#define OMAP7XX_GPIO5_BASE 0xfffbe000 -+#define OMAP7XX_GPIO6_BASE 0xfffbe800 - #define OMAP7XX_GPIO_DATA_INPUT 0x00 - #define OMAP7XX_GPIO_DATA_OUTPUT 0x04 - #define OMAP7XX_GPIO_DIR_CONTROL 0x08 -@@ -83,21 +83,21 @@ - #define OMAP7XX_GPIO_INT_MASK 0x10 - #define OMAP7XX_GPIO_INT_STATUS 0x14 - --#define OMAP1_MPUIO_VBASE OMAP1_IO_ADDRESS(OMAP1_MPUIO_BASE) -+#define OMAP1_MPUIO_VBASE OMAP1_MPUIO_BASE - - /* - * omap24xx specific GPIO registers - */ --#define OMAP242X_GPIO1_BASE OMAP2_IO_ADDRESS(0x48018000) --#define OMAP242X_GPIO2_BASE OMAP2_IO_ADDRESS(0x4801a000) --#define OMAP242X_GPIO3_BASE OMAP2_IO_ADDRESS(0x4801c000) --#define OMAP242X_GPIO4_BASE OMAP2_IO_ADDRESS(0x4801e000) -+#define OMAP242X_GPIO1_BASE 0x48018000 -+#define OMAP242X_GPIO2_BASE 0x4801a000 -+#define OMAP242X_GPIO3_BASE 0x4801c000 -+#define OMAP242X_GPIO4_BASE 0x4801e000 - --#define OMAP243X_GPIO1_BASE OMAP2_IO_ADDRESS(0x4900C000) --#define OMAP243X_GPIO2_BASE OMAP2_IO_ADDRESS(0x4900E000) --#define OMAP243X_GPIO3_BASE OMAP2_IO_ADDRESS(0x49010000) --#define OMAP243X_GPIO4_BASE OMAP2_IO_ADDRESS(0x49012000) --#define OMAP243X_GPIO5_BASE OMAP2_IO_ADDRESS(0x480B6000) -+#define OMAP243X_GPIO1_BASE 0x4900C000 -+#define OMAP243X_GPIO2_BASE 0x4900E000 -+#define OMAP243X_GPIO3_BASE 0x49010000 -+#define OMAP243X_GPIO4_BASE 0x49012000 -+#define OMAP243X_GPIO5_BASE 0x480B6000 - - #define OMAP24XX_GPIO_REVISION 0x0000 - #define OMAP24XX_GPIO_SYSCONFIG 0x0010 -@@ -154,24 +154,25 @@ - * omap34xx specific GPIO registers - */ - --#define OMAP34XX_GPIO1_BASE OMAP2_IO_ADDRESS(0x48310000) --#define OMAP34XX_GPIO2_BASE OMAP2_IO_ADDRESS(0x49050000) --#define OMAP34XX_GPIO3_BASE OMAP2_IO_ADDRESS(0x49052000) --#define OMAP34XX_GPIO4_BASE OMAP2_IO_ADDRESS(0x49054000) --#define OMAP34XX_GPIO5_BASE OMAP2_IO_ADDRESS(0x49056000) --#define OMAP34XX_GPIO6_BASE OMAP2_IO_ADDRESS(0x49058000) -+#define OMAP34XX_GPIO1_BASE 0x48310000 -+#define OMAP34XX_GPIO2_BASE 0x49050000 -+#define OMAP34XX_GPIO3_BASE 0x49052000 -+#define OMAP34XX_GPIO4_BASE 0x49054000 -+#define OMAP34XX_GPIO5_BASE 0x49056000 -+#define OMAP34XX_GPIO6_BASE 0x49058000 - - /* - * OMAP44XX specific GPIO registers - */ --#define OMAP44XX_GPIO1_BASE OMAP2_IO_ADDRESS(0x4a310000) --#define OMAP44XX_GPIO2_BASE OMAP2_IO_ADDRESS(0x48055000) --#define OMAP44XX_GPIO3_BASE OMAP2_IO_ADDRESS(0x48057000) --#define OMAP44XX_GPIO4_BASE OMAP2_IO_ADDRESS(0x48059000) --#define OMAP44XX_GPIO5_BASE OMAP2_IO_ADDRESS(0x4805B000) --#define OMAP44XX_GPIO6_BASE OMAP2_IO_ADDRESS(0x4805D000) -+#define OMAP44XX_GPIO1_BASE 0x4a310000 -+#define OMAP44XX_GPIO2_BASE 0x48055000 -+#define OMAP44XX_GPIO3_BASE 0x48057000 -+#define OMAP44XX_GPIO4_BASE 0x48059000 -+#define OMAP44XX_GPIO5_BASE 0x4805B000 -+#define OMAP44XX_GPIO6_BASE 0x4805D000 - - struct gpio_bank { -+ unsigned long pbase; - void __iomem *base; - u16 irq; - u16 virtual_irq_start; -@@ -204,77 +205,106 @@ struct gpio_bank { - - #ifdef CONFIG_ARCH_OMAP16XX - static struct gpio_bank gpio_bank_1610[5] = { -- { OMAP1_MPUIO_VBASE, INT_MPUIO, IH_MPUIO_BASE, METHOD_MPUIO}, -- { OMAP1610_GPIO1_BASE, INT_GPIO_BANK1, IH_GPIO_BASE, METHOD_GPIO_1610 }, -- { OMAP1610_GPIO2_BASE, INT_1610_GPIO_BANK2, IH_GPIO_BASE + 16, METHOD_GPIO_1610 }, -- { OMAP1610_GPIO3_BASE, INT_1610_GPIO_BANK3, IH_GPIO_BASE + 32, METHOD_GPIO_1610 }, -- { OMAP1610_GPIO4_BASE, INT_1610_GPIO_BANK4, IH_GPIO_BASE + 48, METHOD_GPIO_1610 }, -+ { OMAP1_MPUIO_VBASE, NULL, INT_MPUIO, IH_MPUIO_BASE, -+ METHOD_MPUIO }, -+ { OMAP1610_GPIO1_BASE, NULL, INT_GPIO_BANK1, IH_GPIO_BASE, -+ METHOD_GPIO_1610 }, -+ { OMAP1610_GPIO2_BASE, NULL, INT_1610_GPIO_BANK2, IH_GPIO_BASE + 16, -+ METHOD_GPIO_1610 }, -+ { OMAP1610_GPIO3_BASE, NULL, INT_1610_GPIO_BANK3, IH_GPIO_BASE + 32, -+ METHOD_GPIO_1610 }, -+ { OMAP1610_GPIO4_BASE, NULL, INT_1610_GPIO_BANK4, IH_GPIO_BASE + 48, -+ METHOD_GPIO_1610 }, - }; - #endif - - #ifdef CONFIG_ARCH_OMAP15XX - static struct gpio_bank gpio_bank_1510[2] = { -- { OMAP1_MPUIO_VBASE, INT_MPUIO, IH_MPUIO_BASE, METHOD_MPUIO }, -- { OMAP1510_GPIO_BASE, INT_GPIO_BANK1, IH_GPIO_BASE, METHOD_GPIO_1510 } -+ { OMAP1_MPUIO_VBASE, NULL, INT_MPUIO, IH_MPUIO_BASE, -+ METHOD_MPUIO }, -+ { OMAP1510_GPIO_BASE, NULL, INT_GPIO_BANK1, IH_GPIO_BASE, -+ METHOD_GPIO_1510 } - }; - #endif - - #if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) - static struct gpio_bank gpio_bank_7xx[7] = { -- { OMAP1_MPUIO_VBASE, INT_7XX_MPUIO, IH_MPUIO_BASE, METHOD_MPUIO }, -- { OMAP7XX_GPIO1_BASE, INT_7XX_GPIO_BANK1, IH_GPIO_BASE, METHOD_GPIO_7XX }, -- { OMAP7XX_GPIO2_BASE, INT_7XX_GPIO_BANK2, IH_GPIO_BASE + 32, METHOD_GPIO_7XX }, -- { OMAP7XX_GPIO3_BASE, INT_7XX_GPIO_BANK3, IH_GPIO_BASE + 64, METHOD_GPIO_7XX }, -- { OMAP7XX_GPIO4_BASE, INT_7XX_GPIO_BANK4, IH_GPIO_BASE + 96, METHOD_GPIO_7XX }, -- { OMAP7XX_GPIO5_BASE, INT_7XX_GPIO_BANK5, IH_GPIO_BASE + 128, METHOD_GPIO_7XX }, -- { OMAP7XX_GPIO6_BASE, INT_7XX_GPIO_BANK6, IH_GPIO_BASE + 160, METHOD_GPIO_7XX }, -+ { OMAP1_MPUIO_VBASE, NULL, INT_7XX_MPUIO, IH_MPUIO_BASE, -+ METHOD_MPUIO }, -+ { OMAP7XX_GPIO1_BASE, NULL, INT_7XX_GPIO_BANK1, IH_GPIO_BASE, -+ METHOD_GPIO_7XX }, -+ { OMAP7XX_GPIO2_BASE, NULL, INT_7XX_GPIO_BANK2, IH_GPIO_BASE + 32, -+ METHOD_GPIO_7XX }, -+ { OMAP7XX_GPIO3_BASE, NULL, INT_7XX_GPIO_BANK3, IH_GPIO_BASE + 64, -+ METHOD_GPIO_7XX }, -+ { OMAP7XX_GPIO4_BASE, NULL, INT_7XX_GPIO_BANK4, IH_GPIO_BASE + 96, -+ METHOD_GPIO_7XX }, -+ { OMAP7XX_GPIO5_BASE, NULL, INT_7XX_GPIO_BANK5, IH_GPIO_BASE + 128, -+ METHOD_GPIO_7XX }, -+ { OMAP7XX_GPIO6_BASE, NULL, INT_7XX_GPIO_BANK6, IH_GPIO_BASE + 160, -+ METHOD_GPIO_7XX }, - }; - #endif - - #ifdef CONFIG_ARCH_OMAP24XX - - static struct gpio_bank gpio_bank_242x[4] = { -- { OMAP242X_GPIO1_BASE, INT_24XX_GPIO_BANK1, IH_GPIO_BASE, METHOD_GPIO_24XX }, -- { OMAP242X_GPIO2_BASE, INT_24XX_GPIO_BANK2, IH_GPIO_BASE + 32, METHOD_GPIO_24XX }, -- { OMAP242X_GPIO3_BASE, INT_24XX_GPIO_BANK3, IH_GPIO_BASE + 64, METHOD_GPIO_24XX }, -- { OMAP242X_GPIO4_BASE, INT_24XX_GPIO_BANK4, IH_GPIO_BASE + 96, METHOD_GPIO_24XX }, -+ { OMAP242X_GPIO1_BASE, NULL, INT_24XX_GPIO_BANK1, IH_GPIO_BASE, -+ METHOD_GPIO_24XX }, -+ { OMAP242X_GPIO2_BASE, NULL, INT_24XX_GPIO_BANK2, IH_GPIO_BASE + 32, -+ METHOD_GPIO_24XX }, -+ { OMAP242X_GPIO3_BASE, NULL, INT_24XX_GPIO_BANK3, IH_GPIO_BASE + 64, -+ METHOD_GPIO_24XX }, -+ { OMAP242X_GPIO4_BASE, NULL, INT_24XX_GPIO_BANK4, IH_GPIO_BASE + 96, -+ METHOD_GPIO_24XX }, - }; - - static struct gpio_bank gpio_bank_243x[5] = { -- { OMAP243X_GPIO1_BASE, INT_24XX_GPIO_BANK1, IH_GPIO_BASE, METHOD_GPIO_24XX }, -- { OMAP243X_GPIO2_BASE, INT_24XX_GPIO_BANK2, IH_GPIO_BASE + 32, METHOD_GPIO_24XX }, -- { OMAP243X_GPIO3_BASE, INT_24XX_GPIO_BANK3, IH_GPIO_BASE + 64, METHOD_GPIO_24XX }, -- { OMAP243X_GPIO4_BASE, INT_24XX_GPIO_BANK4, IH_GPIO_BASE + 96, METHOD_GPIO_24XX }, -- { OMAP243X_GPIO5_BASE, INT_24XX_GPIO_BANK5, IH_GPIO_BASE + 128, METHOD_GPIO_24XX }, -+ { OMAP243X_GPIO1_BASE, NULL, INT_24XX_GPIO_BANK1, IH_GPIO_BASE, -+ METHOD_GPIO_24XX }, -+ { OMAP243X_GPIO2_BASE, NULL, INT_24XX_GPIO_BANK2, IH_GPIO_BASE + 32, -+ METHOD_GPIO_24XX }, -+ { OMAP243X_GPIO3_BASE, NULL, INT_24XX_GPIO_BANK3, IH_GPIO_BASE + 64, -+ METHOD_GPIO_24XX }, -+ { OMAP243X_GPIO4_BASE, NULL, INT_24XX_GPIO_BANK4, IH_GPIO_BASE + 96, -+ METHOD_GPIO_24XX }, -+ { OMAP243X_GPIO5_BASE, NULL, INT_24XX_GPIO_BANK5, IH_GPIO_BASE + 128, -+ METHOD_GPIO_24XX }, - }; - - #endif - - #ifdef CONFIG_ARCH_OMAP34XX - static struct gpio_bank gpio_bank_34xx[6] = { -- { OMAP34XX_GPIO1_BASE, INT_34XX_GPIO_BANK1, IH_GPIO_BASE, METHOD_GPIO_24XX }, -- { OMAP34XX_GPIO2_BASE, INT_34XX_GPIO_BANK2, IH_GPIO_BASE + 32, METHOD_GPIO_24XX }, -- { OMAP34XX_GPIO3_BASE, INT_34XX_GPIO_BANK3, IH_GPIO_BASE + 64, METHOD_GPIO_24XX }, -- { OMAP34XX_GPIO4_BASE, INT_34XX_GPIO_BANK4, IH_GPIO_BASE + 96, METHOD_GPIO_24XX }, -- { OMAP34XX_GPIO5_BASE, INT_34XX_GPIO_BANK5, IH_GPIO_BASE + 128, METHOD_GPIO_24XX }, -- { OMAP34XX_GPIO6_BASE, INT_34XX_GPIO_BANK6, IH_GPIO_BASE + 160, METHOD_GPIO_24XX }, -+ { OMAP34XX_GPIO1_BASE, NULL, INT_34XX_GPIO_BANK1, IH_GPIO_BASE, -+ METHOD_GPIO_24XX }, -+ { OMAP34XX_GPIO2_BASE, NULL, INT_34XX_GPIO_BANK2, IH_GPIO_BASE + 32, -+ METHOD_GPIO_24XX }, -+ { OMAP34XX_GPIO3_BASE, NULL, INT_34XX_GPIO_BANK3, IH_GPIO_BASE + 64, -+ METHOD_GPIO_24XX }, -+ { OMAP34XX_GPIO4_BASE, NULL, INT_34XX_GPIO_BANK4, IH_GPIO_BASE + 96, -+ METHOD_GPIO_24XX }, -+ { OMAP34XX_GPIO5_BASE, NULL, INT_34XX_GPIO_BANK5, IH_GPIO_BASE + 128, -+ METHOD_GPIO_24XX }, -+ { OMAP34XX_GPIO6_BASE, NULL, INT_34XX_GPIO_BANK6, IH_GPIO_BASE + 160, -+ METHOD_GPIO_24XX }, - }; - - #endif - - #ifdef CONFIG_ARCH_OMAP4 - static struct gpio_bank gpio_bank_44xx[6] = { -- { OMAP44XX_GPIO1_BASE, INT_44XX_GPIO_BANK1, IH_GPIO_BASE, \ -+ { OMAP44XX_GPIO1_BASE, NULL, INT_44XX_GPIO_BANK1, IH_GPIO_BASE, - METHOD_GPIO_24XX }, -- { OMAP44XX_GPIO2_BASE, INT_44XX_GPIO_BANK2, IH_GPIO_BASE + 32, \ -+ { OMAP44XX_GPIO2_BASE, NULL, INT_44XX_GPIO_BANK2, IH_GPIO_BASE + 32, - METHOD_GPIO_24XX }, -- { OMAP44XX_GPIO3_BASE, INT_44XX_GPIO_BANK3, IH_GPIO_BASE + 64, \ -+ { OMAP44XX_GPIO3_BASE, NULL, INT_44XX_GPIO_BANK3, IH_GPIO_BASE + 64, - METHOD_GPIO_24XX }, -- { OMAP44XX_GPIO4_BASE, INT_44XX_GPIO_BANK4, IH_GPIO_BASE + 96, \ -+ { OMAP44XX_GPIO4_BASE, NULL, INT_44XX_GPIO_BANK4, IH_GPIO_BASE + 96, - METHOD_GPIO_24XX }, -- { OMAP44XX_GPIO5_BASE, INT_44XX_GPIO_BANK5, IH_GPIO_BASE + 128, \ -+ { OMAP44XX_GPIO5_BASE, NULL, INT_44XX_GPIO_BANK5, IH_GPIO_BASE + 128, - METHOD_GPIO_24XX }, -- { OMAP44XX_GPIO6_BASE, INT_44XX_GPIO_BANK6, IH_GPIO_BASE + 160, \ -+ { OMAP44XX_GPIO6_BASE, NULL, INT_44XX_GPIO_BANK6, IH_GPIO_BASE + 160, - METHOD_GPIO_24XX }, - }; - -@@ -1511,6 +1541,23 @@ static struct clk * gpio5_fck; - static struct clk *gpio_iclks[OMAP34XX_NR_GPIOS]; - #endif - -+static void __init omap_gpio_show_rev(void) -+{ -+ u32 rev; -+ -+ if (cpu_is_omap16xx()) -+ rev = __raw_readw(gpio_bank[1].base + OMAP1610_GPIO_REVISION); -+ else if (cpu_is_omap24xx() || cpu_is_omap34xx()) -+ rev = __raw_readl(gpio_bank[0].base + OMAP24XX_GPIO_REVISION); -+ else if (cpu_is_omap44xx()) -+ rev = __raw_readl(gpio_bank[0].base + OMAP4_GPIO_REVISION); -+ else -+ return; -+ -+ printk(KERN_INFO "OMAP GPIO hardware version %d.%d\n", -+ (rev >> 4) & 0x0f, rev & 0x0f); -+} -+ - /* This lock class tells lockdep that GPIO irqs are in a different - * category than their parents, so it won't report false recursion. - */ -@@ -1521,6 +1568,7 @@ static int __init _omap_gpio_init(void) - int i; - int gpio = 0; - struct gpio_bank *bank; -+ int bank_size = SZ_8K; /* Module 4KB + L4 4KB except on omap1 */ - char clk_name[11]; - - initialized = 1; -@@ -1583,69 +1631,45 @@ static int __init _omap_gpio_init(void) - - #ifdef CONFIG_ARCH_OMAP15XX - if (cpu_is_omap15xx()) { -- printk(KERN_INFO "OMAP1510 GPIO hardware\n"); - gpio_bank_count = 2; - gpio_bank = gpio_bank_1510; -+ bank_size = SZ_2K; - } - #endif - #if defined(CONFIG_ARCH_OMAP16XX) - if (cpu_is_omap16xx()) { -- u32 rev; -- - gpio_bank_count = 5; - gpio_bank = gpio_bank_1610; -- rev = __raw_readw(gpio_bank[1].base + OMAP1610_GPIO_REVISION); -- printk(KERN_INFO "OMAP GPIO hardware version %d.%d\n", -- (rev >> 4) & 0x0f, rev & 0x0f); -+ bank_size = SZ_2K; - } - #endif - #if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) - if (cpu_is_omap7xx()) { -- printk(KERN_INFO "OMAP7XX GPIO hardware\n"); - gpio_bank_count = 7; - gpio_bank = gpio_bank_7xx; -+ bank_size = SZ_2K; - } - #endif - #ifdef CONFIG_ARCH_OMAP24XX - if (cpu_is_omap242x()) { -- int rev; -- - gpio_bank_count = 4; - gpio_bank = gpio_bank_242x; -- rev = __raw_readl(gpio_bank[0].base + OMAP24XX_GPIO_REVISION); -- printk(KERN_INFO "OMAP242x GPIO hardware version %d.%d\n", -- (rev >> 4) & 0x0f, rev & 0x0f); - } - if (cpu_is_omap243x()) { -- int rev; -- - gpio_bank_count = 5; - gpio_bank = gpio_bank_243x; -- rev = __raw_readl(gpio_bank[0].base + OMAP24XX_GPIO_REVISION); -- printk(KERN_INFO "OMAP243x GPIO hardware version %d.%d\n", -- (rev >> 4) & 0x0f, rev & 0x0f); - } - #endif - #ifdef CONFIG_ARCH_OMAP34XX - if (cpu_is_omap34xx()) { -- int rev; -- - gpio_bank_count = OMAP34XX_NR_GPIOS; - gpio_bank = gpio_bank_34xx; -- rev = __raw_readl(gpio_bank[0].base + OMAP24XX_GPIO_REVISION); -- printk(KERN_INFO "OMAP34xx GPIO hardware version %d.%d\n", -- (rev >> 4) & 0x0f, rev & 0x0f); - } - #endif - #ifdef CONFIG_ARCH_OMAP4 - if (cpu_is_omap44xx()) { -- int rev; -- - gpio_bank_count = OMAP34XX_NR_GPIOS; - gpio_bank = gpio_bank_44xx; -- rev = __raw_readl(gpio_bank[0].base + OMAP4_GPIO_REVISION); -- printk(KERN_INFO "OMAP44xx GPIO hardware version %d.%d\n", -- (rev >> 4) & 0x0f, rev & 0x0f); - } - #endif - for (i = 0; i < gpio_bank_count; i++) { -@@ -1653,6 +1677,14 @@ static int __init _omap_gpio_init(void) - - bank = &gpio_bank[i]; - spin_lock_init(&bank->lock); -+ -+ /* Static mapping, never released */ -+ bank->base = ioremap(bank->pbase, bank_size); -+ if (!bank->base) { -+ printk(KERN_ERR "Could not ioremap gpio bank%i\n", i); -+ continue; -+ } -+ - if (bank_is_mpuio(bank)) - __raw_writew(0xffff, bank->base + OMAP_MPUIO_GPIO_MASKIT); - if (cpu_is_omap15xx() && bank->method == METHOD_GPIO_1510) { -@@ -1758,6 +1790,8 @@ static int __init _omap_gpio_init(void) - if (cpu_is_omap34xx()) - omap_writel(1 << 0, 0x48306814); - -+ omap_gpio_show_rev(); -+ - return 0; - } diff --git a/a/content_digest b/N1/content_digest index a15dabe..c554282 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -2,13 +2,11 @@ "ref\020091016234104.2463.54276.stgit@localhost\0" "ref\020091017081004.GA648@n2100.arm.linux.org.uk\0" "ref\020091017161347.GJ12576@atomide.com\0" - "From\0Tony Lindgren <tony@atomide.com>\0" - "Subject\0Re: [PATCH 05/14] omap: Use ioremap in gpio.c\0" + "From\0tony@atomide.com (Tony Lindgren)\0" + "Subject\0[PATCH 05/14] omap: Use ioremap in gpio.c\0" "Date\0Sun, 18 Oct 2009 17:19:12 -0700\0" - "To\0Russell King - ARM Linux <linux@arm.linux.org.uk>\0" - "Cc\0linux-arm-kernel@lists.infradead.org" - " linux-omap@vger.kernel.org\0" - "\01:1\0" + "To\0linux-arm-kernel@lists.infradead.org\0" + "\00:1\0" "b\0" "* Tony Lindgren <tony@atomide.com> [091017 09:14]:\n" "> * Russell King - ARM Linux <linux@arm.linux.org.uk> [091017 01:10]:\n" @@ -22,395 +20,5 @@ "Here's this one updated.\n" "\n" Tony - "\01:2\0" - "fn\0gpio-ioremap-v2.patch\0" - "b\0" - ">From db6d20507b61d75534a9a36d34b41356c1de710c Mon Sep 17 00:00:00 2001\n" - "From: Tony Lindgren <tony@atomide.com>\n" - "Date: Fri, 16 Oct 2009 15:55:09 -0700\n" - "Subject: [PATCH] omap: Use ioremap in gpio.c\n" - "\n" - "Use ioremap in gpio.c\n" - "\n" - "Signed-off-by: Tony Lindgren <tony@atomide.com>\n" - "\n" - "diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c\n" - "index b0c7361..7c753c3 100644\n" - "--- a/arch/arm/plat-omap/gpio.c\n" - "+++ b/arch/arm/plat-omap/gpio.c\n" - "@@ -45,10 +45,10 @@\n" - " /*\n" - " * OMAP1610 specific GPIO registers\n" - " */\n" - "-#define OMAP1610_GPIO1_BASE\t\tOMAP1_IO_ADDRESS(0xfffbe400)\n" - "-#define OMAP1610_GPIO2_BASE\t\tOMAP1_IO_ADDRESS(0xfffbec00)\n" - "-#define OMAP1610_GPIO3_BASE\t\tOMAP1_IO_ADDRESS(0xfffbb400)\n" - "-#define OMAP1610_GPIO4_BASE\t\tOMAP1_IO_ADDRESS(0xfffbbc00)\n" - "+#define OMAP1610_GPIO1_BASE\t\t0xfffbe400\n" - "+#define OMAP1610_GPIO2_BASE\t\t0xfffbec00\n" - "+#define OMAP1610_GPIO3_BASE\t\t0xfffbb400\n" - "+#define OMAP1610_GPIO4_BASE\t\t0xfffbbc00\n" - " #define OMAP1610_GPIO_REVISION\t\t0x0000\n" - " #define OMAP1610_GPIO_SYSCONFIG\t\t0x0010\n" - " #define OMAP1610_GPIO_SYSSTATUS\t\t0x0014\n" - "@@ -70,12 +70,12 @@\n" - " /*\n" - " * OMAP7XX specific GPIO registers\n" - " */\n" - "-#define OMAP7XX_GPIO1_BASE\t\tOMAP1_IO_ADDRESS(0xfffbc000)\n" - "-#define OMAP7XX_GPIO2_BASE\t\tOMAP1_IO_ADDRESS(0xfffbc800)\n" - "-#define OMAP7XX_GPIO3_BASE\t\tOMAP1_IO_ADDRESS(0xfffbd000)\n" - "-#define OMAP7XX_GPIO4_BASE\t\tOMAP1_IO_ADDRESS(0xfffbd800)\n" - "-#define OMAP7XX_GPIO5_BASE\t\tOMAP1_IO_ADDRESS(0xfffbe000)\n" - "-#define OMAP7XX_GPIO6_BASE\t\tOMAP1_IO_ADDRESS(0xfffbe800)\n" - "+#define OMAP7XX_GPIO1_BASE\t\t0xfffbc000\n" - "+#define OMAP7XX_GPIO2_BASE\t\t0xfffbc800\n" - "+#define OMAP7XX_GPIO3_BASE\t\t0xfffbd000\n" - "+#define OMAP7XX_GPIO4_BASE\t\t0xfffbd800\n" - "+#define OMAP7XX_GPIO5_BASE\t\t0xfffbe000\n" - "+#define OMAP7XX_GPIO6_BASE\t\t0xfffbe800\n" - " #define OMAP7XX_GPIO_DATA_INPUT\t\t0x00\n" - " #define OMAP7XX_GPIO_DATA_OUTPUT\t0x04\n" - " #define OMAP7XX_GPIO_DIR_CONTROL\t0x08\n" - "@@ -83,21 +83,21 @@\n" - " #define OMAP7XX_GPIO_INT_MASK\t\t0x10\n" - " #define OMAP7XX_GPIO_INT_STATUS\t\t0x14\n" - " \n" - "-#define OMAP1_MPUIO_VBASE\t\tOMAP1_IO_ADDRESS(OMAP1_MPUIO_BASE)\n" - "+#define OMAP1_MPUIO_VBASE\t\tOMAP1_MPUIO_BASE\n" - " \n" - " /*\n" - " * omap24xx specific GPIO registers\n" - " */\n" - "-#define OMAP242X_GPIO1_BASE\t\tOMAP2_IO_ADDRESS(0x48018000)\n" - "-#define OMAP242X_GPIO2_BASE\t\tOMAP2_IO_ADDRESS(0x4801a000)\n" - "-#define OMAP242X_GPIO3_BASE\t\tOMAP2_IO_ADDRESS(0x4801c000)\n" - "-#define OMAP242X_GPIO4_BASE\t\tOMAP2_IO_ADDRESS(0x4801e000)\n" - "+#define OMAP242X_GPIO1_BASE\t\t0x48018000\n" - "+#define OMAP242X_GPIO2_BASE\t\t0x4801a000\n" - "+#define OMAP242X_GPIO3_BASE\t\t0x4801c000\n" - "+#define OMAP242X_GPIO4_BASE\t\t0x4801e000\n" - " \n" - "-#define OMAP243X_GPIO1_BASE\t\tOMAP2_IO_ADDRESS(0x4900C000)\n" - "-#define OMAP243X_GPIO2_BASE\t\tOMAP2_IO_ADDRESS(0x4900E000)\n" - "-#define OMAP243X_GPIO3_BASE\t\tOMAP2_IO_ADDRESS(0x49010000)\n" - "-#define OMAP243X_GPIO4_BASE\t\tOMAP2_IO_ADDRESS(0x49012000)\n" - "-#define OMAP243X_GPIO5_BASE\t\tOMAP2_IO_ADDRESS(0x480B6000)\n" - "+#define OMAP243X_GPIO1_BASE\t\t0x4900C000\n" - "+#define OMAP243X_GPIO2_BASE\t\t0x4900E000\n" - "+#define OMAP243X_GPIO3_BASE\t\t0x49010000\n" - "+#define OMAP243X_GPIO4_BASE\t\t0x49012000\n" - "+#define OMAP243X_GPIO5_BASE\t\t0x480B6000\n" - " \n" - " #define OMAP24XX_GPIO_REVISION\t\t0x0000\n" - " #define OMAP24XX_GPIO_SYSCONFIG\t\t0x0010\n" - "@@ -154,24 +154,25 @@\n" - " * omap34xx specific GPIO registers\n" - " */\n" - " \n" - "-#define OMAP34XX_GPIO1_BASE\t\tOMAP2_IO_ADDRESS(0x48310000)\n" - "-#define OMAP34XX_GPIO2_BASE\t\tOMAP2_IO_ADDRESS(0x49050000)\n" - "-#define OMAP34XX_GPIO3_BASE\t\tOMAP2_IO_ADDRESS(0x49052000)\n" - "-#define OMAP34XX_GPIO4_BASE\t\tOMAP2_IO_ADDRESS(0x49054000)\n" - "-#define OMAP34XX_GPIO5_BASE\t\tOMAP2_IO_ADDRESS(0x49056000)\n" - "-#define OMAP34XX_GPIO6_BASE\t\tOMAP2_IO_ADDRESS(0x49058000)\n" - "+#define OMAP34XX_GPIO1_BASE\t\t0x48310000\n" - "+#define OMAP34XX_GPIO2_BASE\t\t0x49050000\n" - "+#define OMAP34XX_GPIO3_BASE\t\t0x49052000\n" - "+#define OMAP34XX_GPIO4_BASE\t\t0x49054000\n" - "+#define OMAP34XX_GPIO5_BASE\t\t0x49056000\n" - "+#define OMAP34XX_GPIO6_BASE\t\t0x49058000\n" - " \n" - " /*\n" - " * OMAP44XX specific GPIO registers\n" - " */\n" - "-#define OMAP44XX_GPIO1_BASE OMAP2_IO_ADDRESS(0x4a310000)\n" - "-#define OMAP44XX_GPIO2_BASE OMAP2_IO_ADDRESS(0x48055000)\n" - "-#define OMAP44XX_GPIO3_BASE OMAP2_IO_ADDRESS(0x48057000)\n" - "-#define OMAP44XX_GPIO4_BASE OMAP2_IO_ADDRESS(0x48059000)\n" - "-#define OMAP44XX_GPIO5_BASE OMAP2_IO_ADDRESS(0x4805B000)\n" - "-#define OMAP44XX_GPIO6_BASE OMAP2_IO_ADDRESS(0x4805D000)\n" - "+#define OMAP44XX_GPIO1_BASE 0x4a310000\n" - "+#define OMAP44XX_GPIO2_BASE 0x48055000\n" - "+#define OMAP44XX_GPIO3_BASE 0x48057000\n" - "+#define OMAP44XX_GPIO4_BASE 0x48059000\n" - "+#define OMAP44XX_GPIO5_BASE 0x4805B000\n" - "+#define OMAP44XX_GPIO6_BASE 0x4805D000\n" - " \n" - " struct gpio_bank {\n" - "+\tunsigned long pbase;\n" - " \tvoid __iomem *base;\n" - " \tu16 irq;\n" - " \tu16 virtual_irq_start;\n" - "@@ -204,77 +205,106 @@ struct gpio_bank {\n" - " \n" - " #ifdef CONFIG_ARCH_OMAP16XX\n" - " static struct gpio_bank gpio_bank_1610[5] = {\n" - "-\t{ OMAP1_MPUIO_VBASE, INT_MPUIO,\t IH_MPUIO_BASE, METHOD_MPUIO},\n" - "-\t{ OMAP1610_GPIO1_BASE, INT_GPIO_BANK1,\t IH_GPIO_BASE, METHOD_GPIO_1610 },\n" - "-\t{ OMAP1610_GPIO2_BASE, INT_1610_GPIO_BANK2, IH_GPIO_BASE + 16, METHOD_GPIO_1610 },\n" - "-\t{ OMAP1610_GPIO3_BASE, INT_1610_GPIO_BANK3, IH_GPIO_BASE + 32, METHOD_GPIO_1610 },\n" - "-\t{ OMAP1610_GPIO4_BASE, INT_1610_GPIO_BANK4, IH_GPIO_BASE + 48, METHOD_GPIO_1610 },\n" - "+\t{ OMAP1_MPUIO_VBASE, NULL, INT_MPUIO, IH_MPUIO_BASE,\n" - "+\t\tMETHOD_MPUIO },\n" - "+\t{ OMAP1610_GPIO1_BASE, NULL, INT_GPIO_BANK1, IH_GPIO_BASE,\n" - "+\t\tMETHOD_GPIO_1610 },\n" - "+\t{ OMAP1610_GPIO2_BASE, NULL, INT_1610_GPIO_BANK2, IH_GPIO_BASE + 16,\n" - "+\t\tMETHOD_GPIO_1610 },\n" - "+\t{ OMAP1610_GPIO3_BASE, NULL, INT_1610_GPIO_BANK3, IH_GPIO_BASE + 32,\n" - "+\t\tMETHOD_GPIO_1610 },\n" - "+\t{ OMAP1610_GPIO4_BASE, NULL, INT_1610_GPIO_BANK4, IH_GPIO_BASE + 48,\n" - "+\t\tMETHOD_GPIO_1610 },\n" - " };\n" - " #endif\n" - " \n" - " #ifdef CONFIG_ARCH_OMAP15XX\n" - " static struct gpio_bank gpio_bank_1510[2] = {\n" - "-\t{ OMAP1_MPUIO_VBASE, INT_MPUIO, IH_MPUIO_BASE, METHOD_MPUIO },\n" - "-\t{ OMAP1510_GPIO_BASE, INT_GPIO_BANK1, IH_GPIO_BASE, METHOD_GPIO_1510 }\n" - "+\t{ OMAP1_MPUIO_VBASE, NULL, INT_MPUIO, IH_MPUIO_BASE,\n" - "+\t\tMETHOD_MPUIO },\n" - "+\t{ OMAP1510_GPIO_BASE, NULL, INT_GPIO_BANK1, IH_GPIO_BASE,\n" - "+\t\tMETHOD_GPIO_1510 }\n" - " };\n" - " #endif\n" - " \n" - " #if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850)\n" - " static struct gpio_bank gpio_bank_7xx[7] = {\n" - "-\t{ OMAP1_MPUIO_VBASE, INT_7XX_MPUIO,\t IH_MPUIO_BASE,\tMETHOD_MPUIO },\n" - "-\t{ OMAP7XX_GPIO1_BASE, INT_7XX_GPIO_BANK1, IH_GPIO_BASE,\tMETHOD_GPIO_7XX },\n" - "-\t{ OMAP7XX_GPIO2_BASE, INT_7XX_GPIO_BANK2, IH_GPIO_BASE + 32,\tMETHOD_GPIO_7XX },\n" - "-\t{ OMAP7XX_GPIO3_BASE, INT_7XX_GPIO_BANK3, IH_GPIO_BASE + 64,\tMETHOD_GPIO_7XX },\n" - "-\t{ OMAP7XX_GPIO4_BASE, INT_7XX_GPIO_BANK4, IH_GPIO_BASE + 96,\tMETHOD_GPIO_7XX },\n" - "-\t{ OMAP7XX_GPIO5_BASE, INT_7XX_GPIO_BANK5, IH_GPIO_BASE + 128, METHOD_GPIO_7XX },\n" - "-\t{ OMAP7XX_GPIO6_BASE, INT_7XX_GPIO_BANK6, IH_GPIO_BASE + 160, METHOD_GPIO_7XX },\n" - "+\t{ OMAP1_MPUIO_VBASE, NULL, INT_7XX_MPUIO, IH_MPUIO_BASE,\n" - "+\t\tMETHOD_MPUIO },\n" - "+\t{ OMAP7XX_GPIO1_BASE, NULL, INT_7XX_GPIO_BANK1, IH_GPIO_BASE,\n" - "+\t\tMETHOD_GPIO_7XX },\n" - "+\t{ OMAP7XX_GPIO2_BASE, NULL, INT_7XX_GPIO_BANK2, IH_GPIO_BASE + 32,\n" - "+\t\tMETHOD_GPIO_7XX },\n" - "+\t{ OMAP7XX_GPIO3_BASE, NULL, INT_7XX_GPIO_BANK3, IH_GPIO_BASE + 64,\n" - "+\t\tMETHOD_GPIO_7XX },\n" - "+\t{ OMAP7XX_GPIO4_BASE, NULL, INT_7XX_GPIO_BANK4, IH_GPIO_BASE + 96,\n" - "+\t\tMETHOD_GPIO_7XX },\n" - "+\t{ OMAP7XX_GPIO5_BASE, NULL, INT_7XX_GPIO_BANK5, IH_GPIO_BASE + 128,\n" - "+\t\tMETHOD_GPIO_7XX },\n" - "+\t{ OMAP7XX_GPIO6_BASE, NULL, INT_7XX_GPIO_BANK6, IH_GPIO_BASE + 160,\n" - "+\t\tMETHOD_GPIO_7XX },\n" - " };\n" - " #endif\n" - " \n" - " #ifdef CONFIG_ARCH_OMAP24XX\n" - " \n" - " static struct gpio_bank gpio_bank_242x[4] = {\n" - "-\t{ OMAP242X_GPIO1_BASE, INT_24XX_GPIO_BANK1, IH_GPIO_BASE,\tMETHOD_GPIO_24XX },\n" - "-\t{ OMAP242X_GPIO2_BASE, INT_24XX_GPIO_BANK2, IH_GPIO_BASE + 32,\tMETHOD_GPIO_24XX },\n" - "-\t{ OMAP242X_GPIO3_BASE, INT_24XX_GPIO_BANK3, IH_GPIO_BASE + 64,\tMETHOD_GPIO_24XX },\n" - "-\t{ OMAP242X_GPIO4_BASE, INT_24XX_GPIO_BANK4, IH_GPIO_BASE + 96,\tMETHOD_GPIO_24XX },\n" - "+\t{ OMAP242X_GPIO1_BASE, NULL, INT_24XX_GPIO_BANK1, IH_GPIO_BASE,\n" - "+\t\tMETHOD_GPIO_24XX },\n" - "+\t{ OMAP242X_GPIO2_BASE, NULL, INT_24XX_GPIO_BANK2, IH_GPIO_BASE + 32,\n" - "+\t\tMETHOD_GPIO_24XX },\n" - "+\t{ OMAP242X_GPIO3_BASE, NULL, INT_24XX_GPIO_BANK3, IH_GPIO_BASE + 64,\n" - "+\t\tMETHOD_GPIO_24XX },\n" - "+\t{ OMAP242X_GPIO4_BASE, NULL, INT_24XX_GPIO_BANK4, IH_GPIO_BASE + 96,\n" - "+\t\tMETHOD_GPIO_24XX },\n" - " };\n" - " \n" - " static struct gpio_bank gpio_bank_243x[5] = {\n" - "-\t{ OMAP243X_GPIO1_BASE, INT_24XX_GPIO_BANK1, IH_GPIO_BASE,\tMETHOD_GPIO_24XX },\n" - "-\t{ OMAP243X_GPIO2_BASE, INT_24XX_GPIO_BANK2, IH_GPIO_BASE + 32,\tMETHOD_GPIO_24XX },\n" - "-\t{ OMAP243X_GPIO3_BASE, INT_24XX_GPIO_BANK3, IH_GPIO_BASE + 64,\tMETHOD_GPIO_24XX },\n" - "-\t{ OMAP243X_GPIO4_BASE, INT_24XX_GPIO_BANK4, IH_GPIO_BASE + 96,\tMETHOD_GPIO_24XX },\n" - "-\t{ OMAP243X_GPIO5_BASE, INT_24XX_GPIO_BANK5, IH_GPIO_BASE + 128, METHOD_GPIO_24XX },\n" - "+\t{ OMAP243X_GPIO1_BASE, NULL, INT_24XX_GPIO_BANK1, IH_GPIO_BASE,\n" - "+\t\tMETHOD_GPIO_24XX },\n" - "+\t{ OMAP243X_GPIO2_BASE, NULL, INT_24XX_GPIO_BANK2, IH_GPIO_BASE + 32,\n" - "+\t\tMETHOD_GPIO_24XX },\n" - "+\t{ OMAP243X_GPIO3_BASE, NULL, INT_24XX_GPIO_BANK3, IH_GPIO_BASE + 64,\n" - "+\t\tMETHOD_GPIO_24XX },\n" - "+\t{ OMAP243X_GPIO4_BASE, NULL, INT_24XX_GPIO_BANK4, IH_GPIO_BASE + 96,\n" - "+\t\tMETHOD_GPIO_24XX },\n" - "+\t{ OMAP243X_GPIO5_BASE, NULL, INT_24XX_GPIO_BANK5, IH_GPIO_BASE + 128,\n" - "+\t\tMETHOD_GPIO_24XX },\n" - " };\n" - " \n" - " #endif\n" - " \n" - " #ifdef CONFIG_ARCH_OMAP34XX\n" - " static struct gpio_bank gpio_bank_34xx[6] = {\n" - "-\t{ OMAP34XX_GPIO1_BASE, INT_34XX_GPIO_BANK1, IH_GPIO_BASE,\tMETHOD_GPIO_24XX },\n" - "-\t{ OMAP34XX_GPIO2_BASE, INT_34XX_GPIO_BANK2, IH_GPIO_BASE + 32,\tMETHOD_GPIO_24XX },\n" - "-\t{ OMAP34XX_GPIO3_BASE, INT_34XX_GPIO_BANK3, IH_GPIO_BASE + 64,\tMETHOD_GPIO_24XX },\n" - "-\t{ OMAP34XX_GPIO4_BASE, INT_34XX_GPIO_BANK4, IH_GPIO_BASE + 96,\tMETHOD_GPIO_24XX },\n" - "-\t{ OMAP34XX_GPIO5_BASE, INT_34XX_GPIO_BANK5, IH_GPIO_BASE + 128, METHOD_GPIO_24XX },\n" - "-\t{ OMAP34XX_GPIO6_BASE, INT_34XX_GPIO_BANK6, IH_GPIO_BASE + 160, METHOD_GPIO_24XX },\n" - "+\t{ OMAP34XX_GPIO1_BASE, NULL, INT_34XX_GPIO_BANK1, IH_GPIO_BASE,\n" - "+\t\tMETHOD_GPIO_24XX },\n" - "+\t{ OMAP34XX_GPIO2_BASE, NULL, INT_34XX_GPIO_BANK2, IH_GPIO_BASE + 32,\n" - "+\t\tMETHOD_GPIO_24XX },\n" - "+\t{ OMAP34XX_GPIO3_BASE, NULL, INT_34XX_GPIO_BANK3, IH_GPIO_BASE + 64,\n" - "+\t\tMETHOD_GPIO_24XX },\n" - "+\t{ OMAP34XX_GPIO4_BASE, NULL, INT_34XX_GPIO_BANK4, IH_GPIO_BASE + 96,\n" - "+\t\tMETHOD_GPIO_24XX },\n" - "+\t{ OMAP34XX_GPIO5_BASE, NULL, INT_34XX_GPIO_BANK5, IH_GPIO_BASE + 128,\n" - "+\t\tMETHOD_GPIO_24XX },\n" - "+\t{ OMAP34XX_GPIO6_BASE, NULL, INT_34XX_GPIO_BANK6, IH_GPIO_BASE + 160,\n" - "+\t\tMETHOD_GPIO_24XX },\n" - " };\n" - " \n" - " #endif\n" - " \n" - " #ifdef CONFIG_ARCH_OMAP4\n" - " static struct gpio_bank gpio_bank_44xx[6] = {\n" - "-\t{ OMAP44XX_GPIO1_BASE, INT_44XX_GPIO_BANK1, IH_GPIO_BASE,\t\\\n" - "+\t{ OMAP44XX_GPIO1_BASE, NULL, INT_44XX_GPIO_BANK1, IH_GPIO_BASE,\n" - " \t\tMETHOD_GPIO_24XX },\n" - "-\t{ OMAP44XX_GPIO2_BASE, INT_44XX_GPIO_BANK2, IH_GPIO_BASE + 32,\t\\\n" - "+\t{ OMAP44XX_GPIO2_BASE, NULL, INT_44XX_GPIO_BANK2, IH_GPIO_BASE + 32,\n" - " \t\tMETHOD_GPIO_24XX },\n" - "-\t{ OMAP44XX_GPIO3_BASE, INT_44XX_GPIO_BANK3, IH_GPIO_BASE + 64,\t\\\n" - "+\t{ OMAP44XX_GPIO3_BASE, NULL, INT_44XX_GPIO_BANK3, IH_GPIO_BASE + 64,\n" - " \t\tMETHOD_GPIO_24XX },\n" - "-\t{ OMAP44XX_GPIO4_BASE, INT_44XX_GPIO_BANK4, IH_GPIO_BASE + 96,\t\\\n" - "+\t{ OMAP44XX_GPIO4_BASE, NULL, INT_44XX_GPIO_BANK4, IH_GPIO_BASE + 96,\n" - " \t\tMETHOD_GPIO_24XX },\n" - "-\t{ OMAP44XX_GPIO5_BASE, INT_44XX_GPIO_BANK5, IH_GPIO_BASE + 128, \\\n" - "+\t{ OMAP44XX_GPIO5_BASE, NULL, INT_44XX_GPIO_BANK5, IH_GPIO_BASE + 128,\n" - " \t\tMETHOD_GPIO_24XX },\n" - "-\t{ OMAP44XX_GPIO6_BASE, INT_44XX_GPIO_BANK6, IH_GPIO_BASE + 160, \\\n" - "+\t{ OMAP44XX_GPIO6_BASE, NULL, INT_44XX_GPIO_BANK6, IH_GPIO_BASE + 160,\n" - " \t\tMETHOD_GPIO_24XX },\n" - " };\n" - " \n" - "@@ -1511,6 +1541,23 @@ static struct clk * gpio5_fck;\n" - " static struct clk *gpio_iclks[OMAP34XX_NR_GPIOS];\n" - " #endif\n" - " \n" - "+static void __init omap_gpio_show_rev(void)\n" - "+{\n" - "+\tu32 rev;\n" - "+\n" - "+\tif (cpu_is_omap16xx())\n" - "+\t\trev = __raw_readw(gpio_bank[1].base + OMAP1610_GPIO_REVISION);\n" - "+\telse if (cpu_is_omap24xx() || cpu_is_omap34xx())\n" - "+\t\trev = __raw_readl(gpio_bank[0].base + OMAP24XX_GPIO_REVISION);\n" - "+\telse if (cpu_is_omap44xx())\n" - "+\t\trev = __raw_readl(gpio_bank[0].base + OMAP4_GPIO_REVISION);\n" - "+\telse\n" - "+\t\treturn;\n" - "+\n" - "+\tprintk(KERN_INFO \"OMAP GPIO hardware version %d.%d\\n\",\n" - "+\t\t(rev >> 4) & 0x0f, rev & 0x0f);\n" - "+}\n" - "+\n" - " /* This lock class tells lockdep that GPIO irqs are in a different\n" - " * category than their parents, so it won't report false recursion.\n" - " */\n" - "@@ -1521,6 +1568,7 @@ static int __init _omap_gpio_init(void)\n" - " \tint i;\n" - " \tint gpio = 0;\n" - " \tstruct gpio_bank *bank;\n" - "+\tint bank_size = SZ_8K;\t/* Module 4KB + L4 4KB except on omap1 */\n" - " \tchar clk_name[11];\n" - " \n" - " \tinitialized = 1;\n" - "@@ -1583,69 +1631,45 @@ static int __init _omap_gpio_init(void)\n" - " \n" - " #ifdef CONFIG_ARCH_OMAP15XX\n" - " \tif (cpu_is_omap15xx()) {\n" - "-\t\tprintk(KERN_INFO \"OMAP1510 GPIO hardware\\n\");\n" - " \t\tgpio_bank_count = 2;\n" - " \t\tgpio_bank = gpio_bank_1510;\n" - "+\t\tbank_size = SZ_2K;\n" - " \t}\n" - " #endif\n" - " #if defined(CONFIG_ARCH_OMAP16XX)\n" - " \tif (cpu_is_omap16xx()) {\n" - "-\t\tu32 rev;\n" - "-\n" - " \t\tgpio_bank_count = 5;\n" - " \t\tgpio_bank = gpio_bank_1610;\n" - "-\t\trev = __raw_readw(gpio_bank[1].base + OMAP1610_GPIO_REVISION);\n" - "-\t\tprintk(KERN_INFO \"OMAP GPIO hardware version %d.%d\\n\",\n" - "-\t\t (rev >> 4) & 0x0f, rev & 0x0f);\n" - "+\t\tbank_size = SZ_2K;\n" - " \t}\n" - " #endif\n" - " #if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850)\n" - " \tif (cpu_is_omap7xx()) {\n" - "-\t\tprintk(KERN_INFO \"OMAP7XX GPIO hardware\\n\");\n" - " \t\tgpio_bank_count = 7;\n" - " \t\tgpio_bank = gpio_bank_7xx;\n" - "+\t\tbank_size = SZ_2K;\n" - " \t}\n" - " #endif\n" - " #ifdef CONFIG_ARCH_OMAP24XX\n" - " \tif (cpu_is_omap242x()) {\n" - "-\t\tint rev;\n" - "-\n" - " \t\tgpio_bank_count = 4;\n" - " \t\tgpio_bank = gpio_bank_242x;\n" - "-\t\trev = __raw_readl(gpio_bank[0].base + OMAP24XX_GPIO_REVISION);\n" - "-\t\tprintk(KERN_INFO \"OMAP242x GPIO hardware version %d.%d\\n\",\n" - "-\t\t\t(rev >> 4) & 0x0f, rev & 0x0f);\n" - " \t}\n" - " \tif (cpu_is_omap243x()) {\n" - "-\t\tint rev;\n" - "-\n" - " \t\tgpio_bank_count = 5;\n" - " \t\tgpio_bank = gpio_bank_243x;\n" - "-\t\trev = __raw_readl(gpio_bank[0].base + OMAP24XX_GPIO_REVISION);\n" - "-\t\tprintk(KERN_INFO \"OMAP243x GPIO hardware version %d.%d\\n\",\n" - "-\t\t\t(rev >> 4) & 0x0f, rev & 0x0f);\n" - " \t}\n" - " #endif\n" - " #ifdef CONFIG_ARCH_OMAP34XX\n" - " \tif (cpu_is_omap34xx()) {\n" - "-\t\tint rev;\n" - "-\n" - " \t\tgpio_bank_count = OMAP34XX_NR_GPIOS;\n" - " \t\tgpio_bank = gpio_bank_34xx;\n" - "-\t\trev = __raw_readl(gpio_bank[0].base + OMAP24XX_GPIO_REVISION);\n" - "-\t\tprintk(KERN_INFO \"OMAP34xx GPIO hardware version %d.%d\\n\",\n" - "-\t\t\t(rev >> 4) & 0x0f, rev & 0x0f);\n" - " \t}\n" - " #endif\n" - " #ifdef CONFIG_ARCH_OMAP4\n" - " \tif (cpu_is_omap44xx()) {\n" - "-\t\tint rev;\n" - "-\n" - " \t\tgpio_bank_count = OMAP34XX_NR_GPIOS;\n" - " \t\tgpio_bank = gpio_bank_44xx;\n" - "-\t\trev = __raw_readl(gpio_bank[0].base + OMAP4_GPIO_REVISION);\n" - "-\t\tprintk(KERN_INFO \"OMAP44xx GPIO hardware version %d.%d\\n\",\n" - "-\t\t\t(rev >> 4) & 0x0f, rev & 0x0f);\n" - " \t}\n" - " #endif\n" - " \tfor (i = 0; i < gpio_bank_count; i++) {\n" - "@@ -1653,6 +1677,14 @@ static int __init _omap_gpio_init(void)\n" - " \n" - " \t\tbank = &gpio_bank[i];\n" - " \t\tspin_lock_init(&bank->lock);\n" - "+\n" - "+\t\t/* Static mapping, never released */\n" - "+\t\tbank->base = ioremap(bank->pbase, bank_size);\n" - "+\t\tif (!bank->base) {\n" - "+\t\t\tprintk(KERN_ERR \"Could not ioremap gpio bank%i\\n\", i);\n" - "+\t\t\tcontinue;\n" - "+\t\t}\n" - "+\n" - " \t\tif (bank_is_mpuio(bank))\n" - " \t\t\t__raw_writew(0xffff, bank->base + OMAP_MPUIO_GPIO_MASKIT);\n" - " \t\tif (cpu_is_omap15xx() && bank->method == METHOD_GPIO_1510) {\n" - "@@ -1758,6 +1790,8 @@ static int __init _omap_gpio_init(void)\n" - " \tif (cpu_is_omap34xx())\n" - " \t\tomap_writel(1 << 0, 0x48306814);\n" - " \n" - "+\tomap_gpio_show_rev();\n" - "+\n" - " \treturn 0;\n" - } -a9c3e6edbbe7e25f269cc719a4366f7771176263cdc37788724e17f325165bf8 +49990c07a559b816011d7bf30ec5482897650d9d5423f516288a7c4e48290428
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.