aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap2/omap_hwmod_7xx_data.c')
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_7xx_data.c260
1 files changed, 260 insertions, 0 deletions
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 */
279static 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
290static struct omap_hwmod_class dra7xx_gmac_hwmod_class = {
291 .name = "gmac",
292 .sysc = &dra7xx_gmac_sysc,
293};
294
295static 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 */
314static struct omap_hwmod_class dra7xx_mdio_hwmod_class = {
315 .name = "davinci_mdio",
316};
317
318static 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 */
1260static 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
1279static struct omap_hwmod_class dra7xx_pcie_hwmod_class = {
1280 .name = "pcie",
1281};
1282
1283/* pcie1 */
1284static 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 */
1298static 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
1316static struct omap_hwmod_class dra7xx_pcie_phy_hwmod_class = {
1317 .name = "pcie-phy",
1318};
1319
1320/* pcie1 phy */
1321static 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 */
1336static 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 */
1387static 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
1395static struct omap_hwmod_class dra7xx_rtcss_hwmod_class = {
1396 .name = "rtcss",
1397 .sysc = &dra7xx_rtcss_sysc,
1398};
1399
1400/* rtcss */
1401static 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
2166static 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
2173static 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 */
1994static struct omap_hwmod_ocp_if dra7xx_l4_wkup__dcan1 = { 2180static 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 */
2507static 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 */
2515static 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 */
2523static 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 */
2531static 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 */
2539static 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 */
2547static 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 */
2555static 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
2320static struct omap_hwmod_addr_space dra7xx_qspi_addrs[] = { 2562static 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 */
2581static 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
2338static struct omap_hwmod_addr_space dra7xx_sata_addrs[] = { 2588static 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,