diff options
author | Paul Walmsley <paul@pwsan.com> | 2012-04-19 15:33:58 -0400 |
---|---|---|
committer | Paul Walmsley <paul@pwsan.com> | 2012-04-19 15:33:58 -0400 |
commit | 794b480a37e3d284d6ee7344d8a737ef60476ed5 (patch) | |
tree | 7f6b49dbb2eb923cf0a9207cb2a2479b1228c667 | |
parent | a0b5d81356c35504213fc58f8e8f8403138b6585 (diff) |
ARM: OMAP4: hwmod data: add PRCM and related IP blocks
Add the PRCM, CM, PRM, and related hwmod and associated interconnect
data. These IP blocks handle most of the on-chip power, reset, and clock
control.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: BenoƮt Cousson <b-cousson@ti.com>
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 167 |
1 files changed, 162 insertions, 5 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index 8e915d309c1a..66b8da2e6895 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c | |||
@@ -292,16 +292,11 @@ static struct omap_hwmod omap44xx_ocp_wp_noc_hwmod = { | |||
292 | * - They still need to be validated with the driver | 292 | * - They still need to be validated with the driver |
293 | * properly adapted to omap_hwmod / omap_device | 293 | * properly adapted to omap_hwmod / omap_device |
294 | * | 294 | * |
295 | * cm_core | ||
296 | * cm_core_aon | ||
297 | * debugss | 295 | * debugss |
298 | * efuse_ctrl_cust | 296 | * efuse_ctrl_cust |
299 | * efuse_ctrl_std | 297 | * efuse_ctrl_std |
300 | * mpu_c0 | 298 | * mpu_c0 |
301 | * mpu_c1 | 299 | * mpu_c1 |
302 | * prcm_mpu | ||
303 | * prm | ||
304 | * scrm | ||
305 | * usb_phy_cm | 300 | * usb_phy_cm |
306 | * usim | 301 | * usim |
307 | */ | 302 | */ |
@@ -2507,6 +2502,73 @@ static struct omap_hwmod omap44xx_ocp2scp_usb_phy_hwmod = { | |||
2507 | }; | 2502 | }; |
2508 | 2503 | ||
2509 | /* | 2504 | /* |
2505 | * 'prcm' class | ||
2506 | * power and reset manager (part of the prcm infrastructure) + clock manager 2 | ||
2507 | * + clock manager 1 (in always on power domain) + local prm in mpu | ||
2508 | */ | ||
2509 | |||
2510 | static struct omap_hwmod_class omap44xx_prcm_hwmod_class = { | ||
2511 | .name = "prcm", | ||
2512 | }; | ||
2513 | |||
2514 | /* prcm_mpu */ | ||
2515 | static struct omap_hwmod omap44xx_prcm_mpu_hwmod = { | ||
2516 | .name = "prcm_mpu", | ||
2517 | .class = &omap44xx_prcm_hwmod_class, | ||
2518 | .clkdm_name = "l4_wkup_clkdm", | ||
2519 | }; | ||
2520 | |||
2521 | /* cm_core_aon */ | ||
2522 | static struct omap_hwmod omap44xx_cm_core_aon_hwmod = { | ||
2523 | .name = "cm_core_aon", | ||
2524 | .class = &omap44xx_prcm_hwmod_class, | ||
2525 | .clkdm_name = "cm_clkdm", | ||
2526 | }; | ||
2527 | |||
2528 | /* cm_core */ | ||
2529 | static struct omap_hwmod omap44xx_cm_core_hwmod = { | ||
2530 | .name = "cm_core", | ||
2531 | .class = &omap44xx_prcm_hwmod_class, | ||
2532 | .clkdm_name = "cm_clkdm", | ||
2533 | }; | ||
2534 | |||
2535 | /* prm */ | ||
2536 | static struct omap_hwmod_irq_info omap44xx_prm_irqs[] = { | ||
2537 | { .irq = 11 + OMAP44XX_IRQ_GIC_START }, | ||
2538 | { .irq = -1 } | ||
2539 | }; | ||
2540 | |||
2541 | static struct omap_hwmod_rst_info omap44xx_prm_resets[] = { | ||
2542 | { .name = "rst_global_warm_sw", .rst_shift = 0 }, | ||
2543 | { .name = "rst_global_cold_sw", .rst_shift = 1 }, | ||
2544 | }; | ||
2545 | |||
2546 | static struct omap_hwmod omap44xx_prm_hwmod = { | ||
2547 | .name = "prm", | ||
2548 | .class = &omap44xx_prcm_hwmod_class, | ||
2549 | .clkdm_name = "prm_clkdm", | ||
2550 | .mpu_irqs = omap44xx_prm_irqs, | ||
2551 | .rst_lines = omap44xx_prm_resets, | ||
2552 | .rst_lines_cnt = ARRAY_SIZE(omap44xx_prm_resets), | ||
2553 | }; | ||
2554 | |||
2555 | /* | ||
2556 | * 'scrm' class | ||
2557 | * system clock and reset manager | ||
2558 | */ | ||
2559 | |||
2560 | static struct omap_hwmod_class omap44xx_scrm_hwmod_class = { | ||
2561 | .name = "scrm", | ||
2562 | }; | ||
2563 | |||
2564 | /* scrm */ | ||
2565 | static struct omap_hwmod omap44xx_scrm_hwmod = { | ||
2566 | .name = "scrm", | ||
2567 | .class = &omap44xx_scrm_hwmod_class, | ||
2568 | .clkdm_name = "l4_wkup_clkdm", | ||
2569 | }; | ||
2570 | |||
2571 | /* | ||
2510 | * 'sl2if' class | 2572 | * 'sl2if' class |
2511 | * shared level 2 memory interface | 2573 | * shared level 2 memory interface |
2512 | */ | 2574 | */ |
@@ -5170,6 +5232,96 @@ static struct omap_hwmod_ocp_if omap44xx_l4_cfg__ocp2scp_usb_phy = { | |||
5170 | .user = OCP_USER_MPU | OCP_USER_SDMA, | 5232 | .user = OCP_USER_MPU | OCP_USER_SDMA, |
5171 | }; | 5233 | }; |
5172 | 5234 | ||
5235 | static struct omap_hwmod_addr_space omap44xx_prcm_mpu_addrs[] = { | ||
5236 | { | ||
5237 | .pa_start = 0x48243000, | ||
5238 | .pa_end = 0x48243fff, | ||
5239 | .flags = ADDR_TYPE_RT | ||
5240 | }, | ||
5241 | { } | ||
5242 | }; | ||
5243 | |||
5244 | /* mpu_private -> prcm_mpu */ | ||
5245 | static struct omap_hwmod_ocp_if omap44xx_mpu_private__prcm_mpu = { | ||
5246 | .master = &omap44xx_mpu_private_hwmod, | ||
5247 | .slave = &omap44xx_prcm_mpu_hwmod, | ||
5248 | .clk = "l3_div_ck", | ||
5249 | .addr = omap44xx_prcm_mpu_addrs, | ||
5250 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
5251 | }; | ||
5252 | |||
5253 | static struct omap_hwmod_addr_space omap44xx_cm_core_aon_addrs[] = { | ||
5254 | { | ||
5255 | .pa_start = 0x4a004000, | ||
5256 | .pa_end = 0x4a004fff, | ||
5257 | .flags = ADDR_TYPE_RT | ||
5258 | }, | ||
5259 | { } | ||
5260 | }; | ||
5261 | |||
5262 | /* l4_wkup -> cm_core_aon */ | ||
5263 | static struct omap_hwmod_ocp_if omap44xx_l4_wkup__cm_core_aon = { | ||
5264 | .master = &omap44xx_l4_wkup_hwmod, | ||
5265 | .slave = &omap44xx_cm_core_aon_hwmod, | ||
5266 | .clk = "l4_wkup_clk_mux_ck", | ||
5267 | .addr = omap44xx_cm_core_aon_addrs, | ||
5268 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
5269 | }; | ||
5270 | |||
5271 | static struct omap_hwmod_addr_space omap44xx_cm_core_addrs[] = { | ||
5272 | { | ||
5273 | .pa_start = 0x4a008000, | ||
5274 | .pa_end = 0x4a009fff, | ||
5275 | .flags = ADDR_TYPE_RT | ||
5276 | }, | ||
5277 | { } | ||
5278 | }; | ||
5279 | |||
5280 | /* l4_cfg -> cm_core */ | ||
5281 | static struct omap_hwmod_ocp_if omap44xx_l4_cfg__cm_core = { | ||
5282 | .master = &omap44xx_l4_cfg_hwmod, | ||
5283 | .slave = &omap44xx_cm_core_hwmod, | ||
5284 | .clk = "l4_div_ck", | ||
5285 | .addr = omap44xx_cm_core_addrs, | ||
5286 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
5287 | }; | ||
5288 | |||
5289 | static struct omap_hwmod_addr_space omap44xx_prm_addrs[] = { | ||
5290 | { | ||
5291 | .pa_start = 0x4a306000, | ||
5292 | .pa_end = 0x4a307fff, | ||
5293 | .flags = ADDR_TYPE_RT | ||
5294 | }, | ||
5295 | { } | ||
5296 | }; | ||
5297 | |||
5298 | /* l4_wkup -> prm */ | ||
5299 | static struct omap_hwmod_ocp_if omap44xx_l4_wkup__prm = { | ||
5300 | .master = &omap44xx_l4_wkup_hwmod, | ||
5301 | .slave = &omap44xx_prm_hwmod, | ||
5302 | .clk = "l4_wkup_clk_mux_ck", | ||
5303 | .addr = omap44xx_prm_addrs, | ||
5304 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
5305 | }; | ||
5306 | |||
5307 | static struct omap_hwmod_addr_space omap44xx_scrm_addrs[] = { | ||
5308 | { | ||
5309 | .pa_start = 0x4a30a000, | ||
5310 | .pa_end = 0x4a30a7ff, | ||
5311 | .flags = ADDR_TYPE_RT | ||
5312 | }, | ||
5313 | { } | ||
5314 | }; | ||
5315 | |||
5316 | /* l4_wkup -> scrm */ | ||
5317 | static struct omap_hwmod_ocp_if omap44xx_l4_wkup__scrm = { | ||
5318 | .master = &omap44xx_l4_wkup_hwmod, | ||
5319 | .slave = &omap44xx_scrm_hwmod, | ||
5320 | .clk = "l4_wkup_clk_mux_ck", | ||
5321 | .addr = omap44xx_scrm_addrs, | ||
5322 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
5323 | }; | ||
5324 | |||
5173 | /* l3_main_2 -> sl2if */ | 5325 | /* l3_main_2 -> sl2if */ |
5174 | static struct omap_hwmod_ocp_if omap44xx_l3_main_2__sl2if = { | 5326 | static struct omap_hwmod_ocp_if omap44xx_l3_main_2__sl2if = { |
5175 | .master = &omap44xx_l3_main_2_hwmod, | 5327 | .master = &omap44xx_l3_main_2_hwmod, |
@@ -5901,6 +6053,11 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { | |||
5901 | &omap44xx_l4_per__mmc5, | 6053 | &omap44xx_l4_per__mmc5, |
5902 | &omap44xx_l3_main_2__ocmc_ram, | 6054 | &omap44xx_l3_main_2__ocmc_ram, |
5903 | &omap44xx_l4_cfg__ocp2scp_usb_phy, | 6055 | &omap44xx_l4_cfg__ocp2scp_usb_phy, |
6056 | &omap44xx_mpu_private__prcm_mpu, | ||
6057 | &omap44xx_l4_wkup__cm_core_aon, | ||
6058 | &omap44xx_l4_cfg__cm_core, | ||
6059 | &omap44xx_l4_wkup__prm, | ||
6060 | &omap44xx_l4_wkup__scrm, | ||
5904 | &omap44xx_l3_main_2__sl2if, | 6061 | &omap44xx_l3_main_2__sl2if, |
5905 | &omap44xx_l4_abe__slimbus1, | 6062 | &omap44xx_l4_abe__slimbus1, |
5906 | &omap44xx_l4_abe__slimbus1_dma, | 6063 | &omap44xx_l4_abe__slimbus1_dma, |