diff options
author | Tony Lindgren <tony@atomide.com> | 2011-02-22 13:54:12 -0500 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2011-02-22 13:54:12 -0500 |
commit | 04aa67dec63b61c1a8b9b6d001262250f1a92130 (patch) | |
tree | 7e0d2cfb30f904ffbd2ac39a055cd53034c873b7 /arch/arm/mach-omap2/omap_hwmod_2430_data.c | |
parent | 3b03b58dab847883e6b9a431558c7d8e43fa94c6 (diff) | |
parent | 18a26892d62d2786c2b259ba4605ee10bba0ba13 (diff) |
Merge branch 'for-tony' of git://gitorious.org/usb/usb into omap-for-linus
Conflicts:
arch/arm/mach-omap2/omap_hwmod_2430_data.c
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
Diffstat (limited to 'arch/arm/mach-omap2/omap_hwmod_2430_data.c')
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_2430_data.c | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod_2430_data.c b/arch/arm/mach-omap2/omap_hwmod_2430_data.c index 60fe4aac1f5..7ba688a1c84 100644 --- a/arch/arm/mach-omap2/omap_hwmod_2430_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c | |||
@@ -93,6 +93,16 @@ static struct omap_hwmod omap2430_uart3_hwmod; | |||
93 | static struct omap_hwmod omap2430_i2c1_hwmod; | 93 | static struct omap_hwmod omap2430_i2c1_hwmod; |
94 | static struct omap_hwmod omap2430_i2c2_hwmod; | 94 | static struct omap_hwmod omap2430_i2c2_hwmod; |
95 | 95 | ||
96 | static struct omap_hwmod omap2430_usbhsotg_hwmod; | ||
97 | |||
98 | /* l3_core -> usbhsotg interface */ | ||
99 | static struct omap_hwmod_ocp_if omap2430_usbhsotg__l3 = { | ||
100 | .master = &omap2430_usbhsotg_hwmod, | ||
101 | .slave = &omap2430_l3_main_hwmod, | ||
102 | .clk = "core_l3_ck", | ||
103 | .user = OCP_USER_MPU, | ||
104 | }; | ||
105 | |||
96 | /* I2C IP block address space length (in bytes) */ | 106 | /* I2C IP block address space length (in bytes) */ |
97 | #define OMAP2_I2C_AS_LEN 128 | 107 | #define OMAP2_I2C_AS_LEN 128 |
98 | 108 | ||
@@ -193,6 +203,35 @@ static struct omap_hwmod_ocp_if omap2_l4_core__uart3 = { | |||
193 | .user = OCP_USER_MPU | OCP_USER_SDMA, | 203 | .user = OCP_USER_MPU | OCP_USER_SDMA, |
194 | }; | 204 | }; |
195 | 205 | ||
206 | /* | ||
207 | * usbhsotg interface data | ||
208 | */ | ||
209 | static struct omap_hwmod_addr_space omap2430_usbhsotg_addrs[] = { | ||
210 | { | ||
211 | .pa_start = OMAP243X_HS_BASE, | ||
212 | .pa_end = OMAP243X_HS_BASE + SZ_4K - 1, | ||
213 | .flags = ADDR_TYPE_RT | ||
214 | }, | ||
215 | }; | ||
216 | |||
217 | /* l4_core ->usbhsotg interface */ | ||
218 | static struct omap_hwmod_ocp_if omap2430_l4_core__usbhsotg = { | ||
219 | .master = &omap2430_l4_core_hwmod, | ||
220 | .slave = &omap2430_usbhsotg_hwmod, | ||
221 | .clk = "usb_l4_ick", | ||
222 | .addr = omap2430_usbhsotg_addrs, | ||
223 | .addr_cnt = ARRAY_SIZE(omap2430_usbhsotg_addrs), | ||
224 | .user = OCP_USER_MPU, | ||
225 | }; | ||
226 | |||
227 | static struct omap_hwmod_ocp_if *omap2430_usbhsotg_masters[] = { | ||
228 | &omap2430_usbhsotg__l3, | ||
229 | }; | ||
230 | |||
231 | static struct omap_hwmod_ocp_if *omap2430_usbhsotg_slaves[] = { | ||
232 | &omap2430_l4_core__usbhsotg, | ||
233 | }; | ||
234 | |||
196 | /* Slave interfaces on the L4_CORE interconnect */ | 235 | /* Slave interfaces on the L4_CORE interconnect */ |
197 | static struct omap_hwmod_ocp_if *omap2430_l4_core_slaves[] = { | 236 | static struct omap_hwmod_ocp_if *omap2430_l4_core_slaves[] = { |
198 | &omap2430_l3_main__l4_core, | 237 | &omap2430_l3_main__l4_core, |
@@ -1133,6 +1172,64 @@ static struct omap_hwmod omap2430_mcspi3_hwmod = { | |||
1133 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | 1172 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), |
1134 | }; | 1173 | }; |
1135 | 1174 | ||
1175 | /* | ||
1176 | * usbhsotg | ||
1177 | */ | ||
1178 | static struct omap_hwmod_class_sysconfig omap2430_usbhsotg_sysc = { | ||
1179 | .rev_offs = 0x0400, | ||
1180 | .sysc_offs = 0x0404, | ||
1181 | .syss_offs = 0x0408, | ||
1182 | .sysc_flags = (SYSC_HAS_SIDLEMODE | SYSC_HAS_MIDLEMODE| | ||
1183 | SYSC_HAS_ENAWAKEUP | SYSC_HAS_SOFTRESET | | ||
1184 | SYSC_HAS_AUTOIDLE), | ||
1185 | .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | | ||
1186 | MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART), | ||
1187 | .sysc_fields = &omap_hwmod_sysc_type1, | ||
1188 | }; | ||
1189 | |||
1190 | static struct omap_hwmod_class usbotg_class = { | ||
1191 | .name = "usbotg", | ||
1192 | .sysc = &omap2430_usbhsotg_sysc, | ||
1193 | }; | ||
1194 | |||
1195 | /* usb_otg_hs */ | ||
1196 | static struct omap_hwmod_irq_info omap2430_usbhsotg_mpu_irqs[] = { | ||
1197 | |||
1198 | { .name = "mc", .irq = 92 }, | ||
1199 | { .name = "dma", .irq = 93 }, | ||
1200 | }; | ||
1201 | |||
1202 | static struct omap_hwmod omap2430_usbhsotg_hwmod = { | ||
1203 | .name = "usb_otg_hs", | ||
1204 | .mpu_irqs = omap2430_usbhsotg_mpu_irqs, | ||
1205 | .mpu_irqs_cnt = ARRAY_SIZE(omap2430_usbhsotg_mpu_irqs), | ||
1206 | .main_clk = "usbhs_ick", | ||
1207 | .prcm = { | ||
1208 | .omap2 = { | ||
1209 | .prcm_reg_id = 1, | ||
1210 | .module_bit = OMAP2430_EN_USBHS_MASK, | ||
1211 | .module_offs = CORE_MOD, | ||
1212 | .idlest_reg_id = 1, | ||
1213 | .idlest_idle_bit = OMAP2430_ST_USBHS_SHIFT, | ||
1214 | }, | ||
1215 | }, | ||
1216 | .masters = omap2430_usbhsotg_masters, | ||
1217 | .masters_cnt = ARRAY_SIZE(omap2430_usbhsotg_masters), | ||
1218 | .slaves = omap2430_usbhsotg_slaves, | ||
1219 | .slaves_cnt = ARRAY_SIZE(omap2430_usbhsotg_slaves), | ||
1220 | .class = &usbotg_class, | ||
1221 | /* | ||
1222 | * Erratum ID: i479 idle_req / idle_ack mechanism potentially | ||
1223 | * broken when autoidle is enabled | ||
1224 | * workaround is to disable the autoidle bit at module level. | ||
1225 | */ | ||
1226 | .flags = HWMOD_NO_OCP_AUTOIDLE | HWMOD_SWSUP_SIDLE | ||
1227 | | HWMOD_SWSUP_MSTANDBY, | ||
1228 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) | ||
1229 | }; | ||
1230 | |||
1231 | |||
1232 | |||
1136 | static __initdata struct omap_hwmod *omap2430_hwmods[] = { | 1233 | static __initdata struct omap_hwmod *omap2430_hwmods[] = { |
1137 | &omap2430_l3_main_hwmod, | 1234 | &omap2430_l3_main_hwmod, |
1138 | &omap2430_l4_core_hwmod, | 1235 | &omap2430_l4_core_hwmod, |
@@ -1160,6 +1257,10 @@ static __initdata struct omap_hwmod *omap2430_hwmods[] = { | |||
1160 | &omap2430_mcspi1_hwmod, | 1257 | &omap2430_mcspi1_hwmod, |
1161 | &omap2430_mcspi2_hwmod, | 1258 | &omap2430_mcspi2_hwmod, |
1162 | &omap2430_mcspi3_hwmod, | 1259 | &omap2430_mcspi3_hwmod, |
1260 | |||
1261 | /* usbotg class*/ | ||
1262 | &omap2430_usbhsotg_hwmod, | ||
1263 | |||
1163 | NULL, | 1264 | NULL, |
1164 | }; | 1265 | }; |
1165 | 1266 | ||