diff options
author | Paul Walmsley <paul@pwsan.com> | 2011-02-16 17:38:38 -0500 |
---|---|---|
committer | Paul Walmsley <paul@pwsan.com> | 2011-03-07 22:19:39 -0500 |
commit | 19c1c0ce9ddc45fe8f84b6cf12ba9dbecd7b1aa1 (patch) | |
tree | cae5b8789dbd3a6f486c5eed7b06f352554f69bd /arch/arm | |
parent | 3f9cfd3a47a07c93ff00a1a4ca067ada87e4076a (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.c | 33 | ||||
-rw-r--r-- | arch/arm/mach-omap2/clock2430_data.c | 37 |
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 | ||
829 | static 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[] = { | |||
847 | static struct clk gpt1_ick = { | 855 | static 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 = { | |||
1300 | static struct clk gpios_ick = { | 1308 | static 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 = { | |||
1320 | static struct clk mpu_wdt_ick = { | 1328 | static 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 = { | |||
1340 | static struct clk sync_32k_ick = { | 1348 | static 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 = { | |||
1351 | static struct clk wdt1_ick = { | 1359 | static 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 = { | |||
1361 | static struct clk omapctrl_ick = { | 1369 | static 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 | ||
817 | static 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[] = { | |||
835 | static struct clk gpt1_ick = { | 843 | static 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 = { | |||
1380 | static struct clk gpios_ick = { | 1388 | static 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 = { | |||
1400 | static struct clk mpu_wdt_ick = { | 1408 | static 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 = { | |||
1420 | static struct clk sync_32k_ick = { | 1428 | static 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 = { | |||
1431 | static struct clk wdt1_ick = { | 1439 | static 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 = { | |||
1441 | static struct clk omapctrl_ick = { | 1449 | static 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 = { | |||
1452 | static struct clk icr_ick = { | 1460 | static 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 */ |