[PATCH v2 2/5] arm64: dts: qcom: Add Kalambo SoC

From: Gopikrishna Garmidi

Date: Wed Jul 22 2026 - 06:58:52 EST


Introduce support for the Qualcomm Kalambo SoC. It is derived from Mahua
with CPU cluster 0 removed, leaving it with just cluster 1 (cpu6-cpu11).

- The surviving cluster is re-added to the cpu-map as cluster0, since the
kernel's cpu-map cluster scan stops at the first missing "clusterN"
index.

- cpu6-cpu11 are reassigned to SCMI performance domain 0, as domain 1
(the former cluster 0) is no longer present.

- Point the SCMI transport at the SRAM and mailbox addresses used by
the Kalambo SCP firmware, which differ from those inherited from
Glymur.

Add labels to the Glymur cpu-map and its cluster nodes to allow their
removal and override on derived SoCs.

Co-developed-by: Sibi Sankar <sibi.sankar@xxxxxxxxxxxxxxxx>
Signed-off-by: Sibi Sankar <sibi.sankar@xxxxxxxxxxxxxxxx>
Signed-off-by: Gopikrishna Garmidi <gopikrishna.garmidi@xxxxxxxxxxxxxxxx>
---
arch/arm64/boot/dts/qcom/glymur.dtsi | 6 +--
arch/arm64/boot/dts/qcom/kalambo.dtsi | 95 +++++++++++++++++++++++++++++++++++
2 files changed, 98 insertions(+), 3 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/glymur.dtsi b/arch/arm64/boot/dts/qcom/glymur.dtsi
index f32af66a3f1c..66345be9f0a0 100644
--- a/arch/arm64/boot/dts/qcom/glymur.dtsi
+++ b/arch/arm64/boot/dts/qcom/glymur.dtsi
@@ -274,8 +274,8 @@ cpu17: cpu@20500 {
#cooling-cells = <2>;
};

- cpu-map {
- cluster0 {
+ cpu_map: cpu-map {
+ cpu_map_cluster0: cluster0 {
core0 {
cpu = <&cpu0>;
};
@@ -301,7 +301,7 @@ core5 {
};
};

- cluster1 {
+ cpu_map_cluster1: cluster1 {
core0 {
cpu = <&cpu6>;
};
diff --git a/arch/arm64/boot/dts/qcom/kalambo.dtsi b/arch/arm64/boot/dts/qcom/kalambo.dtsi
new file mode 100644
index 000000000000..07364a7abd9a
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/kalambo.dtsi
@@ -0,0 +1,95 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#include "mahua.dtsi"
+
+/delete-node/ &cluster0_pd;
+/delete-node/ &cpu_map_cluster0;
+/delete-node/ &cpu_map_cluster1;
+/delete-node/ &cpu0;
+/delete-node/ &cpu1;
+/delete-node/ &cpu2;
+/delete-node/ &cpu3;
+/delete-node/ &cpu4;
+/delete-node/ &cpu5;
+/delete-node/ &cpu_pd0;
+/delete-node/ &cpu_pd1;
+/delete-node/ &cpu_pd2;
+/delete-node/ &cpu_pd3;
+/delete-node/ &cpu_pd4;
+/delete-node/ &cpu_pd5;
+/delete-node/ &cpu_scp_lpri1;
+
+&cpu6 {
+ power-domains = <&cpu_pd6>, <&scmi_perf 0>;
+ power-domain-names = "psci", "perf";
+};
+
+&cpu7 {
+ power-domains = <&cpu_pd7>, <&scmi_perf 0>;
+ power-domain-names = "psci", "perf";
+};
+
+&cpu8 {
+ power-domains = <&cpu_pd8>, <&scmi_perf 0>;
+ power-domain-names = "psci", "perf";
+};
+
+&cpu9 {
+ power-domains = <&cpu_pd9>, <&scmi_perf 0>;
+ power-domain-names = "psci", "perf";
+};
+
+&cpu10 {
+ power-domains = <&cpu_pd10>, <&scmi_perf 0>;
+ power-domain-names = "psci", "perf";
+};
+
+&cpu11 {
+ power-domains = <&cpu_pd11>, <&scmi_perf 0>;
+ power-domain-names = "psci", "perf";
+};
+
+&cpu_map {
+ cluster0 {
+ core0 {
+ cpu = <&cpu6>;
+ };
+
+ core1 {
+ cpu = <&cpu7>;
+ };
+
+ core2 {
+ cpu = <&cpu8>;
+ };
+
+ core3 {
+ cpu = <&cpu9>;
+ };
+
+ core4 {
+ cpu = <&cpu10>;
+ };
+
+ core5 {
+ cpu = <&cpu11>;
+ };
+ };
+};
+
+&imem {
+ reg = <0x0 0x81e08600 0x0 0x380>;
+ ranges = <0x0 0x0 0x81e08600 0x380>;
+
+ cpu_scp_lpri1: scp-sram-section@200 {
+ compatible = "arm,scmi-shmem";
+ reg = <0x200 0x180>;
+ };
+};
+
+&pdp0_mbox {
+ reg = <0 0x17610000 0 0x8000>, <0 0x1a980000 0 0x8000>;
+};

--
2.34.1