All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.