diff mbox series

[2/3] arm64: dts: mediatek: add support for MT8370 SoC

Message ID 20250114-dts_mt8370-genio-510-v1-2-8517ee0fdbe8@collabora.com (mailing list archive)
State New
Headers show
Series Add support for Mediatek Genio 510 EVK board | expand

Commit Message

Louis-Alexis Eyraud Jan. 14, 2025, 7:38 a.m. UTC
This commit add the support of the Mediatek MT8370 SoC.
It is a less powerful variant of MT8390 SoC and their
main differences are:
- Arm Cortex-A55 cores number (4 vs 6)
- Arm Cortex-A78 core speed (2.0 GHz vs 2.2 Ghz)
- Arm Mali-G57 GPU core number (2 vs 3)

Like MT8390, MT8370 hardware register maps are identical to MT8188.

Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
---
 arch/arm64/boot/dts/mediatek/mt8188.dtsi |  8 ++--
 arch/arm64/boot/dts/mediatek/mt8370.dtsi | 64 ++++++++++++++++++++++++++++++++
 2 files changed, 68 insertions(+), 4 deletions(-)

Comments

AngeloGioacchino Del Regno Jan. 14, 2025, 10:32 a.m. UTC | #1
Il 14/01/25 08:38, Louis-Alexis Eyraud ha scritto:
> This commit add the support of the Mediatek MT8370 SoC.
> It is a less powerful variant of MT8390 SoC and their
> main differences are:
> - Arm Cortex-A55 cores number (4 vs 6)
> - Arm Cortex-A78 core speed (2.0 GHz vs 2.2 Ghz)
> - Arm Mali-G57 GPU core number (2 vs 3)

You're mentioning the number of GPU cores, but you're not adding any variation
in mt8370.dtsi: this is fine because the GPU is disabled by default, but please
either add it, or mention in the commit message that the override will be done
in a later commit.

> 
> Like MT8390, MT8370 hardware register maps are identical to MT8188.
> 
> Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
> ---
>   arch/arm64/boot/dts/mediatek/mt8188.dtsi |  8 ++--
>   arch/arm64/boot/dts/mediatek/mt8370.dtsi | 64 ++++++++++++++++++++++++++++++++
>   2 files changed, 68 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/mediatek/mt8188.dtsi b/arch/arm64/boot/dts/mediatek/mt8188.dtsi
> index 338120930b819645662465fa7b3c6be6491764ff..5d78f51c6183c15018986df2c76e6fdc1f9f43b4 100644
> --- a/arch/arm64/boot/dts/mediatek/mt8188.dtsi
> +++ b/arch/arm64/boot/dts/mediatek/mt8188.dtsi
> @@ -492,7 +492,7 @@ cpu_little0_crit: trip-crit {
>   			};
>   
>   			cooling-maps {
> -				map0 {
> +				cpu_little0_cooling_map0: map0 {
>   					trip = <&cpu_little0_alert0>;
>   					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
>   							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> @@ -530,7 +530,7 @@ cpu_little1_crit: trip-crit {
>   			};
>   
>   			cooling-maps {
> -				map0 {
> +				cpu_little1_cooling_map0: map0 {
>   					trip = <&cpu_little1_alert0>;
>   					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
>   							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> @@ -568,7 +568,7 @@ cpu_little2_crit: trip-crit {
>   			};
>   
>   			cooling-maps {
> -				map0 {
> +				cpu_little2_cooling_map0: map0 {
>   					trip = <&cpu_little2_alert0>;
>   					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
>   							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> @@ -606,7 +606,7 @@ cpu_little3_crit: trip-crit {
>   			};
>   
>   			cooling-maps {
> -				map0 {
> +				cpu_little3_cooling_map0: map0 {
>   					trip = <&cpu_little3_alert0>;
>   					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
>   							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> diff --git a/arch/arm64/boot/dts/mediatek/mt8370.dtsi b/arch/arm64/boot/dts/mediatek/mt8370.dtsi
> new file mode 100644
> index 0000000000000000000000000000000000000000..cf1a3759451ff899ce9e63e5a00f192fb483f6e5
> --- /dev/null
> +++ b/arch/arm64/boot/dts/mediatek/mt8370.dtsi
> @@ -0,0 +1,64 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> +/*
> + * Copyright (c) 2025 Collabora Ltd.
> + * Author: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
> + */
> +
> +/dts-v1/;
> +#include "mt8188.dtsi"
> +
> +/ {
> +	compatible = "mediatek,mt8370";
> +
> +	cpus {
> +		/delete-node/ cpu@400;
> +		/delete-node/ cpu@500;
> +
> +		cpu-map {
> +			cluster0 {
> +				/delete-node/ core4;
> +				/delete-node/ core5;
> +			};
> +		};
> +	};
> +};
> +
> +&cpu6 {
> +	clock-frequency = <2200000000>;
> +};
> +
> +&cpu7 {
> +	clock-frequency = <2200000000>;
> +};
> +
> +&cpu_little0_cooling_map0 {
> +	cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> +				<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> +				<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> +				<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;

Please fix the indentation:

	cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
			 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
			 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
			 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;

Other than that, looks good.

Cheers,
Angelo

> +};
> +
> +&cpu_little1_cooling_map0 {
> +	cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> +				<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> +				<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> +				<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> +};
> +
> +&cpu_little2_cooling_map0 {
> +	cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> +				<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> +				<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> +				<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> +};
> +
> +&cpu_little3_cooling_map0 {
> +	cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> +				<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> +				<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> +				<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> +};
> +
> +&ppi_cluster0 {
> +	affinity = <&cpu0 &cpu1 &cpu2 &cpu3>;
> +};
>
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/mediatek/mt8188.dtsi b/arch/arm64/boot/dts/mediatek/mt8188.dtsi
index 338120930b819645662465fa7b3c6be6491764ff..5d78f51c6183c15018986df2c76e6fdc1f9f43b4 100644
--- a/arch/arm64/boot/dts/mediatek/mt8188.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8188.dtsi
@@ -492,7 +492,7 @@  cpu_little0_crit: trip-crit {
 			};
 
 			cooling-maps {
-				map0 {
+				cpu_little0_cooling_map0: map0 {
 					trip = <&cpu_little0_alert0>;
 					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
@@ -530,7 +530,7 @@  cpu_little1_crit: trip-crit {
 			};
 
 			cooling-maps {
-				map0 {
+				cpu_little1_cooling_map0: map0 {
 					trip = <&cpu_little1_alert0>;
 					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
@@ -568,7 +568,7 @@  cpu_little2_crit: trip-crit {
 			};
 
 			cooling-maps {
-				map0 {
+				cpu_little2_cooling_map0: map0 {
 					trip = <&cpu_little2_alert0>;
 					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
@@ -606,7 +606,7 @@  cpu_little3_crit: trip-crit {
 			};
 
 			cooling-maps {
-				map0 {
+				cpu_little3_cooling_map0: map0 {
 					trip = <&cpu_little3_alert0>;
 					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
 							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
diff --git a/arch/arm64/boot/dts/mediatek/mt8370.dtsi b/arch/arm64/boot/dts/mediatek/mt8370.dtsi
new file mode 100644
index 0000000000000000000000000000000000000000..cf1a3759451ff899ce9e63e5a00f192fb483f6e5
--- /dev/null
+++ b/arch/arm64/boot/dts/mediatek/mt8370.dtsi
@@ -0,0 +1,64 @@ 
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (c) 2025 Collabora Ltd.
+ * Author: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
+ */
+
+/dts-v1/;
+#include "mt8188.dtsi"
+
+/ {
+	compatible = "mediatek,mt8370";
+
+	cpus {
+		/delete-node/ cpu@400;
+		/delete-node/ cpu@500;
+
+		cpu-map {
+			cluster0 {
+				/delete-node/ core4;
+				/delete-node/ core5;
+			};
+		};
+	};
+};
+
+&cpu6 {
+	clock-frequency = <2200000000>;
+};
+
+&cpu7 {
+	clock-frequency = <2200000000>;
+};
+
+&cpu_little0_cooling_map0 {
+	cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+				<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+				<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+				<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+};
+
+&cpu_little1_cooling_map0 {
+	cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+				<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+				<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+				<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+};
+
+&cpu_little2_cooling_map0 {
+	cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+				<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+				<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+				<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+};
+
+&cpu_little3_cooling_map0 {
+	cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+				<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+				<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+				<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+};
+
+&ppi_cluster0 {
+	affinity = <&cpu0 &cpu1 &cpu2 &cpu3>;
+};