aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorPaul Walmsley <paul@pwsan.com>2011-02-16 17:38:38 -0500
committerPaul Walmsley <paul@pwsan.com>2011-03-07 22:19:39 -0500
commit19c1c0ce9ddc45fe8f84b6cf12ba9dbecd7b1aa1 (patch)
treecae5b8789dbd3a6f486c5eed7b06f352554f69bd /arch/arm
parent3f9cfd3a47a07c93ff00a1a4ca067ada87e4076a (diff)
OMAP2xxx: clock: fix interface clocks and clockdomains for modules in the WKUP domain
The parent of the interface clocks for GPTIMER1, MPU_WDT, SYNCTIMER_32K, SCM, WDT1, and the ICR (2430 only) were all listed as being l4_ck. This isn't accurate; these modules exist inside the WKUP domain, and the interface clock to these modules runs at the SYS_CLK rate rather than the CORE L4 rate. So, create a new clock "wu_l4_ick", similar to the OMAP3 "wkup_l4_ick", that serves as the parent for these clocks. Also, these clocks were listed as existing inside core_l4_clkdm; wkup_clkdm is probably more accurate. Signed-off-by: Paul Walmsley <paul@pwsan.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-omap2/clock2420_data.c33
-rw-r--r--arch/arm/mach-omap2/clock2430_data.c37
2 files changed, 44 insertions, 26 deletions
diff --git a/arch/arm/mach-omap2/clock2420_data.c b/arch/arm/mach-omap2/clock2420_data.c
index fd5ba90188be..6e9d20dc8649 100644
--- a/arch/arm/mach-omap2/clock2420_data.c
+++ b/arch/arm/mach-omap2/clock2420_data.c
@@ -826,6 +826,14 @@ static struct clk dss_54m_fck = { /* Alt clk used in power management */
826 .recalc = &followparent_recalc, 826 .recalc = &followparent_recalc,
827}; 827};
828 828
829static struct clk wu_l4_ick = {
830 .name = "wu_l4_ick",
831 .ops = &clkops_null,
832 .parent = &sys_ck,
833 .clkdm_name = "wkup_clkdm",
834 .recalc = &followparent_recalc,
835};
836
829/* 837/*
830 * CORE power domain ICLK & FCLK defines. 838 * CORE power domain ICLK & FCLK defines.
831 * Many of the these can have more than one possible parent. Entries 839 * Many of the these can have more than one possible parent. Entries
@@ -847,8 +855,8 @@ static const struct clksel omap24xx_gpt_clksel[] = {
847static struct clk gpt1_ick = { 855static struct clk gpt1_ick = {
848 .name = "gpt1_ick", 856 .name = "gpt1_ick",
849 .ops = &clkops_omap2_iclk_dflt_wait, 857 .ops = &clkops_omap2_iclk_dflt_wait,
850 .parent = &l4_ck, 858 .parent = &wu_l4_ick,
851 .clkdm_name = "core_l4_clkdm", 859 .clkdm_name = "wkup_clkdm",
852 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), 860 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN),
853 .enable_bit = OMAP24XX_EN_GPT1_SHIFT, 861 .enable_bit = OMAP24XX_EN_GPT1_SHIFT,
854 .recalc = &followparent_recalc, 862 .recalc = &followparent_recalc,
@@ -1300,8 +1308,8 @@ static struct clk uart3_fck = {
1300static struct clk gpios_ick = { 1308static struct clk gpios_ick = {
1301 .name = "gpios_ick", 1309 .name = "gpios_ick",
1302 .ops = &clkops_omap2_iclk_dflt_wait, 1310 .ops = &clkops_omap2_iclk_dflt_wait,
1303 .parent = &l4_ck, 1311 .parent = &wu_l4_ick,
1304 .clkdm_name = "core_l4_clkdm", 1312 .clkdm_name = "wkup_clkdm",
1305 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), 1313 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN),
1306 .enable_bit = OMAP24XX_EN_GPIOS_SHIFT, 1314 .enable_bit = OMAP24XX_EN_GPIOS_SHIFT,
1307 .recalc = &followparent_recalc, 1315 .recalc = &followparent_recalc,
@@ -1320,8 +1328,8 @@ static struct clk gpios_fck = {
1320static struct clk mpu_wdt_ick = { 1328static struct clk mpu_wdt_ick = {
1321 .name = "mpu_wdt_ick", 1329 .name = "mpu_wdt_ick",
1322 .ops = &clkops_omap2_iclk_dflt_wait, 1330 .ops = &clkops_omap2_iclk_dflt_wait,
1323 .parent = &l4_ck, 1331 .parent = &wu_l4_ick,
1324 .clkdm_name = "core_l4_clkdm", 1332 .clkdm_name = "wkup_clkdm",
1325 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), 1333 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN),
1326 .enable_bit = OMAP24XX_EN_MPU_WDT_SHIFT, 1334 .enable_bit = OMAP24XX_EN_MPU_WDT_SHIFT,
1327 .recalc = &followparent_recalc, 1335 .recalc = &followparent_recalc,
@@ -1340,9 +1348,9 @@ static struct clk mpu_wdt_fck = {
1340static struct clk sync_32k_ick = { 1348static struct clk sync_32k_ick = {
1341 .name = "sync_32k_ick", 1349 .name = "sync_32k_ick",
1342 .ops = &clkops_omap2_iclk_dflt_wait, 1350 .ops = &clkops_omap2_iclk_dflt_wait,
1343 .parent = &l4_ck, 1351 .parent = &wu_l4_ick,
1352 .clkdm_name = "wkup_clkdm",
1344 .flags = ENABLE_ON_INIT, 1353 .flags = ENABLE_ON_INIT,
1345 .clkdm_name = "core_l4_clkdm",
1346 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), 1354 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN),
1347 .enable_bit = OMAP24XX_EN_32KSYNC_SHIFT, 1355 .enable_bit = OMAP24XX_EN_32KSYNC_SHIFT,
1348 .recalc = &followparent_recalc, 1356 .recalc = &followparent_recalc,
@@ -1351,8 +1359,8 @@ static struct clk sync_32k_ick = {
1351static struct clk wdt1_ick = { 1359static struct clk wdt1_ick = {
1352 .name = "wdt1_ick", 1360 .name = "wdt1_ick",
1353 .ops = &clkops_omap2_iclk_dflt_wait, 1361 .ops = &clkops_omap2_iclk_dflt_wait,
1354 .parent = &l4_ck, 1362 .parent = &wu_l4_ick,
1355 .clkdm_name = "core_l4_clkdm", 1363 .clkdm_name = "wkup_clkdm",
1356 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), 1364 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN),
1357 .enable_bit = OMAP24XX_EN_WDT1_SHIFT, 1365 .enable_bit = OMAP24XX_EN_WDT1_SHIFT,
1358 .recalc = &followparent_recalc, 1366 .recalc = &followparent_recalc,
@@ -1361,9 +1369,9 @@ static struct clk wdt1_ick = {
1361static struct clk omapctrl_ick = { 1369static struct clk omapctrl_ick = {
1362 .name = "omapctrl_ick", 1370 .name = "omapctrl_ick",
1363 .ops = &clkops_omap2_iclk_dflt_wait, 1371 .ops = &clkops_omap2_iclk_dflt_wait,
1364 .parent = &l4_ck, 1372 .parent = &wu_l4_ick,
1373 .clkdm_name = "wkup_clkdm",
1365 .flags = ENABLE_ON_INIT, 1374 .flags = ENABLE_ON_INIT,
1366 .clkdm_name = "core_l4_clkdm",
1367 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), 1375 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN),
1368 .enable_bit = OMAP24XX_EN_OMAPCTRL_SHIFT, 1376 .enable_bit = OMAP24XX_EN_OMAPCTRL_SHIFT,
1369 .recalc = &followparent_recalc, 1377 .recalc = &followparent_recalc,
@@ -1825,6 +1833,7 @@ static struct omap_clk omap2420_clks[] = {
1825 /* L4 domain clocks */ 1833 /* L4 domain clocks */
1826 CLK(NULL, "l4_ck", &l4_ck, CK_242X), 1834 CLK(NULL, "l4_ck", &l4_ck, CK_242X),
1827 CLK(NULL, "ssi_l4_ick", &ssi_l4_ick, CK_242X), 1835 CLK(NULL, "ssi_l4_ick", &ssi_l4_ick, CK_242X),
1836 CLK(NULL, "wu_l4_ick", &wu_l4_ick, CK_242X),
1828 /* virtual meta-group clock */ 1837 /* virtual meta-group clock */
1829 CLK(NULL, "virt_prcm_set", &virt_prcm_set, CK_242X), 1838 CLK(NULL, "virt_prcm_set", &virt_prcm_set, CK_242X),
1830 /* general l4 interface ck, multi-parent functional clk */ 1839 /* general l4 interface ck, multi-parent functional clk */
diff --git a/arch/arm/mach-omap2/clock2430_data.c b/arch/arm/mach-omap2/clock2430_data.c
index 0d069ef49e2d..3378dbf8bace 100644
--- a/arch/arm/mach-omap2/clock2430_data.c
+++ b/arch/arm/mach-omap2/clock2430_data.c
@@ -814,6 +814,14 @@ static struct clk dss_54m_fck = { /* Alt clk used in power management */
814 .recalc = &followparent_recalc, 814 .recalc = &followparent_recalc,
815}; 815};
816 816
817static struct clk wu_l4_ick = {
818 .name = "wu_l4_ick",
819 .ops = &clkops_null,
820 .parent = &sys_ck,
821 .clkdm_name = "wkup_clkdm",
822 .recalc = &followparent_recalc,
823};
824
817/* 825/*
818 * CORE power domain ICLK & FCLK defines. 826 * CORE power domain ICLK & FCLK defines.
819 * Many of the these can have more than one possible parent. Entries 827 * Many of the these can have more than one possible parent. Entries
@@ -835,8 +843,8 @@ static const struct clksel omap24xx_gpt_clksel[] = {
835static struct clk gpt1_ick = { 843static struct clk gpt1_ick = {
836 .name = "gpt1_ick", 844 .name = "gpt1_ick",
837 .ops = &clkops_omap2_iclk_dflt_wait, 845 .ops = &clkops_omap2_iclk_dflt_wait,
838 .parent = &l4_ck, 846 .parent = &wu_l4_ick,
839 .clkdm_name = "core_l4_clkdm", 847 .clkdm_name = "wkup_clkdm",
840 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), 848 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN),
841 .enable_bit = OMAP24XX_EN_GPT1_SHIFT, 849 .enable_bit = OMAP24XX_EN_GPT1_SHIFT,
842 .recalc = &followparent_recalc, 850 .recalc = &followparent_recalc,
@@ -1380,8 +1388,8 @@ static struct clk uart3_fck = {
1380static struct clk gpios_ick = { 1388static struct clk gpios_ick = {
1381 .name = "gpios_ick", 1389 .name = "gpios_ick",
1382 .ops = &clkops_omap2_iclk_dflt_wait, 1390 .ops = &clkops_omap2_iclk_dflt_wait,
1383 .parent = &l4_ck, 1391 .parent = &wu_l4_ick,
1384 .clkdm_name = "core_l4_clkdm", 1392 .clkdm_name = "wkup_clkdm",
1385 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), 1393 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN),
1386 .enable_bit = OMAP24XX_EN_GPIOS_SHIFT, 1394 .enable_bit = OMAP24XX_EN_GPIOS_SHIFT,
1387 .recalc = &followparent_recalc, 1395 .recalc = &followparent_recalc,
@@ -1400,8 +1408,8 @@ static struct clk gpios_fck = {
1400static struct clk mpu_wdt_ick = { 1408static struct clk mpu_wdt_ick = {
1401 .name = "mpu_wdt_ick", 1409 .name = "mpu_wdt_ick",
1402 .ops = &clkops_omap2_iclk_dflt_wait, 1410 .ops = &clkops_omap2_iclk_dflt_wait,
1403 .parent = &l4_ck, 1411 .parent = &wu_l4_ick,
1404 .clkdm_name = "core_l4_clkdm", 1412 .clkdm_name = "wkup_clkdm",
1405 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), 1413 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN),
1406 .enable_bit = OMAP24XX_EN_MPU_WDT_SHIFT, 1414 .enable_bit = OMAP24XX_EN_MPU_WDT_SHIFT,
1407 .recalc = &followparent_recalc, 1415 .recalc = &followparent_recalc,
@@ -1420,9 +1428,9 @@ static struct clk mpu_wdt_fck = {
1420static struct clk sync_32k_ick = { 1428static struct clk sync_32k_ick = {
1421 .name = "sync_32k_ick", 1429 .name = "sync_32k_ick",
1422 .ops = &clkops_omap2_iclk_dflt_wait, 1430 .ops = &clkops_omap2_iclk_dflt_wait,
1423 .parent = &l4_ck,
1424 .flags = ENABLE_ON_INIT, 1431 .flags = ENABLE_ON_INIT,
1425 .clkdm_name = "core_l4_clkdm", 1432 .parent = &wu_l4_ick,
1433 .clkdm_name = "wkup_clkdm",
1426 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), 1434 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN),
1427 .enable_bit = OMAP24XX_EN_32KSYNC_SHIFT, 1435 .enable_bit = OMAP24XX_EN_32KSYNC_SHIFT,
1428 .recalc = &followparent_recalc, 1436 .recalc = &followparent_recalc,
@@ -1431,8 +1439,8 @@ static struct clk sync_32k_ick = {
1431static struct clk wdt1_ick = { 1439static struct clk wdt1_ick = {
1432 .name = "wdt1_ick", 1440 .name = "wdt1_ick",
1433 .ops = &clkops_omap2_iclk_dflt_wait, 1441 .ops = &clkops_omap2_iclk_dflt_wait,
1434 .parent = &l4_ck, 1442 .parent = &wu_l4_ick,
1435 .clkdm_name = "core_l4_clkdm", 1443 .clkdm_name = "wkup_clkdm",
1436 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), 1444 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN),
1437 .enable_bit = OMAP24XX_EN_WDT1_SHIFT, 1445 .enable_bit = OMAP24XX_EN_WDT1_SHIFT,
1438 .recalc = &followparent_recalc, 1446 .recalc = &followparent_recalc,
@@ -1441,9 +1449,9 @@ static struct clk wdt1_ick = {
1441static struct clk omapctrl_ick = { 1449static struct clk omapctrl_ick = {
1442 .name = "omapctrl_ick", 1450 .name = "omapctrl_ick",
1443 .ops = &clkops_omap2_iclk_dflt_wait, 1451 .ops = &clkops_omap2_iclk_dflt_wait,
1444 .parent = &l4_ck,
1445 .flags = ENABLE_ON_INIT, 1452 .flags = ENABLE_ON_INIT,
1446 .clkdm_name = "core_l4_clkdm", 1453 .parent = &wu_l4_ick,
1454 .clkdm_name = "wkup_clkdm",
1447 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), 1455 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN),
1448 .enable_bit = OMAP24XX_EN_OMAPCTRL_SHIFT, 1456 .enable_bit = OMAP24XX_EN_OMAPCTRL_SHIFT,
1449 .recalc = &followparent_recalc, 1457 .recalc = &followparent_recalc,
@@ -1452,8 +1460,8 @@ static struct clk omapctrl_ick = {
1452static struct clk icr_ick = { 1460static struct clk icr_ick = {
1453 .name = "icr_ick", 1461 .name = "icr_ick",
1454 .ops = &clkops_omap2_iclk_dflt_wait, 1462 .ops = &clkops_omap2_iclk_dflt_wait,
1455 .parent = &l4_ck, 1463 .parent = &wu_l4_ick,
1456 .clkdm_name = "core_l4_clkdm", 1464 .clkdm_name = "wkup_clkdm",
1457 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN), 1465 .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN),
1458 .enable_bit = OMAP2430_EN_ICR_SHIFT, 1466 .enable_bit = OMAP2430_EN_ICR_SHIFT,
1459 .recalc = &followparent_recalc, 1467 .recalc = &followparent_recalc,
@@ -1914,6 +1922,7 @@ static struct omap_clk omap2430_clks[] = {
1914 /* L4 domain clocks */ 1922 /* L4 domain clocks */
1915 CLK(NULL, "l4_ck", &l4_ck, CK_243X), 1923 CLK(NULL, "l4_ck", &l4_ck, CK_243X),
1916 CLK(NULL, "ssi_l4_ick", &ssi_l4_ick, CK_243X), 1924 CLK(NULL, "ssi_l4_ick", &ssi_l4_ick, CK_243X),
1925 CLK(NULL, "wu_l4_ick", &wu_l4_ick, CK_243X),
1917 /* virtual meta-group clock */ 1926 /* virtual meta-group clock */
1918 CLK(NULL, "virt_prcm_set", &virt_prcm_set, CK_243X), 1927 CLK(NULL, "virt_prcm_set", &virt_prcm_set, CK_243X),
1919 /* general l4 interface ck, multi-parent functional clk */ 1928 /* general l4 interface ck, multi-parent functional clk */