devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] Add APSS clock driver support for IPQ5018
@ 2023-08-29  9:54 Gokul Sriram Palanisamy
  2023-08-29  9:54 ` [PATCH 1/3] dt-bindings: clock: qcom,a53pll: add IPQ5018 compatible Gokul Sriram Palanisamy
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Gokul Sriram Palanisamy @ 2023-08-29  9:54 UTC (permalink / raw)
  To: agross, andersson, konrad.dybcio, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, jassisinghbrar, linux-arm-msm, linux-clk,
	devicetree, linux-kernel
  Cc: quic_varada, quic_srichara, quic_gokulsri

This series adds support for the APSS clock to bump the CPU frequency
above 800MHz. APSS PLL found in the IPQ5018 is of type Stromer. 

- The first patch in the series adds the required a53pll compatible.

- The second patch adds Stormer PLL offsets, its configuration values and
regmap and modify probe to reuse clk_stromer_pll_configure() for Stormer
which was added for Stormer Plus.

- The third patch adds dts nodes to enable the pll along with the cpu
operating frequency table.

Gokul Sriram Palanisamy (3):
  dt-bindings: clock: qcom,a53pll: add IPQ5018 compatible
  clk: qcom: apss-ipq-pll: add support for IPQ5018
  arm64: dts: qcom: ipq5018: enable the CPUFreq support

 .../bindings/clock/qcom,a53pll.yaml           |  1 +
 arch/arm64/boot/dts/qcom/ipq5018.dtsi         | 34 ++++++++++++
 drivers/clk/qcom/apss-ipq-pll.c               | 52 ++++++++++++++++++-
 3 files changed, 86 insertions(+), 1 deletion(-)

-- 
2.34.1


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

* [PATCH 1/3] dt-bindings: clock: qcom,a53pll: add IPQ5018 compatible
  2023-08-29  9:54 [PATCH 0/3] Add APSS clock driver support for IPQ5018 Gokul Sriram Palanisamy
@ 2023-08-29  9:54 ` Gokul Sriram Palanisamy
  2023-08-29 10:09   ` Krzysztof Kozlowski
  2023-08-29  9:54 ` [PATCH 2/3] clk: qcom: apss-ipq-pll: add support for IPQ5018 Gokul Sriram Palanisamy
  2023-08-29  9:54 ` [PATCH 3/3] arm64: dts: qcom: ipq5018: enable the CPUFreq support Gokul Sriram Palanisamy
  2 siblings, 1 reply; 19+ messages in thread
From: Gokul Sriram Palanisamy @ 2023-08-29  9:54 UTC (permalink / raw)
  To: agross, andersson, konrad.dybcio, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, jassisinghbrar, linux-arm-msm, linux-clk,
	devicetree, linux-kernel
  Cc: quic_varada, quic_srichara, quic_gokulsri

Add IPQ5018 compatible to A53 PLL bindings.

Co-developed-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
Signed-off-by: Gokul Sriram Palanisamy <quic_gokulsri@quicinc.com>
---
 Documentation/devicetree/bindings/clock/qcom,a53pll.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/clock/qcom,a53pll.yaml b/Documentation/devicetree/bindings/clock/qcom,a53pll.yaml
index 9436266828af..5ca927a8b1d5 100644
--- a/Documentation/devicetree/bindings/clock/qcom,a53pll.yaml
+++ b/Documentation/devicetree/bindings/clock/qcom,a53pll.yaml
@@ -16,6 +16,7 @@ description:
 properties:
   compatible:
     enum:
+      - qcom,ipq5018-a53pll
       - qcom,ipq5332-a53pll
       - qcom,ipq6018-a53pll
       - qcom,ipq8074-a53pll
-- 
2.34.1


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

* [PATCH 2/3] clk: qcom: apss-ipq-pll: add support for IPQ5018
  2023-08-29  9:54 [PATCH 0/3] Add APSS clock driver support for IPQ5018 Gokul Sriram Palanisamy
  2023-08-29  9:54 ` [PATCH 1/3] dt-bindings: clock: qcom,a53pll: add IPQ5018 compatible Gokul Sriram Palanisamy
@ 2023-08-29  9:54 ` Gokul Sriram Palanisamy
  2023-08-29 22:34   ` Stephen Boyd
  2023-08-29  9:54 ` [PATCH 3/3] arm64: dts: qcom: ipq5018: enable the CPUFreq support Gokul Sriram Palanisamy
  2 siblings, 1 reply; 19+ messages in thread
From: Gokul Sriram Palanisamy @ 2023-08-29  9:54 UTC (permalink / raw)
  To: agross, andersson, konrad.dybcio, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, jassisinghbrar, linux-arm-msm, linux-clk,
	devicetree, linux-kernel
  Cc: quic_varada, quic_srichara, quic_gokulsri

IPQ5018 APSS PLL is of type Stromer. Add support for Stromer PLL,
configuration values and the compatible.

Co-developed-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
Signed-off-by: Gokul Sriram Palanisamy <quic_gokulsri@quicinc.com>
---
 drivers/clk/qcom/apss-ipq-pll.c | 52 ++++++++++++++++++++++++++++++++-
 1 file changed, 51 insertions(+), 1 deletion(-)

diff --git a/drivers/clk/qcom/apss-ipq-pll.c b/drivers/clk/qcom/apss-ipq-pll.c
index e170331858cc..bbc25d5eb70d 100644
--- a/drivers/clk/qcom/apss-ipq-pll.c
+++ b/drivers/clk/qcom/apss-ipq-pll.c
@@ -24,6 +24,17 @@ static const u8 ipq_pll_offsets[][PLL_OFF_MAX_REGS] = {
 		[PLL_OFF_TEST_CTL] = 0x30,
 		[PLL_OFF_TEST_CTL_U] = 0x34,
 	},
+	[CLK_ALPHA_PLL_TYPE_STROMER] = {
+		[PLL_OFF_L_VAL] = 0x08,
+		[PLL_OFF_ALPHA_VAL] = 0x10,
+		[PLL_OFF_ALPHA_VAL_U] = 0x14,
+		[PLL_OFF_USER_CTL] = 0x18,
+		[PLL_OFF_USER_CTL_U] = 0x1c,
+		[PLL_OFF_CONFIG_CTL] = 0x20,
+		[PLL_OFF_STATUS] = 0x28,
+		[PLL_OFF_TEST_CTL] = 0x30,
+		[PLL_OFF_TEST_CTL_U] = 0x34,
+	},
 	[CLK_ALPHA_PLL_TYPE_STROMER_PLUS] = {
 		[PLL_OFF_L_VAL] = 0x08,
 		[PLL_OFF_ALPHA_VAL] = 0x10,
@@ -73,6 +84,38 @@ static struct clk_alpha_pll ipq_pll_stromer_plus = {
 	},
 };
 
+static struct clk_alpha_pll ipq_pll_stromer = {
+	.offset = 0x0,
+	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_STROMER],
+	.flags = SUPPORTS_DYNAMIC_UPDATE,
+	.clkr = {
+		.enable_reg = 0x0,
+		.enable_mask = BIT(0),
+		.hw.init = &(struct clk_init_data){
+			.name = "a53pll",
+			.parent_data = &(const struct clk_parent_data) {
+				.fw_name = "xo",
+			},
+			.num_parents = 1,
+			.ops = &clk_alpha_pll_stromer_ops,
+		},
+	},
+};
+
+static const struct alpha_pll_config ipq5018_pll_config = {
+	.l = 0x32,
+	.config_ctl_val = 0x4001075b,
+	.config_ctl_hi_val = 0x304,
+	.main_output_mask = BIT(0),
+	.aux_output_mask = BIT(1),
+	.early_output_mask = BIT(3),
+	.alpha_en_mask = BIT(24),
+	.status_val = 0x3,
+	.status_mask = GENMASK(10, 8),
+	.lock_det = BIT(2),
+	.test_ctl_hi_val = 0x00400003,
+};
+
 static const struct alpha_pll_config ipq5332_pll_config = {
 	.l = 0x3e,
 	.config_ctl_val = 0x4001075b,
@@ -129,6 +172,12 @@ struct apss_pll_data {
 	const struct alpha_pll_config *pll_config;
 };
 
+static struct apss_pll_data ipq5018_pll_data = {
+	.pll_type = CLK_ALPHA_PLL_TYPE_STROMER,
+	.pll = &ipq_pll_stromer,
+	.pll_config = &ipq5018_pll_config,
+};
+
 static struct apss_pll_data ipq5332_pll_data = {
 	.pll_type = CLK_ALPHA_PLL_TYPE_STROMER_PLUS,
 	.pll = &ipq_pll_stromer_plus,
@@ -183,7 +232,7 @@ static int apss_ipq_pll_probe(struct platform_device *pdev)
 
 	if (data->pll_type == CLK_ALPHA_PLL_TYPE_HUAYRA)
 		clk_alpha_pll_configure(data->pll, regmap, data->pll_config);
-	else if (data->pll_type == CLK_ALPHA_PLL_TYPE_STROMER_PLUS)
+	else
 		clk_stromer_pll_configure(data->pll, regmap, data->pll_config);
 
 	ret = devm_clk_register_regmap(dev, &data->pll->clkr);
@@ -195,6 +244,7 @@ static int apss_ipq_pll_probe(struct platform_device *pdev)
 }
 
 static const struct of_device_id apss_ipq_pll_match_table[] = {
+	{ .compatible = "qcom,ipq5018-a53pll", .data = &ipq5018_pll_data },
 	{ .compatible = "qcom,ipq5332-a53pll", .data = &ipq5332_pll_data },
 	{ .compatible = "qcom,ipq6018-a53pll", .data = &ipq6018_pll_data },
 	{ .compatible = "qcom,ipq8074-a53pll", .data = &ipq8074_pll_data },
-- 
2.34.1


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

* [PATCH 3/3] arm64: dts: qcom: ipq5018: enable the CPUFreq support
  2023-08-29  9:54 [PATCH 0/3] Add APSS clock driver support for IPQ5018 Gokul Sriram Palanisamy
  2023-08-29  9:54 ` [PATCH 1/3] dt-bindings: clock: qcom,a53pll: add IPQ5018 compatible Gokul Sriram Palanisamy
  2023-08-29  9:54 ` [PATCH 2/3] clk: qcom: apss-ipq-pll: add support for IPQ5018 Gokul Sriram Palanisamy
@ 2023-08-29  9:54 ` Gokul Sriram Palanisamy
  2023-08-29 10:12   ` Krzysztof Kozlowski
  2 siblings, 1 reply; 19+ messages in thread
From: Gokul Sriram Palanisamy @ 2023-08-29  9:54 UTC (permalink / raw)
  To: agross, andersson, konrad.dybcio, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, jassisinghbrar, linux-arm-msm, linux-clk,
	devicetree, linux-kernel
  Cc: quic_varada, quic_srichara, quic_gokulsri

Add the APCS, A53 PLL, cpu-opp-table nodes to set
the CPU frequency at optimal range.

Co-developed-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
Signed-off-by: Gokul Sriram Palanisamy <quic_gokulsri@quicinc.com>
---
 arch/arm64/boot/dts/qcom/ipq5018.dtsi | 34 +++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
index 9f13d2dcdfd5..05843517312c 100644
--- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
@@ -8,6 +8,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/clock/qcom,gcc-ipq5018.h>
 #include <dt-bindings/reset/qcom,gcc-ipq5018.h>
+#include <dt-bindings/clock/qcom,apss-ipq.h>
 
 / {
 	interrupt-parent = <&intc>;
@@ -36,6 +37,8 @@ CPU0: cpu@0 {
 			reg = <0x0>;
 			enable-method = "psci";
 			next-level-cache = <&L2_0>;
+			clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
+			operating-points-v2 = <&cpu_opp_table>;
 		};
 
 		CPU1: cpu@1 {
@@ -44,6 +47,8 @@ CPU1: cpu@1 {
 			reg = <0x1>;
 			enable-method = "psci";
 			next-level-cache = <&L2_0>;
+			clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
+			operating-points-v2 = <&cpu_opp_table>;
 		};
 
 		L2_0: l2-cache {
@@ -54,6 +59,17 @@ L2_0: l2-cache {
 		};
 	};
 
+	cpu_opp_table: opp-table-cpu {
+		compatible = "operating-points-v2";
+		opp-shared;
+
+		opp-1008000000 {
+			opp-hz = /bits/ 64 <1008000000>;
+			opp-microvolt = <1100000>;
+			clock-latency-ns = <200000>;
+		};
+	};
+
 	firmware {
 		scm {
 			compatible = "qcom,scm-ipq5018", "qcom,scm";
@@ -181,6 +197,24 @@ v2m1: v2m@1000 {
 			};
 		};
 
+		a53pll: clock@b116000 {
+			compatible = "qcom,ipq5018-a53pll";
+			reg = <0x0b116000 0x40>;
+			#clock-cells = <0>;
+			clocks = <&xo_board_clk>;
+			clock-names = "xo";
+		};
+
+		apcs_glb: mailbox@b111000 {
+			compatible = "qcom,ipq5018-apcs-apps-global",
+				     "qcom,ipq6018-apcs-apps-global";
+			reg = <0x0b111000 0x1000>;
+			#clock-cells = <1>;
+			clocks = <&a53pll>, <&xo_board_clk>;
+			clock-names = "pll", "xo";
+			#mbox-cells = <1>;
+		};
+
 		timer@b120000 {
 			compatible = "arm,armv7-timer-mem";
 			reg = <0x0b120000 0x1000>;
-- 
2.34.1


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

* Re: [PATCH 1/3] dt-bindings: clock: qcom,a53pll: add IPQ5018 compatible
  2023-08-29  9:54 ` [PATCH 1/3] dt-bindings: clock: qcom,a53pll: add IPQ5018 compatible Gokul Sriram Palanisamy
@ 2023-08-29 10:09   ` Krzysztof Kozlowski
  2023-08-30  6:40     ` Gokul Sriram P
  0 siblings, 1 reply; 19+ messages in thread
From: Krzysztof Kozlowski @ 2023-08-29 10:09 UTC (permalink / raw)
  To: Gokul Sriram Palanisamy, agross, andersson, konrad.dybcio,
	mturquette, sboyd, robh+dt, krzysztof.kozlowski+dt,
	jassisinghbrar, linux-arm-msm, linux-clk, devicetree,
	linux-kernel
  Cc: quic_varada, quic_srichara

On 29/08/2023 11:54, Gokul Sriram Palanisamy wrote:
> Add IPQ5018 compatible to A53 PLL bindings.
> 
> Co-developed-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>

Knowing that this patch could not come from downstream (it's some old
kernel without this file), I really wonder why two people were involved
in developing trivial one line change.

> Signed-off-by: Gokul Sriram Palanisamy <quic_gokulsri@quicinc.com>


Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof


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

* Re: [PATCH 3/3] arm64: dts: qcom: ipq5018: enable the CPUFreq support
  2023-08-29  9:54 ` [PATCH 3/3] arm64: dts: qcom: ipq5018: enable the CPUFreq support Gokul Sriram Palanisamy
@ 2023-08-29 10:12   ` Krzysztof Kozlowski
  2023-08-29 10:56     ` Robert Marko
  0 siblings, 1 reply; 19+ messages in thread
From: Krzysztof Kozlowski @ 2023-08-29 10:12 UTC (permalink / raw)
  To: Gokul Sriram Palanisamy, agross, andersson, konrad.dybcio,
	mturquette, sboyd, robh+dt, krzysztof.kozlowski+dt,
	jassisinghbrar, linux-arm-msm, linux-clk, devicetree,
	linux-kernel
  Cc: quic_varada, quic_srichara

On 29/08/2023 11:54, Gokul Sriram Palanisamy wrote:
> Add the APCS, A53 PLL, cpu-opp-table nodes to set
> the CPU frequency at optimal range.
> 
> Co-developed-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> Signed-off-by: Gokul Sriram Palanisamy <quic_gokulsri@quicinc.com>
> ---
>  arch/arm64/boot/dts/qcom/ipq5018.dtsi | 34 +++++++++++++++++++++++++++
>  1 file changed, 34 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> index 9f13d2dcdfd5..05843517312c 100644
> --- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> +++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> @@ -8,6 +8,7 @@
>  #include <dt-bindings/interrupt-controller/arm-gic.h>
>  #include <dt-bindings/clock/qcom,gcc-ipq5018.h>
>  #include <dt-bindings/reset/qcom,gcc-ipq5018.h>
> +#include <dt-bindings/clock/qcom,apss-ipq.h>

c is before r.

>  
>  / {
>  	interrupt-parent = <&intc>;
> @@ -36,6 +37,8 @@ CPU0: cpu@0 {
>  			reg = <0x0>;
>  			enable-method = "psci";
>  			next-level-cache = <&L2_0>;
> +			clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
> +			operating-points-v2 = <&cpu_opp_table>;
>  		};
>  
>  		CPU1: cpu@1 {
> @@ -44,6 +47,8 @@ CPU1: cpu@1 {
>  			reg = <0x1>;
>  			enable-method = "psci";
>  			next-level-cache = <&L2_0>;
> +			clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
> +			operating-points-v2 = <&cpu_opp_table>;
>  		};
>  
>  		L2_0: l2-cache {
> @@ -54,6 +59,17 @@ L2_0: l2-cache {
>  		};
>  	};
>  
> +	cpu_opp_table: opp-table-cpu {
> +		compatible = "operating-points-v2";
> +		opp-shared;
> +
> +		opp-1008000000 {
> +			opp-hz = /bits/ 64 <1008000000>;
> +			opp-microvolt = <1100000>;
> +			clock-latency-ns = <200000>;

And the rest of OPPs?

> +		};
> +	};
> +
>  	firmware {
>  		scm {
>  			compatible = "qcom,scm-ipq5018", "qcom,scm";
> @@ -181,6 +197,24 @@ v2m1: v2m@1000 {
>  			};
>  		};
>  
> +		a53pll: clock@b116000 {
> +			compatible = "qcom,ipq5018-a53pll";
> +			reg = <0x0b116000 0x40>;
> +			#clock-cells = <0>;
> +			clocks = <&xo_board_clk>;
> +			clock-names = "xo";
> +		};
> +
> +		apcs_glb: mailbox@b111000 {

0xb111000 looks lower than 0x116000.

> +			compatible = "qcom,ipq5018-apcs-apps-global",
> +				     "qcom,ipq6018-apcs-apps-global";
> +			reg = <0x0b111000 0x1000>;

Best regards,
Krzysztof


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

* Re: [PATCH 3/3] arm64: dts: qcom: ipq5018: enable the CPUFreq support
  2023-08-29 10:12   ` Krzysztof Kozlowski
@ 2023-08-29 10:56     ` Robert Marko
  2023-08-29 11:00       ` Dmitry Baryshkov
                         ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Robert Marko @ 2023-08-29 10:56 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Gokul Sriram Palanisamy, agross, andersson,
	konrad.dybcio, mturquette, sboyd, robh+dt, krzysztof.kozlowski+dt,
	jassisinghbrar, linux-arm-msm, linux-clk, devicetree,
	linux-kernel
  Cc: quic_varada, quic_srichara


On 29. 08. 2023. 12:12, Krzysztof Kozlowski wrote:
> On 29/08/2023 11:54, Gokul Sriram Palanisamy wrote:
>> Add the APCS, A53 PLL, cpu-opp-table nodes to set
>> the CPU frequency at optimal range.
>>
>> Co-developed-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
>> Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
>> Signed-off-by: Gokul Sriram Palanisamy <quic_gokulsri@quicinc.com>
>> ---
>>   arch/arm64/boot/dts/qcom/ipq5018.dtsi | 34 +++++++++++++++++++++++++++
>>   1 file changed, 34 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
>> index 9f13d2dcdfd5..05843517312c 100644
>> --- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
>> @@ -8,6 +8,7 @@
>>   #include <dt-bindings/interrupt-controller/arm-gic.h>
>>   #include <dt-bindings/clock/qcom,gcc-ipq5018.h>
>>   #include <dt-bindings/reset/qcom,gcc-ipq5018.h>
>> +#include <dt-bindings/clock/qcom,apss-ipq.h>
> c is before r.
>
>>   
>>   / {
>>   	interrupt-parent = <&intc>;
>> @@ -36,6 +37,8 @@ CPU0: cpu@0 {
>>   			reg = <0x0>;
>>   			enable-method = "psci";
>>   			next-level-cache = <&L2_0>;
>> +			clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
>> +			operating-points-v2 = <&cpu_opp_table>;
>>   		};
>>   
>>   		CPU1: cpu@1 {
>> @@ -44,6 +47,8 @@ CPU1: cpu@1 {
>>   			reg = <0x1>;
>>   			enable-method = "psci";
>>   			next-level-cache = <&L2_0>;
>> +			clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
>> +			operating-points-v2 = <&cpu_opp_table>;
>>   		};
>>   
>>   		L2_0: l2-cache {
>> @@ -54,6 +59,17 @@ L2_0: l2-cache {
>>   		};
>>   	};
>>   
>> +	cpu_opp_table: opp-table-cpu {
>> +		compatible = "operating-points-v2";
>> +		opp-shared;
>> +
>> +		opp-1008000000 {
>> +			opp-hz = /bits/ 64 <1008000000>;
>> +			opp-microvolt = <1100000>;
>> +			clock-latency-ns = <200000>;
> And the rest of OPPs?
Hi Krzysztof,
IPQ5018 only supports running at 1.1GHz, but its running at 800MHz
by default from the bootloader so there is only one OPP.

I am glad to see more SoC-s gaining CPUFreq support.

Regards,
Robert
>
>> +		};
>> +	};
>> +
>>   	firmware {
>>   		scm {
>>   			compatible = "qcom,scm-ipq5018", "qcom,scm";
>> @@ -181,6 +197,24 @@ v2m1: v2m@1000 {
>>   			};
>>   		};
>>   
>> +		a53pll: clock@b116000 {
>> +			compatible = "qcom,ipq5018-a53pll";
>> +			reg = <0x0b116000 0x40>;
>> +			#clock-cells = <0>;
>> +			clocks = <&xo_board_clk>;
>> +			clock-names = "xo";
>> +		};
>> +
>> +		apcs_glb: mailbox@b111000 {
> 0xb111000 looks lower than 0x116000.
>
>> +			compatible = "qcom,ipq5018-apcs-apps-global",
>> +				     "qcom,ipq6018-apcs-apps-global";
>> +			reg = <0x0b111000 0x1000>;
> Best regards,
> Krzysztof
>
>
>

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

* Re: [PATCH 3/3] arm64: dts: qcom: ipq5018: enable the CPUFreq support
  2023-08-29 10:56     ` Robert Marko
@ 2023-08-29 11:00       ` Dmitry Baryshkov
  2023-08-29 11:10       ` Krzysztof Kozlowski
  2023-08-30  6:50       ` Gokul Sriram P
  2 siblings, 0 replies; 19+ messages in thread
From: Dmitry Baryshkov @ 2023-08-29 11:00 UTC (permalink / raw)
  To: Robert Marko
  Cc: Krzysztof Kozlowski, Gokul Sriram Palanisamy, agross, andersson,
	konrad.dybcio, mturquette, sboyd, robh+dt, krzysztof.kozlowski+dt,
	jassisinghbrar, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, quic_varada, quic_srichara

On Tue, 29 Aug 2023 at 13:59, Robert Marko <robimarko@gmail.com> wrote:
>
>
> On 29. 08. 2023. 12:12, Krzysztof Kozlowski wrote:
> > On 29/08/2023 11:54, Gokul Sriram Palanisamy wrote:
> >> Add the APCS, A53 PLL, cpu-opp-table nodes to set
> >> the CPU frequency at optimal range.
> >>
> >> Co-developed-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> >> Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> >> Signed-off-by: Gokul Sriram Palanisamy <quic_gokulsri@quicinc.com>
> >> ---
> >>   arch/arm64/boot/dts/qcom/ipq5018.dtsi | 34 +++++++++++++++++++++++++++
> >>   1 file changed, 34 insertions(+)
> >>
> >> diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> >> index 9f13d2dcdfd5..05843517312c 100644
> >> --- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> >> +++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> >> @@ -8,6 +8,7 @@
> >>   #include <dt-bindings/interrupt-controller/arm-gic.h>
> >>   #include <dt-bindings/clock/qcom,gcc-ipq5018.h>
> >>   #include <dt-bindings/reset/qcom,gcc-ipq5018.h>
> >> +#include <dt-bindings/clock/qcom,apss-ipq.h>
> > c is before r.
> >
> >>
> >>   / {
> >>      interrupt-parent = <&intc>;
> >> @@ -36,6 +37,8 @@ CPU0: cpu@0 {
> >>                      reg = <0x0>;
> >>                      enable-method = "psci";
> >>                      next-level-cache = <&L2_0>;
> >> +                    clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
> >> +                    operating-points-v2 = <&cpu_opp_table>;
> >>              };
> >>
> >>              CPU1: cpu@1 {
> >> @@ -44,6 +47,8 @@ CPU1: cpu@1 {
> >>                      reg = <0x1>;
> >>                      enable-method = "psci";
> >>                      next-level-cache = <&L2_0>;
> >> +                    clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
> >> +                    operating-points-v2 = <&cpu_opp_table>;
> >>              };
> >>
> >>              L2_0: l2-cache {
> >> @@ -54,6 +59,17 @@ L2_0: l2-cache {
> >>              };
> >>      };
> >>
> >> +    cpu_opp_table: opp-table-cpu {
> >> +            compatible = "operating-points-v2";
> >> +            opp-shared;
> >> +
> >> +            opp-1008000000 {
> >> +                    opp-hz = /bits/ 64 <1008000000>;
> >> +                    opp-microvolt = <1100000>;
> >> +                    clock-latency-ns = <200000>;
> > And the rest of OPPs?
> Hi Krzysztof,
> IPQ5018 only supports running at 1.1GHz, but its running at 800MHz
> by default from the bootloader so there is only one OPP.

If the bootloader sets it to 800 MHz, then this frequency is also
somehow 'supported', isn't it?

> I am glad to see more SoC-s gaining CPUFreq support.

Definitely.

>
> Regards,
> Robert
> >
> >> +            };
> >> +    };
> >> +
> >>      firmware {
> >>              scm {
> >>                      compatible = "qcom,scm-ipq5018", "qcom,scm";
> >> @@ -181,6 +197,24 @@ v2m1: v2m@1000 {
> >>                      };
> >>              };
> >>
> >> +            a53pll: clock@b116000 {
> >> +                    compatible = "qcom,ipq5018-a53pll";
> >> +                    reg = <0x0b116000 0x40>;
> >> +                    #clock-cells = <0>;
> >> +                    clocks = <&xo_board_clk>;
> >> +                    clock-names = "xo";
> >> +            };
> >> +
> >> +            apcs_glb: mailbox@b111000 {
> > 0xb111000 looks lower than 0x116000.
> >
> >> +                    compatible = "qcom,ipq5018-apcs-apps-global",
> >> +                                 "qcom,ipq6018-apcs-apps-global";
> >> +                    reg = <0x0b111000 0x1000>;
> > Best regards,
> > Krzysztof
> >
> >
> >



-- 
With best wishes
Dmitry

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

* Re: [PATCH 3/3] arm64: dts: qcom: ipq5018: enable the CPUFreq support
  2023-08-29 10:56     ` Robert Marko
  2023-08-29 11:00       ` Dmitry Baryshkov
@ 2023-08-29 11:10       ` Krzysztof Kozlowski
  2023-08-29 11:18         ` Robert Marko
  2023-08-30  6:50       ` Gokul Sriram P
  2 siblings, 1 reply; 19+ messages in thread
From: Krzysztof Kozlowski @ 2023-08-29 11:10 UTC (permalink / raw)
  To: Robert Marko, Gokul Sriram Palanisamy, agross, andersson,
	konrad.dybcio, mturquette, sboyd, robh+dt, krzysztof.kozlowski+dt,
	jassisinghbrar, linux-arm-msm, linux-clk, devicetree,
	linux-kernel
  Cc: quic_varada, quic_srichara

On 29/08/2023 12:56, Robert Marko wrote:
> 
> On 29. 08. 2023. 12:12, Krzysztof Kozlowski wrote:
>> On 29/08/2023 11:54, Gokul Sriram Palanisamy wrote:
>>> Add the APCS, A53 PLL, cpu-opp-table nodes to set
>>> the CPU frequency at optimal range.
>>>
>>> Co-developed-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
>>> Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
>>> Signed-off-by: Gokul Sriram Palanisamy <quic_gokulsri@quicinc.com>
>>> ---
>>>   arch/arm64/boot/dts/qcom/ipq5018.dtsi | 34 +++++++++++++++++++++++++++
>>>   1 file changed, 34 insertions(+)
>>>
>>> diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
>>> index 9f13d2dcdfd5..05843517312c 100644
>>> --- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
>>> +++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
>>> @@ -8,6 +8,7 @@
>>>   #include <dt-bindings/interrupt-controller/arm-gic.h>
>>>   #include <dt-bindings/clock/qcom,gcc-ipq5018.h>
>>>   #include <dt-bindings/reset/qcom,gcc-ipq5018.h>
>>> +#include <dt-bindings/clock/qcom,apss-ipq.h>
>> c is before r.
>>
>>>   
>>>   / {
>>>   	interrupt-parent = <&intc>;
>>> @@ -36,6 +37,8 @@ CPU0: cpu@0 {
>>>   			reg = <0x0>;
>>>   			enable-method = "psci";
>>>   			next-level-cache = <&L2_0>;
>>> +			clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
>>> +			operating-points-v2 = <&cpu_opp_table>;
>>>   		};
>>>   
>>>   		CPU1: cpu@1 {
>>> @@ -44,6 +47,8 @@ CPU1: cpu@1 {
>>>   			reg = <0x1>;
>>>   			enable-method = "psci";
>>>   			next-level-cache = <&L2_0>;
>>> +			clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
>>> +			operating-points-v2 = <&cpu_opp_table>;
>>>   		};
>>>   
>>>   		L2_0: l2-cache {
>>> @@ -54,6 +59,17 @@ L2_0: l2-cache {
>>>   		};
>>>   	};
>>>   
>>> +	cpu_opp_table: opp-table-cpu {
>>> +		compatible = "operating-points-v2";
>>> +		opp-shared;
>>> +
>>> +		opp-1008000000 {
>>> +			opp-hz = /bits/ 64 <1008000000>;
>>> +			opp-microvolt = <1100000>;
>>> +			clock-latency-ns = <200000>;
>> And the rest of OPPs?
> Hi Krzysztof,
> IPQ5018 only supports running at 1.1GHz, but its running at 800MHz
> by default from the bootloader so there is only one OPP.

Isn't this contradictory? If it is running at 800 initially, then it
supports running at 800...


Best regards,
Krzysztof


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

* Re: [PATCH 3/3] arm64: dts: qcom: ipq5018: enable the CPUFreq support
  2023-08-29 11:10       ` Krzysztof Kozlowski
@ 2023-08-29 11:18         ` Robert Marko
  2023-08-30  6:48           ` Gokul Sriram P
  0 siblings, 1 reply; 19+ messages in thread
From: Robert Marko @ 2023-08-29 11:18 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Gokul Sriram Palanisamy, agross, andersson, konrad.dybcio,
	mturquette, sboyd, robh+dt, krzysztof.kozlowski+dt,
	jassisinghbrar, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, quic_varada, quic_srichara

On Tue, 29 Aug 2023 at 13:10, Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> On 29/08/2023 12:56, Robert Marko wrote:
> >
> > On 29. 08. 2023. 12:12, Krzysztof Kozlowski wrote:
> >> On 29/08/2023 11:54, Gokul Sriram Palanisamy wrote:
> >>> Add the APCS, A53 PLL, cpu-opp-table nodes to set
> >>> the CPU frequency at optimal range.
> >>>
> >>> Co-developed-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> >>> Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> >>> Signed-off-by: Gokul Sriram Palanisamy <quic_gokulsri@quicinc.com>
> >>> ---
> >>>   arch/arm64/boot/dts/qcom/ipq5018.dtsi | 34 +++++++++++++++++++++++++++
> >>>   1 file changed, 34 insertions(+)
> >>>
> >>> diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> >>> index 9f13d2dcdfd5..05843517312c 100644
> >>> --- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> >>> +++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> >>> @@ -8,6 +8,7 @@
> >>>   #include <dt-bindings/interrupt-controller/arm-gic.h>
> >>>   #include <dt-bindings/clock/qcom,gcc-ipq5018.h>
> >>>   #include <dt-bindings/reset/qcom,gcc-ipq5018.h>
> >>> +#include <dt-bindings/clock/qcom,apss-ipq.h>
> >> c is before r.
> >>
> >>>
> >>>   / {
> >>>     interrupt-parent = <&intc>;
> >>> @@ -36,6 +37,8 @@ CPU0: cpu@0 {
> >>>                     reg = <0x0>;
> >>>                     enable-method = "psci";
> >>>                     next-level-cache = <&L2_0>;
> >>> +                   clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
> >>> +                   operating-points-v2 = <&cpu_opp_table>;
> >>>             };
> >>>
> >>>             CPU1: cpu@1 {
> >>> @@ -44,6 +47,8 @@ CPU1: cpu@1 {
> >>>                     reg = <0x1>;
> >>>                     enable-method = "psci";
> >>>                     next-level-cache = <&L2_0>;
> >>> +                   clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
> >>> +                   operating-points-v2 = <&cpu_opp_table>;
> >>>             };
> >>>
> >>>             L2_0: l2-cache {
> >>> @@ -54,6 +59,17 @@ L2_0: l2-cache {
> >>>             };
> >>>     };
> >>>
> >>> +   cpu_opp_table: opp-table-cpu {
> >>> +           compatible = "operating-points-v2";
> >>> +           opp-shared;
> >>> +
> >>> +           opp-1008000000 {
> >>> +                   opp-hz = /bits/ 64 <1008000000>;
> >>> +                   opp-microvolt = <1100000>;
> >>> +                   clock-latency-ns = <200000>;
> >> And the rest of OPPs?
> > Hi Krzysztof,
> > IPQ5018 only supports running at 1.1GHz, but its running at 800MHz
> > by default from the bootloader so there is only one OPP.
>
> Isn't this contradictory? If it is running at 800 initially, then it
> supports running at 800...

I can only guess that it's not validated at 800MHz.

Regards,
Robert
>
>
> Best regards,
> Krzysztof
>

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

* Re: [PATCH 2/3] clk: qcom: apss-ipq-pll: add support for IPQ5018
  2023-08-29  9:54 ` [PATCH 2/3] clk: qcom: apss-ipq-pll: add support for IPQ5018 Gokul Sriram Palanisamy
@ 2023-08-29 22:34   ` Stephen Boyd
  2023-08-30  6:37     ` Gokul Sriram P
  0 siblings, 1 reply; 19+ messages in thread
From: Stephen Boyd @ 2023-08-29 22:34 UTC (permalink / raw)
  To: Gokul Sriram Palanisamy, agross, andersson, devicetree,
	jassisinghbrar, konrad.dybcio, krzysztof.kozlowski+dt,
	linux-arm-msm, linux-clk, linux-kernel, mturquette, robh+dt
  Cc: quic_varada, quic_srichara, quic_gokulsri

Quoting Gokul Sriram Palanisamy (2023-08-29 02:54:22)
> diff --git a/drivers/clk/qcom/apss-ipq-pll.c b/drivers/clk/qcom/apss-ipq-pll.c
> index e170331858cc..bbc25d5eb70d 100644
> --- a/drivers/clk/qcom/apss-ipq-pll.c
> +++ b/drivers/clk/qcom/apss-ipq-pll.c
> @@ -24,6 +24,17 @@ static const u8 ipq_pll_offsets[][PLL_OFF_MAX_REGS] = {
>                 [PLL_OFF_TEST_CTL] = 0x30,
>                 [PLL_OFF_TEST_CTL_U] = 0x34,
>         },
> +       [CLK_ALPHA_PLL_TYPE_STROMER] = {
> +               [PLL_OFF_L_VAL] = 0x08,
> +               [PLL_OFF_ALPHA_VAL] = 0x10,
> +               [PLL_OFF_ALPHA_VAL_U] = 0x14,
> +               [PLL_OFF_USER_CTL] = 0x18,
> +               [PLL_OFF_USER_CTL_U] = 0x1c,
> +               [PLL_OFF_CONFIG_CTL] = 0x20,
> +               [PLL_OFF_STATUS] = 0x28,
> +               [PLL_OFF_TEST_CTL] = 0x30,
> +               [PLL_OFF_TEST_CTL_U] = 0x34,
> +       },

Is anything different from STROMER_PLUS?

>         [CLK_ALPHA_PLL_TYPE_STROMER_PLUS] = {
>                 [PLL_OFF_L_VAL] = 0x08,
>                 [PLL_OFF_ALPHA_VAL] = 0x10,
> @@ -73,6 +84,38 @@ static struct clk_alpha_pll ipq_pll_stromer_plus = {
>         },
>  };
>  
> +static struct clk_alpha_pll ipq_pll_stromer = {
> +       .offset = 0x0,
> +       .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_STROMER],
> +       .flags = SUPPORTS_DYNAMIC_UPDATE,
> +       .clkr = {
> +               .enable_reg = 0x0,
> +               .enable_mask = BIT(0),
> +               .hw.init = &(struct clk_init_data){

const?

> +                       .name = "a53pll",
> +                       .parent_data = &(const struct clk_parent_data) {
> +                               .fw_name = "xo",
> +                       },
> +                       .num_parents = 1,
> +                       .ops = &clk_alpha_pll_stromer_ops,
> +               },
> +       },
> +};
> +
> +static const struct alpha_pll_config ipq5018_pll_config = {
> +       .l = 0x32,
> +       .config_ctl_val = 0x4001075b,
> +       .config_ctl_hi_val = 0x304,
> +       .main_output_mask = BIT(0),
> +       .aux_output_mask = BIT(1),
> +       .early_output_mask = BIT(3),
> +       .alpha_en_mask = BIT(24),
> +       .status_val = 0x3,
> +       .status_mask = GENMASK(10, 8),
> +       .lock_det = BIT(2),
> +       .test_ctl_hi_val = 0x00400003,
> +};
> +
>  static const struct alpha_pll_config ipq5332_pll_config = {
>         .l = 0x3e,
>         .config_ctl_val = 0x4001075b,
> @@ -129,6 +172,12 @@ struct apss_pll_data {
>         const struct alpha_pll_config *pll_config;
>  };
>  
> +static struct apss_pll_data ipq5018_pll_data = {

const?

> +       .pll_type = CLK_ALPHA_PLL_TYPE_STROMER,
> +       .pll = &ipq_pll_stromer,
> +       .pll_config = &ipq5018_pll_config,
> +};
> +
>  static struct apss_pll_data ipq5332_pll_data = {
>         .pll_type = CLK_ALPHA_PLL_TYPE_STROMER_PLUS,
>         .pll = &ipq_pll_stromer_plus,
> @@ -183,7 +232,7 @@ static int apss_ipq_pll_probe(struct platform_device *pdev)
>  
>         if (data->pll_type == CLK_ALPHA_PLL_TYPE_HUAYRA)
>                 clk_alpha_pll_configure(data->pll, regmap, data->pll_config);
> -       else if (data->pll_type == CLK_ALPHA_PLL_TYPE_STROMER_PLUS)
> +       else

Just add both STROMER and STROMER_PLUS. Or make STROMER the same as
STROMER_PLUS locally in this file?

>                 clk_stromer_pll_configure(data->pll, regmap, data->pll_config);
>  
>         ret = devm_clk_register_regmap(dev, &data->pll->clkr);

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

* Re: [PATCH 2/3] clk: qcom: apss-ipq-pll: add support for IPQ5018
  2023-08-29 22:34   ` Stephen Boyd
@ 2023-08-30  6:37     ` Gokul Sriram P
  0 siblings, 0 replies; 19+ messages in thread
From: Gokul Sriram P @ 2023-08-30  6:37 UTC (permalink / raw)
  To: Stephen Boyd, agross, andersson, devicetree, jassisinghbrar,
	konrad.dybcio, krzysztof.kozlowski+dt, linux-arm-msm, linux-clk,
	linux-kernel, mturquette, robh+dt
  Cc: quic_varada, quic_srichara


On 8/30/2023 4:04 AM, Stephen Boyd wrote:
> Quoting Gokul Sriram Palanisamy (2023-08-29 02:54:22)
>> diff --git a/drivers/clk/qcom/apss-ipq-pll.c b/drivers/clk/qcom/apss-ipq-pll.c
>> index e170331858cc..bbc25d5eb70d 100644
>> --- a/drivers/clk/qcom/apss-ipq-pll.c
>> +++ b/drivers/clk/qcom/apss-ipq-pll.c
>> @@ -24,6 +24,17 @@ static const u8 ipq_pll_offsets[][PLL_OFF_MAX_REGS] = {
>>                  [PLL_OFF_TEST_CTL] = 0x30,
>>                  [PLL_OFF_TEST_CTL_U] = 0x34,
>>          },
>> +       [CLK_ALPHA_PLL_TYPE_STROMER] = {
>> +               [PLL_OFF_L_VAL] = 0x08,
>> +               [PLL_OFF_ALPHA_VAL] = 0x10,
>> +               [PLL_OFF_ALPHA_VAL_U] = 0x14,
>> +               [PLL_OFF_USER_CTL] = 0x18,
>> +               [PLL_OFF_USER_CTL_U] = 0x1c,
>> +               [PLL_OFF_CONFIG_CTL] = 0x20,
>> +               [PLL_OFF_STATUS] = 0x28,
>> +               [PLL_OFF_TEST_CTL] = 0x30,
>> +               [PLL_OFF_TEST_CTL_U] = 0x34,
>> +       },
> Is anything different from STROMER_PLUS?
  No, here both both STROMER and STROMER  PLUS has the same offsets.
   Will update to reuse STORMER PLUS config.
>>          [CLK_ALPHA_PLL_TYPE_STROMER_PLUS] = {
>>                  [PLL_OFF_L_VAL] = 0x08,
>>                  [PLL_OFF_ALPHA_VAL] = 0x10,
>> @@ -73,6 +84,38 @@ static struct clk_alpha_pll ipq_pll_stromer_plus = {
>>          },
>>   };
>>   
>> +static struct clk_alpha_pll ipq_pll_stromer = {
>> +       .offset = 0x0,
>> +       .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_STROMER],
>> +       .flags = SUPPORTS_DYNAMIC_UPDATE,
>> +       .clkr = {
>> +               .enable_reg = 0x0,
>> +               .enable_mask = BIT(0),
>> +               .hw.init = &(struct clk_init_data){
> const?
  sure, will update.
>> +                       .name = "a53pll",
>> +                       .parent_data = &(const struct clk_parent_data) {
>> +                               .fw_name = "xo",
>> +                       },
>> +                       .num_parents = 1,
>> +                       .ops = &clk_alpha_pll_stromer_ops,
>> +               },
>> +       },
>> +};
>> +
>> +static const struct alpha_pll_config ipq5018_pll_config = {
>> +       .l = 0x32,
>> +       .config_ctl_val = 0x4001075b,
>> +       .config_ctl_hi_val = 0x304,
>> +       .main_output_mask = BIT(0),
>> +       .aux_output_mask = BIT(1),
>> +       .early_output_mask = BIT(3),
>> +       .alpha_en_mask = BIT(24),
>> +       .status_val = 0x3,
>> +       .status_mask = GENMASK(10, 8),
>> +       .lock_det = BIT(2),
>> +       .test_ctl_hi_val = 0x00400003,
>> +};
>> +
>>   static const struct alpha_pll_config ipq5332_pll_config = {
>>          .l = 0x3e,
>>          .config_ctl_val = 0x4001075b,
>> @@ -129,6 +172,12 @@ struct apss_pll_data {
>>          const struct alpha_pll_config *pll_config;
>>   };
>>   
>> +static struct apss_pll_data ipq5018_pll_data = {
> const?
  sure, will update.
>> +       .pll_type = CLK_ALPHA_PLL_TYPE_STROMER,
>> +       .pll = &ipq_pll_stromer,
>> +       .pll_config = &ipq5018_pll_config,
>> +};
>> +
>>   static struct apss_pll_data ipq5332_pll_data = {
>>          .pll_type = CLK_ALPHA_PLL_TYPE_STROMER_PLUS,
>>          .pll = &ipq_pll_stromer_plus,
>> @@ -183,7 +232,7 @@ static int apss_ipq_pll_probe(struct platform_device *pdev)
>>   
>>          if (data->pll_type == CLK_ALPHA_PLL_TYPE_HUAYRA)
>>                  clk_alpha_pll_configure(data->pll, regmap, data->pll_config);
>> -       else if (data->pll_type == CLK_ALPHA_PLL_TYPE_STROMER_PLUS)
>> +       else
> Just add both STROMER and STROMER_PLUS. Or make STROMER the same as
> STROMER_PLUS locally in this file?

sure, with the first comment addressed, this change will not be needed.

Regards,
Gokul


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

* Re: [PATCH 1/3] dt-bindings: clock: qcom,a53pll: add IPQ5018 compatible
  2023-08-29 10:09   ` Krzysztof Kozlowski
@ 2023-08-30  6:40     ` Gokul Sriram P
  2023-08-30 19:47       ` Dmitry Baryshkov
  0 siblings, 1 reply; 19+ messages in thread
From: Gokul Sriram P @ 2023-08-30  6:40 UTC (permalink / raw)
  To: Krzysztof Kozlowski, agross, andersson, konrad.dybcio, mturquette,
	sboyd, robh+dt, krzysztof.kozlowski+dt, jassisinghbrar,
	linux-arm-msm, linux-clk, devicetree, linux-kernel
  Cc: quic_varada, quic_srichara


On 8/29/2023 3:39 PM, Krzysztof Kozlowski wrote:
> On 29/08/2023 11:54, Gokul Sriram Palanisamy wrote:
>> Add IPQ5018 compatible to A53 PLL bindings.
>>
>> Co-developed-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
>> Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> Knowing that this patch could not come from downstream (it's some old
> kernel without this file), I really wonder why two people were involved
> in developing trivial one line change.
Sure, I had kept this co-developed-by for this whole series of patches. 
will remove co-developed-by for this patch.

Regards,
Gokul

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

* Re: [PATCH 3/3] arm64: dts: qcom: ipq5018: enable the CPUFreq support
  2023-08-29 11:18         ` Robert Marko
@ 2023-08-30  6:48           ` Gokul Sriram P
  2023-08-30 19:42             ` Dmitry Baryshkov
  0 siblings, 1 reply; 19+ messages in thread
From: Gokul Sriram P @ 2023-08-30  6:48 UTC (permalink / raw)
  To: Robert Marko, Krzysztof Kozlowski
  Cc: agross, andersson, konrad.dybcio, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, jassisinghbrar, linux-arm-msm, linux-clk,
	devicetree, linux-kernel, quic_varada, quic_srichara


>>>>>    #include <dt-bindings/interrupt-controller/arm-gic.h>
>>>>>    #include <dt-bindings/clock/qcom,gcc-ipq5018.h>
>>>>>    #include <dt-bindings/reset/qcom,gcc-ipq5018.h>
>>>>> +#include <dt-bindings/clock/qcom,apss-ipq.h>
>>>> c is before r.
  Sure, will update.

[...]
>>>>
>>>>> +   cpu_opp_table: opp-table-cpu {
>>>>> +           compatible = "operating-points-v2";
>>>>> +           opp-shared;
>>>>> +
>>>>> +           opp-1008000000 {
>>>>> +                   opp-hz = /bits/ 64 <1008000000>;
>>>>> +                   opp-microvolt = <1100000>;
>>>>> +                   clock-latency-ns = <200000>;
>>>> And the rest of OPPs?
>>> Hi Krzysztof,
>>> IPQ5018 only supports running at 1.1GHz, but its running at 800MHz
>>> by default from the bootloader so there is only one OPP.
>> Isn't this contradictory? If it is running at 800 initially, then it
>> supports running at 800...
> I can only guess that it's not validated at 800MHz.
As per the h/w design team, there is negligible power or thermal benefit 
by lowering to 800MHz clock.
Hence, 800MHz opp wasn't included here.
>
> Regards,
> Robert
>>
>> Best regards,
>> Krzysztof
>>

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

* Re: [PATCH 3/3] arm64: dts: qcom: ipq5018: enable the CPUFreq support
  2023-08-29 10:56     ` Robert Marko
  2023-08-29 11:00       ` Dmitry Baryshkov
  2023-08-29 11:10       ` Krzysztof Kozlowski
@ 2023-08-30  6:50       ` Gokul Sriram P
  2 siblings, 0 replies; 19+ messages in thread
From: Gokul Sriram P @ 2023-08-30  6:50 UTC (permalink / raw)
  To: Robert Marko, Krzysztof Kozlowski, agross, andersson,
	konrad.dybcio, mturquette, sboyd, robh+dt, krzysztof.kozlowski+dt,
	jassisinghbrar, linux-arm-msm, linux-clk, devicetree,
	linux-kernel
  Cc: quic_varada, quic_srichara

[...]
>>>   +        a53pll: clock@b116000 {
>>> +            compatible = "qcom,ipq5018-a53pll";
>>> +            reg = <0x0b116000 0x40>;
>>> +            #clock-cells = <0>;
>>> +            clocks = <&xo_board_clk>;
>>> +            clock-names = "xo";
>>> +        };
>>> +
>>> +        apcs_glb: mailbox@b111000 {
>> 0xb111000 looks lower than 0x116000.
Sure, will update.

Regards,
Gokul

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

* Re: [PATCH 3/3] arm64: dts: qcom: ipq5018: enable the CPUFreq support
  2023-08-30  6:48           ` Gokul Sriram P
@ 2023-08-30 19:42             ` Dmitry Baryshkov
  2023-08-31  6:10               ` Gokul Sriram P
  0 siblings, 1 reply; 19+ messages in thread
From: Dmitry Baryshkov @ 2023-08-30 19:42 UTC (permalink / raw)
  To: Gokul Sriram P
  Cc: Robert Marko, Krzysztof Kozlowski, agross, andersson,
	konrad.dybcio, mturquette, sboyd, robh+dt, krzysztof.kozlowski+dt,
	jassisinghbrar, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, quic_varada, quic_srichara

On Wed, 30 Aug 2023 at 21:32, Gokul Sriram P <quic_gokulsri@quicinc.com> wrote:
>
>
> >>>>>    #include <dt-bindings/interrupt-controller/arm-gic.h>
> >>>>>    #include <dt-bindings/clock/qcom,gcc-ipq5018.h>
> >>>>>    #include <dt-bindings/reset/qcom,gcc-ipq5018.h>
> >>>>> +#include <dt-bindings/clock/qcom,apss-ipq.h>
> >>>> c is before r.
>   Sure, will update.
>
> [...]
> >>>>
> >>>>> +   cpu_opp_table: opp-table-cpu {
> >>>>> +           compatible = "operating-points-v2";
> >>>>> +           opp-shared;
> >>>>> +
> >>>>> +           opp-1008000000 {
> >>>>> +                   opp-hz = /bits/ 64 <1008000000>;
> >>>>> +                   opp-microvolt = <1100000>;
> >>>>> +                   clock-latency-ns = <200000>;
> >>>> And the rest of OPPs?
> >>> Hi Krzysztof,
> >>> IPQ5018 only supports running at 1.1GHz, but its running at 800MHz
> >>> by default from the bootloader so there is only one OPP.
> >> Isn't this contradictory? If it is running at 800 initially, then it
> >> supports running at 800...
> > I can only guess that it's not validated at 800MHz.
> As per the h/w design team, there is negligible power or thermal benefit
> by lowering to 800MHz clock.
> Hence, 800MHz opp wasn't included here.

Just my 2c. If 800 MHz is supported, it should be included. Even if
just to prevent the kernel from throwing a warning about the CPU
running at the unsupported frequency. Then one can use scheduler
tunings to prevent the CPU from going to 800 MHz state.


-- 
With best wishes
Dmitry

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

* Re: [PATCH 1/3] dt-bindings: clock: qcom,a53pll: add IPQ5018 compatible
  2023-08-30  6:40     ` Gokul Sriram P
@ 2023-08-30 19:47       ` Dmitry Baryshkov
  2023-08-31  3:26         ` Gokul Sriram P
  0 siblings, 1 reply; 19+ messages in thread
From: Dmitry Baryshkov @ 2023-08-30 19:47 UTC (permalink / raw)
  To: Gokul Sriram P
  Cc: Krzysztof Kozlowski, agross, andersson, konrad.dybcio, mturquette,
	sboyd, robh+dt, krzysztof.kozlowski+dt, jassisinghbrar,
	linux-arm-msm, linux-clk, devicetree, linux-kernel, quic_varada,
	quic_srichara

On Wed, 30 Aug 2023 at 21:31, Gokul Sriram P <quic_gokulsri@quicinc.com> wrote:
>
>
> On 8/29/2023 3:39 PM, Krzysztof Kozlowski wrote:
> > On 29/08/2023 11:54, Gokul Sriram Palanisamy wrote:
> >> Add IPQ5018 compatible to A53 PLL bindings.
> >>
> >> Co-developed-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> >> Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> > Knowing that this patch could not come from downstream (it's some old
> > kernel without this file), I really wonder why two people were involved
> > in developing trivial one line change.
> Sure, I had kept this co-developed-by for this whole series of patches.
> will remove co-developed-by for this patch.

Each patch is individual, even if they form a series. Different
patches might be developed by different parties or a combination of
them.


-- 
With best wishes
Dmitry

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

* Re: [PATCH 1/3] dt-bindings: clock: qcom,a53pll: add IPQ5018 compatible
  2023-08-30 19:47       ` Dmitry Baryshkov
@ 2023-08-31  3:26         ` Gokul Sriram P
  0 siblings, 0 replies; 19+ messages in thread
From: Gokul Sriram P @ 2023-08-31  3:26 UTC (permalink / raw)
  To: Dmitry Baryshkov
  Cc: Krzysztof Kozlowski, agross, andersson, konrad.dybcio, mturquette,
	sboyd, robh+dt, krzysztof.kozlowski+dt, jassisinghbrar,
	linux-arm-msm, linux-clk, devicetree, linux-kernel, quic_varada,
	quic_srichara


On 8/31/2023 1:17 AM, Dmitry Baryshkov wrote:
> Each patch is individual, even if they form a series. Different
> patches might be developed by different parties or a combination of
> them.

I get it Dmitry. Thanks. Will update.

Regards,
Gokul


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

* Re: [PATCH 3/3] arm64: dts: qcom: ipq5018: enable the CPUFreq support
  2023-08-30 19:42             ` Dmitry Baryshkov
@ 2023-08-31  6:10               ` Gokul Sriram P
  0 siblings, 0 replies; 19+ messages in thread
From: Gokul Sriram P @ 2023-08-31  6:10 UTC (permalink / raw)
  To: Dmitry Baryshkov
  Cc: Robert Marko, Krzysztof Kozlowski, agross, andersson,
	konrad.dybcio, mturquette, sboyd, robh+dt, krzysztof.kozlowski+dt,
	jassisinghbrar, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, quic_varada, quic_srichara


On 8/31/2023 1:12 AM, Dmitry Baryshkov wrote:
> On Wed, 30 Aug 2023 at 21:32, Gokul Sriram P <quic_gokulsri@quicinc.com> wrote:
>>
>>>>>>>     #include <dt-bindings/interrupt-controller/arm-gic.h>
>>>>>>>     #include <dt-bindings/clock/qcom,gcc-ipq5018.h>
>>>>>>>     #include <dt-bindings/reset/qcom,gcc-ipq5018.h>
>>>>>>> +#include <dt-bindings/clock/qcom,apss-ipq.h>
>>>>>> c is before r.
>>    Sure, will update.
>>
>> [...]
>>>>>>> +   cpu_opp_table: opp-table-cpu {
>>>>>>> +           compatible = "operating-points-v2";
>>>>>>> +           opp-shared;
>>>>>>> +
>>>>>>> +           opp-1008000000 {
>>>>>>> +                   opp-hz = /bits/ 64 <1008000000>;
>>>>>>> +                   opp-microvolt = <1100000>;
>>>>>>> +                   clock-latency-ns = <200000>;
>>>>>> And the rest of OPPs?
>>>>> Hi Krzysztof,
>>>>> IPQ5018 only supports running at 1.1GHz, but its running at 800MHz
>>>>> by default from the bootloader so there is only one OPP.
>>>> Isn't this contradictory? If it is running at 800 initially, then it
>>>> supports running at 800...
>>> I can only guess that it's not validated at 800MHz.
>> As per the h/w design team, there is negligible power or thermal benefit
>> by lowering to 800MHz clock.
>> Hence, 800MHz opp wasn't included here.
> Just my 2c. If 800 MHz is supported, it should be included. Even if
> just to prevent the kernel from throwing a warning about the CPU
> running at the unsupported frequency. Then one can use scheduler
> tunings to prevent the CPU from going to 800 MHz state.

sure, understood. Will add opp at 800MHz. Thanks.

Regards,
Gokul


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

end of thread, other threads:[~2023-08-31  6:11 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-29  9:54 [PATCH 0/3] Add APSS clock driver support for IPQ5018 Gokul Sriram Palanisamy
2023-08-29  9:54 ` [PATCH 1/3] dt-bindings: clock: qcom,a53pll: add IPQ5018 compatible Gokul Sriram Palanisamy
2023-08-29 10:09   ` Krzysztof Kozlowski
2023-08-30  6:40     ` Gokul Sriram P
2023-08-30 19:47       ` Dmitry Baryshkov
2023-08-31  3:26         ` Gokul Sriram P
2023-08-29  9:54 ` [PATCH 2/3] clk: qcom: apss-ipq-pll: add support for IPQ5018 Gokul Sriram Palanisamy
2023-08-29 22:34   ` Stephen Boyd
2023-08-30  6:37     ` Gokul Sriram P
2023-08-29  9:54 ` [PATCH 3/3] arm64: dts: qcom: ipq5018: enable the CPUFreq support Gokul Sriram Palanisamy
2023-08-29 10:12   ` Krzysztof Kozlowski
2023-08-29 10:56     ` Robert Marko
2023-08-29 11:00       ` Dmitry Baryshkov
2023-08-29 11:10       ` Krzysztof Kozlowski
2023-08-29 11:18         ` Robert Marko
2023-08-30  6:48           ` Gokul Sriram P
2023-08-30 19:42             ` Dmitry Baryshkov
2023-08-31  6:10               ` Gokul Sriram P
2023-08-30  6:50       ` Gokul Sriram P

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).