diff options
author | Dave Gerlach <d-gerlach@ti.com> | 2015-06-01 21:22:11 -0400 |
---|---|---|
committer | Paul Walmsley <paul@pwsan.com> | 2015-06-01 21:22:11 -0400 |
commit | fabbe6df130a46d5b5e7484b2273d69c4be3012a (patch) | |
tree | 6028a3783d6ddda69be2c536013dd45a293a7503 | |
parent | 63aa945b1013c34b145dcf218d4ea323cbd93f86 (diff) |
ARM: OMAP: AM43xx hwmod: Add data for am43xx emif hwmod
Without a hwmod for am43xx emif use counting for emif clockdomain does
not happen correctly so it may be shut off by pm code unintentionally.
Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
[paul@pwsan.com: updated to apply]
Signed-off-by: Paul Walmsley <paul@pwsan.com>
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c | 13 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_33xx_data.c | 13 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_43xx_data.c | 22 | ||||
-rw-r--r-- | arch/arm/mach-omap2/prcm43xx.h | 2 |
5 files changed, 38 insertions, 13 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h index 130332c0534d..7f737965f543 100644 --- a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h +++ b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h | |||
@@ -145,6 +145,7 @@ extern struct omap_hwmod am33xx_uart5_hwmod; | |||
145 | extern struct omap_hwmod am33xx_uart6_hwmod; | 145 | extern struct omap_hwmod am33xx_uart6_hwmod; |
146 | extern struct omap_hwmod am33xx_wd_timer1_hwmod; | 146 | extern struct omap_hwmod am33xx_wd_timer1_hwmod; |
147 | 147 | ||
148 | extern struct omap_hwmod_class am33xx_emif_hwmod_class; | ||
148 | extern struct omap_hwmod_class am33xx_l4_hwmod_class; | 149 | extern struct omap_hwmod_class am33xx_l4_hwmod_class; |
149 | extern struct omap_hwmod_class am33xx_wkup_m3_hwmod_class; | 150 | extern struct omap_hwmod_class am33xx_wkup_m3_hwmod_class; |
150 | extern struct omap_hwmod_class am33xx_control_hwmod_class; | 151 | extern struct omap_hwmod_class am33xx_control_hwmod_class; |
diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c index ae0cb673a3d1..907a452b78ea 100644 --- a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c | |||
@@ -203,6 +203,19 @@ struct omap_hwmod am33xx_prcm_hwmod = { | |||
203 | }; | 203 | }; |
204 | 204 | ||
205 | /* | 205 | /* |
206 | * 'emif' class | ||
207 | * instance(s): emif | ||
208 | */ | ||
209 | static struct omap_hwmod_class_sysconfig am33xx_emif_sysc = { | ||
210 | .rev_offs = 0x0000, | ||
211 | }; | ||
212 | |||
213 | struct omap_hwmod_class am33xx_emif_hwmod_class = { | ||
214 | .name = "emif", | ||
215 | .sysc = &am33xx_emif_sysc, | ||
216 | }; | ||
217 | |||
218 | /* | ||
206 | * 'aes0' class | 219 | * 'aes0' class |
207 | */ | 220 | */ |
208 | static struct omap_hwmod_class_sysconfig am33xx_aes0_sysc = { | 221 | static struct omap_hwmod_class_sysconfig am33xx_aes0_sysc = { |
diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c index 0cf7b563dcd1..cc0791d9125b 100644 --- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c | |||
@@ -34,19 +34,6 @@ | |||
34 | * IP blocks | 34 | * IP blocks |
35 | */ | 35 | */ |
36 | 36 | ||
37 | /* | ||
38 | * 'emif' class | ||
39 | * instance(s): emif | ||
40 | */ | ||
41 | static struct omap_hwmod_class_sysconfig am33xx_emif_sysc = { | ||
42 | .rev_offs = 0x0000, | ||
43 | }; | ||
44 | |||
45 | static struct omap_hwmod_class am33xx_emif_hwmod_class = { | ||
46 | .name = "emif", | ||
47 | .sysc = &am33xx_emif_sysc, | ||
48 | }; | ||
49 | |||
50 | /* emif */ | 37 | /* emif */ |
51 | static struct omap_hwmod am33xx_emif_hwmod = { | 38 | static struct omap_hwmod am33xx_emif_hwmod = { |
52 | .name = "emif", | 39 | .name = "emif", |
diff --git a/arch/arm/mach-omap2/omap_hwmod_43xx_data.c b/arch/arm/mach-omap2/omap_hwmod_43xx_data.c index 17e8004fc20f..215d5efa0dba 100644 --- a/arch/arm/mach-omap2/omap_hwmod_43xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_43xx_data.c | |||
@@ -24,6 +24,20 @@ | |||
24 | 24 | ||
25 | 25 | ||
26 | /* IP blocks */ | 26 | /* IP blocks */ |
27 | static struct omap_hwmod am43xx_emif_hwmod = { | ||
28 | .name = "emif", | ||
29 | .class = &am33xx_emif_hwmod_class, | ||
30 | .clkdm_name = "emif_clkdm", | ||
31 | .flags = HWMOD_INIT_NO_IDLE, | ||
32 | .main_clk = "dpll_ddr_m2_ck", | ||
33 | .prcm = { | ||
34 | .omap4 = { | ||
35 | .clkctrl_offs = AM43XX_CM_PER_EMIF_CLKCTRL_OFFSET, | ||
36 | .modulemode = MODULEMODE_SWCTRL, | ||
37 | }, | ||
38 | }, | ||
39 | }; | ||
40 | |||
27 | static struct omap_hwmod am43xx_l4_hs_hwmod = { | 41 | static struct omap_hwmod am43xx_l4_hs_hwmod = { |
28 | .name = "l4_hs", | 42 | .name = "l4_hs", |
29 | .class = &am33xx_l4_hwmod_class, | 43 | .class = &am33xx_l4_hwmod_class, |
@@ -583,6 +597,13 @@ static struct omap_hwmod am43xx_vpfe1_hwmod = { | |||
583 | }; | 597 | }; |
584 | 598 | ||
585 | /* Interfaces */ | 599 | /* Interfaces */ |
600 | static struct omap_hwmod_ocp_if am43xx_l3_main__emif = { | ||
601 | .master = &am33xx_l3_main_hwmod, | ||
602 | .slave = &am43xx_emif_hwmod, | ||
603 | .clk = "dpll_core_m4_ck", | ||
604 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
605 | }; | ||
606 | |||
586 | static struct omap_hwmod_ocp_if am43xx_l3_main__l4_hs = { | 607 | static struct omap_hwmod_ocp_if am43xx_l3_main__l4_hs = { |
587 | .master = &am33xx_l3_main_hwmod, | 608 | .master = &am33xx_l3_main_hwmod, |
588 | .slave = &am43xx_l4_hs_hwmod, | 609 | .slave = &am43xx_l4_hs_hwmod, |
@@ -918,6 +939,7 @@ static struct omap_hwmod_ocp_if *am43xx_hwmod_ocp_ifs[] __initdata = { | |||
918 | &am33xx_l3_main__l3_instr, | 939 | &am33xx_l3_main__l3_instr, |
919 | &am33xx_l3_main__gfx, | 940 | &am33xx_l3_main__gfx, |
920 | &am33xx_l3_s__l3_main, | 941 | &am33xx_l3_s__l3_main, |
942 | &am43xx_l3_main__emif, | ||
921 | &am33xx_pruss__l3_main, | 943 | &am33xx_pruss__l3_main, |
922 | &am43xx_wkup_m3__l4_wkup, | 944 | &am43xx_wkup_m3__l4_wkup, |
923 | &am33xx_gfx__l3_main, | 945 | &am33xx_gfx__l3_main, |
diff --git a/arch/arm/mach-omap2/prcm43xx.h b/arch/arm/mach-omap2/prcm43xx.h index d0261996db6d..7eebc27fa892 100644 --- a/arch/arm/mach-omap2/prcm43xx.h +++ b/arch/arm/mach-omap2/prcm43xx.h | |||
@@ -146,4 +146,6 @@ | |||
146 | #define AM43XX_CM_PER_HDQ1W_CLKCTRL_OFFSET 0x04a0 | 146 | #define AM43XX_CM_PER_HDQ1W_CLKCTRL_OFFSET 0x04a0 |
147 | #define AM43XX_CM_PER_VPFE0_CLKCTRL_OFFSET 0x0068 | 147 | #define AM43XX_CM_PER_VPFE0_CLKCTRL_OFFSET 0x0068 |
148 | #define AM43XX_CM_PER_VPFE1_CLKCTRL_OFFSET 0x0070 | 148 | #define AM43XX_CM_PER_VPFE1_CLKCTRL_OFFSET 0x0070 |
149 | #define AM43XX_CM_PER_EMIF_CLKCTRL_OFFSET 0x0720 | ||
150 | |||
149 | #endif | 151 | #endif |