diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/plat-omap/gpio.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index 8bedc8f9b6e5..037a4930ec61 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c | |||
@@ -1082,6 +1082,10 @@ static int __init _omap_gpio_init(void) | |||
1082 | if (bank->method == METHOD_GPIO_24XX) { | 1082 | if (bank->method == METHOD_GPIO_24XX) { |
1083 | __raw_writel(0x00000000, bank->base + OMAP24XX_GPIO_IRQENABLE1); | 1083 | __raw_writel(0x00000000, bank->base + OMAP24XX_GPIO_IRQENABLE1); |
1084 | __raw_writel(0xffffffff, bank->base + OMAP24XX_GPIO_IRQSTATUS1); | 1084 | __raw_writel(0xffffffff, bank->base + OMAP24XX_GPIO_IRQSTATUS1); |
1085 | __raw_writew(0x0015, bank->base + OMAP24XX_GPIO_SYSCONFIG); | ||
1086 | |||
1087 | /* Initialize interface clock ungated, module enabled */ | ||
1088 | __raw_writel(0, bank->base + OMAP24XX_GPIO_CTRL); | ||
1085 | 1089 | ||
1086 | gpio_count = 32; | 1090 | gpio_count = 32; |
1087 | } | 1091 | } |
@@ -1104,6 +1108,12 @@ static int __init _omap_gpio_init(void) | |||
1104 | if (cpu_is_omap16xx()) | 1108 | if (cpu_is_omap16xx()) |
1105 | omap_writel(omap_readl(ULPD_CAM_CLK_CTRL) | 0x04, ULPD_CAM_CLK_CTRL); | 1109 | omap_writel(omap_readl(ULPD_CAM_CLK_CTRL) | 0x04, ULPD_CAM_CLK_CTRL); |
1106 | 1110 | ||
1111 | #ifdef CONFIG_ARCH_OMAP24XX | ||
1112 | /* Enable autoidle for the OCP interface */ | ||
1113 | if (cpu_is_omap24xx()) | ||
1114 | omap_writel(1 << 0, 0x48019010); | ||
1115 | #endif | ||
1116 | |||
1107 | return 0; | 1117 | return 0; |
1108 | } | 1118 | } |
1109 | 1119 | ||