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

From: Gopikrishna Garmidi

Date: Fri Jul 31 2026 - 02:23:24 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 stops scanning at the first missing clusterN index. cpu6-cpu11
are reassigned to SCMI performance domain 0, as domain 1 is no longer
present.

Kalambo uses PDP1 whose tx shmem (lpri1) sits at offset 0x200 within
imem, vs 0x180 on Glymur (PDP0). This pushes the tx region end to
0x380, requiring an imem size override. The rx shmem (lpri0) stays at
offset 0x0. The PDP mailbox addresses are overridden to match the
Kalambo SCP firmware.

PDC pins 109 and 110 carry the tsens6 and tsens7 upper/lower interrupts,
which are unconnected on Kalambo since both sensors are absent. Split the
range starting at pin 108 to skip them.

Add labels to the cpus and cpu-map nodes in Glymur to allow derived
SoCs to delete and redefine the cpu-map entirely.

Reviewed-by: Abel Vesa <abel.vesa@xxxxxxxxxxxxxxxx>
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 | 4 +-
arch/arm64/boot/dts/qcom/kalambo.dtsi | 112 ++++++++++++++++++++++++++++++++++
2 files changed, 114 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/glymur.dtsi b/arch/arm64/boot/dts/qcom/glymur.dtsi
index 4be7edf894b5..3f1fd0973717 100644
--- a/arch/arm64/boot/dts/qcom/glymur.dtsi
+++ b/arch/arm64/boot/dts/qcom/glymur.dtsi
@@ -36,7 +36,7 @@ / {
#address-cells = <2>;
#size-cells = <2>;

- cpus {
+ cpus: cpus {
#address-cells = <2>;
#size-cells = <0>;

@@ -274,7 +274,7 @@ cpu17: cpu@20500 {
#cooling-cells = <2>;
};

- cpu-map {
+ cpu_map: cpu-map {
cluster0 {
core0 {
cpu = <&cpu0>;
diff --git a/arch/arm64/boot/dts/qcom/kalambo.dtsi b/arch/arm64/boot/dts/qcom/kalambo.dtsi
new file mode 100644
index 000000000000..fb5d68bd69d7
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/kalambo.dtsi
@@ -0,0 +1,112 @@
+// 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;
+/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";
+};
+
+&cpus {
+ 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>;
+ };
+};
+
+&pdc {
+ qcom,pdc-ranges = <0 745 38>,
+ <40 785 11>,
+ <51 527 4>,
+ <57 533 10>,
+ <70 546 4>,
+ <75 551 18>,
+ <108 619 1>,
+ <111 622 19>,
+ <130 717 12>,
+ <142 251 5>,
+ <147 796 16>,
+ <171 4104 36>;
+};
+
+&pdp0_mbox {
+ reg = <0x0 0x17610000 0x0 0x8000>,
+ <0x0 0x1a980000 0x0 0x8000>;
+};

--
2.34.1