* [PATCH 0/5] Add SM7250 base dts file
@ 2026-08-16 13:32 Sreeshankar K
2026-08-16 13:32 ` [PATCH 1/5] arm64: dts: qcom: " Sreeshankar K
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Sreeshankar K @ 2026-08-16 13:32 UTC (permalink / raw)
To: robh, krzk+dt, conor+dt, andersson, konradybcio, tglx
Cc: lpieralisi, robimarko, linux, devicetree, linux-kernel,
linux-arm-msm, Sreeshankar K
Qualcomm SM7250 is known as lito.
This patchset add base devicetree file for SM7250 SoC and
SM7250 MTP platform. This file adds the basic nodes like cpu,
psci and other required configuration for booting up to the
serial console.
Sreeshankar K (5):
arm64: dts: qcom: Add SM7250 base dts file
dt-bindings: arm: cpus: Document Kryo 475 CPUs
dt-bindings: arm: qcom: Document SM7250 SoC and boards
dt-bindings: firmware: qcom,scm: Document SM7250 SCM
dt-bindings: interrupt-controller: qcom,pdc: Document SM7250 PDC
.../devicetree/bindings/arm/cpus.yaml | 1 +
.../devicetree/bindings/arm/qcom.yaml | 6 +
.../bindings/firmware/qcom,scm.yaml | 1 +
.../interrupt-controller/qcom,pdc.yaml | 1 +
arch/arm64/boot/dts/qcom/Makefile | 1 +
arch/arm64/boot/dts/qcom/sm7250-mtp.dts | 30 ++
arch/arm64/boot/dts/qcom/sm7250.dtsi | 431 ++++++++++++++++++
7 files changed, 471 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/sm7250-mtp.dts
create mode 100644 arch/arm64/boot/dts/qcom/sm7250.dtsi
--
2.43.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/5] arm64: dts: qcom: Add SM7250 base dts file
2026-08-16 13:32 [PATCH 0/5] Add SM7250 base dts file Sreeshankar K
@ 2026-08-16 13:32 ` Sreeshankar K
2026-08-16 13:42 ` sashiko-bot
2026-08-16 13:32 ` [PATCH 2/5] dt-bindings: arm: cpus: Document Kryo 475 CPUs Sreeshankar K
` (3 subsequent siblings)
4 siblings, 1 reply; 7+ messages in thread
From: Sreeshankar K @ 2026-08-16 13:32 UTC (permalink / raw)
To: robh, krzk+dt, conor+dt, andersson, konradybcio, tglx
Cc: lpieralisi, robimarko, linux, devicetree, linux-kernel,
linux-arm-msm, Sreeshankar K
Add SM7250 devicetree file for SM7250 SoC and SM7250 MTP platform.
This file adds the basic nodes like cpu, psci and other required
configuration for booting up to the serial console.
Signed-off-by: Sreeshankar K <sreeshankar0910@gmail.com>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
arch/arm64/boot/dts/qcom/sm7250-mtp.dts | 30 ++
arch/arm64/boot/dts/qcom/sm7250.dtsi | 431 ++++++++++++++++++++++++
3 files changed, 462 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/sm7250-mtp.dts
create mode 100644 arch/arm64/boot/dts/qcom/sm7250.dtsi
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 6f33c4e2f..4b68ed17f 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -347,6 +347,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm6375-sony-xperia-murray-pdx225.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm7125-xiaomi-curtana.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm7125-xiaomi-joyeuse.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm7225-fairphone-fp4.dtb
+dtb-$(CONFIG_ARCH_QCOM) += sm7250-mtp.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm7325-motorola-dubai.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm7325-nothing-spacewar.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8150-hdk.dtb
diff --git a/arch/arm64/boot/dts/qcom/sm7250-mtp.dts b/arch/arm64/boot/dts/qcom/sm7250-mtp.dts
new file mode 100644
index 000000000..062b5958e
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/sm7250-mtp.dts
@@ -0,0 +1,30 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2020, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2026, Sreeshankar K <sreeshankar0910@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "sm7250.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SM7250 MTP";
+ compatible = "qcom,sm7250-mtp", "qcom,sm7250";
+
+ aliases {
+ serial0 = &uart2;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+};
+
+&qupv3_id_1 {
+ status = "okay";
+};
+
+&uart2 {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/qcom/sm7250.dtsi b/arch/arm64/boot/dts/qcom/sm7250.dtsi
new file mode 100644
index 000000000..66b370546
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/sm7250.dtsi
@@ -0,0 +1,431 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2020, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2026, Sreeshankar K <sreeshankar0910@gmail.com>
+ */
+
+#include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/clock/qcom,gcc-sm7250.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/soc/qcom,rpmh-rsc.h>
+
+/ {
+ interrupt-parent = <&intc>;
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ clocks {
+ xo_board: xo-board {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <38400000>;
+ clock-output-names = "xo_board";
+ };
+
+ sleep_clk: sleep-clk {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <32000>;
+ };
+ };
+ cpus {
+ #address-cells = <2>;
+ #size-cells = <0>;
+
+ CPU0: cpu@0 {
+ device_type = "cpu";
+ compatible = "qcom,kryo475";
+ reg = <0x0 0x0>;
+ enable-method = "psci";
+ next-level-cache = <&L2_0>;
+ L2_0: l2-cache {
+ compatible = "cache";
+ next-level-cache = <&L3_0>;
+ L3_0: l3-cache {
+ compatible = "cache";
+ };
+ };
+ };
+
+ CPU1: cpu@100 {
+ device_type = "cpu";
+ compatible = "qcom,kryo475";
+ reg = <0x0 0x100>;
+ enable-method = "psci";
+ next-level-cache = <&L2_100>;
+ L2_100: l2-cache {
+ compatible = "cache";
+ next-level-cache = <&L3_0>;
+ };
+ };
+
+ CPU2: cpu@200 {
+ device_type = "cpu";
+ compatible = "qcom,kryo475";
+ reg = <0x0 0x200>;
+ enable-method = "psci";
+ next-level-cache = <&L2_200>;
+ L2_200: l2-cache {
+ compatible = "cache";
+ next-level-cache = <&L3_0>;
+ };
+ };
+
+ CPU3: cpu@300 {
+ device_type = "cpu";
+ compatible = "qcom,kryo475";
+ reg = <0x0 0x300>;
+ enable-method = "psci";
+ next-level-cache = <&L2_300>;
+ L2_300: l2-cache {
+ compatible = "cache";
+ next-level-cache = <&L3_0>;
+ };
+ };
+
+ CPU4: cpu@400 {
+ device_type = "cpu";
+ compatible = "qcom,kryo475";
+ reg = <0x0 0x400>;
+ enable-method = "psci";
+ next-level-cache = <&L2_400>;
+ L2_400: l2-cache {
+ compatible = "cache";
+ next-level-cache = <&L3_0>;
+ };
+ };
+
+ CPU5: cpu@500 {
+ device_type = "cpu";
+ compatible = "qcom,kryo475";
+ reg = <0x0 0x500>;
+ enable-method = "psci";
+ next-level-cache = <&L2_500>;
+ L2_500: l2-cache {
+ compatible = "cache";
+ next-level-cache = <&L3_0>;
+ };
+ };
+
+ CPU6: cpu@600 {
+ device_type = "cpu";
+ compatible = "qcom,kryo475";
+ reg = <0x0 0x600>;
+ enable-method = "psci";
+ next-level-cache = <&L2_600>;
+ L2_600: l2-cache {
+ compatible = "cache";
+ next-level-cache = <&L3_0>;
+ };
+ };
+
+ CPU7: cpu@700 {
+ device_type = "cpu";
+ compatible = "qcom,kryo475";
+ reg = <0x0 0x700>;
+ enable-method = "psci";
+ next-level-cache = <&L2_700>;
+ L2_700: l2-cache {
+ compatible = "cache";
+ next-level-cache = <&L3_0>;
+ };
+ };
+ };
+
+ firmware {
+ scm: scm {
+ compatible = "qcom,scm-sm7250", "qcom,scm";
+ #reset-cells = <1>;
+ };
+ };
+
+ tcsr_mutex: hwlock@1f40000 {
+ compatible = "qcom,tcsr-mutex";
+ reg = <0x0 0x01f40000 0x0 0x40000>;
+ #hwlock-cells = <1>;
+ };
+
+ memory@80000000 {
+ device_type = "memory";
+ /* We expect the bootloader to fill in the size */
+ reg = <0x0 0x80000000 0x0 0x0>;
+ };
+
+ pmu {
+ compatible = "arm,armv8-pmuv3";
+ interrupts = <GIC_PPI 5 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ psci {
+ compatible = "arm,psci-1.0";
+ method = "smc";
+ };
+
+ reserved_memory: reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ hyp_mem: memory@80000000 {
+ reg = <0x0 0x80000000 0x0 0x600000>;
+ no-map;
+ };
+
+ xbl_aop_mem: memory@80700000 {
+ reg = <0x0 0x80700000 0x0 0x160000>;
+ no-map;
+ };
+
+ cmd_db: memory@80860000 {
+ compatible = "qcom,cmd-db";
+ reg = <0x0 0x80860000 0x0 0x20000>;
+ no-map;
+ };
+
+ smem_mem: memory@80900000 {
+ reg = <0x0 0x80900000 0x0 0x200000>;
+ no-map;
+ };
+
+ removed_mem: memory@80b00000 {
+ reg = <0x0 0x80b00000 0x0 0x1300000>;
+ no-map;
+ };
+
+ camera_mem: memory@86000000 {
+ reg = <0x0 0x86000000 0x0 0x500000>;
+ no-map;
+ };
+
+ gpu_mem: memory@8bc15400 {
+ reg = <0x0 0x8bc15400 0x0 0x2000>;
+ no-map;
+ };
+
+ npu_mem: memory@86500000 {
+ reg = <0x0 0x86500000 0x0 0x500000>;
+ no-map;
+ };
+
+ video_mem: memory@86a00000 {
+ reg = <0x0 0x86a00000 0x0 0x500000>;
+ no-map;
+ };
+
+ wlan_mem: memory@8ba00000 {
+ reg = <0x0 0x8ba00000 0x0 0x200000>;
+ no-map;
+ };
+
+ ipa_fw_mem: memory@8bc00000 {
+ reg = <0x0 0x8bc00000 0x0 0x10000>;
+ no-map;
+ };
+
+ ipa_gsi_mem: memory@8bc10000 {
+ reg = <0x0 0x8bc10000 0x0 0x5400>;
+ no-map;
+ };
+
+ cdsp_mem: memory@87400000 {
+ reg = <0x0 0x87400000 0x0 0x1e00000>;
+ no-map;
+ };
+
+ adsp_mem: memory@89200000 {
+ reg = <0x0 0x89200000 0x0 0x2800000>;
+ no-map;
+ };
+
+ modem_mem: memory@8c000000 {
+ reg = <0x0 0x8c000000 0x0 0xf800000>;
+ no-map;
+ };
+
+ cdsp_sec_mem: memory@9f400000 {
+ reg = <0x0 0x9f400000 0x0 0xc00000>;
+ no-map;
+ };
+ };
+
+ smem: qcom,smem {
+ compatible = "qcom,smem";
+ memory-region = <&smem_mem>;
+ hwlocks = <&tcsr_mutex 3>;
+ };
+
+ soc: soc@0 {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges = <0 0 0 0 0x10 0>;
+ dma-ranges = <0 0 0 0 0x10 0>;
+ compatible = "simple-bus";
+
+ gcc: clock-controller@100000 {
+ compatible = "qcom,gcc-sm7250";
+ reg = <0x0 0x00100000 0x0 0x1f0000>;
+ #clock-cells = <1>;
+ #reset-cells = <1>;
+ #power-domain-cells = <1>;
+ clock-names = "bi_tcxo",
+ "bi_tcxo_ao",
+ "sleep_clk";
+ clocks = <&rpmhcc RPMH_CXO_CLK>,
+ <&rpmhcc RPMH_CXO_CLK_A>,
+ <&sleep_clk>;
+ };
+
+ qupv3_id_1: geniqup@9c0000 {
+ compatible = "qcom,geni-se-qup";
+ reg = <0x0 0x009c0000 0x0 0x6000>;
+ clock-names = "m-ahb", "s-ahb";
+ clocks = <&gcc GCC_QUPV3_WRAP_1_M_AHB_CLK>,
+ <&gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>;
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+ status = "disabled";
+
+ uart2: serial@988000 {
+ compatible = "qcom,geni-debug-uart";
+ reg = <0 0x00988000 0 0x4000>;
+ clock-names = "se";
+ clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
+ interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+ status = "disabled";
+ };
+ };
+
+ intc: interrupt-controller@17a00000 {
+ compatible = "arm,gic-v3";
+ reg = <0x0 0x17a00000 0x0 0x10000>, /* GICD */
+ <0x0 0x17a60000 0x0 0x100000>; /* GICR * 8 */
+ #interrupt-cells = <3>;
+ interrupt-controller;
+ interrupts = <GIC_PPI 8 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ pdc: interrupt-controller@b220000 {
+ compatible = "qcom,sm7250-pdc", "qcom,pdc";
+ reg = <0 0xb220000 0 0x30000>, <0 0x17c000f0 0 0x60>;
+ qcom,pdc-ranges = <0 480 42>, <42 612 28>,
+ <70 63 1>, <71 640 15>, <86 522 52>;
+ #interrupt-cells = <2>;
+ interrupt-parent = <&intc>;
+ interrupt-controller;
+ };
+
+ spmi: qcom,spmi@c440000 {
+ compatible = "qcom,spmi-pmic-arb";
+ reg = <0x0 0x0c440000 0x0 0x0001100>,
+ <0x0 0x0c600000 0x0 0x2000000>,
+ <0x0 0x0e600000 0x0 0x0100000>,
+ <0x0 0x0e700000 0x0 0x00a0000>,
+ <0x0 0x0c40a000 0x0 0x0026000>;
+ reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
+ interrupt-names = "periph_irq";
+ interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>;
+ qcom,ee = <0>;
+ qcom,channel = <0>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ interrupt-controller;
+ #interrupt-cells = <4>;
+ };
+
+ apps_rsc: rsc@18200000 {
+ label = "apps_rsc";
+ compatible = "qcom,rpmh-rsc";
+ reg = <0x0 0x18200000 0x0 0x10000>,
+ <0x0 0x18210000 0x0 0x10000>,
+ <0x0 0x18220000 0x0 0x10000>;
+ reg-names = "drv-0", "drv-1", "drv-2";
+ interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
+ qcom,tcs-offset = <0xd00>;
+ qcom,drv-id = <2>;
+ qcom,tcs-config = <ACTIVE_TCS 2>, <SLEEP_TCS 3>,
+ <WAKE_TCS 3>, <CONTROL_TCS 1>;
+
+ rpmhcc: clock-controller {
+ compatible = "qcom,sm7250-rpmh-clk";
+ #clock-cells = <1>;
+ clock-names = "xo";
+ clocks = <&xo_board>;
+ };
+ };
+
+ timer@17c20000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ compatible = "arm,armv7-timer-mem";
+ reg = <0x0 0x17c20000 0x0 0x1000>;
+ clock-frequency = <19200000>;
+
+ frame@17c21000 {
+ frame-number = <0>;
+ interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+ reg = <0x0 0x17c21000 0x0 0x1000>,
+ <0x0 0x17c22000 0x0 0x1000>;
+ };
+
+ frame@17c23000 {
+ frame-number = <1>;
+ interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+ reg = <0x0 0x17c23000 0x0 0x1000>;
+ status = "disabled";
+ };
+
+ frame@17c25000 {
+ frame-number = <2>;
+ interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+ reg = <0x0 0x17c25000 0x0 0x1000>;
+ status = "disabled";
+ };
+
+ frame@17c27000 {
+ frame-number = <3>;
+ interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+ reg = <0x0 0x17c27000 0x0 0x1000>;
+ status = "disabled";
+ };
+
+ frame@17c29000 {
+ frame-number = <4>;
+ interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+ reg = <0x0 0x17c29000 0x0 0x1000>;
+ status = "disabled";
+ };
+
+ frame@17c2b000 {
+ frame-number = <5>;
+ interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+ reg = <0x0 0x17c2b000 0x0 0x1000>;
+ status = "disabled";
+ };
+
+ frame@17c2d000 {
+ frame-number = <6>;
+ interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+ reg = <0x0 0x17c2d000 0x0 0x1000>;
+ status = "disabled";
+ };
+ };
+
+ };
+
+ timer {
+ compatible = "arm,armv8-timer";
+ interrupts = <GIC_PPI 1
+ (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
+ <GIC_PPI 2
+ (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
+ <GIC_PPI 3
+ (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
+ <GIC_PPI 0
+ (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
+ };
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/5] dt-bindings: arm: cpus: Document Kryo 475 CPUs
2026-08-16 13:32 [PATCH 0/5] Add SM7250 base dts file Sreeshankar K
2026-08-16 13:32 ` [PATCH 1/5] arm64: dts: qcom: " Sreeshankar K
@ 2026-08-16 13:32 ` Sreeshankar K
2026-08-16 13:32 ` [PATCH 3/5] dt-bindings: arm: qcom: Document SM7250 SoC and boards Sreeshankar K
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Sreeshankar K @ 2026-08-16 13:32 UTC (permalink / raw)
To: robh, krzk+dt, conor+dt, andersson, konradybcio, tglx
Cc: lpieralisi, robimarko, linux, devicetree, linux-kernel,
linux-arm-msm, Sreeshankar K
Document Kryo 475 CPUs found in Qualcomm SM7250 SoC.
Signed-off-by: Sreeshankar K <sreeshankar0910@gmail.com>
---
Documentation/devicetree/bindings/arm/cpus.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/arm/cpus.yaml b/Documentation/devicetree/bindings/arm/cpus.yaml
index 5be89c584..2a90af67c 100644
--- a/Documentation/devicetree/bindings/arm/cpus.yaml
+++ b/Documentation/devicetree/bindings/arm/cpus.yaml
@@ -212,6 +212,7 @@ properties:
- qcom,kryo465
- qcom,kryo468
- qcom,kryo470
+ - qcom,kryo475
- qcom,kryo485
- qcom,kryo560
- qcom,kryo570
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/5] dt-bindings: arm: qcom: Document SM7250 SoC and boards
2026-08-16 13:32 [PATCH 0/5] Add SM7250 base dts file Sreeshankar K
2026-08-16 13:32 ` [PATCH 1/5] arm64: dts: qcom: " Sreeshankar K
2026-08-16 13:32 ` [PATCH 2/5] dt-bindings: arm: cpus: Document Kryo 475 CPUs Sreeshankar K
@ 2026-08-16 13:32 ` Sreeshankar K
2026-08-16 13:32 ` [PATCH 4/5] dt-bindings: firmware: qcom,scm: Document SM7250 SCM Sreeshankar K
2026-08-16 13:32 ` [PATCH 5/5] dt-bindings: interrupt-controller: qcom,pdc: Document SM7250 PDC Sreeshankar K
4 siblings, 0 replies; 7+ messages in thread
From: Sreeshankar K @ 2026-08-16 13:32 UTC (permalink / raw)
To: robh, krzk+dt, conor+dt, andersson, konradybcio, tglx
Cc: lpieralisi, robimarko, linux, devicetree, linux-kernel,
linux-arm-msm, Sreeshankar K
Document the Qualcomm SM7250 SoC binding and the MTP board.
Signed-off-by: Sreeshankar K <sreeshankar0910@gmail.com>
---
Documentation/devicetree/bindings/arm/qcom.yaml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index 50cc18a6e..481041700 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -1050,6 +1050,11 @@ properties:
- fairphone,fp4
- const: qcom,sm7225
+ - items:
+ - enum:
+ - qcom,sm7250-mtp
+ - const: qcom,sm7250
+
- items:
- enum:
- motorola,dubai
@@ -1306,6 +1311,7 @@ allOf:
- qcom,sm6350
- qcom,sm7125
- qcom,sm7225
+ - qcom,sm7250
- qcom,sm8150
- qcom,sm8250
then:
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 4/5] dt-bindings: firmware: qcom,scm: Document SM7250 SCM
2026-08-16 13:32 [PATCH 0/5] Add SM7250 base dts file Sreeshankar K
` (2 preceding siblings ...)
2026-08-16 13:32 ` [PATCH 3/5] dt-bindings: arm: qcom: Document SM7250 SoC and boards Sreeshankar K
@ 2026-08-16 13:32 ` Sreeshankar K
2026-08-16 13:32 ` [PATCH 5/5] dt-bindings: interrupt-controller: qcom,pdc: Document SM7250 PDC Sreeshankar K
4 siblings, 0 replies; 7+ messages in thread
From: Sreeshankar K @ 2026-08-16 13:32 UTC (permalink / raw)
To: robh, krzk+dt, conor+dt, andersson, konradybcio, tglx
Cc: lpieralisi, robimarko, linux, devicetree, linux-kernel,
linux-arm-msm, Sreeshankar K
Document the SCM compatible for Qualcomm SM7250 SoC.
Signed-off-by: Sreeshankar K <sreeshankar0910@gmail.com>
---
Documentation/devicetree/bindings/firmware/qcom,scm.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/firmware/qcom,scm.yaml b/Documentation/devicetree/bindings/firmware/qcom,scm.yaml
index 25f62bacb..7446a54eb 100644
--- a/Documentation/devicetree/bindings/firmware/qcom,scm.yaml
+++ b/Documentation/devicetree/bindings/firmware/qcom,scm.yaml
@@ -72,6 +72,7 @@ properties:
- qcom,scm-sm6350
- qcom,scm-sm6375
- qcom,scm-sm7150
+ - qcom,scm-sm7250
- qcom,scm-sm8150
- qcom,scm-sm8250
- qcom,scm-sm8350
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 5/5] dt-bindings: interrupt-controller: qcom,pdc: Document SM7250 PDC
2026-08-16 13:32 [PATCH 0/5] Add SM7250 base dts file Sreeshankar K
` (3 preceding siblings ...)
2026-08-16 13:32 ` [PATCH 4/5] dt-bindings: firmware: qcom,scm: Document SM7250 SCM Sreeshankar K
@ 2026-08-16 13:32 ` Sreeshankar K
4 siblings, 0 replies; 7+ messages in thread
From: Sreeshankar K @ 2026-08-16 13:32 UTC (permalink / raw)
To: robh, krzk+dt, conor+dt, andersson, konradybcio, tglx
Cc: lpieralisi, robimarko, linux, devicetree, linux-kernel,
linux-arm-msm, Sreeshankar K
Document the PDC block on the SM7250 SoC.
Signed-off-by: Sreeshankar K <sreeshankar0910@gmail.com>
---
.../devicetree/bindings/interrupt-controller/qcom,pdc.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/interrupt-controller/qcom,pdc.yaml b/Documentation/devicetree/bindings/interrupt-controller/qcom,pdc.yaml
index 8162a49d4..c30b88589 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/qcom,pdc.yaml
+++ b/Documentation/devicetree/bindings/interrupt-controller/qcom,pdc.yaml
@@ -50,6 +50,7 @@ properties:
- qcom,sdx75-pdc
- qcom,sm4450-pdc
- qcom,sm6350-pdc
+ - qcom,sm7250-pdc
- qcom,sm8150-pdc
- qcom,sm8250-pdc
- qcom,sm8350-pdc
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/5] arm64: dts: qcom: Add SM7250 base dts file
2026-08-16 13:32 ` [PATCH 1/5] arm64: dts: qcom: " Sreeshankar K
@ 2026-08-16 13:42 ` sashiko-bot
0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-08-16 13:42 UTC (permalink / raw)
To: Sreeshankar K; +Cc: robh, conor+dt, devicetree
Thank you for your contribution! Sashiko AI review found 6 potential issue(s) to consider:
- [High] The `timer@17c20000` node incorrectly configures `#address-cells` and `#size-cells`, leading to broken memory mappings.
- [High] The `spmi@c440000` bus node incorrectly sets `#address-cells` and `#size-cells`, breaking SPMI device enumeration.
- [Medium] Missing mandatory properties `cache-level` and `cache-unified` in L2 and L3 cache nodes.
- [Medium] The CPU topology `cpu-map` is entirely missing, breaking cluster-awareness and Energy Aware Scheduling.
- [Low] The SPMI node name `qcom,spmi@c440000` violates the standard generic node naming requirements.
- [Low] The memory-mapped `tcsr_mutex` is placed at the root of the device tree rather than within the `soc` simple-bus node.
--
--- Patch [1]: [PATCH 1/5] arm64: dts: qcom: Add SM7250 base dts file ---
commit 0271d54882ba31c5bab214b6f9e5a7997f5a44fd
Author: Sreeshankar K <sreeshankar0910@gmail.com>
arm64: dts: qcom: Add SM7250 base dts file
This patch adds the base devicetree file for the Qualcomm SM7250 SoC and the
corresponding SM7250 MTP platform. It configures basic nodes like CPU, PSCI,
and serial console required for booting.
> diff --git a/arch/arm64/boot/dts/qcom/sm7250.dtsi b/arch/arm64/boot/dts/qcom/sm7250.dtsi
> new file mode 100644
> index 0000000000000..66b3705461f1e
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/sm7250.dtsi
[ ... ]
> + cpus {
> + #address-cells = <2>;
> + #size-cells = <0>;
> +
> + CPU0: cpu@0 {
[Severity: Medium]
Is a cpu-map node missing here?
Without a cpu-map to define the physical and logical clusters, the kernel
will treat all cores as a single flat cluster. This degrades scheduling
decisions and prevents Energy Aware Scheduling from functioning on this
big.LITTLE SoC.
> + device_type = "cpu";
> + compatible = "qcom,kryo475";
> + reg = <0x0 0x0>;
> + enable-method = "psci";
> + next-level-cache = <&L2_0>;
> + L2_0: l2-cache {
> + compatible = "cache";
> + next-level-cache = <&L3_0>;
> + L3_0: l3-cache {
> + compatible = "cache";
> + };
> + };
[Severity: Medium]
Should these cache nodes include the cache-level and cache-unified properties?
Without these mandatory properties, the kernel cache topology parser cannot
accurately identify or expose the cache layout to userspace via sysfs,
which prevents userspace applications from optimizing workloads based on
cache topology.
[ ... ]
> + firmware {
> + scm: scm {
> + compatible = "qcom,scm-sm7250", "qcom,scm";
> + #reset-cells = <1>;
> + };
> + };
> +
> + tcsr_mutex: hwlock@1f40000 {
> + compatible = "qcom,tcsr-mutex";
> + reg = <0x0 0x01f40000 0x0 0x40000>;
> + #hwlock-cells = <1>;
> + };
[Severity: Low]
Should this memory-mapped peripheral be instantiated as a child of the soc
simple-bus node instead of the root node?
Placing it at the root bypasses the address translation layers (ranges,
dma-ranges) established by the soc node and misrepresents the hardware
bus hierarchy.
[ ... ]
> + pdc: interrupt-controller@b220000 {
[ ... ]
> + };
> +
> + spmi: qcom,spmi@c440000 {
[Severity: Low]
Does this node name violate the standard generic node naming conventions?
The node name should ideally be generic, such as spmi@c440000. Including
the vendor prefix (qcom,) in the node name typically results in dtbs_check
validation errors against the spmi-pmic-arb schema.
> + compatible = "qcom,spmi-pmic-arb";
> + reg = <0x0 0x0c440000 0x0 0x0001100>,
> + <0x0 0x0c600000 0x0 0x2000000>,
> + <0x0 0x0e600000 0x0 0x0100000>,
> + <0x0 0x0e700000 0x0 0x00a0000>,
> + <0x0 0x0c40a000 0x0 0x0026000>;
> + reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
> + interrupt-names = "periph_irq";
> + interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>;
> + qcom,ee = <0>;
> + qcom,channel = <0>;
> + #address-cells = <1>;
> + #size-cells = <1>;
[Severity: High]
Are these address and size cells correct for an SPMI bus?
The SPMI bus bindings require #address-cells = <2> (for the 8-bit slave ID
and 16-bit register offset) and #size-cells = <0>. Using <1> and <1> will
cause parsing of any child PMIC nodes to fail, breaking PMIC enumeration
and disabling dependent power domains.
[ ... ]
> + timer@17c20000 {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
> + compatible = "arm,armv7-timer-mem";
> + reg = <0x0 0x17c20000 0x0 0x1000>;
> + clock-frequency = <19200000>;
> +
> + frame@17c21000 {
> + frame-number = <0>;
> + interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
> + reg = <0x0 0x17c21000 0x0 0x1000>,
> + <0x0 0x17c22000 0x0 0x1000>;
[Severity: High]
Will this configuration correctly parse the 64-bit addresses in the child
nodes?
The child frame nodes use 4 cells for their reg properties (e.g.,
<0x0 0x17c21000 0x0 0x1000>). Because this parent node sets #address-cells
and #size-cells to 1, the dt-parser will incorrectly split this single
64-bit region into distinct, erroneous memory regions. Attempting to map a
region starting at physical address 0x0 with a size of 0x17c21000 can lead
to a kernel panic during boot.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260816133231.10875-1-sreeshankar0910@gmail.com?part=1
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-08-16 13:42 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-16 13:32 [PATCH 0/5] Add SM7250 base dts file Sreeshankar K
2026-08-16 13:32 ` [PATCH 1/5] arm64: dts: qcom: " Sreeshankar K
2026-08-16 13:42 ` sashiko-bot
2026-08-16 13:32 ` [PATCH 2/5] dt-bindings: arm: cpus: Document Kryo 475 CPUs Sreeshankar K
2026-08-16 13:32 ` [PATCH 3/5] dt-bindings: arm: qcom: Document SM7250 SoC and boards Sreeshankar K
2026-08-16 13:32 ` [PATCH 4/5] dt-bindings: firmware: qcom,scm: Document SM7250 SCM Sreeshankar K
2026-08-16 13:32 ` [PATCH 5/5] dt-bindings: interrupt-controller: qcom,pdc: Document SM7250 PDC Sreeshankar K
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox