diff mbox series

[RFC,v1,14/14] arm64: dts: mediatek: mt7988: add operating-points

Message ID 20241029103937.45852-15-linux@fw-web.de (mailing list archive)
State New, archived
Headers show
Series Add some mt7988 DTS labels and new nodes | expand

Commit Message

Frank Wunderlich Oct. 29, 2024, 10:39 a.m. UTC
From: Frank Wunderlich <frank-w@public-files.de>

Add operating points defining frequency/voltages of cpu cores.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
---
 arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 45 +++++++++++++++++++++--
 1 file changed, 41 insertions(+), 4 deletions(-)

Comments

AngeloGioacchino Del Regno Nov. 27, 2024, 1:34 p.m. UTC | #1
Il 29/10/24 11:39, Frank Wunderlich ha scritto:
> From: Frank Wunderlich <frank-w@public-files.de>
> 
> Add operating points defining frequency/voltages of cpu cores.
> 
> Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
> ---
>   arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 45 +++++++++++++++++++++--
>   1 file changed, 41 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
> index e037854666c1..25669d498617 100644
> --- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
> +++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
> @@ -16,32 +16,69 @@ cpus {
>   		#address-cells = <1>;
>   		#size-cells = <0>;
>   
> -		cpu@0 {
> +		cpu0: cpu@0 {

Where are those cpuX labels used? I don't see any usage.

>   			compatible = "arm,cortex-a73";
>   			reg = <0x0>;
>   			device_type = "cpu";
>   			enable-method = "psci";
> +			clocks = <&mcusys CLK_MCU_ARM_DIV_SEL>,
> +				 <&topckgen CLK_TOP_XTAL>;
> +			clock-names = "cpu", "intermediate";
> +			operating-points-v2 = <&cluster0_opp>;
>   		};
>   
> -		cpu@1 {
> +		cpu1: cpu@1 {
>   			compatible = "arm,cortex-a73";
>   			reg = <0x1>;
>   			device_type = "cpu";
>   			enable-method = "psci";
> +			clocks = <&mcusys CLK_MCU_ARM_DIV_SEL>,
> +				 <&topckgen CLK_TOP_XTAL>;
> +			clock-names = "cpu", "intermediate";
> +			operating-points-v2 = <&cluster0_opp>;
>   		};
>   
> -		cpu@2 {
> +		cpu2: cpu@2 {
>   			compatible = "arm,cortex-a73";
>   			reg = <0x2>;
>   			device_type = "cpu";
>   			enable-method = "psci";
> +			clocks = <&mcusys CLK_MCU_ARM_DIV_SEL>,
> +				 <&topckgen CLK_TOP_XTAL>;
> +			clock-names = "cpu", "intermediate";
> +			operating-points-v2 = <&cluster0_opp>;
>   		};
>   
> -		cpu@3 {
> +		cpu3: cpu@3 {
>   			compatible = "arm,cortex-a73";
>   			reg = <0x3>;
>   			device_type = "cpu";
>   			enable-method = "psci";
> +			clocks = <&mcusys CLK_MCU_ARM_DIV_SEL>,
> +				 <&topckgen CLK_TOP_XTAL>;
> +			clock-names = "cpu", "intermediate";
> +			operating-points-v2 = <&cluster0_opp>;
> +		};
> +
> +		cluster0_opp: opp-table-0 {
> +			compatible = "operating-points-v2";
> +			opp-shared;
> +			opp00 {

...But you can also be consistent with other devicetrees and follow the pattern
for the node names of the OPP entries.

opp-800000000
opp-1100000000
...etc

Cheers,
Angelo

> +				opp-hz = /bits/ 64 <800000000>;
> +				opp-microvolt = <850000>;
> +			};
> +			opp01 {
> +				opp-hz = /bits/ 64 <1100000000>;
> +				opp-microvolt = <850000>;
> +			};
> +			opp02 {
> +				opp-hz = /bits/ 64 <1500000000>;
> +				opp-microvolt = <850000>;
> +			};
> +			opp03 {
> +				opp-hz = /bits/ 64 <1800000000>;
> +				opp-microvolt = <900000>;
> +			};
>   		};
>   	};
>
Frank Wunderlich Nov. 27, 2024, 3:06 p.m. UTC | #2
&gt; Gesendet: Mittwoch, 27. November 2024 um 14:34
&gt; Von: "AngeloGioacchino Del Regno" <angelogioacchino.delregno@collabora.com>
&gt; An: "Frank Wunderlich" <linux@fw-web.de>, "Rob Herring" <robh@kernel.org>, "Krzysztof Kozlowski" <krzk+dt@kernel.org>, "Conor Dooley" <conor+dt@kernel.org>, "Matthias Brugger" <matthias.bgg@gmail.com>
&gt; CC: "Frank Wunderlich" <frank-w@public-files.de>, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org
&gt; Betreff: Re: [RFC v1 14/14] arm64: dts: mediatek: mt7988: add operating-points
&gt;
&gt; Il 29/10/24 11:39, Frank Wunderlich ha scritto:
&gt; &gt; From: Frank Wunderlich <frank-w@public-files.de>
&gt; &gt;
&gt; &gt; Add operating points defining frequency/voltages of cpu cores.
&gt; &gt;
&gt; &gt; Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
&gt; &gt; ---
&gt; &gt;   arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 45 +++++++++++++++++++++--
&gt; &gt;   1 file changed, 41 insertions(+), 4 deletions(-)
&gt; &gt;
&gt; &gt; diff --git a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
&gt; &gt; index e037854666c1..25669d498617 100644
&gt; &gt; --- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
&gt; &gt; +++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
&gt; &gt; @@ -16,32 +16,69 @@ cpus {
&gt; &gt;   		#address-cells = &lt;1&gt;;
&gt; &gt;   		#size-cells = &lt;0&gt;;
&gt; &gt;
&gt; &gt; -		cpu@0 {
&gt; &gt; +		cpu0: cpu@0 {
&gt;
&gt; Where are those cpuX labels used? I don't see any usage.

these are used in later patch and needed in uboot when we want to switch to OF_UPSTREAM.

&gt; &gt;   			compatible = "arm,cortex-a73";
&gt; &gt;   			reg = &lt;0x0&gt;;
&gt; &gt;   			device_type = "cpu";
&gt; &gt;   			enable-method = "psci";
&gt; &gt; +			clocks = &lt;&amp;mcusys CLK_MCU_ARM_DIV_SEL&gt;,
&gt; &gt; +				 &lt;&amp;topckgen CLK_TOP_XTAL&gt;;
&gt; &gt; +			clock-names = "cpu", "intermediate";
&gt; &gt; +			operating-points-v2 = &lt;&amp;cluster0_opp&gt;;
&gt; &gt;   		};
&gt; &gt;
&gt; &gt; -		cpu@1 {
&gt; &gt; +		cpu1: cpu@1 {
&gt; &gt;   			compatible = "arm,cortex-a73";
&gt; &gt;   			reg = &lt;0x1&gt;;
&gt; &gt;   			device_type = "cpu";
&gt; &gt;   			enable-method = "psci";
&gt; &gt; +			clocks = &lt;&amp;mcusys CLK_MCU_ARM_DIV_SEL&gt;,
&gt; &gt; +				 &lt;&amp;topckgen CLK_TOP_XTAL&gt;;
&gt; &gt; +			clock-names = "cpu", "intermediate";
&gt; &gt; +			operating-points-v2 = &lt;&amp;cluster0_opp&gt;;
&gt; &gt;   		};
&gt; &gt;
&gt; &gt; -		cpu@2 {
&gt; &gt; +		cpu2: cpu@2 {
&gt; &gt;   			compatible = "arm,cortex-a73";
&gt; &gt;   			reg = &lt;0x2&gt;;
&gt; &gt;   			device_type = "cpu";
&gt; &gt;   			enable-method = "psci";
&gt; &gt; +			clocks = &lt;&amp;mcusys CLK_MCU_ARM_DIV_SEL&gt;,
&gt; &gt; +				 &lt;&amp;topckgen CLK_TOP_XTAL&gt;;
&gt; &gt; +			clock-names = "cpu", "intermediate";
&gt; &gt; +			operating-points-v2 = &lt;&amp;cluster0_opp&gt;;
&gt; &gt;   		};
&gt; &gt;
&gt; &gt; -		cpu@3 {
&gt; &gt; +		cpu3: cpu@3 {
&gt; &gt;   			compatible = "arm,cortex-a73";
&gt; &gt;   			reg = &lt;0x3&gt;;
&gt; &gt;   			device_type = "cpu";
&gt; &gt;   			enable-method = "psci";
&gt; &gt; +			clocks = &lt;&amp;mcusys CLK_MCU_ARM_DIV_SEL&gt;,
&gt; &gt; +				 &lt;&amp;topckgen CLK_TOP_XTAL&gt;;
&gt; &gt; +			clock-names = "cpu", "intermediate";
&gt; &gt; +			operating-points-v2 = &lt;&amp;cluster0_opp&gt;;
&gt; &gt; +		};
&gt; &gt; +
&gt; &gt; +		cluster0_opp: opp-table-0 {
&gt; &gt; +			compatible = "operating-points-v2";
&gt; &gt; +			opp-shared;
&gt; &gt; +			opp00 {
&gt;
&gt; ...But you can also be consistent with other devicetrees and follow the pattern
&gt; for the node names of the OPP entries.
&gt;
&gt; opp-800000000
&gt; opp-1100000000
&gt; ...etc

ok, will change this..so just adding the opp-hz value to the name (or label)?

&gt; Cheers,
&gt; Angelo
&gt;
&gt; &gt; +				opp-hz = /bits/ 64 &lt;800000000&gt;;
&gt; &gt; +				opp-microvolt = &lt;850000&gt;;
&gt; &gt; +			};
&gt; &gt; +			opp01 {
&gt; &gt; +				opp-hz = /bits/ 64 &lt;1100000000&gt;;
&gt; &gt; +				opp-microvolt = &lt;850000&gt;;
&gt; &gt; +			};
&gt; &gt; +			opp02 {
&gt; &gt; +				opp-hz = /bits/ 64 &lt;1500000000&gt;;
&gt; &gt; +				opp-microvolt = &lt;850000&gt;;
&gt; &gt; +			};
&gt; &gt; +			opp03 {
&gt; &gt; +				opp-hz = /bits/ 64 &lt;1800000000&gt;;
&gt; &gt; +				opp-microvolt = &lt;900000&gt;;
&gt; &gt; +			};
&gt; &gt;   		};
&gt; &gt;   	};
&gt; &gt;
&gt;
&gt;
&gt; </frank-w@public-files.de></frank-w@public-files.de></frank-w@public-files.de></matthias.bgg@gmail.com></conor+dt@kernel.org></krzk+dt@kernel.org></robh@kernel.org></linux@fw-web.de></angelogioacchino.delregno@collabora.com>
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
index e037854666c1..25669d498617 100644
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
@@ -16,32 +16,69 @@  cpus {
 		#address-cells = <1>;
 		#size-cells = <0>;
 
-		cpu@0 {
+		cpu0: cpu@0 {
 			compatible = "arm,cortex-a73";
 			reg = <0x0>;
 			device_type = "cpu";
 			enable-method = "psci";
+			clocks = <&mcusys CLK_MCU_ARM_DIV_SEL>,
+				 <&topckgen CLK_TOP_XTAL>;
+			clock-names = "cpu", "intermediate";
+			operating-points-v2 = <&cluster0_opp>;
 		};
 
-		cpu@1 {
+		cpu1: cpu@1 {
 			compatible = "arm,cortex-a73";
 			reg = <0x1>;
 			device_type = "cpu";
 			enable-method = "psci";
+			clocks = <&mcusys CLK_MCU_ARM_DIV_SEL>,
+				 <&topckgen CLK_TOP_XTAL>;
+			clock-names = "cpu", "intermediate";
+			operating-points-v2 = <&cluster0_opp>;
 		};
 
-		cpu@2 {
+		cpu2: cpu@2 {
 			compatible = "arm,cortex-a73";
 			reg = <0x2>;
 			device_type = "cpu";
 			enable-method = "psci";
+			clocks = <&mcusys CLK_MCU_ARM_DIV_SEL>,
+				 <&topckgen CLK_TOP_XTAL>;
+			clock-names = "cpu", "intermediate";
+			operating-points-v2 = <&cluster0_opp>;
 		};
 
-		cpu@3 {
+		cpu3: cpu@3 {
 			compatible = "arm,cortex-a73";
 			reg = <0x3>;
 			device_type = "cpu";
 			enable-method = "psci";
+			clocks = <&mcusys CLK_MCU_ARM_DIV_SEL>,
+				 <&topckgen CLK_TOP_XTAL>;
+			clock-names = "cpu", "intermediate";
+			operating-points-v2 = <&cluster0_opp>;
+		};
+
+		cluster0_opp: opp-table-0 {
+			compatible = "operating-points-v2";
+			opp-shared;
+			opp00 {
+				opp-hz = /bits/ 64 <800000000>;
+				opp-microvolt = <850000>;
+			};
+			opp01 {
+				opp-hz = /bits/ 64 <1100000000>;
+				opp-microvolt = <850000>;
+			};
+			opp02 {
+				opp-hz = /bits/ 64 <1500000000>;
+				opp-microvolt = <850000>;
+			};
+			opp03 {
+				opp-hz = /bits/ 64 <1800000000>;
+				opp-microvolt = <900000>;
+			};
 		};
 	};