[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20260109080000.606603-4-yijie.yang@oss.qualcomm.com>
Date: Fri, 9 Jan 2026 15:59:54 +0800
From: YijieYang <yijie.yang@....qualcomm.com>
To: andersson@...nel.org, konradybcio@...nel.org, robh@...nel.org,
krzk+dt@...nel.org, conor+dt@...nel.org
Cc: linux-arm-msm@...r.kernel.org, linux-kernel@...r.kernel.org,
devicetree@...r.kernel.org, yijie.yang@....qualcomm.com,
krzysztof.kozlowski@....qualcomm.com
Subject: [PATCH v2 4/4] arm64: dts: qcom: Add base PURWA-IOT-EVK board
From: Yijie Yang <yijie.yang@....qualcomm.com>
The PURWA-IOT-EVK is an evaluation platform for IoT products, composed of
the Purwa IoT SoM and a carrier board. Together, they form a complete
embedded system capable of booting to UART.
PURWA-IOT-EVK uses the PS8833 as a retimer for USB0, unlike HAMOA-IOT-EVK.
Meanwhile, USB0 bypasses the SBU selector FSUSB42. As a result, the glink
topology differs from that of HAMOA-IOT-EVK.
Make the following peripherals on the carrier board enabled:
- UART
- On-board regulators
- USB Type-C mux
- Pinctrl
- Embedded USB (EUSB) repeaters
- NVMe
- pmic-glink
- USB DisplayPorts
- Bluetooth
- WLAN
- Audio
Signed-off-by: Yijie Yang <yijie.yang@....qualcomm.com>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../{hamoa-iot-evk.dts => purwa-iot-evk.dts} | 223 +++++-------------
2 files changed, 66 insertions(+), 158 deletions(-)
copy arch/arm64/boot/dts/qcom/{hamoa-iot-evk.dts => purwa-iot-evk.dts} (87%)
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 0ccd6ec16dfb..2ed1500cbaa9 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -126,6 +126,7 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8998-sony-xperia-yoshino-lilac.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8998-sony-xperia-yoshino-maple.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8998-sony-xperia-yoshino-poplar.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8998-xiaomi-sagit.dtb
+dtb-$(CONFIG_ARCH_QCOM) += purwa-iot-evk.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcm6490-fairphone-fp5.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcm6490-idp.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcm6490-particle-tachyon.dtb
diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts b/arch/arm64/boot/dts/qcom/purwa-iot-evk.dts
similarity index 87%
copy from arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts
copy to arch/arm64/boot/dts/qcom/purwa-iot-evk.dts
index 898b92627f84..781634b45eb0 100644
--- a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts
+++ b/arch/arm64/boot/dts/qcom/purwa-iot-evk.dts
@@ -6,12 +6,12 @@
/dts-v1/;
#include <dt-bindings/leds/common.h>
-#include "hamoa-iot-som.dtsi"
+#include "purwa-iot-som.dtsi"
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
/ {
- model = "Qualcomm Technologies, Inc. Hamoa IoT EVK";
- compatible = "qcom,hamoa-iot-evk", "qcom,hamoa-iot-som", "qcom,x1e80100";
+ model = "Qualcomm Technologies, Inc. Purwa IoT EVK";
+ compatible = "qcom,purwa-iot-evk", "qcom,purwa-iot-som", "qcom,x1p42100";
chassis-type = "embedded";
aliases {
@@ -19,16 +19,6 @@ aliases {
serial1 = &uart14;
};
- backlight: backlight {
- compatible = "pwm-backlight";
- pwms = <&pmk8550_pwm 0 5000000>;
- enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
- power-supply = <&vreg_edp_bl>;
-
- pinctrl-0 = <&edp_bl_en>, <&edp_bl_pwm>;
- pinctrl-names = "default";
- };
-
wcd938x: audio-codec {
compatible = "qcom,wcd9385-codec";
@@ -60,32 +50,6 @@ chosen {
stdout-path = "serial0:115200n8";
};
- connector3 {
- compatible = "usb-a-connector";
- label = "USB-3-Type-A";
- power-role = "source";
-
- vbus-supply = <®ulator_usb3_vbus>;
-
- port {
- connector_3_in: endpoint {
- };
- };
- };
-
- connector6 {
- compatible = "usb-a-connector";
- label = "USB-6-Type-A";
- power-role = "source";
-
- vbus-supply = <®ulator_usb6_vbus>;
-
- port {
- connector_4_in: endpoint {
- };
- };
- };
-
pmic-glink {
compatible = "qcom,x1e80100-pmic-glink",
"qcom,sm8550-pmic-glink",
@@ -118,15 +82,15 @@ port@1 {
reg = <1>;
pmic_glink_ss0_ss_in: endpoint {
- remote-endpoint = <&usb_1_ss0_qmpphy_out>;
+ remote-endpoint = <&retimer_ss0_ss_out>;
};
};
port@2 {
reg = <2>;
- pmic_glink_ss0_sbu: endpoint {
- remote-endpoint = <&usb_1_ss0_sbu_mux>;
+ pmic_glink_ss0_con_sbu_in: endpoint {
+ remote-endpoint = <&retimer_ss0_con_sbu_out>;
};
};
};
@@ -221,22 +185,6 @@ vreg_edp_3p3: regulator-edp-3p3 {
regulator-boot-on;
};
- vreg_edp_bl: regulator-edp-bl {
- compatible = "regulator-fixed";
-
- regulator-name = "VBL9";
- regulator-min-microvolt = <3600000>;
- regulator-max-microvolt = <3600000>;
-
- gpio = <&pmc8380_3_gpios 10 GPIO_ACTIVE_HIGH>;
- enable-active-high;
-
- pinctrl-0 = <&edp_bl_reg_en>;
- pinctrl-names = "default";
-
- regulator-boot-on;
- };
-
vreg_nvme: regulator-nvme {
compatible = "regulator-fixed";
@@ -398,26 +346,6 @@ vreg_rtmr2_3p3: regulator-rtmr2-3p3 {
regulator-boot-on;
};
- regulator_usb3_vbus: regulator-usb3-vbus {
- compatible = "regulator-fixed";
- regulator-name = "USB3_VBUS";
- gpio = <&pm8550ve_9_gpios 4 GPIO_ACTIVE_HIGH>;
- pinctrl-0 = <&usb3_en>;
- pinctrl-names = "default";
- enable-active-high;
- regulator-always-on;
- };
-
- regulator_usb6_vbus: regulator-usb6-vbus {
- compatible = "regulator-fixed";
- regulator-name = "USB6_VBUS";
- gpio = <&pm8550ve_9_gpios 5 GPIO_ACTIVE_HIGH>;
- pinctrl-0 = <&usb6_en>;
- pinctrl-names = "default";
- enable-active-high;
- regulator-always-on;
- };
-
vph_pwr: regulator-vph-pwr {
compatible = "regulator-fixed";
@@ -576,25 +504,6 @@ platform {
};
};
- usb-1-ss0-sbu-mux {
- compatible = "onnn,fsusb42", "gpio-sbu-mux";
-
- enable-gpios = <&tlmm 168 GPIO_ACTIVE_LOW>;
- select-gpios = <&tlmm 167 GPIO_ACTIVE_HIGH>;
-
- pinctrl-0 = <&usb_1_ss0_sbu_default>;
- pinctrl-names = "default";
-
- mode-switch;
- orientation-switch;
-
- port {
- usb_1_ss0_sbu_mux: endpoint {
- remote-endpoint = <&pmic_glink_ss0_sbu>;
- };
- };
- };
-
wcn7850-pmu {
compatible = "qcom,wcn7850-pmu";
@@ -711,6 +620,63 @@ retimer_ss2_con_sbu_out: endpoint {
};
};
+&i2c3 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ typec-mux@8 {
+ compatible = "parade,ps8830";
+ reg = <0x8>;
+
+ clocks = <&rpmhcc RPMH_RF_CLK4>;
+
+ vdd-supply = <&vreg_rtmr0_1p15>;
+ vdd33-supply = <&vreg_rtmr0_3p3>;
+ vdd33-cap-supply = <&vreg_rtmr0_3p3>;
+ vddar-supply = <&vreg_rtmr0_1p15>;
+ vddat-supply = <&vreg_rtmr0_1p15>;
+ vddio-supply = <&vreg_rtmr0_1p8>;
+
+ reset-gpios = <&pm8550_gpios 10 GPIO_ACTIVE_LOW>;
+
+ pinctrl-0 = <&rtmr0_default>;
+ pinctrl-names = "default";
+
+ retimer-switch;
+ orientation-switch;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ retimer_ss0_ss_out: endpoint {
+ remote-endpoint = <&pmic_glink_ss0_ss_in>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ retimer_ss0_ss_in: endpoint {
+ remote-endpoint = <&usb_1_ss0_qmpphy_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ retimer_ss0_con_sbu_out: endpoint {
+ remote-endpoint = <&pmic_glink_ss0_con_sbu_in>;
+ };
+ };
+ };
+ };
+};
+
&i2c5 {
clock-frequency = <400000>;
@@ -894,7 +860,7 @@ aux-bus {
panel {
compatible = "edp-panel";
- backlight = <&backlight>;
+ //backlight = <&backlight>;
power-supply = <&vreg_edp_3p3>;
port {
@@ -920,23 +886,6 @@ &mdss_dp3_phy {
status = "okay";
};
-&pcie4_port0 {
- wifi@0 {
- compatible = "pci17cb,1107";
- reg = <0x10000 0x0 0x0 0x0 0x0>;
-
- vddaon-supply = <&vreg_pmu_aon_0p59>;
- vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
- vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
- vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
- vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
- vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
- vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
- vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
- vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
- };
-};
-
&pcie6a {
vddpe-3v3-supply = <&vreg_nvme>;
};
@@ -970,22 +919,6 @@ usb0_1p8_reg_en: usb0-1p8-reg-en-state {
input-disable;
output-enable;
};
-
- usb3_en: usb3-en-state {
- pins = "gpio4";
- function = "normal";
- qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
- output-enable;
- power-source = <0>;
- };
-
- usb6_en: usb6-en-state {
- pins = "gpio5";
- function = "normal";
- qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
- output-enable;
- power-source = <0>;
- };
};
&pm8550_pwm {
@@ -1010,21 +943,6 @@ led@2 {
};
};
-&pmc8380_3_gpios {
- edp_bl_en: edp-bl-en-state {
- pins = "gpio4";
- function = "normal";
- power-source = <1>;
- input-disable;
- output-enable;
- };
-
- edp_bl_reg_en: edp-bl-reg-en-state {
- pins = "gpio10";
- function = "normal";
- };
-};
-
&pmc8380_5_gpios {
usb0_pwr_1p15_reg_en: usb0-pwr-1p15-reg-en-state {
pins = "gpio8";
@@ -1036,17 +954,6 @@ usb0_pwr_1p15_reg_en: usb0-pwr-1p15-reg-en-state {
};
};
-&pmk8550_gpios {
- edp_bl_pwm: edp-bl-pwm-state {
- pins = "gpio5";
- function = "func3";
- };
-};
-
-&pmk8550_pwm {
- status = "okay";
-};
-
&smb2360_0 {
status = "okay";
};
@@ -1363,7 +1270,7 @@ &usb_1_ss0_hsphy {
};
&usb_1_ss0_qmpphy_out {
- remote-endpoint = <&pmic_glink_ss0_ss_in>;
+ remote-endpoint = <&retimer_ss0_ss_in>;
};
&usb_1_ss1_dwc3_hs {
--
2.34.1
Powered by blists - more mailing lists