diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-03 14:54:50 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-03 14:54:50 -0400 |
commit | 92295f632cefbdf15d46e9ac5f0fc3cfade35259 (patch) | |
tree | 5b3820d4ed135ccbef540781d99a46137959bbb6 /drivers/clk/samsung | |
parent | 750b2d7b93f2ba19f4f238cc641bda22fe07c155 (diff) | |
parent | 45e3ec3784aec0d194740b75b547bfabca448ff3 (diff) |
Merge tag 'clk-for-linus-3.11' of git://git.linaro.org/people/mturquette/linux
Pull clock framework updates from Mike Turquette:
"The common clock framework changes for 3.11 include new clock drivers
across several different platforms and architectures, fixes to
existing drivers, a MAINTAINERS file fix and improvements to the basic
clock types that allow them to be of use to more platforms than before.
Only a few fixes to the core framework are included with most all of
the changes landing in the various clock drivers themselves."
* tag 'clk-for-linus-3.11' of git://git.linaro.org/people/mturquette/linux: (55 commits)
clk: tegra: fix ifdef for tegra_periph_reset_assert inline
clk: tegra: provide tegra_periph_reset_assert alternative
clk: exynos4: Fix clock aliases for cpufreq related clocks
clk: samsung: Add MUX_FA macro to pass flag and alias
clk: add support for Rockchip gate clocks
clk: vexpress: Make the clock drivers directly available for arm64
clk: vexpress: Use full node name to identify individual clocks
clk: tegra: T114: add DFLL DVCO reset control
clk: tegra: T114: add DFLL source clocks
clk: tegra: T114: add FCPU clock shaper programming, needed by the DFLL
clk: gate: add CLK_GATE_HIWORD_MASK
clk: divider: add CLK_DIVIDER_HIWORD_MASK flag
clk: mux: add CLK_MUX_HIWORD_MASK
clk: Always notify whole subtree when reparenting
MAINTAINERS: make drivers/clk entry match subdirs
clk: honor CLK_GET_RATE_NOCACHE in clk_set_rate
clk: use clk_get_rate() for debugfs
clk: tegra: Use override bits when needed
clk: tegra: override bits for Tegra30 PLLM
clk: tegra: override bits for Tegra114 PLLM
...
Diffstat (limited to 'drivers/clk/samsung')
-rw-r--r-- | drivers/clk/samsung/clk-exynos4.c | 21 | ||||
-rw-r--r-- | drivers/clk/samsung/clk.h | 3 |
2 files changed, 14 insertions, 10 deletions
diff --git a/drivers/clk/samsung/clk-exynos4.c b/drivers/clk/samsung/clk-exynos4.c index addc738a06fb..1bdb882c845b 100644 --- a/drivers/clk/samsung/clk-exynos4.c +++ b/drivers/clk/samsung/clk-exynos4.c | |||
@@ -356,8 +356,8 @@ struct samsung_fixed_rate_clock exynos4210_fixed_rate_clks[] __initdata = { | |||
356 | 356 | ||
357 | /* list of mux clocks supported in all exynos4 soc's */ | 357 | /* list of mux clocks supported in all exynos4 soc's */ |
358 | struct samsung_mux_clock exynos4_mux_clks[] __initdata = { | 358 | struct samsung_mux_clock exynos4_mux_clks[] __initdata = { |
359 | MUX_F(mout_apll, "mout_apll", mout_apll_p, SRC_CPU, 0, 1, | 359 | MUX_FA(mout_apll, "mout_apll", mout_apll_p, SRC_CPU, 0, 1, |
360 | CLK_SET_RATE_PARENT, 0), | 360 | CLK_SET_RATE_PARENT, 0, "mout_apll"), |
361 | MUX(none, "mout_hdmi", mout_hdmi_p, SRC_TV, 0, 1), | 361 | MUX(none, "mout_hdmi", mout_hdmi_p, SRC_TV, 0, 1), |
362 | MUX(none, "mout_mfc1", sclk_evpll_p, SRC_MFC, 4, 1), | 362 | MUX(none, "mout_mfc1", sclk_evpll_p, SRC_MFC, 4, 1), |
363 | MUX(none, "mout_mfc", mout_mfc_p, SRC_MFC, 8, 1), | 363 | MUX(none, "mout_mfc", mout_mfc_p, SRC_MFC, 8, 1), |
@@ -385,9 +385,9 @@ struct samsung_mux_clock exynos4210_mux_clks[] __initdata = { | |||
385 | MUX(none, "mout_g2d", mout_g2d_p, E4210_SRC_IMAGE, 8, 1), | 385 | MUX(none, "mout_g2d", mout_g2d_p, E4210_SRC_IMAGE, 8, 1), |
386 | MUX(none, "mout_fimd1", group1_p4210, E4210_SRC_LCD1, 0, 4), | 386 | MUX(none, "mout_fimd1", group1_p4210, E4210_SRC_LCD1, 0, 4), |
387 | MUX(none, "mout_mipi1", group1_p4210, E4210_SRC_LCD1, 12, 4), | 387 | MUX(none, "mout_mipi1", group1_p4210, E4210_SRC_LCD1, 12, 4), |
388 | MUX_A(sclk_mpll, "sclk_mpll", mout_mpll_p, SRC_CPU, 8, 1, "sclk_mpll"), | 388 | MUX_A(sclk_mpll, "sclk_mpll", mout_mpll_p, SRC_CPU, 8, 1, "mout_mpll"), |
389 | MUX_A(mout_core, "mout_core", mout_core_p4210, | 389 | MUX_A(mout_core, "mout_core", mout_core_p4210, |
390 | SRC_CPU, 16, 1, "mout_core"), | 390 | SRC_CPU, 16, 1, "moutcore"), |
391 | MUX_A(sclk_vpll, "sclk_vpll", sclk_vpll_p4210, | 391 | MUX_A(sclk_vpll, "sclk_vpll", sclk_vpll_p4210, |
392 | SRC_TOP0, 8, 1, "sclk_vpll"), | 392 | SRC_TOP0, 8, 1, "sclk_vpll"), |
393 | MUX(mout_fimc0, "mout_fimc0", group1_p4210, SRC_CAM, 0, 4), | 393 | MUX(mout_fimc0, "mout_fimc0", group1_p4210, SRC_CAM, 0, 4), |
@@ -424,8 +424,8 @@ struct samsung_mux_clock exynos4210_mux_clks[] __initdata = { | |||
424 | 424 | ||
425 | /* list of mux clocks supported in exynos4x12 soc */ | 425 | /* list of mux clocks supported in exynos4x12 soc */ |
426 | struct samsung_mux_clock exynos4x12_mux_clks[] __initdata = { | 426 | struct samsung_mux_clock exynos4x12_mux_clks[] __initdata = { |
427 | MUX(mout_mpll_user_c, "mout_mpll_user_c", mout_mpll_user_p4x12, | 427 | MUX_A(mout_mpll_user_c, "mout_mpll_user_c", mout_mpll_user_p4x12, |
428 | SRC_CPU, 24, 1), | 428 | SRC_CPU, 24, 1, "mout_mpll"), |
429 | MUX(none, "mout_aclk266_gps", aclk_p4412, SRC_TOP1, 4, 1), | 429 | MUX(none, "mout_aclk266_gps", aclk_p4412, SRC_TOP1, 4, 1), |
430 | MUX(none, "mout_aclk400_mcuisp", aclk_p4412, SRC_TOP1, 8, 1), | 430 | MUX(none, "mout_aclk400_mcuisp", aclk_p4412, SRC_TOP1, 8, 1), |
431 | MUX(mout_mpll_user_t, "mout_mpll_user_t", mout_mpll_user_p4x12, | 431 | MUX(mout_mpll_user_t, "mout_mpll_user_t", mout_mpll_user_p4x12, |
@@ -449,7 +449,8 @@ struct samsung_mux_clock exynos4x12_mux_clks[] __initdata = { | |||
449 | SRC_DMC, 12, 1, "sclk_mpll"), | 449 | SRC_DMC, 12, 1, "sclk_mpll"), |
450 | MUX_A(sclk_vpll, "sclk_vpll", mout_vpll_p, | 450 | MUX_A(sclk_vpll, "sclk_vpll", mout_vpll_p, |
451 | SRC_TOP0, 8, 1, "sclk_vpll"), | 451 | SRC_TOP0, 8, 1, "sclk_vpll"), |
452 | MUX(mout_core, "mout_core", mout_core_p4x12, SRC_CPU, 16, 1), | 452 | MUX_A(mout_core, "mout_core", mout_core_p4x12, |
453 | SRC_CPU, 16, 1, "moutcore"), | ||
453 | MUX(mout_fimc0, "mout_fimc0", group1_p4x12, SRC_CAM, 0, 4), | 454 | MUX(mout_fimc0, "mout_fimc0", group1_p4x12, SRC_CAM, 0, 4), |
454 | MUX(mout_fimc1, "mout_fimc1", group1_p4x12, SRC_CAM, 4, 4), | 455 | MUX(mout_fimc1, "mout_fimc1", group1_p4x12, SRC_CAM, 4, 4), |
455 | MUX(mout_fimc2, "mout_fimc2", group1_p4x12, SRC_CAM, 8, 4), | 456 | MUX(mout_fimc2, "mout_fimc2", group1_p4x12, SRC_CAM, 8, 4), |
@@ -537,7 +538,7 @@ struct samsung_div_clock exynos4_div_clks[] __initdata = { | |||
537 | DIV(none, "div_spi_pre2", "div_spi2", DIV_PERIL2, 8, 8), | 538 | DIV(none, "div_spi_pre2", "div_spi2", DIV_PERIL2, 8, 8), |
538 | DIV(none, "div_audio1", "mout_audio1", DIV_PERIL4, 0, 4), | 539 | DIV(none, "div_audio1", "mout_audio1", DIV_PERIL4, 0, 4), |
539 | DIV(none, "div_audio2", "mout_audio2", DIV_PERIL4, 16, 4), | 540 | DIV(none, "div_audio2", "mout_audio2", DIV_PERIL4, 16, 4), |
540 | DIV_A(arm_clk, "arm_clk", "div_core2", DIV_CPU0, 28, 3, "arm_clk"), | 541 | DIV_A(arm_clk, "arm_clk", "div_core2", DIV_CPU0, 28, 3, "armclk"), |
541 | DIV_A(sclk_apll, "sclk_apll", "mout_apll", | 542 | DIV_A(sclk_apll, "sclk_apll", "mout_apll", |
542 | DIV_CPU0, 24, 3, "sclk_apll"), | 543 | DIV_CPU0, 24, 3, "sclk_apll"), |
543 | DIV_F(none, "div_mipi_pre0", "div_mipi0", DIV_LCD0, 20, 4, | 544 | DIV_F(none, "div_mipi_pre0", "div_mipi0", DIV_LCD0, 20, 4, |
@@ -1070,9 +1071,9 @@ void __init exynos4_clk_init(struct device_node *np, enum exynos4_soc exynos4_so | |||
1070 | pr_info("%s clocks: sclk_apll = %ld, sclk_mpll = %ld\n" | 1071 | pr_info("%s clocks: sclk_apll = %ld, sclk_mpll = %ld\n" |
1071 | "\tsclk_epll = %ld, sclk_vpll = %ld, arm_clk = %ld\n", | 1072 | "\tsclk_epll = %ld, sclk_vpll = %ld, arm_clk = %ld\n", |
1072 | exynos4_soc == EXYNOS4210 ? "Exynos4210" : "Exynos4x12", | 1073 | exynos4_soc == EXYNOS4210 ? "Exynos4210" : "Exynos4x12", |
1073 | _get_rate("sclk_apll"), _get_rate("sclk_mpll"), | 1074 | _get_rate("sclk_apll"), _get_rate("mout_mpll"), |
1074 | _get_rate("sclk_epll"), _get_rate("sclk_vpll"), | 1075 | _get_rate("sclk_epll"), _get_rate("sclk_vpll"), |
1075 | _get_rate("arm_clk")); | 1076 | _get_rate("armclk")); |
1076 | } | 1077 | } |
1077 | 1078 | ||
1078 | 1079 | ||
diff --git a/drivers/clk/samsung/clk.h b/drivers/clk/samsung/clk.h index e4ad6ea9aa76..2f7dba20ced8 100644 --- a/drivers/clk/samsung/clk.h +++ b/drivers/clk/samsung/clk.h | |||
@@ -144,6 +144,9 @@ struct samsung_mux_clock { | |||
144 | #define MUX_F(_id, cname, pnames, o, s, w, f, mf) \ | 144 | #define MUX_F(_id, cname, pnames, o, s, w, f, mf) \ |
145 | __MUX(_id, NULL, cname, pnames, o, s, w, f, mf, NULL) | 145 | __MUX(_id, NULL, cname, pnames, o, s, w, f, mf, NULL) |
146 | 146 | ||
147 | #define MUX_FA(_id, cname, pnames, o, s, w, f, mf, a) \ | ||
148 | __MUX(_id, NULL, cname, pnames, o, s, w, f, mf, a) | ||
149 | |||
147 | /** | 150 | /** |
148 | * @id: platform specific id of the clock. | 151 | * @id: platform specific id of the clock. |
149 | * struct samsung_div_clock: information about div clock | 152 | * struct samsung_div_clock: information about div clock |