aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-12-20 19:42:36 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2014-12-20 19:42:36 -0500
commitbfc7249cc293deac8f2678b7ec3d2407b68c0a33 (patch)
tree6a73d533cc72fbc583ca1af46defe7d3c26d2751 /arch/arm/mach-omap2
parenta4e1328a9d20ccf4a9e5a19fce172e6deb2a33e2 (diff)
parentf1e9203e2366164b832d8a6ce10134de8c575178 (diff)
Merge tag 'clk-for-linus-3.19' of git://git.linaro.org/people/mike.turquette/linux
Pull clk framework updates from Mike Turquette: "This is much later than usual due to several last minute bugs that had to be addressed. As usual the majority of changes are new drivers and modifications to existing drivers. The core recieved many fixes along with the groundwork for several large changes coming in the future which will better parition clock providers from clock consumers" * tag 'clk-for-linus-3.19' of git://git.linaro.org/people/mike.turquette/linux: (86 commits) clk: samsung: Fix Exynos 5420 pinctrl setup and clock disable failure due to domain being gated ARM: OMAP3: clock: fix boot breakage in legacy mode ARM: OMAP2+: clock: fix DPLL code to use new determine rate APIs clk: Really fix deadlock with mmap_sem clk: mmp: fix sparse non static symbol warning clk: Change clk_ops->determine_rate to return a clk_hw as the best parent clk: change clk_debugfs_add_file to take a struct clk_hw clk: Don't expose __clk_get_accuracy clk: Don't try to use a struct clk* after it could have been freed clk: Remove unused function __clk_get_prepare_count clk: samsung: Fix double add of syscore ops after driver rebind clk: samsung: exynos4: set parent of sclk_hdmiphy to hdmi clk: samsung: exynos4415: Fix build with PM_SLEEP disabled clk: samsung: remove unnecessary inclusion of header files from clk.h clk: samsung: remove unnecessary CONFIG_OF from clk.c clk: samsung: Spelling s/bwtween/between/ clk: rockchip: Add support for the mmc clock phases using the framework clk: rockchip: add bindings for the mmc clocks clk: rockchip: rk3288 export i2s0_clkout for use in DT clk: rockchip: use clock ID for DMC (memory controller) on rk3288 ...
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r--arch/arm/mach-omap2/cclock3xxx_data.c23
-rw-r--r--arch/arm/mach-omap2/dpll3xxx.c6
-rw-r--r--arch/arm/mach-omap2/dpll44xx.c6
3 files changed, 20 insertions, 15 deletions
diff --git a/arch/arm/mach-omap2/cclock3xxx_data.c b/arch/arm/mach-omap2/cclock3xxx_data.c
index 5c5ebb4db5f7..644ff3231bb8 100644
--- a/arch/arm/mach-omap2/cclock3xxx_data.c
+++ b/arch/arm/mach-omap2/cclock3xxx_data.c
@@ -111,6 +111,7 @@ static struct clk dpll3_ck;
111 111
112static const char *dpll3_ck_parent_names[] = { 112static const char *dpll3_ck_parent_names[] = {
113 "sys_ck", 113 "sys_ck",
114 "sys_ck",
114}; 115};
115 116
116static const struct clk_ops dpll3_ck_ops = { 117static const struct clk_ops dpll3_ck_ops = {
@@ -733,6 +734,10 @@ static const char *corex2_fck_parent_names[] = {
733DEFINE_STRUCT_CLK_HW_OMAP(corex2_fck, NULL); 734DEFINE_STRUCT_CLK_HW_OMAP(corex2_fck, NULL);
734DEFINE_STRUCT_CLK(corex2_fck, corex2_fck_parent_names, core_ck_ops); 735DEFINE_STRUCT_CLK(corex2_fck, corex2_fck_parent_names, core_ck_ops);
735 736
737static const char *cpefuse_fck_parent_names[] = {
738 "sys_ck",
739};
740
736static struct clk cpefuse_fck; 741static struct clk cpefuse_fck;
737 742
738static struct clk_hw_omap cpefuse_fck_hw = { 743static struct clk_hw_omap cpefuse_fck_hw = {
@@ -744,7 +749,7 @@ static struct clk_hw_omap cpefuse_fck_hw = {
744 .clkdm_name = "core_l4_clkdm", 749 .clkdm_name = "core_l4_clkdm",
745}; 750};
746 751
747DEFINE_STRUCT_CLK(cpefuse_fck, dpll3_ck_parent_names, aes2_ick_ops); 752DEFINE_STRUCT_CLK(cpefuse_fck, cpefuse_fck_parent_names, aes2_ick_ops);
748 753
749static struct clk csi2_96m_fck; 754static struct clk csi2_96m_fck;
750 755
@@ -775,7 +780,7 @@ static struct clk_hw_omap d2d_26m_fck_hw = {
775 .clkdm_name = "d2d_clkdm", 780 .clkdm_name = "d2d_clkdm",
776}; 781};
777 782
778DEFINE_STRUCT_CLK(d2d_26m_fck, dpll3_ck_parent_names, aes2_ick_ops); 783DEFINE_STRUCT_CLK(d2d_26m_fck, cpefuse_fck_parent_names, aes2_ick_ops);
779 784
780static struct clk des1_ick; 785static struct clk des1_ick;
781 786
@@ -1046,7 +1051,7 @@ static struct clk_hw_omap dss2_alwon_fck_hw = {
1046 .clkdm_name = "dss_clkdm", 1051 .clkdm_name = "dss_clkdm",
1047}; 1052};
1048 1053
1049DEFINE_STRUCT_CLK(dss2_alwon_fck, dpll3_ck_parent_names, aes2_ick_ops); 1054DEFINE_STRUCT_CLK(dss2_alwon_fck, cpefuse_fck_parent_names, aes2_ick_ops);
1050 1055
1051static struct clk dss_96m_fck; 1056static struct clk dss_96m_fck;
1052 1057
@@ -1368,7 +1373,7 @@ DEFINE_STRUCT_CLK(gpio1_dbck, gpio1_dbck_parent_names, aes2_ick_ops);
1368static struct clk wkup_l4_ick; 1373static struct clk wkup_l4_ick;
1369 1374
1370DEFINE_STRUCT_CLK_HW_OMAP(wkup_l4_ick, "wkup_clkdm"); 1375DEFINE_STRUCT_CLK_HW_OMAP(wkup_l4_ick, "wkup_clkdm");
1371DEFINE_STRUCT_CLK(wkup_l4_ick, dpll3_ck_parent_names, core_l4_ick_ops); 1376DEFINE_STRUCT_CLK(wkup_l4_ick, cpefuse_fck_parent_names, core_l4_ick_ops);
1372 1377
1373static struct clk gpio1_ick; 1378static struct clk gpio1_ick;
1374 1379
@@ -1862,7 +1867,7 @@ static struct clk_hw_omap hecc_ck_hw = {
1862 .clkdm_name = "core_l3_clkdm", 1867 .clkdm_name = "core_l3_clkdm",
1863}; 1868};
1864 1869
1865DEFINE_STRUCT_CLK(hecc_ck, dpll3_ck_parent_names, aes2_ick_ops); 1870DEFINE_STRUCT_CLK(hecc_ck, cpefuse_fck_parent_names, aes2_ick_ops);
1866 1871
1867static struct clk hsotgusb_fck_am35xx; 1872static struct clk hsotgusb_fck_am35xx;
1868 1873
@@ -1875,7 +1880,7 @@ static struct clk_hw_omap hsotgusb_fck_am35xx_hw = {
1875 .clkdm_name = "core_l3_clkdm", 1880 .clkdm_name = "core_l3_clkdm",
1876}; 1881};
1877 1882
1878DEFINE_STRUCT_CLK(hsotgusb_fck_am35xx, dpll3_ck_parent_names, aes2_ick_ops); 1883DEFINE_STRUCT_CLK(hsotgusb_fck_am35xx, cpefuse_fck_parent_names, aes2_ick_ops);
1879 1884
1880static struct clk hsotgusb_ick_3430es1; 1885static struct clk hsotgusb_ick_3430es1;
1881 1886
@@ -2411,7 +2416,7 @@ static struct clk_hw_omap modem_fck_hw = {
2411 .clkdm_name = "d2d_clkdm", 2416 .clkdm_name = "d2d_clkdm",
2412}; 2417};
2413 2418
2414DEFINE_STRUCT_CLK(modem_fck, dpll3_ck_parent_names, aes2_ick_ops); 2419DEFINE_STRUCT_CLK(modem_fck, cpefuse_fck_parent_names, aes2_ick_ops);
2415 2420
2416static struct clk mspro_fck; 2421static struct clk mspro_fck;
2417 2422
@@ -2710,7 +2715,7 @@ static struct clk_hw_omap sr1_fck_hw = {
2710 .clkdm_name = "wkup_clkdm", 2715 .clkdm_name = "wkup_clkdm",
2711}; 2716};
2712 2717
2713DEFINE_STRUCT_CLK(sr1_fck, dpll3_ck_parent_names, aes2_ick_ops); 2718DEFINE_STRUCT_CLK(sr1_fck, cpefuse_fck_parent_names, aes2_ick_ops);
2714 2719
2715static struct clk sr2_fck; 2720static struct clk sr2_fck;
2716 2721
@@ -2724,7 +2729,7 @@ static struct clk_hw_omap sr2_fck_hw = {
2724 .clkdm_name = "wkup_clkdm", 2729 .clkdm_name = "wkup_clkdm",
2725}; 2730};
2726 2731
2727DEFINE_STRUCT_CLK(sr2_fck, dpll3_ck_parent_names, aes2_ick_ops); 2732DEFINE_STRUCT_CLK(sr2_fck, cpefuse_fck_parent_names, aes2_ick_ops);
2728 2733
2729static struct clk sr_l4_ick; 2734static struct clk sr_l4_ick;
2730 2735
diff --git a/arch/arm/mach-omap2/dpll3xxx.c b/arch/arm/mach-omap2/dpll3xxx.c
index 20e120d071dd..c2da2a0fe5ad 100644
--- a/arch/arm/mach-omap2/dpll3xxx.c
+++ b/arch/arm/mach-omap2/dpll3xxx.c
@@ -474,7 +474,7 @@ void omap3_noncore_dpll_disable(struct clk_hw *hw)
474 */ 474 */
475long omap3_noncore_dpll_determine_rate(struct clk_hw *hw, unsigned long rate, 475long omap3_noncore_dpll_determine_rate(struct clk_hw *hw, unsigned long rate,
476 unsigned long *best_parent_rate, 476 unsigned long *best_parent_rate,
477 struct clk **best_parent_clk) 477 struct clk_hw **best_parent_clk)
478{ 478{
479 struct clk_hw_omap *clk = to_clk_hw_omap(hw); 479 struct clk_hw_omap *clk = to_clk_hw_omap(hw);
480 struct dpll_data *dd; 480 struct dpll_data *dd;
@@ -488,10 +488,10 @@ long omap3_noncore_dpll_determine_rate(struct clk_hw *hw, unsigned long rate,
488 488
489 if (__clk_get_rate(dd->clk_bypass) == rate && 489 if (__clk_get_rate(dd->clk_bypass) == rate &&
490 (dd->modes & (1 << DPLL_LOW_POWER_BYPASS))) { 490 (dd->modes & (1 << DPLL_LOW_POWER_BYPASS))) {
491 *best_parent_clk = dd->clk_bypass; 491 *best_parent_clk = __clk_get_hw(dd->clk_bypass);
492 } else { 492 } else {
493 rate = omap2_dpll_round_rate(hw, rate, best_parent_rate); 493 rate = omap2_dpll_round_rate(hw, rate, best_parent_rate);
494 *best_parent_clk = dd->clk_ref; 494 *best_parent_clk = __clk_get_hw(dd->clk_ref);
495 } 495 }
496 496
497 *best_parent_rate = rate; 497 *best_parent_rate = rate;
diff --git a/arch/arm/mach-omap2/dpll44xx.c b/arch/arm/mach-omap2/dpll44xx.c
index 535822fcf4bb..0e58e5a85d53 100644
--- a/arch/arm/mach-omap2/dpll44xx.c
+++ b/arch/arm/mach-omap2/dpll44xx.c
@@ -223,7 +223,7 @@ out:
223 */ 223 */
224long omap4_dpll_regm4xen_determine_rate(struct clk_hw *hw, unsigned long rate, 224long omap4_dpll_regm4xen_determine_rate(struct clk_hw *hw, unsigned long rate,
225 unsigned long *best_parent_rate, 225 unsigned long *best_parent_rate,
226 struct clk **best_parent_clk) 226 struct clk_hw **best_parent_clk)
227{ 227{
228 struct clk_hw_omap *clk = to_clk_hw_omap(hw); 228 struct clk_hw_omap *clk = to_clk_hw_omap(hw);
229 struct dpll_data *dd; 229 struct dpll_data *dd;
@@ -237,11 +237,11 @@ long omap4_dpll_regm4xen_determine_rate(struct clk_hw *hw, unsigned long rate,
237 237
238 if (__clk_get_rate(dd->clk_bypass) == rate && 238 if (__clk_get_rate(dd->clk_bypass) == rate &&
239 (dd->modes & (1 << DPLL_LOW_POWER_BYPASS))) { 239 (dd->modes & (1 << DPLL_LOW_POWER_BYPASS))) {
240 *best_parent_clk = dd->clk_bypass; 240 *best_parent_clk = __clk_get_hw(dd->clk_bypass);
241 } else { 241 } else {
242 rate = omap4_dpll_regm4xen_round_rate(hw, rate, 242 rate = omap4_dpll_regm4xen_round_rate(hw, rate,
243 best_parent_rate); 243 best_parent_rate);
244 *best_parent_clk = dd->clk_ref; 244 *best_parent_clk = __clk_get_hw(dd->clk_ref);
245 } 245 }
246 246
247 *best_parent_rate = rate; 247 *best_parent_rate = rate;