linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/4] clk: qcom: Add support for SM8150
@ 2019-08-22 17:01 Vinod Koul
  2019-08-22 17:01 ` [PATCH v3 1/4] dt-bindings: clock: Document the parent clocks Vinod Koul
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Vinod Koul @ 2019-08-22 17:01 UTC (permalink / raw)
  To: Stephen Boyd
  Cc: linux-arm-msm, Bjorn Andersson, Vinod Koul, Andy Gross,
	Michael Turquette, Rob Herring, Mark Rutland, linux-clk,
	devicetree, linux-kernel

Add support for rpm clock controller found in SM8150 and while at it update
the driver to support parent data clock scheme as suggested by Stephen.

Changes since v3:
 - Add reviewed-by from Bjorn
 - Update the parent name as xo_board
 - Fix style issue

Changes since v2:
 - Describe parent clocks for rpmhcc
 - Add support for parent data scheme for rpmhcc

Vinod Koul (4):
  dt-bindings: clock: Document the parent clocks
  clk: qcom: clk-rpmh: Convert to parent data scheme
  dt-bindings: clock: Document SM8150 rpmh-clock compatible
  clk: qcom: clk-rpmh: Add support for SM8150

 .../bindings/clock/qcom,rpmh-clk.txt          |  7 +++-
 drivers/clk/qcom/clk-rpmh.c                   | 37 ++++++++++++++++++-
 2 files changed, 41 insertions(+), 3 deletions(-)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v3 1/4] dt-bindings: clock: Document the parent clocks
  2019-08-22 17:01 [PATCH v3 0/4] clk: qcom: Add support for SM8150 Vinod Koul
@ 2019-08-22 17:01 ` Vinod Koul
  2019-08-22 17:01 ` [PATCH v3 2/4] clk: qcom: clk-rpmh: Convert to parent data scheme Vinod Koul
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 8+ messages in thread
From: Vinod Koul @ 2019-08-22 17:01 UTC (permalink / raw)
  To: Stephen Boyd
  Cc: linux-arm-msm, Bjorn Andersson, Vinod Koul, Andy Gross,
	Michael Turquette, Rob Herring, Mark Rutland, linux-clk,
	devicetree, linux-kernel

With clock parent data scheme we must specify the parent clocks for the
rpmhcc nodes. So describe the parent clock for rpmhcc in the bindings.

Signed-off-by: Vinod Koul <vkoul@kernel.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
---
 Documentation/devicetree/bindings/clock/qcom,rpmh-clk.txt | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/Documentation/devicetree/bindings/clock/qcom,rpmh-clk.txt b/Documentation/devicetree/bindings/clock/qcom,rpmh-clk.txt
index 3c007653da31..8b97968f9c88 100644
--- a/Documentation/devicetree/bindings/clock/qcom,rpmh-clk.txt
+++ b/Documentation/devicetree/bindings/clock/qcom,rpmh-clk.txt
@@ -9,6 +9,9 @@ Required properties :
 - compatible : shall contain "qcom,sdm845-rpmh-clk"
 
 - #clock-cells : must contain 1
+- clocks: a list of phandles and clock-specifier pairs,
+	  one for each entry in clock-names.
+- clock-names: Parent board clock: "xo_board".
 
 Example :
 
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v3 2/4] clk: qcom: clk-rpmh: Convert to parent data scheme
  2019-08-22 17:01 [PATCH v3 0/4] clk: qcom: Add support for SM8150 Vinod Koul
  2019-08-22 17:01 ` [PATCH v3 1/4] dt-bindings: clock: Document the parent clocks Vinod Koul
@ 2019-08-22 17:01 ` Vinod Koul
  2019-08-24  6:31   ` Bjorn Andersson
  2019-08-22 17:01 ` [PATCH v3 3/4] dt-bindings: clock: Document SM8150 rpmh-clock compatible Vinod Koul
  2019-08-22 17:01 ` [PATCH v3 4/4] clk: qcom: clk-rpmh: Add support for SM8150 Vinod Koul
  3 siblings, 1 reply; 8+ messages in thread
From: Vinod Koul @ 2019-08-22 17:01 UTC (permalink / raw)
  To: Stephen Boyd
  Cc: linux-arm-msm, Bjorn Andersson, Vinod Koul, Andy Gross,
	Michael Turquette, Rob Herring, Mark Rutland, linux-clk,
	devicetree, linux-kernel

Convert the rpmh clock driver to use the new parent data scheme by
specifying the parent data for board clock.

Signed-off-by: Vinod Koul <vkoul@kernel.org>
---
 drivers/clk/qcom/clk-rpmh.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/clk/qcom/clk-rpmh.c b/drivers/clk/qcom/clk-rpmh.c
index c3fd632af119..0bced7326a20 100644
--- a/drivers/clk/qcom/clk-rpmh.c
+++ b/drivers/clk/qcom/clk-rpmh.c
@@ -95,7 +95,10 @@ static DEFINE_MUTEX(rpmh_clk_lock);
 		.hw.init = &(struct clk_init_data){			\
 			.ops = &clk_rpmh_ops,				\
 			.name = #_name,					\
-			.parent_names = (const char *[]){ "xo_board" },	\
+			.parent_data =  &(const struct clk_parent_data){ \
+					.fw_name = "xo_board",		\
+					.name = "xo_board",		\
+			},						\
 			.num_parents = 1,				\
 		},							\
 	};								\
@@ -110,7 +113,10 @@ static DEFINE_MUTEX(rpmh_clk_lock);
 		.hw.init = &(struct clk_init_data){			\
 			.ops = &clk_rpmh_ops,				\
 			.name = #_name_active,				\
-			.parent_names = (const char *[]){ "xo_board" },	\
+			.parent_data =  &(const struct clk_parent_data){ \
+					.fw_name = "xo_board",		\
+					.name = "xo_board",		\
+			},						\
 			.num_parents = 1,				\
 		},							\
 	}
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v3 3/4] dt-bindings: clock: Document SM8150 rpmh-clock compatible
  2019-08-22 17:01 [PATCH v3 0/4] clk: qcom: Add support for SM8150 Vinod Koul
  2019-08-22 17:01 ` [PATCH v3 1/4] dt-bindings: clock: Document the parent clocks Vinod Koul
  2019-08-22 17:01 ` [PATCH v3 2/4] clk: qcom: clk-rpmh: Convert to parent data scheme Vinod Koul
@ 2019-08-22 17:01 ` Vinod Koul
  2019-08-22 17:01 ` [PATCH v3 4/4] clk: qcom: clk-rpmh: Add support for SM8150 Vinod Koul
  3 siblings, 0 replies; 8+ messages in thread
From: Vinod Koul @ 2019-08-22 17:01 UTC (permalink / raw)
  To: Stephen Boyd
  Cc: linux-arm-msm, Bjorn Andersson, Vinod Koul, Andy Gross,
	Michael Turquette, Rob Herring, Mark Rutland, linux-clk,
	devicetree, linux-kernel

Document the SM8150 rpmh-clock compatible for rpmh clock controller
found on SM8150 platforms.

Signed-off-by: Vinod Koul <vkoul@kernel.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
---
 Documentation/devicetree/bindings/clock/qcom,rpmh-clk.txt | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/clock/qcom,rpmh-clk.txt b/Documentation/devicetree/bindings/clock/qcom,rpmh-clk.txt
index 8b97968f9c88..365bbde599b1 100644
--- a/Documentation/devicetree/bindings/clock/qcom,rpmh-clk.txt
+++ b/Documentation/devicetree/bindings/clock/qcom,rpmh-clk.txt
@@ -6,7 +6,9 @@ some Qualcomm Technologies Inc. SoCs. It accepts clock requests from
 other hardware subsystems via RSC to control clocks.
 
 Required properties :
-- compatible : shall contain "qcom,sdm845-rpmh-clk"
+- compatible : must be one of:
+	       "qcom,sdm845-rpmh-clk"
+	       "qcom,sm8150-rpmh-clk"
 
 - #clock-cells : must contain 1
 - clocks: a list of phandles and clock-specifier pairs,
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v3 4/4] clk: qcom: clk-rpmh: Add support for SM8150
  2019-08-22 17:01 [PATCH v3 0/4] clk: qcom: Add support for SM8150 Vinod Koul
                   ` (2 preceding siblings ...)
  2019-08-22 17:01 ` [PATCH v3 3/4] dt-bindings: clock: Document SM8150 rpmh-clock compatible Vinod Koul
@ 2019-08-22 17:01 ` Vinod Koul
  3 siblings, 0 replies; 8+ messages in thread
From: Vinod Koul @ 2019-08-22 17:01 UTC (permalink / raw)
  To: Stephen Boyd
  Cc: linux-arm-msm, Bjorn Andersson, Vinod Koul, Andy Gross,
	Michael Turquette, Rob Herring, Mark Rutland, linux-clk,
	devicetree, linux-kernel

Add support for rpmh clocks found in SM8150

Signed-off-by: Vinod Koul <vkoul@kernel.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
---
 drivers/clk/qcom/clk-rpmh.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/drivers/clk/qcom/clk-rpmh.c b/drivers/clk/qcom/clk-rpmh.c
index 0bced7326a20..5da1ef58dcc4 100644
--- a/drivers/clk/qcom/clk-rpmh.c
+++ b/drivers/clk/qcom/clk-rpmh.c
@@ -374,6 +374,32 @@ static const struct clk_rpmh_desc clk_rpmh_sdm845 = {
 	.num_clks = ARRAY_SIZE(sdm845_rpmh_clocks),
 };
 
+DEFINE_CLK_RPMH_ARC(sm8150, bi_tcxo, bi_tcxo_ao, "xo.lvl", 0x3, 2);
+DEFINE_CLK_RPMH_VRM(sm8150, ln_bb_clk2, ln_bb_clk2_ao, "lnbclka2", 2);
+DEFINE_CLK_RPMH_VRM(sm8150, ln_bb_clk3, ln_bb_clk3_ao, "lnbclka3", 2);
+DEFINE_CLK_RPMH_VRM(sm8150, rf_clk1, rf_clk1_ao, "rfclka1", 1);
+DEFINE_CLK_RPMH_VRM(sm8150, rf_clk2, rf_clk2_ao, "rfclka2", 1);
+DEFINE_CLK_RPMH_VRM(sm8150, rf_clk3, rf_clk3_ao, "rfclka3", 1);
+
+static struct clk_hw *sm8150_rpmh_clocks[] = {
+	[RPMH_CXO_CLK]		= &sm8150_bi_tcxo.hw,
+	[RPMH_CXO_CLK_A]	= &sm8150_bi_tcxo_ao.hw,
+	[RPMH_LN_BB_CLK2]	= &sm8150_ln_bb_clk2.hw,
+	[RPMH_LN_BB_CLK2_A]	= &sm8150_ln_bb_clk2_ao.hw,
+	[RPMH_LN_BB_CLK3]	= &sm8150_ln_bb_clk3.hw,
+	[RPMH_LN_BB_CLK3_A]	= &sm8150_ln_bb_clk3_ao.hw,
+	[RPMH_RF_CLK1]		= &sm8150_rf_clk1.hw,
+	[RPMH_RF_CLK1_A]	= &sm8150_rf_clk1_ao.hw,
+	[RPMH_RF_CLK2]		= &sm8150_rf_clk2.hw,
+	[RPMH_RF_CLK2_A]	= &sm8150_rf_clk2_ao.hw,
+	[RPMH_RF_CLK3]		= &sm8150_rf_clk3.hw,
+	[RPMH_RF_CLK3_A]	= &sm8150_rf_clk3_ao.hw,
+};
+
+static const struct clk_rpmh_desc clk_rpmh_sm8150 = {
+	.clks = sm8150_rpmh_clocks,
+	.num_clks = ARRAY_SIZE(sm8150_rpmh_clocks),
+};
 static struct clk_hw *of_clk_rpmh_hw_get(struct of_phandle_args *clkspec,
 					 void *data)
 {
@@ -453,6 +479,7 @@ static int clk_rpmh_probe(struct platform_device *pdev)
 
 static const struct of_device_id clk_rpmh_match_table[] = {
 	{ .compatible = "qcom,sdm845-rpmh-clk", .data = &clk_rpmh_sdm845},
+	{ .compatible = "qcom,sm8150-rpmh-clk", .data = &clk_rpmh_sm8150},
 	{ }
 };
 MODULE_DEVICE_TABLE(of, clk_rpmh_match_table);
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v3 2/4] clk: qcom: clk-rpmh: Convert to parent data scheme
  2019-08-22 17:01 ` [PATCH v3 2/4] clk: qcom: clk-rpmh: Convert to parent data scheme Vinod Koul
@ 2019-08-24  6:31   ` Bjorn Andersson
  2019-08-26  6:21     ` Vinod Koul
  0 siblings, 1 reply; 8+ messages in thread
From: Bjorn Andersson @ 2019-08-24  6:31 UTC (permalink / raw)
  To: Vinod Koul
  Cc: Stephen Boyd, linux-arm-msm, Andy Gross, Michael Turquette,
	Rob Herring, Mark Rutland, linux-clk, devicetree, linux-kernel

On Thu 22 Aug 10:01 PDT 2019, Vinod Koul wrote:

> Convert the rpmh clock driver to use the new parent data scheme by
> specifying the parent data for board clock.
> 
> Signed-off-by: Vinod Koul <vkoul@kernel.org>
> ---
>  drivers/clk/qcom/clk-rpmh.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/clk/qcom/clk-rpmh.c b/drivers/clk/qcom/clk-rpmh.c
> index c3fd632af119..0bced7326a20 100644
> --- a/drivers/clk/qcom/clk-rpmh.c
> +++ b/drivers/clk/qcom/clk-rpmh.c
> @@ -95,7 +95,10 @@ static DEFINE_MUTEX(rpmh_clk_lock);
>  		.hw.init = &(struct clk_init_data){			\
>  			.ops = &clk_rpmh_ops,				\
>  			.name = #_name,					\
> -			.parent_names = (const char *[]){ "xo_board" },	\
> +			.parent_data =  &(const struct clk_parent_data){ \
> +					.fw_name = "xo_board",		\
> +					.name = "xo_board",		\

Iiuc .name here refers to the global clock namespace and .fw_name refers
to the device_node local name space. As such I really prefer this to be:

  .fw_name = "xo",
  .name = "xo_board",

This ensures the backwards compatibility (when using global lookup),
without complicating the node-local naming.

Regards,
Bjorn

> +			},						\
>  			.num_parents = 1,				\
>  		},							\
>  	};								\
> @@ -110,7 +113,10 @@ static DEFINE_MUTEX(rpmh_clk_lock);
>  		.hw.init = &(struct clk_init_data){			\
>  			.ops = &clk_rpmh_ops,				\
>  			.name = #_name_active,				\
> -			.parent_names = (const char *[]){ "xo_board" },	\
> +			.parent_data =  &(const struct clk_parent_data){ \
> +					.fw_name = "xo_board",		\
> +					.name = "xo_board",		\
> +			},						\
>  			.num_parents = 1,				\
>  		},							\
>  	}
> -- 
> 2.20.1
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v3 2/4] clk: qcom: clk-rpmh: Convert to parent data scheme
  2019-08-24  6:31   ` Bjorn Andersson
@ 2019-08-26  6:21     ` Vinod Koul
  2019-09-09 11:26       ` Stephen Boyd
  0 siblings, 1 reply; 8+ messages in thread
From: Vinod Koul @ 2019-08-26  6:21 UTC (permalink / raw)
  To: Bjorn Andersson
  Cc: Stephen Boyd, linux-arm-msm, Andy Gross, Michael Turquette,
	Rob Herring, Mark Rutland, linux-clk, devicetree, linux-kernel

On 23-08-19, 23:31, Bjorn Andersson wrote:
> On Thu 22 Aug 10:01 PDT 2019, Vinod Koul wrote:
> 
> > Convert the rpmh clock driver to use the new parent data scheme by
> > specifying the parent data for board clock.
> > 
> > Signed-off-by: Vinod Koul <vkoul@kernel.org>
> > ---
> >  drivers/clk/qcom/clk-rpmh.c | 10 ++++++++--
> >  1 file changed, 8 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/clk/qcom/clk-rpmh.c b/drivers/clk/qcom/clk-rpmh.c
> > index c3fd632af119..0bced7326a20 100644
> > --- a/drivers/clk/qcom/clk-rpmh.c
> > +++ b/drivers/clk/qcom/clk-rpmh.c
> > @@ -95,7 +95,10 @@ static DEFINE_MUTEX(rpmh_clk_lock);
> >  		.hw.init = &(struct clk_init_data){			\
> >  			.ops = &clk_rpmh_ops,				\
> >  			.name = #_name,					\
> > -			.parent_names = (const char *[]){ "xo_board" },	\
> > +			.parent_data =  &(const struct clk_parent_data){ \
> > +					.fw_name = "xo_board",		\
> > +					.name = "xo_board",		\
> 
> Iiuc .name here refers to the global clock namespace and .fw_name refers
> to the device_node local name space. As such I really prefer this to be:
> 
>   .fw_name = "xo",
>   .name = "xo_board",
> 
> This ensures the backwards compatibility (when using global lookup),
> without complicating the node-local naming.

Sure, while thinking more on this, should we finalize the name as xo or
cxo, I see latter being also used at few places. It would be great to
get a name and stick to it for longer time :)

-- 
~Vinod

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v3 2/4] clk: qcom: clk-rpmh: Convert to parent data scheme
  2019-08-26  6:21     ` Vinod Koul
@ 2019-09-09 11:26       ` Stephen Boyd
  0 siblings, 0 replies; 8+ messages in thread
From: Stephen Boyd @ 2019-09-09 11:26 UTC (permalink / raw)
  To: Bjorn Andersson, Vinod Koul
  Cc: linux-arm-msm, Andy Gross, Michael Turquette, Rob Herring,
	Mark Rutland, linux-clk, devicetree, linux-kernel

Quoting Vinod Koul (2019-08-25 23:21:27)
> On 23-08-19, 23:31, Bjorn Andersson wrote:
> > On Thu 22 Aug 10:01 PDT 2019, Vinod Koul wrote:
> > 
> > > Convert the rpmh clock driver to use the new parent data scheme by
> > > specifying the parent data for board clock.
> > > 
> > > Signed-off-by: Vinod Koul <vkoul@kernel.org>
> > > ---
> > >  drivers/clk/qcom/clk-rpmh.c | 10 ++++++++--
> > >  1 file changed, 8 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/drivers/clk/qcom/clk-rpmh.c b/drivers/clk/qcom/clk-rpmh.c
> > > index c3fd632af119..0bced7326a20 100644
> > > --- a/drivers/clk/qcom/clk-rpmh.c
> > > +++ b/drivers/clk/qcom/clk-rpmh.c
> > > @@ -95,7 +95,10 @@ static DEFINE_MUTEX(rpmh_clk_lock);
> > >             .hw.init = &(struct clk_init_data){                     \
> > >                     .ops = &clk_rpmh_ops,                           \
> > >                     .name = #_name,                                 \
> > > -                   .parent_names = (const char *[]){ "xo_board" }, \
> > > +                   .parent_data =  &(const struct clk_parent_data){ \
> > > +                                   .fw_name = "xo_board",          \
> > > +                                   .name = "xo_board",             \
> > 
> > Iiuc .name here refers to the global clock namespace and .fw_name refers
> > to the device_node local name space. As such I really prefer this to be:
> > 
> >   .fw_name = "xo",
> >   .name = "xo_board",
> > 
> > This ensures the backwards compatibility (when using global lookup),
> > without complicating the node-local naming.
> 
> Sure, while thinking more on this, should we finalize the name as xo or
> cxo, I see latter being also used at few places. It would be great to
> get a name and stick to it for longer time :)
> -- 

I would name it 'cxo' because that's the pin name on this platform.


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-09-09 11:26 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-22 17:01 [PATCH v3 0/4] clk: qcom: Add support for SM8150 Vinod Koul
2019-08-22 17:01 ` [PATCH v3 1/4] dt-bindings: clock: Document the parent clocks Vinod Koul
2019-08-22 17:01 ` [PATCH v3 2/4] clk: qcom: clk-rpmh: Convert to parent data scheme Vinod Koul
2019-08-24  6:31   ` Bjorn Andersson
2019-08-26  6:21     ` Vinod Koul
2019-09-09 11:26       ` Stephen Boyd
2019-08-22 17:01 ` [PATCH v3 3/4] dt-bindings: clock: Document SM8150 rpmh-clock compatible Vinod Koul
2019-08-22 17:01 ` [PATCH v3 4/4] clk: qcom: clk-rpmh: Add support for SM8150 Vinod Koul

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).