diff options
-rw-r--r-- | arch/arm/boot/dts/am335x-evmsk.dts | 4 | ||||
-rw-r--r-- | arch/arm/boot/dts/omap3-cm-t3530.dts | 36 | ||||
-rw-r--r-- | arch/arm/boot/dts/omap3.dtsi | 15 | ||||
-rw-r--r-- | arch/arm/boot/dts/omap4.dtsi | 15 | ||||
-rw-r--r-- | arch/arm/boot/dts/omap5.dtsi | 15 | ||||
-rw-r--r-- | arch/arm/mach-omap2/clockdomains3xxx_data.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/devices.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 12 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_54xx_data.c | 83 | ||||
-rw-r--r-- | arch/arm/mach-omap2/pdata-quirks.c | 24 | ||||
-rw-r--r-- | arch/arm/plat-omap/Kconfig | 3 |
11 files changed, 197 insertions, 15 deletions
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts index b50e9efc7741..fd8bd3a254fe 100644 --- a/arch/arm/boot/dts/am335x-evmsk.dts +++ b/arch/arm/boot/dts/am335x-evmsk.dts | |||
@@ -378,6 +378,10 @@ | |||
378 | status = "okay"; | 378 | status = "okay"; |
379 | dr_mode = "host"; | 379 | dr_mode = "host"; |
380 | }; | 380 | }; |
381 | |||
382 | dma-controller@07402000 { | ||
383 | status = "okay"; | ||
384 | }; | ||
381 | }; | 385 | }; |
382 | 386 | ||
383 | &epwmss2 { | 387 | &epwmss2 { |
diff --git a/arch/arm/boot/dts/omap3-cm-t3530.dts b/arch/arm/boot/dts/omap3-cm-t3530.dts index 9faf1cd1dcaa..d1458496520e 100644 --- a/arch/arm/boot/dts/omap3-cm-t3530.dts +++ b/arch/arm/boot/dts/omap3-cm-t3530.dts | |||
@@ -9,4 +9,40 @@ | |||
9 | / { | 9 | / { |
10 | model = "CompuLab CM-T3530"; | 10 | model = "CompuLab CM-T3530"; |
11 | compatible = "compulab,omap3-cm-t3530", "ti,omap34xx", "ti,omap3"; | 11 | compatible = "compulab,omap3-cm-t3530", "ti,omap34xx", "ti,omap3"; |
12 | |||
13 | /* Regulator to trigger the reset signal of the Wifi module */ | ||
14 | mmc2_sdio_reset: regulator-mmc2-sdio-reset { | ||
15 | compatible = "regulator-fixed"; | ||
16 | regulator-name = "regulator-mmc2-sdio-reset"; | ||
17 | regulator-min-microvolt = <3300000>; | ||
18 | regulator-max-microvolt = <3300000>; | ||
19 | gpio = <&twl_gpio 2 GPIO_ACTIVE_HIGH>; | ||
20 | enable-active-high; | ||
21 | }; | ||
22 | }; | ||
23 | |||
24 | &omap3_pmx_core { | ||
25 | mmc2_pins: pinmux_mmc2_pins { | ||
26 | pinctrl-single,pins = < | ||
27 | OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk.sdmmc2_clk */ | ||
28 | OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd.sdmmc2_cmd */ | ||
29 | OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0.sdmmc2_dat0 */ | ||
30 | OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1.sdmmc2_dat1 */ | ||
31 | OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2.sdmmc2_dat2 */ | ||
32 | OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3.sdmmc2_dat3 */ | ||
33 | OMAP3_CORE1_IOPAD(0x2164, PIN_OUTPUT | MUX_MODE1) /* sdmmc2_dat4.sdmmc2_dir_dat0 */ | ||
34 | OMAP3_CORE1_IOPAD(0x2166, PIN_OUTPUT | MUX_MODE1) /* sdmmc2_dat5.sdmmc2_dir_dat1 */ | ||
35 | OMAP3_CORE1_IOPAD(0x2168, PIN_OUTPUT | MUX_MODE1) /* sdmmc2_dat6.sdmmc2_dir_cmd */ | ||
36 | OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT | MUX_MODE1) /* sdmmc2_dat7.sdmmc2_clkin */ | ||
37 | >; | ||
38 | }; | ||
39 | }; | ||
40 | |||
41 | &mmc2 { | ||
42 | pinctrl-names = "default"; | ||
43 | pinctrl-0 = <&mmc2_pins>; | ||
44 | vmmc-supply = <&mmc2_sdio_reset>; | ||
45 | non-removable; | ||
46 | bus-width = <4>; | ||
47 | cap-power-off-card; | ||
12 | }; | 48 | }; |
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi index b91117a38100..a089e6e00457 100644 --- a/arch/arm/boot/dts/omap3.dtsi +++ b/arch/arm/boot/dts/omap3.dtsi | |||
@@ -416,10 +416,19 @@ | |||
416 | }; | 416 | }; |
417 | 417 | ||
418 | mmu_isp: mmu@480bd400 { | 418 | mmu_isp: mmu@480bd400 { |
419 | compatible = "ti,omap3-mmu-isp"; | 419 | compatible = "ti,omap2-iommu"; |
420 | ti,hwmods = "mmu_isp"; | ||
421 | reg = <0x480bd400 0x80>; | 420 | reg = <0x480bd400 0x80>; |
422 | interrupts = <8>; | 421 | interrupts = <24>; |
422 | ti,hwmods = "mmu_isp"; | ||
423 | ti,#tlb-entries = <8>; | ||
424 | }; | ||
425 | |||
426 | mmu_iva: mmu@5d000000 { | ||
427 | compatible = "ti,omap2-iommu"; | ||
428 | reg = <0x5d000000 0x80>; | ||
429 | interrupts = <28>; | ||
430 | ti,hwmods = "mmu_iva"; | ||
431 | status = "disabled"; | ||
423 | }; | 432 | }; |
424 | 433 | ||
425 | wdt2: wdt@48314000 { | 434 | wdt2: wdt@48314000 { |
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi index 4e15be59b839..3dfec86c1dc9 100644 --- a/arch/arm/boot/dts/omap4.dtsi +++ b/arch/arm/boot/dts/omap4.dtsi | |||
@@ -467,6 +467,21 @@ | |||
467 | dma-names = "tx", "rx"; | 467 | dma-names = "tx", "rx"; |
468 | }; | 468 | }; |
469 | 469 | ||
470 | mmu_dsp: mmu@4a066000 { | ||
471 | compatible = "ti,omap4-iommu"; | ||
472 | reg = <0x4a066000 0x100>; | ||
473 | interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; | ||
474 | ti,hwmods = "mmu_dsp"; | ||
475 | }; | ||
476 | |||
477 | mmu_ipu: mmu@55082000 { | ||
478 | compatible = "ti,omap4-iommu"; | ||
479 | reg = <0x55082000 0x100>; | ||
480 | interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; | ||
481 | ti,hwmods = "mmu_ipu"; | ||
482 | ti,iommu-bus-err-back; | ||
483 | }; | ||
484 | |||
470 | wdt2: wdt@4a314000 { | 485 | wdt2: wdt@4a314000 { |
471 | compatible = "ti,omap4-wdt", "ti,omap3-wdt"; | 486 | compatible = "ti,omap4-wdt", "ti,omap3-wdt"; |
472 | reg = <0x4a314000 0x80>; | 487 | reg = <0x4a314000 0x80>; |
diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi index 859a800a77fc..757f0b9343c2 100644 --- a/arch/arm/boot/dts/omap5.dtsi +++ b/arch/arm/boot/dts/omap5.dtsi | |||
@@ -520,6 +520,21 @@ | |||
520 | dma-names = "tx", "rx"; | 520 | dma-names = "tx", "rx"; |
521 | }; | 521 | }; |
522 | 522 | ||
523 | mmu_dsp: mmu@4a066000 { | ||
524 | compatible = "ti,omap4-iommu"; | ||
525 | reg = <0x4a066000 0x100>; | ||
526 | interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; | ||
527 | ti,hwmods = "mmu_dsp"; | ||
528 | }; | ||
529 | |||
530 | mmu_ipu: mmu@55082000 { | ||
531 | compatible = "ti,omap4-iommu"; | ||
532 | reg = <0x55082000 0x100>; | ||
533 | interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; | ||
534 | ti,hwmods = "mmu_ipu"; | ||
535 | ti,iommu-bus-err-back; | ||
536 | }; | ||
537 | |||
523 | keypad: keypad@4ae1c000 { | 538 | keypad: keypad@4ae1c000 { |
524 | compatible = "ti,omap4-keypad"; | 539 | compatible = "ti,omap4-keypad"; |
525 | reg = <0x4ae1c000 0x400>; | 540 | reg = <0x4ae1c000 0x400>; |
diff --git a/arch/arm/mach-omap2/clockdomains3xxx_data.c b/arch/arm/mach-omap2/clockdomains3xxx_data.c index e6b91e552d3d..f03dc97921ad 100644 --- a/arch/arm/mach-omap2/clockdomains3xxx_data.c +++ b/arch/arm/mach-omap2/clockdomains3xxx_data.c | |||
@@ -247,7 +247,7 @@ static struct clockdomain neon_clkdm = { | |||
247 | static struct clockdomain iva2_clkdm = { | 247 | static struct clockdomain iva2_clkdm = { |
248 | .name = "iva2_clkdm", | 248 | .name = "iva2_clkdm", |
249 | .pwrdm = { .name = "iva2_pwrdm" }, | 249 | .pwrdm = { .name = "iva2_pwrdm" }, |
250 | .flags = CLKDM_CAN_HWSUP_SWSUP, | 250 | .flags = CLKDM_CAN_SWSUP, |
251 | .dep_bit = OMAP3430_PM_WKDEP_MPU_EN_IVA2_SHIFT, | 251 | .dep_bit = OMAP3430_PM_WKDEP_MPU_EN_IVA2_SHIFT, |
252 | .wkdep_srcs = iva2_wkdeps, | 252 | .wkdep_srcs = iva2_wkdeps, |
253 | .clktrctrl_mask = OMAP3430_CLKTRCTRL_IVA2_MASK, | 253 | .clktrctrl_mask = OMAP3430_CLKTRCTRL_IVA2_MASK, |
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c index 0dd6398bade4..e58609b312c7 100644 --- a/arch/arm/mach-omap2/devices.c +++ b/arch/arm/mach-omap2/devices.c | |||
@@ -229,6 +229,9 @@ static struct omap_iommu_arch_data omap3_isp_iommu = { | |||
229 | 229 | ||
230 | int omap3_init_camera(struct isp_platform_data *pdata) | 230 | int omap3_init_camera(struct isp_platform_data *pdata) |
231 | { | 231 | { |
232 | if (of_have_populated_dt()) | ||
233 | omap3_isp_iommu.name = "480bd400.mmu"; | ||
234 | |||
232 | omap3isp_device.dev.platform_data = pdata; | 235 | omap3isp_device.dev.platform_data = pdata; |
233 | omap3isp_device.dev.archdata.iommu = &omap3_isp_iommu; | 236 | omap3isp_device.dev.archdata.iommu = &omap3_isp_iommu; |
234 | 237 | ||
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c index 4c3b1e6df508..9c7e23aa0e7f 100644 --- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | |||
@@ -3029,8 +3029,6 @@ static struct omap_hwmod omap3xxx_mmu_isp_hwmod = { | |||
3029 | .flags = HWMOD_NO_IDLEST, | 3029 | .flags = HWMOD_NO_IDLEST, |
3030 | }; | 3030 | }; |
3031 | 3031 | ||
3032 | #ifdef CONFIG_OMAP_IOMMU_IVA2 | ||
3033 | |||
3034 | /* mmu iva */ | 3032 | /* mmu iva */ |
3035 | 3033 | ||
3036 | static struct omap_mmu_dev_attr mmu_iva_dev_attr = { | 3034 | static struct omap_mmu_dev_attr mmu_iva_dev_attr = { |
@@ -3070,20 +3068,22 @@ static struct omap_hwmod omap3xxx_mmu_iva_hwmod = { | |||
3070 | .name = "mmu_iva", | 3068 | .name = "mmu_iva", |
3071 | .class = &omap3xxx_mmu_hwmod_class, | 3069 | .class = &omap3xxx_mmu_hwmod_class, |
3072 | .mpu_irqs = omap3xxx_mmu_iva_irqs, | 3070 | .mpu_irqs = omap3xxx_mmu_iva_irqs, |
3071 | .clkdm_name = "iva2_clkdm", | ||
3073 | .rst_lines = omap3xxx_mmu_iva_resets, | 3072 | .rst_lines = omap3xxx_mmu_iva_resets, |
3074 | .rst_lines_cnt = ARRAY_SIZE(omap3xxx_mmu_iva_resets), | 3073 | .rst_lines_cnt = ARRAY_SIZE(omap3xxx_mmu_iva_resets), |
3075 | .main_clk = "iva2_ck", | 3074 | .main_clk = "iva2_ck", |
3076 | .prcm = { | 3075 | .prcm = { |
3077 | .omap2 = { | 3076 | .omap2 = { |
3078 | .module_offs = OMAP3430_IVA2_MOD, | 3077 | .module_offs = OMAP3430_IVA2_MOD, |
3078 | .module_bit = OMAP3430_CM_FCLKEN_IVA2_EN_IVA2_SHIFT, | ||
3079 | .idlest_reg_id = 1, | ||
3080 | .idlest_idle_bit = OMAP3430_ST_IVA2_SHIFT, | ||
3079 | }, | 3081 | }, |
3080 | }, | 3082 | }, |
3081 | .dev_attr = &mmu_iva_dev_attr, | 3083 | .dev_attr = &mmu_iva_dev_attr, |
3082 | .flags = HWMOD_NO_IDLEST, | 3084 | .flags = HWMOD_NO_IDLEST, |
3083 | }; | 3085 | }; |
3084 | 3086 | ||
3085 | #endif | ||
3086 | |||
3087 | /* l4_per -> gpio4 */ | 3087 | /* l4_per -> gpio4 */ |
3088 | static struct omap_hwmod_addr_space omap3xxx_gpio4_addrs[] = { | 3088 | static struct omap_hwmod_addr_space omap3xxx_gpio4_addrs[] = { |
3089 | { | 3089 | { |
@@ -3855,9 +3855,7 @@ static struct omap_hwmod_ocp_if *omap34xx_hwmod_ocp_ifs[] __initdata = { | |||
3855 | &omap3xxx_l4_core__hdq1w, | 3855 | &omap3xxx_l4_core__hdq1w, |
3856 | &omap3xxx_sad2d__l3, | 3856 | &omap3xxx_sad2d__l3, |
3857 | &omap3xxx_l4_core__mmu_isp, | 3857 | &omap3xxx_l4_core__mmu_isp, |
3858 | #ifdef CONFIG_OMAP_IOMMU_IVA2 | ||
3859 | &omap3xxx_l3_main__mmu_iva, | 3858 | &omap3xxx_l3_main__mmu_iva, |
3860 | #endif | ||
3861 | &omap34xx_l4_core__ssi, | 3859 | &omap34xx_l4_core__ssi, |
3862 | NULL | 3860 | NULL |
3863 | }; | 3861 | }; |
@@ -3881,9 +3879,7 @@ static struct omap_hwmod_ocp_if *omap36xx_hwmod_ocp_ifs[] __initdata = { | |||
3881 | &omap3xxx_l4_core__hdq1w, | 3879 | &omap3xxx_l4_core__hdq1w, |
3882 | &omap3xxx_sad2d__l3, | 3880 | &omap3xxx_sad2d__l3, |
3883 | &omap3xxx_l4_core__mmu_isp, | 3881 | &omap3xxx_l4_core__mmu_isp, |
3884 | #ifdef CONFIG_OMAP_IOMMU_IVA2 | ||
3885 | &omap3xxx_l3_main__mmu_iva, | 3882 | &omap3xxx_l3_main__mmu_iva, |
3886 | #endif | ||
3887 | NULL | 3883 | NULL |
3888 | }; | 3884 | }; |
3889 | 3885 | ||
diff --git a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c index e297d6231c3a..892317294fdc 100644 --- a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c | |||
@@ -1122,6 +1122,71 @@ static struct omap_hwmod omap54xx_mmc5_hwmod = { | |||
1122 | }; | 1122 | }; |
1123 | 1123 | ||
1124 | /* | 1124 | /* |
1125 | * 'mmu' class | ||
1126 | * The memory management unit performs virtual to physical address translation | ||
1127 | * for its requestors. | ||
1128 | */ | ||
1129 | |||
1130 | static struct omap_hwmod_class_sysconfig omap54xx_mmu_sysc = { | ||
1131 | .rev_offs = 0x0000, | ||
1132 | .sysc_offs = 0x0010, | ||
1133 | .syss_offs = 0x0014, | ||
1134 | .sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_CLOCKACTIVITY | | ||
1135 | SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET | | ||
1136 | SYSS_HAS_RESET_STATUS), | ||
1137 | .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART), | ||
1138 | .sysc_fields = &omap_hwmod_sysc_type1, | ||
1139 | }; | ||
1140 | |||
1141 | static struct omap_hwmod_class omap54xx_mmu_hwmod_class = { | ||
1142 | .name = "mmu", | ||
1143 | .sysc = &omap54xx_mmu_sysc, | ||
1144 | }; | ||
1145 | |||
1146 | static struct omap_hwmod_rst_info omap54xx_mmu_dsp_resets[] = { | ||
1147 | { .name = "mmu_cache", .rst_shift = 1 }, | ||
1148 | }; | ||
1149 | |||
1150 | static struct omap_hwmod omap54xx_mmu_dsp_hwmod = { | ||
1151 | .name = "mmu_dsp", | ||
1152 | .class = &omap54xx_mmu_hwmod_class, | ||
1153 | .clkdm_name = "dsp_clkdm", | ||
1154 | .rst_lines = omap54xx_mmu_dsp_resets, | ||
1155 | .rst_lines_cnt = ARRAY_SIZE(omap54xx_mmu_dsp_resets), | ||
1156 | .main_clk = "dpll_iva_h11x2_ck", | ||
1157 | .prcm = { | ||
1158 | .omap4 = { | ||
1159 | .clkctrl_offs = OMAP54XX_CM_DSP_DSP_CLKCTRL_OFFSET, | ||
1160 | .rstctrl_offs = OMAP54XX_RM_DSP_RSTCTRL_OFFSET, | ||
1161 | .context_offs = OMAP54XX_RM_DSP_DSP_CONTEXT_OFFSET, | ||
1162 | .modulemode = MODULEMODE_HWCTRL, | ||
1163 | }, | ||
1164 | }, | ||
1165 | }; | ||
1166 | |||
1167 | /* mmu ipu */ | ||
1168 | static struct omap_hwmod_rst_info omap54xx_mmu_ipu_resets[] = { | ||
1169 | { .name = "mmu_cache", .rst_shift = 2 }, | ||
1170 | }; | ||
1171 | |||
1172 | static struct omap_hwmod omap54xx_mmu_ipu_hwmod = { | ||
1173 | .name = "mmu_ipu", | ||
1174 | .class = &omap54xx_mmu_hwmod_class, | ||
1175 | .clkdm_name = "ipu_clkdm", | ||
1176 | .rst_lines = omap54xx_mmu_ipu_resets, | ||
1177 | .rst_lines_cnt = ARRAY_SIZE(omap54xx_mmu_ipu_resets), | ||
1178 | .main_clk = "dpll_core_h22x2_ck", | ||
1179 | .prcm = { | ||
1180 | .omap4 = { | ||
1181 | .clkctrl_offs = OMAP54XX_CM_IPU_IPU_CLKCTRL_OFFSET, | ||
1182 | .rstctrl_offs = OMAP54XX_RM_IPU_RSTCTRL_OFFSET, | ||
1183 | .context_offs = OMAP54XX_RM_IPU_IPU_CONTEXT_OFFSET, | ||
1184 | .modulemode = MODULEMODE_HWCTRL, | ||
1185 | }, | ||
1186 | }, | ||
1187 | }; | ||
1188 | |||
1189 | /* | ||
1125 | * 'mpu' class | 1190 | * 'mpu' class |
1126 | * mpu sub-system | 1191 | * mpu sub-system |
1127 | */ | 1192 | */ |
@@ -1763,6 +1828,14 @@ static struct omap_hwmod_ocp_if omap54xx_l4_cfg__l3_main_1 = { | |||
1763 | .user = OCP_USER_MPU | OCP_USER_SDMA, | 1828 | .user = OCP_USER_MPU | OCP_USER_SDMA, |
1764 | }; | 1829 | }; |
1765 | 1830 | ||
1831 | /* l4_cfg -> mmu_dsp */ | ||
1832 | static struct omap_hwmod_ocp_if omap54xx_l4_cfg__mmu_dsp = { | ||
1833 | .master = &omap54xx_l4_cfg_hwmod, | ||
1834 | .slave = &omap54xx_mmu_dsp_hwmod, | ||
1835 | .clk = "l4_root_clk_div", | ||
1836 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
1837 | }; | ||
1838 | |||
1766 | /* mpu -> l3_main_1 */ | 1839 | /* mpu -> l3_main_1 */ |
1767 | static struct omap_hwmod_ocp_if omap54xx_mpu__l3_main_1 = { | 1840 | static struct omap_hwmod_ocp_if omap54xx_mpu__l3_main_1 = { |
1768 | .master = &omap54xx_mpu_hwmod, | 1841 | .master = &omap54xx_mpu_hwmod, |
@@ -1787,6 +1860,14 @@ static struct omap_hwmod_ocp_if omap54xx_l4_cfg__l3_main_2 = { | |||
1787 | .user = OCP_USER_MPU | OCP_USER_SDMA, | 1860 | .user = OCP_USER_MPU | OCP_USER_SDMA, |
1788 | }; | 1861 | }; |
1789 | 1862 | ||
1863 | /* l3_main_2 -> mmu_ipu */ | ||
1864 | static struct omap_hwmod_ocp_if omap54xx_l3_main_2__mmu_ipu = { | ||
1865 | .master = &omap54xx_l3_main_2_hwmod, | ||
1866 | .slave = &omap54xx_mmu_ipu_hwmod, | ||
1867 | .clk = "l3_iclk_div", | ||
1868 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
1869 | }; | ||
1870 | |||
1790 | /* l3_main_1 -> l3_main_3 */ | 1871 | /* l3_main_1 -> l3_main_3 */ |
1791 | static struct omap_hwmod_ocp_if omap54xx_l3_main_1__l3_main_3 = { | 1872 | static struct omap_hwmod_ocp_if omap54xx_l3_main_1__l3_main_3 = { |
1792 | .master = &omap54xx_l3_main_1_hwmod, | 1873 | .master = &omap54xx_l3_main_1_hwmod, |
@@ -2345,6 +2426,7 @@ static struct omap_hwmod_ocp_if *omap54xx_hwmod_ocp_ifs[] __initdata = { | |||
2345 | &omap54xx_l4_wkup__counter_32k, | 2426 | &omap54xx_l4_wkup__counter_32k, |
2346 | &omap54xx_l4_cfg__dma_system, | 2427 | &omap54xx_l4_cfg__dma_system, |
2347 | &omap54xx_l4_abe__dmic, | 2428 | &omap54xx_l4_abe__dmic, |
2429 | &omap54xx_l4_cfg__mmu_dsp, | ||
2348 | &omap54xx_mpu__emif1, | 2430 | &omap54xx_mpu__emif1, |
2349 | &omap54xx_mpu__emif2, | 2431 | &omap54xx_mpu__emif2, |
2350 | &omap54xx_l4_wkup__gpio1, | 2432 | &omap54xx_l4_wkup__gpio1, |
@@ -2360,6 +2442,7 @@ static struct omap_hwmod_ocp_if *omap54xx_hwmod_ocp_ifs[] __initdata = { | |||
2360 | &omap54xx_l4_per__i2c3, | 2442 | &omap54xx_l4_per__i2c3, |
2361 | &omap54xx_l4_per__i2c4, | 2443 | &omap54xx_l4_per__i2c4, |
2362 | &omap54xx_l4_per__i2c5, | 2444 | &omap54xx_l4_per__i2c5, |
2445 | &omap54xx_l3_main_2__mmu_ipu, | ||
2363 | &omap54xx_l4_wkup__kbd, | 2446 | &omap54xx_l4_wkup__kbd, |
2364 | &omap54xx_l4_cfg__mailbox, | 2447 | &omap54xx_l4_cfg__mailbox, |
2365 | &omap54xx_l4_abe__mcbsp1, | 2448 | &omap54xx_l4_abe__mcbsp1, |
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c index 9723886c18ba..db242c483dc0 100644 --- a/arch/arm/mach-omap2/pdata-quirks.c +++ b/arch/arm/mach-omap2/pdata-quirks.c | |||
@@ -16,12 +16,14 @@ | |||
16 | #include <linux/wl12xx.h> | 16 | #include <linux/wl12xx.h> |
17 | 17 | ||
18 | #include <linux/platform_data/pinctrl-single.h> | 18 | #include <linux/platform_data/pinctrl-single.h> |
19 | #include <linux/platform_data/iommu-omap.h> | ||
19 | 20 | ||
20 | #include "am35xx.h" | 21 | #include "am35xx.h" |
21 | #include "common.h" | 22 | #include "common.h" |
22 | #include "common-board-devices.h" | 23 | #include "common-board-devices.h" |
23 | #include "dss-common.h" | 24 | #include "dss-common.h" |
24 | #include "control.h" | 25 | #include "control.h" |
26 | #include "omap_device.h" | ||
25 | 27 | ||
26 | struct pdata_init { | 28 | struct pdata_init { |
27 | const char *compatible; | 29 | const char *compatible; |
@@ -78,6 +80,12 @@ static void __init hsmmc2_internal_input_clk(void) | |||
78 | omap_ctrl_writel(reg, OMAP343X_CONTROL_DEVCONF1); | 80 | omap_ctrl_writel(reg, OMAP343X_CONTROL_DEVCONF1); |
79 | } | 81 | } |
80 | 82 | ||
83 | static struct iommu_platform_data omap3_iommu_pdata = { | ||
84 | .reset_name = "mmu", | ||
85 | .assert_reset = omap_device_assert_hardreset, | ||
86 | .deassert_reset = omap_device_deassert_hardreset, | ||
87 | }; | ||
88 | |||
81 | static int omap3_sbc_t3730_twl_callback(struct device *dev, | 89 | static int omap3_sbc_t3730_twl_callback(struct device *dev, |
82 | unsigned gpio, | 90 | unsigned gpio, |
83 | unsigned ngpio) | 91 | unsigned ngpio) |
@@ -233,6 +241,14 @@ static void __init omap4_panda_legacy_init(void) | |||
233 | } | 241 | } |
234 | #endif | 242 | #endif |
235 | 243 | ||
244 | #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) | ||
245 | static struct iommu_platform_data omap4_iommu_pdata = { | ||
246 | .reset_name = "mmu_cache", | ||
247 | .assert_reset = omap_device_assert_hardreset, | ||
248 | .deassert_reset = omap_device_deassert_hardreset, | ||
249 | }; | ||
250 | #endif | ||
251 | |||
236 | #ifdef CONFIG_SOC_AM33XX | 252 | #ifdef CONFIG_SOC_AM33XX |
237 | static void __init am335x_evmsk_legacy_init(void) | 253 | static void __init am335x_evmsk_legacy_init(void) |
238 | { | 254 | { |
@@ -292,6 +308,8 @@ struct of_dev_auxdata omap_auxdata_lookup[] __initdata = { | |||
292 | #ifdef CONFIG_ARCH_OMAP3 | 308 | #ifdef CONFIG_ARCH_OMAP3 |
293 | OF_DEV_AUXDATA("ti,omap3-padconf", 0x48002030, "48002030.pinmux", &pcs_pdata), | 309 | OF_DEV_AUXDATA("ti,omap3-padconf", 0x48002030, "48002030.pinmux", &pcs_pdata), |
294 | OF_DEV_AUXDATA("ti,omap3-padconf", 0x48002a00, "48002a00.pinmux", &pcs_pdata), | 310 | OF_DEV_AUXDATA("ti,omap3-padconf", 0x48002a00, "48002a00.pinmux", &pcs_pdata), |
311 | OF_DEV_AUXDATA("ti,omap2-iommu", 0x5d000000, "5d000000.mmu", | ||
312 | &omap3_iommu_pdata), | ||
295 | /* Only on am3517 */ | 313 | /* Only on am3517 */ |
296 | OF_DEV_AUXDATA("ti,davinci_mdio", 0x5c030000, "davinci_mdio.0", NULL), | 314 | OF_DEV_AUXDATA("ti,davinci_mdio", 0x5c030000, "davinci_mdio.0", NULL), |
297 | OF_DEV_AUXDATA("ti,am3517-emac", 0x5c000000, "davinci_emac.0", | 315 | OF_DEV_AUXDATA("ti,am3517-emac", 0x5c000000, "davinci_emac.0", |
@@ -301,6 +319,12 @@ struct of_dev_auxdata omap_auxdata_lookup[] __initdata = { | |||
301 | OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a100040, "4a100040.pinmux", &pcs_pdata), | 319 | OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a100040, "4a100040.pinmux", &pcs_pdata), |
302 | OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a31e040, "4a31e040.pinmux", &pcs_pdata), | 320 | OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a31e040, "4a31e040.pinmux", &pcs_pdata), |
303 | #endif | 321 | #endif |
322 | #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) | ||
323 | OF_DEV_AUXDATA("ti,omap4-iommu", 0x4a066000, "4a066000.mmu", | ||
324 | &omap4_iommu_pdata), | ||
325 | OF_DEV_AUXDATA("ti,omap4-iommu", 0x55082000, "55082000.mmu", | ||
326 | &omap4_iommu_pdata), | ||
327 | #endif | ||
304 | { /* sentinel */ }, | 328 | { /* sentinel */ }, |
305 | }; | 329 | }; |
306 | 330 | ||
diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig index 436ea97074cd..02fc10d2d63b 100644 --- a/arch/arm/plat-omap/Kconfig +++ b/arch/arm/plat-omap/Kconfig | |||
@@ -86,9 +86,6 @@ config OMAP_MUX_WARNINGS | |||
86 | to change the pin multiplexing setup. When there are no warnings | 86 | to change the pin multiplexing setup. When there are no warnings |
87 | printed, it's safe to deselect OMAP_MUX for your product. | 87 | printed, it's safe to deselect OMAP_MUX for your product. |
88 | 88 | ||
89 | config OMAP_IOMMU_IVA2 | ||
90 | bool | ||
91 | |||
92 | config OMAP_MPU_TIMER | 89 | config OMAP_MPU_TIMER |
93 | bool "Use mpu timer" | 90 | bool "Use mpu timer" |
94 | depends on ARCH_OMAP1 | 91 | depends on ARCH_OMAP1 |