diff options
author | Tony Lindgren <tony@atomide.com> | 2014-07-23 04:21:33 -0400 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2014-07-23 04:21:33 -0400 |
commit | ecf4c7938fe10aabdb962187719911d345bc20b1 (patch) | |
tree | 9e75230becb4a8a095f65274ab0fd5659aa497a8 | |
parent | 2aa7f52b532f9dc2c216c2892bc77b2fc2c89bb7 (diff) | |
parent | c913c8a15a02e91c1f0302d68bebf66838a9689d (diff) |
Merge tag 'for-v3.17/omap-hwmod-a' of git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending into omap-for-v3.17/soc
OMAP hwmod data additions for v3.17. Most of these are DRA7xx-related,
although one patch adds DSS hwmods for AM43xx.
Basic build, boot, and PM test results are available here:
http://www.pwsan.com/omap/testlogs/hwmod-a-v3.17/20140722143514/
-rw-r--r-- | arch/arm/mach-omap2/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/mach-omap2/cm2_7xx.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c | 40 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_43xx_data.c | 100 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 260 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_common_ipblock_data.c | 55 | ||||
-rw-r--r-- | arch/arm/mach-omap2/prcm43xx.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-omap2/prm7xx.h | 4 |
8 files changed, 425 insertions, 40 deletions
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index 8ca99e9321e3..863ec46e84a7 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile | |||
@@ -202,6 +202,7 @@ obj-$(CONFIG_SOC_OMAP2420) += opp2420_data.o | |||
202 | obj-$(CONFIG_SOC_OMAP2430) += opp2430_data.o | 202 | obj-$(CONFIG_SOC_OMAP2430) += opp2430_data.o |
203 | 203 | ||
204 | # hwmod data | 204 | # hwmod data |
205 | obj-y += omap_hwmod_common_ipblock_data.o | ||
205 | obj-$(CONFIG_SOC_OMAP2420) += omap_hwmod_2xxx_ipblock_data.o | 206 | obj-$(CONFIG_SOC_OMAP2420) += omap_hwmod_2xxx_ipblock_data.o |
206 | obj-$(CONFIG_SOC_OMAP2420) += omap_hwmod_2xxx_3xxx_ipblock_data.o | 207 | obj-$(CONFIG_SOC_OMAP2420) += omap_hwmod_2xxx_3xxx_ipblock_data.o |
207 | obj-$(CONFIG_SOC_OMAP2420) += omap_hwmod_2xxx_interconnect_data.o | 208 | obj-$(CONFIG_SOC_OMAP2420) += omap_hwmod_2xxx_interconnect_data.o |
diff --git a/arch/arm/mach-omap2/cm2_7xx.h b/arch/arm/mach-omap2/cm2_7xx.h index 9ad7594e7622..e966e3a3c931 100644 --- a/arch/arm/mach-omap2/cm2_7xx.h +++ b/arch/arm/mach-omap2/cm2_7xx.h | |||
@@ -357,6 +357,10 @@ | |||
357 | #define DRA7XX_CM_L3INIT_SATA_CLKCTRL DRA7XX_CM_CORE_REGADDR(DRA7XX_CM_CORE_L3INIT_INST, 0x0088) | 357 | #define DRA7XX_CM_L3INIT_SATA_CLKCTRL DRA7XX_CM_CORE_REGADDR(DRA7XX_CM_CORE_L3INIT_INST, 0x0088) |
358 | #define DRA7XX_CM_PCIE_CLKSTCTRL_OFFSET 0x00a0 | 358 | #define DRA7XX_CM_PCIE_CLKSTCTRL_OFFSET 0x00a0 |
359 | #define DRA7XX_CM_PCIE_STATICDEP_OFFSET 0x00a4 | 359 | #define DRA7XX_CM_PCIE_STATICDEP_OFFSET 0x00a4 |
360 | #define DRA7XX_CM_L3INIT_PCIESS1_CLKCTRL_OFFSET 0x00b0 | ||
361 | #define DRA7XX_CM_L3INIT_PCIESS1_CLKCTRL DRA7XX_CM_CORE_REGADDR(DRA7XX_CM_CORE_L3INIT_INST, 0x00b0) | ||
362 | #define DRA7XX_CM_L3INIT_PCIESS2_CLKCTRL_OFFSET 0x00b8 | ||
363 | #define DRA7XX_CM_L3INIT_PCIESS2_CLKCTRL DRA7XX_CM_CORE_REGADDR(DRA7XX_CM_CORE_L3INIT_INST, 0x00b8) | ||
360 | #define DRA7XX_CM_GMAC_CLKSTCTRL_OFFSET 0x00c0 | 364 | #define DRA7XX_CM_GMAC_CLKSTCTRL_OFFSET 0x00c0 |
361 | #define DRA7XX_CM_GMAC_STATICDEP_OFFSET 0x00c4 | 365 | #define DRA7XX_CM_GMAC_STATICDEP_OFFSET 0x00c4 |
362 | #define DRA7XX_CM_GMAC_DYNAMICDEP_OFFSET 0x00c8 | 366 | #define DRA7XX_CM_GMAC_DYNAMICDEP_OFFSET 0x00c8 |
diff --git a/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c b/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c index 5da7a42a6d90..c6c6384de867 100644 --- a/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c | |||
@@ -37,46 +37,6 @@ struct omap_hwmod_class omap2_uart_class = { | |||
37 | }; | 37 | }; |
38 | 38 | ||
39 | /* | 39 | /* |
40 | * 'dss' class | ||
41 | * display sub-system | ||
42 | */ | ||
43 | |||
44 | static struct omap_hwmod_class_sysconfig omap2_dss_sysc = { | ||
45 | .rev_offs = 0x0000, | ||
46 | .sysc_offs = 0x0010, | ||
47 | .syss_offs = 0x0014, | ||
48 | .sysc_flags = (SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE | | ||
49 | SYSS_HAS_RESET_STATUS), | ||
50 | .sysc_fields = &omap_hwmod_sysc_type1, | ||
51 | }; | ||
52 | |||
53 | struct omap_hwmod_class omap2_dss_hwmod_class = { | ||
54 | .name = "dss", | ||
55 | .sysc = &omap2_dss_sysc, | ||
56 | .reset = omap_dss_reset, | ||
57 | }; | ||
58 | |||
59 | /* | ||
60 | * 'rfbi' class | ||
61 | * remote frame buffer interface | ||
62 | */ | ||
63 | |||
64 | static struct omap_hwmod_class_sysconfig omap2_rfbi_sysc = { | ||
65 | .rev_offs = 0x0000, | ||
66 | .sysc_offs = 0x0010, | ||
67 | .syss_offs = 0x0014, | ||
68 | .sysc_flags = (SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET | | ||
69 | SYSC_HAS_AUTOIDLE), | ||
70 | .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART), | ||
71 | .sysc_fields = &omap_hwmod_sysc_type1, | ||
72 | }; | ||
73 | |||
74 | struct omap_hwmod_class omap2_rfbi_hwmod_class = { | ||
75 | .name = "rfbi", | ||
76 | .sysc = &omap2_rfbi_sysc, | ||
77 | }; | ||
78 | |||
79 | /* | ||
80 | * 'venc' class | 40 | * 'venc' class |
81 | * video encoder | 41 | * video encoder |
82 | */ | 42 | */ |
diff --git a/arch/arm/mach-omap2/omap_hwmod_43xx_data.c b/arch/arm/mach-omap2/omap_hwmod_43xx_data.c index 5c2cc8083fdd..fea01aa3ef42 100644 --- a/arch/arm/mach-omap2/omap_hwmod_43xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_43xx_data.c | |||
@@ -19,6 +19,8 @@ | |||
19 | #include "omap_hwmod.h" | 19 | #include "omap_hwmod.h" |
20 | #include "omap_hwmod_33xx_43xx_common_data.h" | 20 | #include "omap_hwmod_33xx_43xx_common_data.h" |
21 | #include "prcm43xx.h" | 21 | #include "prcm43xx.h" |
22 | #include "omap_hwmod_common_data.h" | ||
23 | |||
22 | 24 | ||
23 | /* IP blocks */ | 25 | /* IP blocks */ |
24 | static struct omap_hwmod am43xx_l4_hs_hwmod = { | 26 | static struct omap_hwmod am43xx_l4_hs_hwmod = { |
@@ -415,6 +417,72 @@ static struct omap_hwmod am43xx_qspi_hwmod = { | |||
415 | }, | 417 | }, |
416 | }; | 418 | }; |
417 | 419 | ||
420 | /* dss */ | ||
421 | |||
422 | static struct omap_hwmod am43xx_dss_core_hwmod = { | ||
423 | .name = "dss_core", | ||
424 | .class = &omap2_dss_hwmod_class, | ||
425 | .clkdm_name = "dss_clkdm", | ||
426 | .main_clk = "disp_clk", | ||
427 | .prcm = { | ||
428 | .omap4 = { | ||
429 | .clkctrl_offs = AM43XX_CM_PER_DSS_CLKCTRL_OFFSET, | ||
430 | .modulemode = MODULEMODE_SWCTRL, | ||
431 | }, | ||
432 | }, | ||
433 | }; | ||
434 | |||
435 | /* dispc */ | ||
436 | |||
437 | struct omap_dss_dispc_dev_attr am43xx_dss_dispc_dev_attr = { | ||
438 | .manager_count = 1, | ||
439 | .has_framedonetv_irq = 0 | ||
440 | }; | ||
441 | |||
442 | static struct omap_hwmod_class_sysconfig am43xx_dispc_sysc = { | ||
443 | .rev_offs = 0x0000, | ||
444 | .sysc_offs = 0x0010, | ||
445 | .syss_offs = 0x0014, | ||
446 | .sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_SOFTRESET | | ||
447 | SYSC_HAS_ENAWAKEUP | SYSC_HAS_SIDLEMODE | | ||
448 | SYSC_HAS_CLOCKACTIVITY | SYSC_HAS_MIDLEMODE), | ||
449 | .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | | ||
450 | MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART), | ||
451 | .sysc_fields = &omap_hwmod_sysc_type1, | ||
452 | }; | ||
453 | |||
454 | static struct omap_hwmod_class am43xx_dispc_hwmod_class = { | ||
455 | .name = "dispc", | ||
456 | .sysc = &am43xx_dispc_sysc, | ||
457 | }; | ||
458 | |||
459 | static struct omap_hwmod am43xx_dss_dispc_hwmod = { | ||
460 | .name = "dss_dispc", | ||
461 | .class = &am43xx_dispc_hwmod_class, | ||
462 | .clkdm_name = "dss_clkdm", | ||
463 | .main_clk = "disp_clk", | ||
464 | .prcm = { | ||
465 | .omap4 = { | ||
466 | .clkctrl_offs = AM43XX_CM_PER_DSS_CLKCTRL_OFFSET, | ||
467 | }, | ||
468 | }, | ||
469 | .dev_attr = &am43xx_dss_dispc_dev_attr, | ||
470 | }; | ||
471 | |||
472 | /* rfbi */ | ||
473 | |||
474 | static struct omap_hwmod am43xx_dss_rfbi_hwmod = { | ||
475 | .name = "dss_rfbi", | ||
476 | .class = &omap2_rfbi_hwmod_class, | ||
477 | .clkdm_name = "dss_clkdm", | ||
478 | .main_clk = "disp_clk", | ||
479 | .prcm = { | ||
480 | .omap4 = { | ||
481 | .clkctrl_offs = AM43XX_CM_PER_DSS_CLKCTRL_OFFSET, | ||
482 | }, | ||
483 | }, | ||
484 | }; | ||
485 | |||
418 | /* Interfaces */ | 486 | /* Interfaces */ |
419 | static struct omap_hwmod_ocp_if am43xx_l3_main__l4_hs = { | 487 | static struct omap_hwmod_ocp_if am43xx_l3_main__l4_hs = { |
420 | .master = &am33xx_l3_main_hwmod, | 488 | .master = &am33xx_l3_main_hwmod, |
@@ -654,6 +722,34 @@ static struct omap_hwmod_ocp_if am43xx_l3_s__qspi = { | |||
654 | .user = OCP_USER_MPU | OCP_USER_SDMA, | 722 | .user = OCP_USER_MPU | OCP_USER_SDMA, |
655 | }; | 723 | }; |
656 | 724 | ||
725 | static struct omap_hwmod_ocp_if am43xx_dss__l3_main = { | ||
726 | .master = &am43xx_dss_core_hwmod, | ||
727 | .slave = &am33xx_l3_main_hwmod, | ||
728 | .clk = "l3_gclk", | ||
729 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
730 | }; | ||
731 | |||
732 | static struct omap_hwmod_ocp_if am43xx_l4_ls__dss = { | ||
733 | .master = &am33xx_l4_ls_hwmod, | ||
734 | .slave = &am43xx_dss_core_hwmod, | ||
735 | .clk = "l4ls_gclk", | ||
736 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
737 | }; | ||
738 | |||
739 | static struct omap_hwmod_ocp_if am43xx_l4_ls__dss_dispc = { | ||
740 | .master = &am33xx_l4_ls_hwmod, | ||
741 | .slave = &am43xx_dss_dispc_hwmod, | ||
742 | .clk = "l4ls_gclk", | ||
743 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
744 | }; | ||
745 | |||
746 | static struct omap_hwmod_ocp_if am43xx_l4_ls__dss_rfbi = { | ||
747 | .master = &am33xx_l4_ls_hwmod, | ||
748 | .slave = &am43xx_dss_rfbi_hwmod, | ||
749 | .clk = "l4ls_gclk", | ||
750 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
751 | }; | ||
752 | |||
657 | static struct omap_hwmod_ocp_if *am43xx_hwmod_ocp_ifs[] __initdata = { | 753 | static struct omap_hwmod_ocp_if *am43xx_hwmod_ocp_ifs[] __initdata = { |
658 | &am33xx_l4_wkup__synctimer, | 754 | &am33xx_l4_wkup__synctimer, |
659 | &am43xx_l4_ls__timer8, | 755 | &am43xx_l4_ls__timer8, |
@@ -748,6 +844,10 @@ static struct omap_hwmod_ocp_if *am43xx_hwmod_ocp_ifs[] __initdata = { | |||
748 | &am43xx_l4_ls__ocp2scp1, | 844 | &am43xx_l4_ls__ocp2scp1, |
749 | &am43xx_l3_s__usbotgss0, | 845 | &am43xx_l3_s__usbotgss0, |
750 | &am43xx_l3_s__usbotgss1, | 846 | &am43xx_l3_s__usbotgss1, |
847 | &am43xx_dss__l3_main, | ||
848 | &am43xx_l4_ls__dss, | ||
849 | &am43xx_l4_ls__dss_dispc, | ||
850 | &am43xx_l4_ls__dss_rfbi, | ||
751 | NULL, | 851 | NULL, |
752 | }; | 852 | }; |
753 | 853 | ||
diff --git a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c index 31fd26062535..e3562624ae48 100644 --- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c | |||
@@ -273,6 +273,56 @@ static struct omap_hwmod dra7xx_ctrl_module_wkup_hwmod = { | |||
273 | }; | 273 | }; |
274 | 274 | ||
275 | /* | 275 | /* |
276 | * 'gmac' class | ||
277 | * cpsw/gmac sub system | ||
278 | */ | ||
279 | static struct omap_hwmod_class_sysconfig dra7xx_gmac_sysc = { | ||
280 | .rev_offs = 0x0, | ||
281 | .sysc_offs = 0x8, | ||
282 | .syss_offs = 0x4, | ||
283 | .sysc_flags = (SYSC_HAS_SIDLEMODE | SYSC_HAS_MIDLEMODE | | ||
284 | SYSS_HAS_RESET_STATUS), | ||
285 | .idlemodes = (SIDLE_FORCE | SIDLE_NO | MSTANDBY_FORCE | | ||
286 | MSTANDBY_NO), | ||
287 | .sysc_fields = &omap_hwmod_sysc_type3, | ||
288 | }; | ||
289 | |||
290 | static struct omap_hwmod_class dra7xx_gmac_hwmod_class = { | ||
291 | .name = "gmac", | ||
292 | .sysc = &dra7xx_gmac_sysc, | ||
293 | }; | ||
294 | |||
295 | static struct omap_hwmod dra7xx_gmac_hwmod = { | ||
296 | .name = "gmac", | ||
297 | .class = &dra7xx_gmac_hwmod_class, | ||
298 | .clkdm_name = "gmac_clkdm", | ||
299 | .flags = (HWMOD_SWSUP_SIDLE | HWMOD_SWSUP_MSTANDBY), | ||
300 | .main_clk = "dpll_gmac_ck", | ||
301 | .mpu_rt_idx = 1, | ||
302 | .prcm = { | ||
303 | .omap4 = { | ||
304 | .clkctrl_offs = DRA7XX_CM_GMAC_GMAC_CLKCTRL_OFFSET, | ||
305 | .context_offs = DRA7XX_RM_GMAC_GMAC_CONTEXT_OFFSET, | ||
306 | .modulemode = MODULEMODE_SWCTRL, | ||
307 | }, | ||
308 | }, | ||
309 | }; | ||
310 | |||
311 | /* | ||
312 | * 'mdio' class | ||
313 | */ | ||
314 | static struct omap_hwmod_class dra7xx_mdio_hwmod_class = { | ||
315 | .name = "davinci_mdio", | ||
316 | }; | ||
317 | |||
318 | static struct omap_hwmod dra7xx_mdio_hwmod = { | ||
319 | .name = "davinci_mdio", | ||
320 | .class = &dra7xx_mdio_hwmod_class, | ||
321 | .clkdm_name = "gmac_clkdm", | ||
322 | .main_clk = "dpll_gmac_ck", | ||
323 | }; | ||
324 | |||
325 | /* | ||
276 | * 'dcan' class | 326 | * 'dcan' class |
277 | * | 327 | * |
278 | */ | 328 | */ |
@@ -1206,6 +1256,97 @@ static struct omap_hwmod dra7xx_ocp2scp1_hwmod = { | |||
1206 | }, | 1256 | }, |
1207 | }; | 1257 | }; |
1208 | 1258 | ||
1259 | /* ocp2scp3 */ | ||
1260 | static struct omap_hwmod dra7xx_ocp2scp3_hwmod = { | ||
1261 | .name = "ocp2scp3", | ||
1262 | .class = &dra7xx_ocp2scp_hwmod_class, | ||
1263 | .clkdm_name = "l3init_clkdm", | ||
1264 | .main_clk = "l4_root_clk_div", | ||
1265 | .prcm = { | ||
1266 | .omap4 = { | ||
1267 | .clkctrl_offs = DRA7XX_CM_L3INIT_OCP2SCP3_CLKCTRL_OFFSET, | ||
1268 | .context_offs = DRA7XX_RM_L3INIT_OCP2SCP3_CONTEXT_OFFSET, | ||
1269 | .modulemode = MODULEMODE_HWCTRL, | ||
1270 | }, | ||
1271 | }, | ||
1272 | }; | ||
1273 | |||
1274 | /* | ||
1275 | * 'PCIE' class | ||
1276 | * | ||
1277 | */ | ||
1278 | |||
1279 | static struct omap_hwmod_class dra7xx_pcie_hwmod_class = { | ||
1280 | .name = "pcie", | ||
1281 | }; | ||
1282 | |||
1283 | /* pcie1 */ | ||
1284 | static struct omap_hwmod dra7xx_pcie1_hwmod = { | ||
1285 | .name = "pcie1", | ||
1286 | .class = &dra7xx_pcie_hwmod_class, | ||
1287 | .clkdm_name = "pcie_clkdm", | ||
1288 | .main_clk = "l4_root_clk_div", | ||
1289 | .prcm = { | ||
1290 | .omap4 = { | ||
1291 | .clkctrl_offs = DRA7XX_CM_PCIE_CLKSTCTRL_OFFSET, | ||
1292 | .modulemode = MODULEMODE_SWCTRL, | ||
1293 | }, | ||
1294 | }, | ||
1295 | }; | ||
1296 | |||
1297 | /* pcie2 */ | ||
1298 | static struct omap_hwmod dra7xx_pcie2_hwmod = { | ||
1299 | .name = "pcie2", | ||
1300 | .class = &dra7xx_pcie_hwmod_class, | ||
1301 | .clkdm_name = "pcie_clkdm", | ||
1302 | .main_clk = "l4_root_clk_div", | ||
1303 | .prcm = { | ||
1304 | .omap4 = { | ||
1305 | .clkctrl_offs = DRA7XX_CM_PCIE_CLKSTCTRL_OFFSET, | ||
1306 | .modulemode = MODULEMODE_SWCTRL, | ||
1307 | }, | ||
1308 | }, | ||
1309 | }; | ||
1310 | |||
1311 | /* | ||
1312 | * 'PCIE PHY' class | ||
1313 | * | ||
1314 | */ | ||
1315 | |||
1316 | static struct omap_hwmod_class dra7xx_pcie_phy_hwmod_class = { | ||
1317 | .name = "pcie-phy", | ||
1318 | }; | ||
1319 | |||
1320 | /* pcie1 phy */ | ||
1321 | static struct omap_hwmod dra7xx_pcie1_phy_hwmod = { | ||
1322 | .name = "pcie1-phy", | ||
1323 | .class = &dra7xx_pcie_phy_hwmod_class, | ||
1324 | .clkdm_name = "l3init_clkdm", | ||
1325 | .main_clk = "l4_root_clk_div", | ||
1326 | .prcm = { | ||
1327 | .omap4 = { | ||
1328 | .clkctrl_offs = DRA7XX_CM_L3INIT_PCIESS1_CLKCTRL_OFFSET, | ||
1329 | .context_offs = DRA7XX_RM_L3INIT_PCIESS1_CONTEXT_OFFSET, | ||
1330 | .modulemode = MODULEMODE_SWCTRL, | ||
1331 | }, | ||
1332 | }, | ||
1333 | }; | ||
1334 | |||
1335 | /* pcie2 phy */ | ||
1336 | static struct omap_hwmod dra7xx_pcie2_phy_hwmod = { | ||
1337 | .name = "pcie2-phy", | ||
1338 | .class = &dra7xx_pcie_phy_hwmod_class, | ||
1339 | .clkdm_name = "l3init_clkdm", | ||
1340 | .main_clk = "l4_root_clk_div", | ||
1341 | .prcm = { | ||
1342 | .omap4 = { | ||
1343 | .clkctrl_offs = DRA7XX_CM_L3INIT_PCIESS2_CLKCTRL_OFFSET, | ||
1344 | .context_offs = DRA7XX_RM_L3INIT_PCIESS2_CONTEXT_OFFSET, | ||
1345 | .modulemode = MODULEMODE_SWCTRL, | ||
1346 | }, | ||
1347 | }, | ||
1348 | }; | ||
1349 | |||
1209 | /* | 1350 | /* |
1210 | * 'qspi' class | 1351 | * 'qspi' class |
1211 | * | 1352 | * |
@@ -1240,6 +1381,38 @@ static struct omap_hwmod dra7xx_qspi_hwmod = { | |||
1240 | }; | 1381 | }; |
1241 | 1382 | ||
1242 | /* | 1383 | /* |
1384 | * 'rtcss' class | ||
1385 | * | ||
1386 | */ | ||
1387 | static struct omap_hwmod_class_sysconfig dra7xx_rtcss_sysc = { | ||
1388 | .sysc_offs = 0x0078, | ||
1389 | .sysc_flags = SYSC_HAS_SIDLEMODE, | ||
1390 | .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | | ||
1391 | SIDLE_SMART_WKUP), | ||
1392 | .sysc_fields = &omap_hwmod_sysc_type3, | ||
1393 | }; | ||
1394 | |||
1395 | static struct omap_hwmod_class dra7xx_rtcss_hwmod_class = { | ||
1396 | .name = "rtcss", | ||
1397 | .sysc = &dra7xx_rtcss_sysc, | ||
1398 | }; | ||
1399 | |||
1400 | /* rtcss */ | ||
1401 | static struct omap_hwmod dra7xx_rtcss_hwmod = { | ||
1402 | .name = "rtcss", | ||
1403 | .class = &dra7xx_rtcss_hwmod_class, | ||
1404 | .clkdm_name = "rtc_clkdm", | ||
1405 | .main_clk = "sys_32k_ck", | ||
1406 | .prcm = { | ||
1407 | .omap4 = { | ||
1408 | .clkctrl_offs = DRA7XX_CM_RTC_RTCSS_CLKCTRL_OFFSET, | ||
1409 | .context_offs = DRA7XX_RM_RTC_RTCSS_CONTEXT_OFFSET, | ||
1410 | .modulemode = MODULEMODE_SWCTRL, | ||
1411 | }, | ||
1412 | }, | ||
1413 | }; | ||
1414 | |||
1415 | /* | ||
1243 | * 'sata' class | 1416 | * 'sata' class |
1244 | * | 1417 | * |
1245 | */ | 1418 | */ |
@@ -1990,6 +2163,19 @@ static struct omap_hwmod_ocp_if dra7xx_l4_wkup__ctrl_module_wkup = { | |||
1990 | .user = OCP_USER_MPU | OCP_USER_SDMA, | 2163 | .user = OCP_USER_MPU | OCP_USER_SDMA, |
1991 | }; | 2164 | }; |
1992 | 2165 | ||
2166 | static struct omap_hwmod_ocp_if dra7xx_l4_per2__cpgmac0 = { | ||
2167 | .master = &dra7xx_l4_per2_hwmod, | ||
2168 | .slave = &dra7xx_gmac_hwmod, | ||
2169 | .clk = "dpll_gmac_ck", | ||
2170 | .user = OCP_USER_MPU, | ||
2171 | }; | ||
2172 | |||
2173 | static struct omap_hwmod_ocp_if dra7xx_gmac__mdio = { | ||
2174 | .master = &dra7xx_gmac_hwmod, | ||
2175 | .slave = &dra7xx_mdio_hwmod, | ||
2176 | .user = OCP_USER_MPU, | ||
2177 | }; | ||
2178 | |||
1993 | /* l4_wkup -> dcan1 */ | 2179 | /* l4_wkup -> dcan1 */ |
1994 | static struct omap_hwmod_ocp_if dra7xx_l4_wkup__dcan1 = { | 2180 | static struct omap_hwmod_ocp_if dra7xx_l4_wkup__dcan1 = { |
1995 | .master = &dra7xx_l4_wkup_hwmod, | 2181 | .master = &dra7xx_l4_wkup_hwmod, |
@@ -2317,6 +2503,62 @@ static struct omap_hwmod_ocp_if dra7xx_l4_cfg__ocp2scp1 = { | |||
2317 | .user = OCP_USER_MPU | OCP_USER_SDMA, | 2503 | .user = OCP_USER_MPU | OCP_USER_SDMA, |
2318 | }; | 2504 | }; |
2319 | 2505 | ||
2506 | /* l4_cfg -> ocp2scp3 */ | ||
2507 | static struct omap_hwmod_ocp_if dra7xx_l4_cfg__ocp2scp3 = { | ||
2508 | .master = &dra7xx_l4_cfg_hwmod, | ||
2509 | .slave = &dra7xx_ocp2scp3_hwmod, | ||
2510 | .clk = "l4_root_clk_div", | ||
2511 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
2512 | }; | ||
2513 | |||
2514 | /* l3_main_1 -> pcie1 */ | ||
2515 | static struct omap_hwmod_ocp_if dra7xx_l3_main_1__pcie1 = { | ||
2516 | .master = &dra7xx_l3_main_1_hwmod, | ||
2517 | .slave = &dra7xx_pcie1_hwmod, | ||
2518 | .clk = "l3_iclk_div", | ||
2519 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
2520 | }; | ||
2521 | |||
2522 | /* l4_cfg -> pcie1 */ | ||
2523 | static struct omap_hwmod_ocp_if dra7xx_l4_cfg__pcie1 = { | ||
2524 | .master = &dra7xx_l4_cfg_hwmod, | ||
2525 | .slave = &dra7xx_pcie1_hwmod, | ||
2526 | .clk = "l4_root_clk_div", | ||
2527 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
2528 | }; | ||
2529 | |||
2530 | /* l3_main_1 -> pcie2 */ | ||
2531 | static struct omap_hwmod_ocp_if dra7xx_l3_main_1__pcie2 = { | ||
2532 | .master = &dra7xx_l3_main_1_hwmod, | ||
2533 | .slave = &dra7xx_pcie2_hwmod, | ||
2534 | .clk = "l3_iclk_div", | ||
2535 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
2536 | }; | ||
2537 | |||
2538 | /* l4_cfg -> pcie2 */ | ||
2539 | static struct omap_hwmod_ocp_if dra7xx_l4_cfg__pcie2 = { | ||
2540 | .master = &dra7xx_l4_cfg_hwmod, | ||
2541 | .slave = &dra7xx_pcie2_hwmod, | ||
2542 | .clk = "l4_root_clk_div", | ||
2543 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
2544 | }; | ||
2545 | |||
2546 | /* l4_cfg -> pcie1 phy */ | ||
2547 | static struct omap_hwmod_ocp_if dra7xx_l4_cfg__pcie1_phy = { | ||
2548 | .master = &dra7xx_l4_cfg_hwmod, | ||
2549 | .slave = &dra7xx_pcie1_phy_hwmod, | ||
2550 | .clk = "l4_root_clk_div", | ||
2551 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
2552 | }; | ||
2553 | |||
2554 | /* l4_cfg -> pcie2 phy */ | ||
2555 | static struct omap_hwmod_ocp_if dra7xx_l4_cfg__pcie2_phy = { | ||
2556 | .master = &dra7xx_l4_cfg_hwmod, | ||
2557 | .slave = &dra7xx_pcie2_phy_hwmod, | ||
2558 | .clk = "l4_root_clk_div", | ||
2559 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
2560 | }; | ||
2561 | |||
2320 | static struct omap_hwmod_addr_space dra7xx_qspi_addrs[] = { | 2562 | static struct omap_hwmod_addr_space dra7xx_qspi_addrs[] = { |
2321 | { | 2563 | { |
2322 | .pa_start = 0x4b300000, | 2564 | .pa_start = 0x4b300000, |
@@ -2335,6 +2577,14 @@ static struct omap_hwmod_ocp_if dra7xx_l3_main_1__qspi = { | |||
2335 | .user = OCP_USER_MPU | OCP_USER_SDMA, | 2577 | .user = OCP_USER_MPU | OCP_USER_SDMA, |
2336 | }; | 2578 | }; |
2337 | 2579 | ||
2580 | /* l4_per3 -> rtcss */ | ||
2581 | static struct omap_hwmod_ocp_if dra7xx_l4_per3__rtcss = { | ||
2582 | .master = &dra7xx_l4_per3_hwmod, | ||
2583 | .slave = &dra7xx_rtcss_hwmod, | ||
2584 | .clk = "l4_root_clk_div", | ||
2585 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
2586 | }; | ||
2587 | |||
2338 | static struct omap_hwmod_addr_space dra7xx_sata_addrs[] = { | 2588 | static struct omap_hwmod_addr_space dra7xx_sata_addrs[] = { |
2339 | { | 2589 | { |
2340 | .name = "sysc", | 2590 | .name = "sysc", |
@@ -2633,6 +2883,8 @@ static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = { | |||
2633 | &dra7xx_l4_wkup__ctrl_module_wkup, | 2883 | &dra7xx_l4_wkup__ctrl_module_wkup, |
2634 | &dra7xx_l4_wkup__dcan1, | 2884 | &dra7xx_l4_wkup__dcan1, |
2635 | &dra7xx_l4_per2__dcan2, | 2885 | &dra7xx_l4_per2__dcan2, |
2886 | &dra7xx_l4_per2__cpgmac0, | ||
2887 | &dra7xx_gmac__mdio, | ||
2636 | &dra7xx_l4_cfg__dma_system, | 2888 | &dra7xx_l4_cfg__dma_system, |
2637 | &dra7xx_l3_main_1__dss, | 2889 | &dra7xx_l3_main_1__dss, |
2638 | &dra7xx_l3_main_1__dispc, | 2890 | &dra7xx_l3_main_1__dispc, |
@@ -2663,7 +2915,15 @@ static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = { | |||
2663 | &dra7xx_l4_per1__mmc4, | 2915 | &dra7xx_l4_per1__mmc4, |
2664 | &dra7xx_l4_cfg__mpu, | 2916 | &dra7xx_l4_cfg__mpu, |
2665 | &dra7xx_l4_cfg__ocp2scp1, | 2917 | &dra7xx_l4_cfg__ocp2scp1, |
2918 | &dra7xx_l4_cfg__ocp2scp3, | ||
2919 | &dra7xx_l3_main_1__pcie1, | ||
2920 | &dra7xx_l4_cfg__pcie1, | ||
2921 | &dra7xx_l3_main_1__pcie2, | ||
2922 | &dra7xx_l4_cfg__pcie2, | ||
2923 | &dra7xx_l4_cfg__pcie1_phy, | ||
2924 | &dra7xx_l4_cfg__pcie2_phy, | ||
2666 | &dra7xx_l3_main_1__qspi, | 2925 | &dra7xx_l3_main_1__qspi, |
2926 | &dra7xx_l4_per3__rtcss, | ||
2667 | &dra7xx_l4_cfg__sata, | 2927 | &dra7xx_l4_cfg__sata, |
2668 | &dra7xx_l4_cfg__smartreflex_core, | 2928 | &dra7xx_l4_cfg__smartreflex_core, |
2669 | &dra7xx_l4_cfg__smartreflex_mpu, | 2929 | &dra7xx_l4_cfg__smartreflex_mpu, |
diff --git a/arch/arm/mach-omap2/omap_hwmod_common_ipblock_data.c b/arch/arm/mach-omap2/omap_hwmod_common_ipblock_data.c new file mode 100644 index 000000000000..f21664da25a2 --- /dev/null +++ b/arch/arm/mach-omap2/omap_hwmod_common_ipblock_data.c | |||
@@ -0,0 +1,55 @@ | |||
1 | /* | ||
2 | * omap_hwmod_common_ipblock_data.c - common IP block data for OMAP2+ | ||
3 | * | ||
4 | * Copyright (C) 2011 Nokia Corporation | ||
5 | * Copyright (C) 2012 Texas Instruments, Inc. | ||
6 | * Paul Walmsley | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #include "omap_hwmod.h" | ||
14 | #include "omap_hwmod_common_data.h" | ||
15 | |||
16 | /* | ||
17 | * 'dss' class | ||
18 | * display sub-system | ||
19 | */ | ||
20 | |||
21 | static struct omap_hwmod_class_sysconfig omap2_dss_sysc = { | ||
22 | .rev_offs = 0x0000, | ||
23 | .sysc_offs = 0x0010, | ||
24 | .syss_offs = 0x0014, | ||
25 | .sysc_flags = (SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE | | ||
26 | SYSS_HAS_RESET_STATUS), | ||
27 | .sysc_fields = &omap_hwmod_sysc_type1, | ||
28 | }; | ||
29 | |||
30 | struct omap_hwmod_class omap2_dss_hwmod_class = { | ||
31 | .name = "dss", | ||
32 | .sysc = &omap2_dss_sysc, | ||
33 | .reset = omap_dss_reset, | ||
34 | }; | ||
35 | |||
36 | /* | ||
37 | * 'rfbi' class | ||
38 | * remote frame buffer interface | ||
39 | */ | ||
40 | |||
41 | static struct omap_hwmod_class_sysconfig omap2_rfbi_sysc = { | ||
42 | .rev_offs = 0x0000, | ||
43 | .sysc_offs = 0x0010, | ||
44 | .syss_offs = 0x0014, | ||
45 | .sysc_flags = (SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET | | ||
46 | SYSC_HAS_AUTOIDLE), | ||
47 | .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART), | ||
48 | .sysc_fields = &omap_hwmod_sysc_type1, | ||
49 | }; | ||
50 | |||
51 | struct omap_hwmod_class omap2_rfbi_hwmod_class = { | ||
52 | .name = "rfbi", | ||
53 | .sysc = &omap2_rfbi_sysc, | ||
54 | }; | ||
55 | |||
diff --git a/arch/arm/mach-omap2/prcm43xx.h b/arch/arm/mach-omap2/prcm43xx.h index 7785be984edd..ad7b3e9977f8 100644 --- a/arch/arm/mach-omap2/prcm43xx.h +++ b/arch/arm/mach-omap2/prcm43xx.h | |||
@@ -142,5 +142,6 @@ | |||
142 | #define AM43XX_CM_PER_USBPHYOCP2SCP0_CLKCTRL_OFFSET 0x05B8 | 142 | #define AM43XX_CM_PER_USBPHYOCP2SCP0_CLKCTRL_OFFSET 0x05B8 |
143 | #define AM43XX_CM_PER_USB_OTG_SS1_CLKCTRL_OFFSET 0x0268 | 143 | #define AM43XX_CM_PER_USB_OTG_SS1_CLKCTRL_OFFSET 0x0268 |
144 | #define AM43XX_CM_PER_USBPHYOCP2SCP1_CLKCTRL_OFFSET 0x05C0 | 144 | #define AM43XX_CM_PER_USBPHYOCP2SCP1_CLKCTRL_OFFSET 0x05C0 |
145 | #define AM43XX_CM_PER_DSS_CLKCTRL_OFFSET 0x0a20 | ||
145 | 146 | ||
146 | #endif | 147 | #endif |
diff --git a/arch/arm/mach-omap2/prm7xx.h b/arch/arm/mach-omap2/prm7xx.h index d92a8404edc7..4bb50fbf29be 100644 --- a/arch/arm/mach-omap2/prm7xx.h +++ b/arch/arm/mach-omap2/prm7xx.h | |||
@@ -374,6 +374,10 @@ | |||
374 | #define DRA7XX_RM_L3INIT_IEEE1500_2_OCP_CONTEXT_OFFSET 0x007c | 374 | #define DRA7XX_RM_L3INIT_IEEE1500_2_OCP_CONTEXT_OFFSET 0x007c |
375 | #define DRA7XX_PM_L3INIT_SATA_WKDEP_OFFSET 0x0088 | 375 | #define DRA7XX_PM_L3INIT_SATA_WKDEP_OFFSET 0x0088 |
376 | #define DRA7XX_RM_L3INIT_SATA_CONTEXT_OFFSET 0x008c | 376 | #define DRA7XX_RM_L3INIT_SATA_CONTEXT_OFFSET 0x008c |
377 | #define DRA7XX_PM_L3INIT_PCIESS1_WKDEP_OFFSET 0x00b0 | ||
378 | #define DRA7XX_RM_L3INIT_PCIESS1_CONTEXT_OFFSET 0x00b4 | ||
379 | #define DRA7XX_PM_L3INIT_PCIESS2_WKDEP_OFFSET 0x00b8 | ||
380 | #define DRA7XX_RM_L3INIT_PCIESS2_CONTEXT_OFFSET 0x00bc | ||
377 | #define DRA7XX_RM_GMAC_GMAC_CONTEXT_OFFSET 0x00d4 | 381 | #define DRA7XX_RM_GMAC_GMAC_CONTEXT_OFFSET 0x00d4 |
378 | #define DRA7XX_RM_L3INIT_OCP2SCP1_CONTEXT_OFFSET 0x00e4 | 382 | #define DRA7XX_RM_L3INIT_OCP2SCP1_CONTEXT_OFFSET 0x00e4 |
379 | #define DRA7XX_RM_L3INIT_OCP2SCP3_CONTEXT_OFFSET 0x00ec | 383 | #define DRA7XX_RM_L3INIT_OCP2SCP3_CONTEXT_OFFSET 0x00ec |