aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Walmsley <paul@pwsan.com>2012-04-19 06:03:51 -0400
committerPaul Walmsley <paul@pwsan.com>2012-04-19 06:03:51 -0400
commit4a9efb62198fdc70cdeab75f11e7290f330beb63 (patch)
tree8582fafa0a19e1de1cfa37e5ae8b61689c8cf6af
parentbec9381157159e654be16f69e4e8882ab4e609bd (diff)
ARM: OMAP3: hwmod data: fix interfaces for the MMC hwmods
Commit a52e2ab66d4a9305e1ba64d9b9d25754b6c70895 ("ARM: OMAP3: hwmod data: disable multiblock reads on MMC1/2 on OMAP34xx/35xx <= ES2.1") didn't link the MMC hwmods to the interconnects correctly. Future patches will register hwmods by interface, so if this is not fixed, the MMC IP blocks won't be registered. Update the interface data records to point to the correct IP blocks. Signed-off-by: Paul Walmsley <paul@pwsan.com>
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_3xxx_data.c38
1 files changed, 30 insertions, 8 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index ab229787639b..961800d6f650 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -71,8 +71,10 @@ static struct omap_hwmod omap34xx_mcspi1;
71static struct omap_hwmod omap34xx_mcspi2; 71static struct omap_hwmod omap34xx_mcspi2;
72static struct omap_hwmod omap34xx_mcspi3; 72static struct omap_hwmod omap34xx_mcspi3;
73static struct omap_hwmod omap34xx_mcspi4; 73static struct omap_hwmod omap34xx_mcspi4;
74static struct omap_hwmod omap3xxx_mmc1_hwmod; 74static struct omap_hwmod omap3xxx_pre_es3_mmc1_hwmod;
75static struct omap_hwmod omap3xxx_mmc2_hwmod; 75static struct omap_hwmod omap3xxx_es3plus_mmc1_hwmod;
76static struct omap_hwmod omap3xxx_pre_es3_mmc2_hwmod;
77static struct omap_hwmod omap3xxx_es3plus_mmc2_hwmod;
76static struct omap_hwmod omap3xxx_mmc3_hwmod; 78static struct omap_hwmod omap3xxx_mmc3_hwmod;
77static struct omap_hwmod am35xx_usbhsotg_hwmod; 79static struct omap_hwmod am35xx_usbhsotg_hwmod;
78 80
@@ -193,9 +195,18 @@ static struct omap_hwmod_ocp_if omap3xxx_l4_core__l4_wkup = {
193}; 195};
194 196
195/* L4 CORE -> MMC1 interface */ 197/* L4 CORE -> MMC1 interface */
196static struct omap_hwmod_ocp_if omap3xxx_l4_core__mmc1 = { 198static struct omap_hwmod_ocp_if omap3xxx_l4_core__pre_es3_mmc1 = {
197 .master = &omap3xxx_l4_core_hwmod, 199 .master = &omap3xxx_l4_core_hwmod,
198 .slave = &omap3xxx_mmc1_hwmod, 200 .slave = &omap3xxx_pre_es3_mmc1_hwmod,
201 .clk = "mmchs1_ick",
202 .addr = omap2430_mmc1_addr_space,
203 .user = OCP_USER_MPU | OCP_USER_SDMA,
204 .flags = OMAP_FIREWALL_L4
205};
206
207static struct omap_hwmod_ocp_if omap3xxx_l4_core__es3plus_mmc1 = {
208 .master = &omap3xxx_l4_core_hwmod,
209 .slave = &omap3xxx_es3plus_mmc1_hwmod,
199 .clk = "mmchs1_ick", 210 .clk = "mmchs1_ick",
200 .addr = omap2430_mmc1_addr_space, 211 .addr = omap2430_mmc1_addr_space,
201 .user = OCP_USER_MPU | OCP_USER_SDMA, 212 .user = OCP_USER_MPU | OCP_USER_SDMA,
@@ -203,9 +214,18 @@ static struct omap_hwmod_ocp_if omap3xxx_l4_core__mmc1 = {
203}; 214};
204 215
205/* L4 CORE -> MMC2 interface */ 216/* L4 CORE -> MMC2 interface */
206static struct omap_hwmod_ocp_if omap3xxx_l4_core__mmc2 = { 217static struct omap_hwmod_ocp_if omap3xxx_l4_core__pre_es3_mmc2 = {
218 .master = &omap3xxx_l4_core_hwmod,
219 .slave = &omap3xxx_pre_es3_mmc2_hwmod,
220 .clk = "mmchs2_ick",
221 .addr = omap2430_mmc2_addr_space,
222 .user = OCP_USER_MPU | OCP_USER_SDMA,
223 .flags = OMAP_FIREWALL_L4
224};
225
226static struct omap_hwmod_ocp_if omap3xxx_l4_core__es3plus_mmc2 = {
207 .master = &omap3xxx_l4_core_hwmod, 227 .master = &omap3xxx_l4_core_hwmod,
208 .slave = &omap3xxx_mmc2_hwmod, 228 .slave = &omap3xxx_es3plus_mmc2_hwmod,
209 .clk = "mmchs2_ick", 229 .clk = "mmchs2_ick",
210 .addr = omap2430_mmc2_addr_space, 230 .addr = omap2430_mmc2_addr_space,
211 .user = OCP_USER_MPU | OCP_USER_SDMA, 231 .user = OCP_USER_MPU | OCP_USER_SDMA,
@@ -3163,7 +3183,8 @@ static struct omap_hwmod_opt_clk omap34xx_mmc1_opt_clks[] = {
3163}; 3183};
3164 3184
3165static struct omap_hwmod_ocp_if *omap3xxx_mmc1_slaves[] = { 3185static struct omap_hwmod_ocp_if *omap3xxx_mmc1_slaves[] = {
3166 &omap3xxx_l4_core__mmc1, 3186 &omap3xxx_l4_core__pre_es3_mmc1,
3187 &omap3xxx_l4_core__es3plus_mmc1,
3167}; 3188};
3168 3189
3169static struct omap_mmc_dev_attr mmc1_dev_attr = { 3190static struct omap_mmc_dev_attr mmc1_dev_attr = {
@@ -3238,7 +3259,8 @@ static struct omap_hwmod_opt_clk omap34xx_mmc2_opt_clks[] = {
3238}; 3259};
3239 3260
3240static struct omap_hwmod_ocp_if *omap3xxx_mmc2_slaves[] = { 3261static struct omap_hwmod_ocp_if *omap3xxx_mmc2_slaves[] = {
3241 &omap3xxx_l4_core__mmc2, 3262 &omap3xxx_l4_core__pre_es3_mmc2,
3263 &omap3xxx_l4_core__es3plus_mmc2,
3242}; 3264};
3243 3265
3244/* See 35xx errata 2.1.1.128 in SPRZ278F */ 3266/* See 35xx errata 2.1.1.128 in SPRZ278F */