* [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
* 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
* [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