On Thu, Aug 28, 2025 at 12:48:47PM +0800, Yijie Yang wrote: > The HAMOA-IOT-EVK is an evaluation platform for IoT products, composed of > the Hamoa IoT SoM and a carrier board. Together, they form a complete > embedded system capable of booting to UART. > > This change enables the following peripherals on the carrier board: > - UART > - On-board regulators > - USB Type-C mux > - Pinctrl > - Embedded USB (EUSB) repeaters > - NVMe > - pmic-glink > - USB DisplayPorts > - Bluetooth > - Graphic > - Audio > > Written in collaboration with Quill Qi (Audio) <le.qi@xxxxxxxxxxxxxxxx>, > Jie Zhang (Graphics) <quic_jiezh@xxxxxxxxxxx>, Shuai Zhang (Bluetooth) > <quic_shuaz@xxxxxxxxxxx>, and Yongxing Mou (USB DisplayPorts) > <quic_yongmou@xxxxxxxxxxx>. > > Signed-off-by: Yijie Yang <yijie.yang@xxxxxxxxxxxxxxxx> > --- > arch/arm64/boot/dts/qcom/Makefile | 1 + > arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts | 1247 ++++++++++++++++++++++++++++ > 2 files changed, 1248 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile > index 94a84770b080..5e19535ad63d 100644 > --- a/arch/arm64/boot/dts/qcom/Makefile > +++ b/arch/arm64/boot/dts/qcom/Makefile > @@ -13,6 +13,7 @@ dtb-$(CONFIG_ARCH_QCOM) += apq8039-t2.dtb > dtb-$(CONFIG_ARCH_QCOM) += apq8094-sony-xperia-kitakami-karin_windy.dtb > dtb-$(CONFIG_ARCH_QCOM) += apq8096-db820c.dtb > dtb-$(CONFIG_ARCH_QCOM) += apq8096-ifc6640.dtb > +dtb-$(CONFIG_ARCH_QCOM) += hamoa-iot-evk.dtb > dtb-$(CONFIG_ARCH_QCOM) += ipq5018-rdp432-c2.dtb > dtb-$(CONFIG_ARCH_QCOM) += ipq5018-tplink-archer-ax55-v1.dtb > dtb-$(CONFIG_ARCH_QCOM) += ipq5332-rdp441.dtb > diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts b/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts > new file mode 100644 > index 000000000000..b1a8380d6639 > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts > @@ -0,0 +1,1247 @@ > +// SPDX-License-Identifier: BSD-3-Clause > +/* > + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. > + */ > + > +/dts-v1/; > + > +#include "hamoa-iot-som.dtsi" > + > +/ { > + model = "Qualcomm Technologies, Inc. Hamoa IoT EVK"; > + compatible = "qcom,hamoa-iot-evk", "qcom,hamoa-iot-som", "qcom,x1e80100"; > + chassis-type = "embedded"; > + > + aliases { > + serial0 = &uart21; > + serial1 = &uart14; > + }; > + > + chosen { > + stdout-path = "serial0:115200n8"; > + }; > + > + pmic-glink { > + compatible = "qcom,x1e80100-pmic-glink", > + "qcom,sm8550-pmic-glink", > + "qcom,pmic-glink"; > + #address-cells = <1>; > + #size-cells = <0>; > + orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>, > + <&tlmm 123 GPIO_ACTIVE_HIGH>, > + <&tlmm 125 GPIO_ACTIVE_HIGH>; > + > + connector@0 { > + compatible = "usb-c-connector"; > + reg = <0>; > + power-role = "dual"; > + data-role = "dual"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + pmic_glink_ss0_hs_in: endpoint { > + remote-endpoint = <&usb_1_ss0_dwc3_hs>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + pmic_glink_ss0_ss_in: endpoint { > + remote-endpoint = <&usb_1_ss0_qmpphy_out>; > + }; > + }; > + > + port@2 { > + reg = <2>; > + > + pmic_glink_ss0_sbu: endpoint { > + remote-endpoint = <&usb_1_ss0_sbu_mux>; > + }; > + }; > + }; > + }; > + > + connector@1 { > + compatible = "usb-c-connector"; > + reg = <1>; > + power-role = "dual"; > + data-role = "dual"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + pmic_glink_ss1_hs_in: endpoint { > + remote-endpoint = <&usb_1_ss1_dwc3_hs>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + pmic_glink_ss1_ss_in: endpoint { > + remote-endpoint = <&retimer_ss1_ss_out>; > + }; > + }; > + > + port@2 { > + reg = <2>; > + > + pmic_glink_ss1_con_sbu_in: endpoint { > + remote-endpoint = <&retimer_ss1_con_sbu_out>; > + }; > + }; > + }; > + }; > + > + connector@2 { > + compatible = "usb-c-connector"; > + reg = <2>; > + power-role = "dual"; > + data-role = "dual"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + pmic_glink_ss2_hs_in: endpoint { > + remote-endpoint = <&usb_1_ss2_dwc3_hs>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + pmic_glink_ss2_ss_in: endpoint { > + remote-endpoint = <&retimer_ss2_ss_out>; > + }; > + }; > + > + port@2 { > + reg = <2>; > + > + pmic_glink_ss2_con_sbu_in: endpoint { > + remote-endpoint = <&retimer_ss2_con_sbu_out>; > + }; > + }; > + }; > + }; > + }; > + > + vreg_edp_3p3: regulator-edp-3p3 { Here is a list of the top-level nodes defined in this DT. Does it look sorted? aliases chosen pmic-glink regulator-edp-3p3 sound regulator-vph-pwr regulator-nvme regulator-rtmr0-1p15 regulator-rtmr0-1p8 regulator-rtmr0-3p3 regulator-rtmr1-1p15 regulator-rtmr1-1p8 regulator-rtmr1-3p3 regulator-rtmr2-1p15 regulator-rtmr2-1p8 regulator-rtmr2-3p3 regulator-wcn-3p3 usb-1-ss0-sbu-mux regulator-wcn-0p95 regulator-wcn-1p9 regulator-wwan audio-codec wcn7850-pmu -- With best wishes Dmitry