Re: [PATCH v8 2/5] arm64: dts: qcom: Add msm8939 SoC

From: Stephan Gerhold
Date: Thu Apr 06 2023 - 12:47:01 EST


On Thu, Mar 30, 2023 at 04:32:19PM +0100, Bryan O'Donoghue wrote:
> Add msm8939 a derivative SoC of msm8916. This SoC contains a number of key
> differences to msm8916.
>
> - big.LITTLE Octa Core - quad 1.5GHz + quad 1.0GHz
> - DRAM 1x800 LPDDR3
> - Camera 4+4 lane CSI
> - Venus @ 1080p60 HEVC
> - DSI x 2
> - Adreno A405
> - WiFi wcn3660/wcn3680b 802.11ac
> [...]
> ---
> arch/arm64/boot/dts/qcom/msm8939.dtsi | 2454 +++++++++++++++++++++++++
> 1 file changed, 2454 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/msm8939.dtsi
>
> diff --git a/arch/arm64/boot/dts/qcom/msm8939.dtsi b/arch/arm64/boot/dts/qcom/msm8939.dtsi
> new file mode 100644
> index 0000000000000..96b25dfc4d3f1
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/msm8939.dtsi
> @@ -0,0 +1,2454 @@
> [...]
> + tsens: thermal-sensor@4a9000 {
> + compatible = "qcom,msm8939-tsens", "qcom,tsens-v0_1";
> + reg = <0x004a9000 0x1000>, /* TM */
> + <0x004a8000 0x1000>; /* SROT */
> + nvmem-cells = <&tsens_mode>,
> + <&tsens_base1>, <&tsens_base2>,
> + <&tsens_s0_p1>, <&tsens_s0_p2>,
> + <&tsens_s1_p1>, <&tsens_s1_p2>,
> + <&tsens_s2_p1>, <&tsens_s2_p2>,
> + <&tsens_s3_p1>, <&tsens_s3_p2>,
> + <&tsens_s4_p1>, <&tsens_s4_p2>,
> + <&tsens_s4_p1>, <&tsens_s4_p2>,
> + <&tsens_s5_p1>, <&tsens_s5_p2>,
> + <&tsens_s6_p1>, <&tsens_s6_p2>,
> + <&tsens_s7_p1>, <&tsens_s7_p2>,
> + <&tsens_s8_p1>, <&tsens_s8_p2>;
> + nvmem-cell-names = "mode",
> + "base1", "base2",
> + "s0_p1", "s0_p2",
> + "s1_p1", "s1_p2",
> + "s2_p1", "s2_p2",
> + "s3_p1", "s3_p2",
> + "s4_p1", "s4_p2",
> + "s4_p1", "s4_p2",

I know you're working on this already so just for completeness:

We discussed in the chat that there should be no s4 here at all since
sensor hwid=4 is not used on MSM8939. I think all the definitions are
already correct so you just need to rename s4 -> s5, s5 -> s6, s6 -> s7,
s8 -> s9.

> + "s5_p1", "s5_p2",
> + "s6_p1", "s6_p2",
> + "s7_p1", "s7_p2",
> + "s8_p1", "s8_p2";
> + #qcom,sensors = <9>;
> + interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-names = "uplow";
> + #thermal-sensor-cells = <1>;
> + };
> [...]
> + pronto: remoteproc@a204000 {
> + compatible = "qcom,pronto-v2-pil", "qcom,pronto";
> + interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
> + <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
> + <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
> + <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
> + <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
> + interrupt-names = "wdog",
> + "fatal",
> + "ready",
> + "handover",
> + "stop-ack";
> + reg = <0x0a204000 0x2000>,
> + <0x0a202000 0x1000>,
> + <0x0a21b000 0x3000>;
> + reg-names = "ccu", "dxe", "pmu";
> +
> + memory-region = <&wcnss_mem>;
> +
> + power-domains = <&rpmpd MSM8939_VDDCX>,
> + <&rpmpd MSM8939_VDDMX>;
> + power-domain-names = "cx", "mx";
> +
> + qcom,smem-states = <&wcnss_smp2p_out 0>;
> + qcom,smem-state-names = "stop";
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&wcnss_pin_a>;
> +
> + status = "disabled";
> +
> + iris {
> + compatible = "qcom,wcn3620";
> + clocks = <&rpmcc RPM_SMD_RF_CLK2>;
> + clock-names = "xo";
> + };

Since it looks like another version is needed to fix the tsens problem,
I'd appreciate if you squash in the following diffs for consistency with
my WCNSS compatible change for 8916: Could also send it as follow-up
later though.

Thanks,
Stephan

diff --git a/arch/arm64/boot/dts/qcom/apq8039-t2.dts b/arch/arm64/boot/dts/qcom/apq8039-t2.dts
index 5f68925434c8..e75ee34cb014 100644
--- a/arch/arm64/boot/dts/qcom/apq8039-t2.dts
+++ b/arch/arm64/boot/dts/qcom/apq8039-t2.dts
@@ -147,14 +147,6 @@ &pm8916_gpios {
"PM_GPIO4";
};

-&pronto {
- status = "okay";
-
- iris {
- compatible = "qcom,wcn3680";
- };
-};
-
&smd_rpm_regulators {
vdd_l1_l2_l3-supply = <&pm8916_s3>;
vdd_l4_l5_l6-supply = <&pm8916_s4>;
@@ -490,3 +482,11 @@ &wcd_codec {
qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
status = "okay";
};
+
+&wcnss {
+ status = "okay";
+};
+
+&wcnss_iris {
+ compatible = "qcom,wcn3680";
+};
diff --git a/arch/arm64/boot/dts/qcom/msm8939-sony-xperia-kanuti-tulip.dts b/arch/arm64/boot/dts/qcom/msm8939-sony-xperia-kanuti-tulip.dts
index cb47bb2413a7..89cceb0c4960 100644
--- a/arch/arm64/boot/dts/qcom/msm8939-sony-xperia-kanuti-tulip.dts
+++ b/arch/arm64/boot/dts/qcom/msm8939-sony-xperia-kanuti-tulip.dts
@@ -51,14 +51,6 @@ usb_id_default: usb-id-default-state {
};
};

-&pronto {
- status = "okay";
-
- iris {
- compatible = "qcom,wcn3660";
- };
-};
-
&smd_rpm_regulators {
vdd_l1_l2_l3-supply = <&pm8916_s3>;
vdd_l4_l5_l6-supply = <&pm8916_s4>;
@@ -182,3 +174,11 @@ &usb {
&usb_hs_phy {
extcon = <&usb_id>;
};
+
+&wcnss {
+ status = "okay";
+};
+
+&wcnss_iris {
+ compatible = "qcom,wcn3660";
+};
diff --git a/arch/arm64/boot/dts/qcom/msm8939.dtsi b/arch/arm64/boot/dts/qcom/msm8939.dtsi
index 96b25dfc4d3f..c15ff24abd30 100644
--- a/arch/arm64/boot/dts/qcom/msm8939.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8939.dtsi
@@ -1955,7 +1955,7 @@ usb_hs_phy: phy {
};
};

- pronto: remoteproc@a204000 {
+ wcnss: remoteproc@a204000 {
compatible = "qcom,pronto-v2-pil", "qcom,pronto";
interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
<&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
@@ -1986,8 +1986,8 @@ pronto: remoteproc@a204000 {

status = "disabled";

- iris {
- compatible = "qcom,wcn3620";
+ wcnss_iris: iris {
+ /* Separate chip, compatible is board-specific */
clocks = <&rpmcc RPM_SMD_RF_CLK2>;
clock-names = "xo";
};
@@ -2004,13 +2004,13 @@ wcnss {
compatible = "qcom,wcnss";
qcom,smd-channels = "WCNSS_CTRL";

- qcom,mmio = <&pronto>;
+ qcom,mmio = <&wcnss>;

- bluetooth {
+ wcnss_bt: bluetooth {
compatible = "qcom,wcnss-bt";
};

- wifi {
+ wcnss_wifi: wifi {
compatible = "qcom,wcnss-wlan";

interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,