Re: [PATCH v5 5/7] arm64: dts: qcom: Add initial support for MSM8952
From: Konrad Dybcio
Date: Mon Oct 26 2026 - 11:09:01 EST
On 10/11/26 6:51 PM, Muzaffer Kadir via B4 Relay wrote:
> From: Muzaffer Kadir <muzafferkadir@xxxxxxxxxxxxxx>
>
> Add initial support for MSM8952 SoC.
>
> AI help is used for calculating qfprom nodes.
>
> Downstream reference for port is [1] which is very lightly modified
> version of [2].
Generally this looks good, couple more comments
[...]
> + soc: soc@0 {
> + compatible = "simple-bus";
> + ranges = <0 0 0 0xffffffff>;
this is equal to `ranges;`
[...]
> + sdhc_1: mmc@7824900 {
> + compatible = "qcom,msm8952-sdhci", "qcom,sdhci-msm-v4";
> + reg = <0x07824900 0x500>, <0x07824000 0x800>, <0x7824e00 0x200>;
> + reg-names = "hc", "core", "cqhci";
Please break up these into one-per-line (also for properties below)
the last reg entry needs a leading zero
(in general one-per-line is cool)
[...]
> + usb: usb@78db000 {
> + compatible = "qcom,ci-hdrc";
> + reg = <0x078db000 0x200>,
> + <0x078db200 0x200>;
> + interrupts-extended = <&mpm 58 IRQ_TYPE_LEVEL_HIGH>,
> + <&mpm 49 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&gcc GCC_USB_HS_AHB_CLK>,
> + <&gcc GCC_USB_HS_SYSTEM_CLK>;
> + clock-names = "iface",
> + "core";
> + assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
> + assigned-clock-rates = <80000000>;
> + resets = <&gcc GCC_USB_HS_BCR>;
> + reset-names = "core";
> + hnp-disable;
> + srp-disable;
> + adp-disable;
> + ahb-burst-config = <0>;
> + dr_mode = "otg";
dr_mode = otg is default - you can drop it
[...]
> + pll_opp_table_c1: opp-table {
> + compatible = "operating-points-v2";
> +
> + opp-499200000 {
> + opp-hz = /bits/ 64 <499200000>;
> + };
> +
> + opp-806400000 {
> + opp-hz = /bits/ 64 <806400000>;
> + };
> +
> + opp-960000000 {
> + opp-hz = /bits/ 64 <960000000>;
> + };
> +
> + opp-1094400000 {
> + opp-hz = /bits/ 64 <1094400000>;
> + };
> +
> + opp-1344000000 {
> + opp-hz = /bits/ 64 <1344000000>;
> + };
> +
> + opp-1440000000 {
> + opp-hz = /bits/ 64 <1440000000>;
> + };
> +
> + opp-1516800000 {
> + opp-hz = /bits/ 64 <1516800000>;
> + };
> +
> + opp-1651200000 {
> + opp-hz = /bits/ 64 <1651200000>;
> + };
Drop the last entry for the same reasons you explained
[...]
> + a53pll_cci: clock@b1d0000 {
> + compatible = "qcom,msm8939-a53pll";
This needs a 8952-specific compatible (bindings-only fallback
is fine)
> + reg = <0x0b1d0000 0x40>;
> + clocks = <&xo_board>;
> + clock-names = "xo";
> + #clock-cells = <0>;
> + };
> +
> + apcs2: mailbox@b1d1000 {
> + compatible = "qcom,msm8939-apcs-kpss-global", "syscon";
Likewise
> + reg = <0x0b1d1000 0x1000>;
> + clocks = <&a53pll_cci>,
> + <&gcc GPLL0_VOTE>,
> + <&rpmcc RPM_SMD_XO_CLK_SRC>;
> + clock-names = "pll",
> + "aux",
> + "ref";
> + #clock-cells = <0>;
> + #mbox-cells = <1>;
> + };
> +
> + adsp: remoteproc@c200000 {
> + compatible = "qcom,msm8996-adsp-pil";
And likewise
also IMEM, DSI, RPMPD, RPMCC
[...]
> + thermal-zones {
> + aoss0-thermal {
> + polling-delay-passive = <250>;
TSENS sensors are interrupt-driven so you don't need polling
AOSS is surely the wrong name - that hw didn't come until years
later than 8952 was released. I can't find a mapping of the
sensors for this SoC right now, so either drop these or give them
some generic names
[...]
> + timer {
> + compatible = "arm,armv8-timer";
> + interrupts = <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 4 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
> + <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
> + clock-frequency = <19200000>;
Drop this property, it's only needed for very broken FWs
Konrad