Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1396471

[PATCH v2 04/22] clk: samsung: exynos5410: Provide fin_pll external fixed clock

From Krzysztof Kozlowski <krzk@kernel.org>
Newsgroups linux.kernel
Subject [PATCH v2 04/22] clk: samsung: exynos5410: Provide fin_pll external fixed clock
Date 2016-05-08 21:20 +0200
Message-ID <rwCpb-4eI-1@gated-at.bofh.it> (permalink)
References <rwCfv-49F-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Just like clock driver for Exynos542x/5800, provide the fixed clock here
so the clock bindings and their consumers would be consistent and
similar.

However a clock named "fin_pll" is already provided by generic
fixed-clock and it is both referenced in the clock driver (by name) and
in DT (by phandle). To make the transition smooth, first introduce the
new external fixed clock here under temporary, different name and switch
internal users to it.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
---
 drivers/clk/samsung/clk-exynos5410.c | 42 +++++++++++++++++++++++++-----------
 1 file changed, 29 insertions(+), 13 deletions(-)

diff --git a/drivers/clk/samsung/clk-exynos5410.c b/drivers/clk/samsung/clk-exynos5410.c
index d5d5dcabc4a9..35f2cb36f7ef 100644
--- a/drivers/clk/samsung/clk-exynos5410.c
+++ b/drivers/clk/samsung/clk-exynos5410.c
@@ -59,23 +59,29 @@ enum exynos5410_plls {
 };
 
 /* list of all parent clocks */
-PNAME(apll_p)		= { "fin_pll", "fout_apll", };
-PNAME(bpll_p)		= { "fin_pll", "fout_bpll", };
-PNAME(cpll_p)		= { "fin_pll", "fout_cpll" };
-PNAME(mpll_p)		= { "fin_pll", "fout_mpll", };
-PNAME(kpll_p)		= { "fin_pll", "fout_kpll", };
+PNAME(apll_p)		= { "fin_pll_new", "fout_apll", };
+PNAME(bpll_p)		= { "fin_pll_new", "fout_bpll", };
+PNAME(cpll_p)		= { "fin_pll_new", "fout_cpll" };
+PNAME(mpll_p)		= { "fin_pll_new", "fout_mpll", };
+PNAME(kpll_p)		= { "fin_pll_new", "fout_kpll", };
 
 PNAME(mout_cpu_p)	= { "mout_apll", "sclk_mpll", };
 PNAME(mout_kfc_p)	= { "mout_kpll", "sclk_mpll", };
 
-PNAME(mpll_user_p)	= { "fin_pll", "sclk_mpll", };
-PNAME(bpll_user_p)	= { "fin_pll", "sclk_bpll", };
+PNAME(mpll_user_p)	= { "fin_pll_new", "sclk_mpll", };
+PNAME(bpll_user_p)	= { "fin_pll_new", "sclk_bpll", };
 PNAME(mpll_bpll_p)	= { "sclk_mpll_muxed", "sclk_bpll_muxed", };
 
-PNAME(group2_p)		= { "fin_pll", "fin_pll", "none", "none",
+PNAME(group2_p)		= { "fin_pll_new", "fin_pll_new", "none", "none",
 			"none", "none", "sclk_mpll_bpll",
 			 "none", "none", "sclk_cpll" };
 
+/* fixed rate clocks generated outside the soc */
+static struct samsung_fixed_rate_clock
+		exynos5x_fixed_rate_ext_clks[] __initdata = {
+	FRATE(CLK_FIN_PLL, "fin_pll_new", NULL, 0, 0),
+};
+
 static struct samsung_mux_clock exynos5410_mux_clks[] __initdata = {
 	MUX(0, "mout_apll", apll_p, SRC_CPU, 0, 1),
 	MUX(0, "mout_cpu", mout_cpu_p, SRC_CPU, 16, 1),
@@ -168,18 +174,24 @@ static struct samsung_gate_clock exynos5410_gate_clks[] __initdata = {
 };
 
 static struct samsung_pll_clock exynos5410_plls[nr_plls] __initdata = {
-	[apll] = PLL(pll_35xx, CLK_FOUT_APLL, "fout_apll", "fin_pll", APLL_LOCK,
+	[apll] = PLL(pll_35xx, CLK_FOUT_APLL, "fout_apll", "fin_pll_new", APLL_LOCK,
 		APLL_CON0, NULL),
-	[cpll] = PLL(pll_35xx, CLK_FOUT_CPLL, "fout_cpll", "fin_pll", CPLL_LOCK,
+	[cpll] = PLL(pll_35xx, CLK_FOUT_CPLL, "fout_cpll", "fin_pll_new", CPLL_LOCK,
 		CPLL_CON0, NULL),
-	[mpll] = PLL(pll_35xx, CLK_FOUT_MPLL, "fout_mpll", "fin_pll", MPLL_LOCK,
+	[mpll] = PLL(pll_35xx, CLK_FOUT_MPLL, "fout_mpll", "fin_pll_new", MPLL_LOCK,
 		MPLL_CON0, NULL),
-	[bpll] = PLL(pll_35xx, CLK_FOUT_BPLL, "fout_bpll", "fin_pll", BPLL_LOCK,
+	[bpll] = PLL(pll_35xx, CLK_FOUT_BPLL, "fout_bpll", "fin_pll_new", BPLL_LOCK,
 		BPLL_CON0, NULL),
-	[kpll] = PLL(pll_35xx, CLK_FOUT_KPLL, "fout_kpll", "fin_pll", KPLL_LOCK,
+	[kpll] = PLL(pll_35xx, CLK_FOUT_KPLL, "fout_kpll", "fin_pll_new", KPLL_LOCK,
 		KPLL_CON0, NULL),
 };
 
+/* Same as in Exynos5420 */
+static const struct of_device_id ext_clk_match[] __initconst = {
+	{ .compatible = "samsung,exynos5420-oscclk", .data = (void *)0, },
+	{ },
+};
+
 /* register exynos5410 clocks */
 static void __init exynos5410_clk_init(struct device_node *np)
 {
@@ -192,6 +204,10 @@ static void __init exynos5410_clk_init(struct device_node *np)
 
 	ctx = samsung_clk_init(np, reg_base, CLK_NR_CLKS);
 
+	samsung_clk_of_register_fixed_ext(ctx, exynos5x_fixed_rate_ext_clks,
+			ARRAY_SIZE(exynos5x_fixed_rate_ext_clks),
+			ext_clk_match);
+
 	samsung_clk_register_pll(ctx, exynos5410_plls,
 			ARRAY_SIZE(exynos5410_plls), reg_base);
 
-- 
2.5.0

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v2 00/22] ARM: dts: exynos: Add initial support for Odroid XU Krzysztof Kozlowski <krzk@kernel.org> - 2016-05-08 21:10 +0200
  [PATCH v2 21/22] ARM: dts: exynos: Add USB to Exynos5410 Krzysztof Kozlowski <krzk@kernel.org> - 2016-05-08 21:10 +0200
  [PATCH v2 05/22] ARM: dts: exynos: Switch MCT node to a new fin_pll clock Krzysztof Kozlowski <krzk@kernel.org> - 2016-05-08 21:10 +0200
  [PATCH v2 06/22] ARM: dts: exynos: Remove old fixed-clock provider on SMDK5410 Krzysztof Kozlowski <krzk@kernel.org> - 2016-05-08 21:10 +0200
    Re: [PATCH v2 06/22] ARM: dts: exynos: Remove old fixed-clock  provider on SMDK5410 Javier Martinez Canillas <javier@osg.samsung.com> - 2016-05-09 22:30 +0200
      Re: [PATCH v2 06/22] ARM: dts: exynos: Remove old fixed-clock provider  on SMDK5410 Krzysztof Kozlowski <krzk@kernel.org> - 2016-05-10 07:30 +0200
  [PATCH v2 15/22] ARM: dts: exynos: Use phandle to get parent node in exynos5250-snow Krzysztof Kozlowski <krzk@kernel.org> - 2016-05-08 21:10 +0200
    Re: [PATCH v2 15/22] ARM: dts: exynos: Use phandle to get parent node  in exynos5250-snow Javier Martinez Canillas <javier@osg.samsung.com> - 2016-05-09 23:40 +0200
  [PATCH v2 03/22] ARM: dts: exynos: Add fin_pll node for clock driver Krzysztof Kozlowski <krzk@kernel.org> - 2016-05-08 21:10 +0200
  [PATCH v2 01/22] dt-bindings: clock: Add license and reformat Exynos5410 clock IDs Krzysztof Kozlowski <krzk@kernel.org> - 2016-05-08 21:10 +0200
    Re: [PATCH v2 01/22] dt-bindings: clock: Add license and reformat  Exynos5410 clock IDs Javier Martinez Canillas <javier@osg.samsung.com> - 2016-05-09 21:40 +0200
  [PATCH v2 20/22] ARM: dts: exynos: Move common Exynos5410/542x/5800 nodes to new DTSI Krzysztof Kozlowski <krzk@kernel.org> - 2016-05-08 21:10 +0200
    Re: [PATCH v2 20/22] ARM: dts: exynos: Move common  Exynos5410/542x/5800 nodes to new DTSI Javier Martinez Canillas <javier@osg.samsung.com> - 2016-05-10 00:00 +0200
      Re: [PATCH v2 20/22] ARM: dts: exynos: Move common  Exynos5410/542x/5800 nodes to new DTSI Krzysztof Kozlowski <krzk@kernel.org> - 2016-05-10 07:40 +0200
        Re: [PATCH v2 20/22] ARM: dts: exynos: Move common  Exynos5410/542x/5800 nodes to new DTSI Javier Martinez Canillas <javier@osg.samsung.com> - 2016-05-10 15:00 +0200
  [PATCH v2 22/22] ARM: dts: exynos: Add initial support for Odroid XU board Krzysztof Kozlowski <krzk@kernel.org> - 2016-05-08 21:10 +0200
    Re: [PATCH v2 22/22] ARM: dts: exynos: Add initial support for  Odroid XU board Rob Herring <robh@kernel.org> - 2016-05-09 22:10 +0200
    Re: [PATCH v2 22/22] ARM: dts: exynos: Add initial support for Odroid  XU board Javier Martinez Canillas <javier@osg.samsung.com> - 2016-05-10 00:10 +0200
      Re: [PATCH v2 22/22] ARM: dts: exynos: Add initial support for Odroid  XU board Krzysztof Kozlowski <krzk@kernel.org> - 2016-05-10 07:40 +0200
  [PATCH v2 04/22] clk: samsung: exynos5410: Provide fin_pll external fixed clock Krzysztof Kozlowski <krzk@kernel.org> - 2016-05-08 21:20 +0200
    Re: [PATCH v2 04/22] clk: samsung: exynos5410: Provide fin_pll  external fixed clock Javier Martinez Canillas <javier@osg.samsung.com> - 2016-05-09 22:30 +0200
      Re: [PATCH v2 04/22] clk: samsung: exynos5410: Provide fin_pll  external fixed clock Krzysztof Kozlowski <krzk@kernel.org> - 2016-05-10 07:30 +0200
  [PATCH v2 09/22] ARM: dts: exynos: Re-order alphabetically Exynos5420 SD0/SD1 pinctrl nodes Krzysztof Kozlowski <krzk@kernel.org> - 2016-05-08 21:20 +0200
  [PATCH v2 11/22] ARM: dts: exynos: Configure Exynos5410 pinctrl for eMMC and SD card Krzysztof Kozlowski <krzk@kernel.org> - 2016-05-08 21:20 +0200
  [PATCH v2 14/22] ARM: dts: exynos: Prepare for inclusion of exynos5.dtsi in exynos5410.dtsi Krzysztof Kozlowski <krzk@kernel.org> - 2016-05-08 21:20 +0200
  [PATCH v2 02/22] dt-bindings: clock: Add PWM and USB clock IDs to Exynos5410 Krzysztof Kozlowski <krzk@kernel.org> - 2016-05-08 21:20 +0200
    Re: [PATCH v2 02/22] dt-bindings: clock: Add PWM and USB clock IDs to  Exynos5410 Javier Martinez Canillas <javier@osg.samsung.com> - 2016-05-09 21:50 +0200
  Re: [PATCH v2 16/22] ARM: dts: exynos: Move Exynos5250 and Exynos5420  nodes under soc Javier Martinez Canillas <javier@osg.samsung.com> - 2016-05-09 23:40 +0200
  Re: [PATCH v2 00/22] ARM: dts: exynos: Add initial support for Odroid  XU Javier Martinez Canillas <javier@osg.samsung.com> - 2016-05-10 00:10 +0200
    Re: [PATCH v2 00/22] ARM: dts: exynos: Add initial support for Odroid  XU Krzysztof Kozlowski <krzk@kernel.org> - 2016-05-10 07:20 +0200
      Re: [PATCH v2 00/22] ARM: dts: exynos: Add initial support for Odroid  XU Javier Martinez Canillas <javier@osg.samsung.com> - 2016-05-10 16:10 +0200
  Re: [PATCH v2 00/22] ARM: dts: exynos: Add initial support for  Odroid XU Stephen Boyd <sboyd@codeaurora.org> - 2016-05-10 00:10 +0200

csiph-web