The HAMOA-IOT-SOM is a compact computing module that integrates a System
on Chip (SoC) — specifically the x1e80100 — along with essential
components optimized for IoT applications. It is designed to be mounted on
carrier boards, enabling the development of complete embedded systems.
Make the following peripherals on the SOM enabled:
- Regulators on the SOM
- Reserved memory regions
- PCIe6a and its PHY
- PCIe4 and its PHY
- USB0 through USB6 and their PHYs
- ADSP, CDSP
- Graphic
- Video
Written in collaboration with Yingying Tang (PCIe4)
<quic_yintang@quicinc.com> and Wangao Wang (Video)
<quic_wangaow@quicinc.com>.
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Yijie Yang <yijie.yang@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi | 621 ++++++++++++++++++++++++++++
1 file changed, 621 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi b/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi
new file mode 100644
index 000000000000..c7c3a167eb6a
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi
@@ -0,0 +1,621 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#include "x1e80100.dtsi"
+#include "x1e80100-pmics.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+
+/ {
+ compatible = "hamoa-iot-som", "qcom,x1e80100";
+
+ reserved-memory {
+ linux,cma {
+ compatible = "shared-dma-pool";
+ size = <0x0 0x8000000>;
+ reusable;
+ linux,cma-default;
+ };
+ };
+};
+
+&apps_rsc {
+ /* PMC8380C_B */
+ regulators-0 {
+ compatible = "qcom,pm8550-rpmh-regulators";
+ qcom,pmic-id = "b";
+
+ vdd-bob1-supply = <&vph_pwr>;
+ vdd-bob2-supply = <&vph_pwr>;
+ vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>;
+ vdd-l2-l13-l14-supply = <&vreg_bob1>;
+ vdd-l5-l16-supply = <&vreg_bob1>;
+ vdd-l6-l7-supply = <&vreg_bob2>;
+ vdd-l8-l9-supply = <&vreg_bob1>;
+ vdd-l12-supply = <&vreg_s5j_1p2>;
+ vdd-l15-supply = <&vreg_s4c_1p8>;
+ vdd-l17-supply = <&vreg_bob2>;
+
+ vreg_bob1: bob1 {
+ regulator-name = "vreg_bob1";
+ regulator-min-microvolt = <3008000>;
+ regulator-max-microvolt = <3960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_bob2: bob2 {
+ regulator-name = "vreg_bob2";
+ regulator-min-microvolt = <2504000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1b_1p8: ldo1 {
+ regulator-name = "vreg_l1b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2b_3p0: ldo2 {
+ regulator-name = "vreg_l2b_3p0";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3100000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l4b_1p8: ldo4 {
+ regulator-name = "vreg_l4b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l5b_3p0: ldo5 {
+ regulator-name = "vreg_l5b_3p0";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l6b_1p8: ldo6 {
+ regulator-name = "vreg_l6b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l7b_2p8: ldo7 {
+ regulator-name = "vreg_l7b_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l8b_3p0: ldo8 {
+ regulator-name = "vreg_l8b_3p0";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3072000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l9b_2p9: ldo9 {
+ regulator-name = "vreg_l9b_2p9";
+ regulator-min-microvolt = <2960000>;
+ regulator-max-microvolt = <2960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l10b_1p8: ldo10 {
+ regulator-name = "vreg_l10b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l12b_1p2: ldo12 {
+ regulator-name = "vreg_l12b_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-always-on;
+ };
+
+ vreg_l13b_3p0: ldo13 {
+ regulator-name = "vreg_l13b_3p0";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3100000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l14b_3p0: ldo14 {
+ regulator-name = "vreg_l14b_3p0";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3072000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l15b_1p8: ldo15 {
+ regulator-name = "vreg_l15b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-always-on;
+ };
+
+ vreg_l16b_2p9: ldo16 {
+ regulator-name = "vreg_l16b_2p9";
+ regulator-min-microvolt = <2912000>;
+ regulator-max-microvolt = <2912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l17b_2p5: ldo17 {
+ regulator-name = "vreg_l17b_2p5";
+ regulator-min-microvolt = <2504000>;
+ regulator-max-microvolt = <2504000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ /* PMC8380VE_C */
+ regulators-1 {
+ compatible = "qcom,pm8550ve-rpmh-regulators";
+ qcom,pmic-id = "c";
+
+ vdd-l1-supply = <&vreg_s5j_1p2>;
+ vdd-l2-supply = <&vreg_s1f_0p7>;
+ vdd-l3-supply = <&vreg_s1f_0p7>;
+ vdd-s4-supply = <&vph_pwr>;
+
+ vreg_s4c_1p8: smps4 {
+ regulator-name = "vreg_s4c_1p8";
+ regulator-min-microvolt = <1856000>;
+ regulator-max-microvolt = <2000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1c_1p2: ldo1 {
+ regulator-name = "vreg_l1c_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2c_0p8: ldo2 {
+ regulator-name = "vreg_l2c_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3c_0p8: ldo3 {
+ regulator-name = "vreg_l3c_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ /* PMC8380_D */
+ regulators-2 {
+ compatible = "qcom,pmc8380-rpmh-regulators";
+ qcom,pmic-id = "d";
+
+ vdd-l1-supply = <&vreg_s1f_0p7>;
+ vdd-l2-supply = <&vreg_s1f_0p7>;
+ vdd-l3-supply = <&vreg_s4c_1p8>;
+ vdd-s1-supply = <&vph_pwr>;
+
+ vreg_l1d_0p8: ldo1 {
+ regulator-name = "vreg_l1d_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2d_0p9: ldo2 {
+ regulator-name = "vreg_l2d_0p9";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3d_1p8: ldo3 {
+ regulator-name = "vreg_l3d_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ /* PMC8380_E */
+ regulators-3 {
+ compatible = "qcom,pmc8380-rpmh-regulators";
+ qcom,pmic-id = "e";
+
+ vdd-l2-supply = <&vreg_s1f_0p7>;
+ vdd-l3-supply = <&vreg_s5j_1p2>;
+
+ vreg_l2e_0p8: ldo2 {
+ regulator-name = "vreg_l2e_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3e_1p2: ldo3 {
+ regulator-name = "vreg_l3e_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ /* PMC8380_F */
+ regulators-4 {
+ compatible = "qcom,pmc8380-rpmh-regulators";
+ qcom,pmic-id = "f";
+
+ vdd-l1-supply = <&vreg_s5j_1p2>;
+ vdd-l2-supply = <&vreg_s5j_1p2>;
+ vdd-l3-supply = <&vreg_s5j_1p2>;
+ vdd-s1-supply = <&vph_pwr>;
+
+ vreg_s1f_0p7: smps1 {
+ regulator-name = "vreg_s1f_0p7";
+ regulator-min-microvolt = <700000>;
+ regulator-max-microvolt = <1100000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1f_1p0: ldo1 {
+ regulator-name = "vreg_l1f_1p0";
+ regulator-min-microvolt = <1024000>;
+ regulator-max-microvolt = <1024000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2f_1p0: ldo2 {
+ regulator-name = "vreg_l2f_1p0";
+ regulator-min-microvolt = <1024000>;
+ regulator-max-microvolt = <1024000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3f_1p0: ldo3 {
+ regulator-name = "vreg_l3f_1p0";
+ regulator-min-microvolt = <1024000>;
+ regulator-max-microvolt = <1024000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ /* PMC8380VE_I */
+ regulators-6 {
+ compatible = "qcom,pm8550ve-rpmh-regulators";
+ qcom,pmic-id = "i";
+
+ vdd-l1-supply = <&vreg_s4c_1p8>;
+ vdd-l2-supply = <&vreg_s5j_1p2>;
+ vdd-l3-supply = <&vreg_s1f_0p7>;
+ vdd-s1-supply = <&vph_pwr>;
+ vdd-s2-supply = <&vph_pwr>;
+
+ vreg_s1i_0p9: smps1 {
+ regulator-name = "vreg_s1i_0p9";
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s2i_1p0: smps2 {
+ regulator-name = "vreg_s2i_1p0";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1100000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1i_1p8: ldo1 {
+ regulator-name = "vreg_l1i_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2i_1p2: ldo2 {
+ regulator-name = "vreg_l2i_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3i_0p8: ldo3 {
+ regulator-name = "vreg_l3i_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ /* PMC8380VE_J */
+ regulators-7 {
+ compatible = "qcom,pm8550ve-rpmh-regulators";
+ qcom,pmic-id = "j";
+
+ vdd-l1-supply = <&vreg_s1f_0p7>;
+ vdd-l2-supply = <&vreg_s5j_1p2>;
+ vdd-l3-supply = <&vreg_s1f_0p7>;
+ vdd-s5-supply = <&vph_pwr>;
+
+ vreg_s5j_1p2: smps5 {
+ regulator-name = "vreg_s5j_1p2";
+ regulator-min-microvolt = <1256000>;
+ regulator-max-microvolt = <1304000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1j_0p8: ldo1 {
+ regulator-name = "vreg_l1j_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2j_1p2: ldo2 {
+ regulator-name = "vreg_l2j_1p2";
+ regulator-min-microvolt = <1256000>;
+ regulator-max-microvolt = <1256000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3j_0p8: ldo3 {
+ regulator-name = "vreg_l3j_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+};
+
+&iris {
+ status = "okay";
+};
+
+&gpu {
+ status = "okay";
+};
+
+&gpu_zap_shader {
+ firmware-name = "qcom/x1e80100/gen70500_zap.mbn";
+};
+
+&pcie4 {
+ perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+
+ pinctrl-0 = <&pcie4_default>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie4_phy {
+ vdda-phy-supply = <&vreg_l3i_0p8>;
+ vdda-pll-supply = <&vreg_l3e_1p2>;
+
+ status = "okay";
+};
+
+&pcie6a {
+ perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+
+ pinctrl-0 = <&pcie6a_default>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie6a_phy {
+ vdda-phy-supply = <&vreg_l1d_0p8>;
+ vdda-pll-supply = <&vreg_l2j_1p2>;
+
+ status = "okay";
+};
+
+&qupv3_0 {
+ status = "okay";
+};
+
+&qupv3_1 {
+ status = "okay";
+};
+
+&qupv3_2 {
+ status = "okay";
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/x1e80100/adsp.mbn",
+ "qcom/x1e80100/adsp_dtb.mbn";
+
+ status = "okay";
+};
+
+&remoteproc_cdsp {
+ firmware-name = "qcom/x1e80100/cdsp.mbn",
+ "qcom/x1e80100/cdsp_dtb.mbn";
+
+ status = "okay";
+};
+
+&tlmm {
+ gpio-reserved-ranges = <34 2>, /* TPM LP & INT */
+ <44 4>; /* SPI (TPM) */
+
+ pcie4_default: pcie4-default-state {
+ clkreq-n-pins {
+ pins = "gpio147";
+ function = "pcie4_clk";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-n-pins {
+ pins = "gpio146";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ wake-n-pins {
+ pins = "gpio148";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ pcie6a_default: pcie6a-default-state {
+ clkreq-n-pins {
+ pins = "gpio153";
+ function = "pcie6a_clk";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-n-pins {
+ pins = "gpio152";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ wake-n-pins {
+ pins = "gpio154";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+
+ };
+ };
+};
+
+&usb_1_ss0 {
+ status = "okay";
+};
+
+&usb_1_ss0_dwc3 {
+ dr_mode = "otg";
+ usb-role-switch;
+};
+
+&usb_1_ss0_hsphy {
+ vdd-supply = <&vreg_l3j_0p8>;
+ vdda12-supply = <&vreg_l2j_1p2>;
+
+ status = "okay";
+};
+
+&usb_1_ss0_qmpphy {
+ vdda-phy-supply = <&vreg_l2j_1p2>;
+ vdda-pll-supply = <&vreg_l1j_0p8>;
+
+ status = "okay";
+};
+
+&usb_1_ss1 {
+ status = "okay";
+};
+
+&usb_1_ss1_dwc3 {
+ dr_mode = "otg";
+ usb-role-switch;
+};
+
+&usb_1_ss1_hsphy {
+ vdd-supply = <&vreg_l3j_0p8>;
+ vdda12-supply = <&vreg_l2j_1p2>;
+
+ status = "okay";
+};
+
+&usb_1_ss1_qmpphy {
+ vdda-phy-supply = <&vreg_l2j_1p2>;
+ vdda-pll-supply = <&vreg_l2d_0p9>;
+
+ status = "okay";
+};
+
+&usb_1_ss2 {
+ status = "okay";
+};
+
+&usb_1_ss2_dwc3 {
+ dr_mode = "otg";
+ usb-role-switch;
+};
+
+&usb_1_ss2_hsphy {
+ vdd-supply = <&vreg_l3j_0p8>;
+ vdda12-supply = <&vreg_l2j_1p2>;
+
+ status = "okay";
+};
+
+&usb_1_ss2_qmpphy {
+ vdda-phy-supply = <&vreg_l2j_1p2>;
+ vdda-pll-supply = <&vreg_l2d_0p9>;
+
+ status = "okay";
+};
+
+&usb_2 {
+ status = "okay";
+};
+
+&usb_2_dwc3 {
+ dr_mode = "host";
+};
+
+&usb_2_hsphy {
+ vdd-supply = <&vreg_l2e_0p8>;
+ vdda12-supply = <&vreg_l3e_1p2>;
+
+ status = "okay";
+};
+
+&usb_mp {
+ status = "okay";
+};
+
+&usb_mp_hsphy0 {
+ vdd-supply = <&vreg_l2e_0p8>;
+ vdda12-supply = <&vreg_l3e_1p2>;
+
+ status = "okay";
+};
+
+&usb_mp_hsphy1 {
+ vdd-supply = <&vreg_l2e_0p8>;
+ vdda12-supply = <&vreg_l3e_1p2>;
+
+ status = "okay";
+};
+
+&usb_mp_qmpphy0 {
+ vdda-phy-supply = <&vreg_l3e_1p2>;
+ vdda-pll-supply = <&vreg_l3c_0p8>;
+
+ status = "okay";
+};
+
+&usb_mp_qmpphy1 {
+ vdda-phy-supply = <&vreg_l3e_1p2>;
+ vdda-pll-supply = <&vreg_l3c_0p8>;
+
+ status = "okay";
+};
--
2.34.1
On Wed, Sep 10, 2025 at 05:02:11PM +0800, Yijie Yang wrote: > The HAMOA-IOT-SOM is a compact computing module that integrates a System > on Chip (SoC) — specifically the x1e80100 — along with essential > components optimized for IoT applications. It is designed to be mounted on > carrier boards, enabling the development of complete embedded systems. > > Make the following peripherals on the SOM enabled: > - Regulators on the SOM > - Reserved memory regions > - PCIe6a and its PHY > - PCIe4 and its PHY > - USB0 through USB6 and their PHYs > - ADSP, CDSP > - Graphic > - Video > > Written in collaboration with Yingying Tang (PCIe4) > <quic_yintang@quicinc.com> and Wangao Wang (Video) > <quic_wangaow@quicinc.com>. This looks like you should have Co-developed-by: tags together with their Signed-off-by: tags. > > Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> > Signed-off-by: Yijie Yang <yijie.yang@oss.qualcomm.com> > --- > arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi | 621 ++++++++++++++++++++++++++++ > 1 file changed, 621 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi b/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi > new file mode 100644 > index 000000000000..c7c3a167eb6a > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi > @@ -0,0 +1,621 @@ > +// SPDX-License-Identifier: BSD-3-Clause > +/* > + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. > + */ > + > +#include "x1e80100.dtsi" > +#include "x1e80100-pmics.dtsi" > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/regulator/qcom,rpmh-regulator.h> > + > +/ { > + compatible = "hamoa-iot-som", "qcom,x1e80100"; Undocumented compatible (without "qcom," prefix). I think you can just drop this? Thanks, Stephan
On 2025-09-12 16:48, Stephan Gerhold wrote: > On Wed, Sep 10, 2025 at 05:02:11PM +0800, Yijie Yang wrote: >> The HAMOA-IOT-SOM is a compact computing module that integrates a System >> on Chip (SoC) — specifically the x1e80100 — along with essential >> components optimized for IoT applications. It is designed to be mounted on >> carrier boards, enabling the development of complete embedded systems. >> >> Make the following peripherals on the SOM enabled: >> - Regulators on the SOM >> - Reserved memory regions >> - PCIe6a and its PHY >> - PCIe4 and its PHY >> - USB0 through USB6 and their PHYs >> - ADSP, CDSP >> - Graphic >> - Video >> >> Written in collaboration with Yingying Tang (PCIe4) >> <quic_yintang@quicinc.com> and Wangao Wang (Video) >> <quic_wangaow@quicinc.com>. > > This looks like you should have Co-developed-by: tags together with > their Signed-off-by: tags. We’ve agreed on this as the preferred method for marking collaboration, as discussed earlier in this thread. > >> >> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> >> Signed-off-by: Yijie Yang <yijie.yang@oss.qualcomm.com> >> --- >> arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi | 621 ++++++++++++++++++++++++++++ >> 1 file changed, 621 insertions(+) >> >> diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi b/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi >> new file mode 100644 >> index 000000000000..c7c3a167eb6a >> --- /dev/null >> +++ b/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi >> @@ -0,0 +1,621 @@ >> +// SPDX-License-Identifier: BSD-3-Clause >> +/* >> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. >> + */ >> + >> +#include "x1e80100.dtsi" >> +#include "x1e80100-pmics.dtsi" >> +#include <dt-bindings/gpio/gpio.h> >> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h> >> + >> +/ { >> + compatible = "hamoa-iot-som", "qcom,x1e80100"; > > Undocumented compatible (without "qcom," prefix). I think you can just > drop this? This compatible string was also discussed previously and is the preferred choice. I’ll add the missing 'qcom,' prefix. > > Thanks, > Stephan -- Best Regards, Yijie
On Mon, Sep 15, 2025 at 10:12:15AM +0800, Yijie Yang wrote: > > > On 2025-09-12 16:48, Stephan Gerhold wrote: > > On Wed, Sep 10, 2025 at 05:02:11PM +0800, Yijie Yang wrote: > > > The HAMOA-IOT-SOM is a compact computing module that integrates a System > > > on Chip (SoC) — specifically the x1e80100 — along with essential > > > components optimized for IoT applications. It is designed to be mounted on > > > carrier boards, enabling the development of complete embedded systems. > > > > > > Make the following peripherals on the SOM enabled: > > > - Regulators on the SOM > > > - Reserved memory regions > > > - PCIe6a and its PHY > > > - PCIe4 and its PHY > > > - USB0 through USB6 and their PHYs > > > - ADSP, CDSP > > > - Graphic > > > - Video > > > > > > Written in collaboration with Yingying Tang (PCIe4) > > > <quic_yintang@quicinc.com> and Wangao Wang (Video) > > > <quic_wangaow@quicinc.com>. > > > > This looks like you should have Co-developed-by: tags together with > > their Signed-off-by: tags. > > We’ve agreed on this as the preferred method for marking collaboration, as > discussed earlier in this thread. > I can't say I agree with Bjorn there, but ok, he's the maintainer. :-) > > > > > > > > Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> > > > Signed-off-by: Yijie Yang <yijie.yang@oss.qualcomm.com> > > > --- > > > arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi | 621 ++++++++++++++++++++++++++++ > > > 1 file changed, 621 insertions(+) > > > > > > diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi b/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi > > > new file mode 100644 > > > index 000000000000..c7c3a167eb6a > > > --- /dev/null > > > +++ b/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi > > > @@ -0,0 +1,621 @@ > > > +// SPDX-License-Identifier: BSD-3-Clause > > > +/* > > > + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. > > > + */ > > > + > > > +#include "x1e80100.dtsi" > > > +#include "x1e80100-pmics.dtsi" > > > +#include <dt-bindings/gpio/gpio.h> > > > +#include <dt-bindings/regulator/qcom,rpmh-regulator.h> > > > + > > > +/ { > > > + compatible = "hamoa-iot-som", "qcom,x1e80100"; > > > > Undocumented compatible (without "qcom," prefix). I think you can just > > drop this? > > This compatible string was also discussed previously and is the preferred > choice. I’ll add the missing 'qcom,' prefix. > Even compatible = "qcom,hamoa-iot-som", "qcom,x1e80100"; is not documented. And it doesn't make much sense to document it either, each of the boards using the SoM should have a more specific compatible and therefore needs to override this property. I think you can really just drop this line. Thanks, Stephan
On 2025-09-15 16:52, Stephan Gerhold wrote: > On Mon, Sep 15, 2025 at 10:12:15AM +0800, Yijie Yang wrote: >> >> >> On 2025-09-12 16:48, Stephan Gerhold wrote: >>> On Wed, Sep 10, 2025 at 05:02:11PM +0800, Yijie Yang wrote: >>>> The HAMOA-IOT-SOM is a compact computing module that integrates a System >>>> on Chip (SoC) — specifically the x1e80100 — along with essential >>>> components optimized for IoT applications. It is designed to be mounted on >>>> carrier boards, enabling the development of complete embedded systems. >>>> >>>> Make the following peripherals on the SOM enabled: >>>> - Regulators on the SOM >>>> - Reserved memory regions >>>> - PCIe6a and its PHY >>>> - PCIe4 and its PHY >>>> - USB0 through USB6 and their PHYs >>>> - ADSP, CDSP >>>> - Graphic >>>> - Video >>>> >>>> Written in collaboration with Yingying Tang (PCIe4) >>>> <quic_yintang@quicinc.com> and Wangao Wang (Video) >>>> <quic_wangaow@quicinc.com>. >>> >>> This looks like you should have Co-developed-by: tags together with >>> their Signed-off-by: tags. >> >> We’ve agreed on this as the preferred method for marking collaboration, as >> discussed earlier in this thread. >> > > I can't say I agree with Bjorn there, but ok, he's the maintainer. :-) > >>> >>>> >>>> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> >>>> Signed-off-by: Yijie Yang <yijie.yang@oss.qualcomm.com> >>>> --- >>>> arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi | 621 ++++++++++++++++++++++++++++ >>>> 1 file changed, 621 insertions(+) >>>> >>>> diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi b/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi >>>> new file mode 100644 >>>> index 000000000000..c7c3a167eb6a >>>> --- /dev/null >>>> +++ b/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi >>>> @@ -0,0 +1,621 @@ >>>> +// SPDX-License-Identifier: BSD-3-Clause >>>> +/* >>>> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. >>>> + */ >>>> + >>>> +#include "x1e80100.dtsi" >>>> +#include "x1e80100-pmics.dtsi" >>>> +#include <dt-bindings/gpio/gpio.h> >>>> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h> >>>> + >>>> +/ { >>>> + compatible = "hamoa-iot-som", "qcom,x1e80100"; >>> >>> Undocumented compatible (without "qcom," prefix). I think you can just >>> drop this? >> >> This compatible string was also discussed previously and is the preferred >> choice. I’ll add the missing 'qcom,' prefix. >> > > Even compatible = "qcom,hamoa-iot-som", "qcom,x1e80100"; is not > documented. And it doesn't make much sense to document it either, each > of the boards using the SoM should have a more specific compatible and > therefore needs to override this property. I think you can really just > drop this line. Patch 1/4 documents this compatible. It’s another requirement that SoC/SoM should follow, which Krzysztof pointed out in v2: https://lore.kernel.org/all/aee74e0f-c957-437d-ab48-3977013c3116@kernel.org/ > > Thanks, > Stephan > -- Best Regards, Yijie
yOn Mon, Sep 15, 2025 at 05:46:09PM +0800, Yijie Yang wrote: > > > On 2025-09-15 16:52, Stephan Gerhold wrote: > > On Mon, Sep 15, 2025 at 10:12:15AM +0800, Yijie Yang wrote: > > > > > > > > > On 2025-09-12 16:48, Stephan Gerhold wrote: > > > > On Wed, Sep 10, 2025 at 05:02:11PM +0800, Yijie Yang wrote: > > > > > The HAMOA-IOT-SOM is a compact computing module that integrates a System > > > > > on Chip (SoC) — specifically the x1e80100 — along with essential > > > > > components optimized for IoT applications. It is designed to be mounted on > > > > > carrier boards, enabling the development of complete embedded systems. > > > > > > > > > > Make the following peripherals on the SOM enabled: > > > > > - Regulators on the SOM > > > > > - Reserved memory regions > > > > > - PCIe6a and its PHY > > > > > - PCIe4 and its PHY > > > > > - USB0 through USB6 and their PHYs > > > > > - ADSP, CDSP > > > > > - Graphic > > > > > - Video > > > > > > > > > > Written in collaboration with Yingying Tang (PCIe4) > > > > > <quic_yintang@quicinc.com> and Wangao Wang (Video) > > > > > <quic_wangaow@quicinc.com>. > > > > > > > > This looks like you should have Co-developed-by: tags together with > > > > their Signed-off-by: tags. > > > > > > We’ve agreed on this as the preferred method for marking collaboration, as > > > discussed earlier in this thread. > > > > > > > I can't say I agree with Bjorn there, but ok, he's the maintainer. :-) > > > > > > > > > > > > > > > > Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> > > > > > Signed-off-by: Yijie Yang <yijie.yang@oss.qualcomm.com> > > > > > --- > > > > > arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi | 621 ++++++++++++++++++++++++++++ > > > > > 1 file changed, 621 insertions(+) > > > > > > > > > > diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi b/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi > > > > > new file mode 100644 > > > > > index 000000000000..c7c3a167eb6a > > > > > --- /dev/null > > > > > +++ b/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi > > > > > @@ -0,0 +1,621 @@ > > > > > +// SPDX-License-Identifier: BSD-3-Clause > > > > > +/* > > > > > + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. > > > > > + */ > > > > > + > > > > > +#include "x1e80100.dtsi" > > > > > +#include "x1e80100-pmics.dtsi" > > > > > +#include <dt-bindings/gpio/gpio.h> > > > > > +#include <dt-bindings/regulator/qcom,rpmh-regulator.h> > > > > > + > > > > > +/ { > > > > > + compatible = "hamoa-iot-som", "qcom,x1e80100"; > > > > > > > > Undocumented compatible (without "qcom," prefix). I think you can just > > > > drop this? > > > > > > This compatible string was also discussed previously and is the preferred > > > choice. I’ll add the missing 'qcom,' prefix. > > > > > > > Even compatible = "qcom,hamoa-iot-som", "qcom,x1e80100"; is not > > documented. And it doesn't make much sense to document it either, each > > of the boards using the SoM should have a more specific compatible and > > therefore needs to override this property. I think you can really just > > drop this line. > > Patch 1/4 documents this compatible. It’s another requirement that SoC/SoM > should follow, which Krzysztof pointed out in v2: > https://lore.kernel.org/all/aee74e0f-c957-437d-ab48-3977013c3116@kernel.org/ > I'm not saying you should drop the "qcom,hamoa-iot-som" compatible. My point is that only the compatible list you use in hamoa-iot-evk.dts is documented in PATCH 1/4: compatible = "qcom,hamoa-iot-evk", "qcom,hamoa-iot-som", "qcom,x1e80100"; The compatible list you are using in hamoa-iot-som.dtsi is *not* documented: compatible = "(qcom,)hamoa-iot-som", "qcom,x1e80100"; because the board-specific compatible string (e.g. "qcom,hamoa-iot-evk") is missing. The compatible property you have in hamoa-iot-som.dtsi is redundant, because you override it with the valid one in hamoa-iot-evk.dts. And every other board using the SoM should do the same. I would expect that you can just drop this line in hamoa-iot-som.dtsi. Thanks, Stephan
On 2025-09-15 17:53, Stephan Gerhold wrote: > yOn Mon, Sep 15, 2025 at 05:46:09PM +0800, Yijie Yang wrote: >> >> >> On 2025-09-15 16:52, Stephan Gerhold wrote: >>> On Mon, Sep 15, 2025 at 10:12:15AM +0800, Yijie Yang wrote: >>>> >>>> >>>> On 2025-09-12 16:48, Stephan Gerhold wrote: >>>>> On Wed, Sep 10, 2025 at 05:02:11PM +0800, Yijie Yang wrote: >>>>>> The HAMOA-IOT-SOM is a compact computing module that integrates a System >>>>>> on Chip (SoC) — specifically the x1e80100 — along with essential >>>>>> components optimized for IoT applications. It is designed to be mounted on >>>>>> carrier boards, enabling the development of complete embedded systems. >>>>>> >>>>>> Make the following peripherals on the SOM enabled: >>>>>> - Regulators on the SOM >>>>>> - Reserved memory regions >>>>>> - PCIe6a and its PHY >>>>>> - PCIe4 and its PHY >>>>>> - USB0 through USB6 and their PHYs >>>>>> - ADSP, CDSP >>>>>> - Graphic >>>>>> - Video >>>>>> >>>>>> Written in collaboration with Yingying Tang (PCIe4) >>>>>> <quic_yintang@quicinc.com> and Wangao Wang (Video) >>>>>> <quic_wangaow@quicinc.com>. >>>>> >>>>> This looks like you should have Co-developed-by: tags together with >>>>> their Signed-off-by: tags. >>>> >>>> We’ve agreed on this as the preferred method for marking collaboration, as >>>> discussed earlier in this thread. >>>> >>> >>> I can't say I agree with Bjorn there, but ok, he's the maintainer. :-) >>> >>>>> >>>>>> >>>>>> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> >>>>>> Signed-off-by: Yijie Yang <yijie.yang@oss.qualcomm.com> >>>>>> --- >>>>>> arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi | 621 ++++++++++++++++++++++++++++ >>>>>> 1 file changed, 621 insertions(+) >>>>>> >>>>>> diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi b/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi >>>>>> new file mode 100644 >>>>>> index 000000000000..c7c3a167eb6a >>>>>> --- /dev/null >>>>>> +++ b/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi >>>>>> @@ -0,0 +1,621 @@ >>>>>> +// SPDX-License-Identifier: BSD-3-Clause >>>>>> +/* >>>>>> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. >>>>>> + */ >>>>>> + >>>>>> +#include "x1e80100.dtsi" >>>>>> +#include "x1e80100-pmics.dtsi" >>>>>> +#include <dt-bindings/gpio/gpio.h> >>>>>> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h> >>>>>> + >>>>>> +/ { >>>>>> + compatible = "hamoa-iot-som", "qcom,x1e80100"; >>>>> >>>>> Undocumented compatible (without "qcom," prefix). I think you can just >>>>> drop this? >>>> >>>> This compatible string was also discussed previously and is the preferred >>>> choice. I’ll add the missing 'qcom,' prefix. >>>> >>> >>> Even compatible = "qcom,hamoa-iot-som", "qcom,x1e80100"; is not >>> documented. And it doesn't make much sense to document it either, each >>> of the boards using the SoM should have a more specific compatible and >>> therefore needs to override this property. I think you can really just >>> drop this line. >> >> Patch 1/4 documents this compatible. It’s another requirement that SoC/SoM >> should follow, which Krzysztof pointed out in v2: >> https://lore.kernel.org/all/aee74e0f-c957-437d-ab48-3977013c3116@kernel.org/ >> > > I'm not saying you should drop the "qcom,hamoa-iot-som" compatible. My > point is that only the compatible list you use in hamoa-iot-evk.dts is > documented in PATCH 1/4: > > compatible = "qcom,hamoa-iot-evk", "qcom,hamoa-iot-som", "qcom,x1e80100"; > > The compatible list you are using in hamoa-iot-som.dtsi is *not* > documented: > > compatible = "(qcom,)hamoa-iot-som", "qcom,x1e80100"; > > because the board-specific compatible string (e.g. "qcom,hamoa-iot-evk") > is missing. > > The compatible property you have in hamoa-iot-som.dtsi is redundant, > because you override it with the valid one in hamoa-iot-evk.dts. And > every other board using the SoM should do the same. > > I would expect that you can just drop this line in hamoa-iot-som.dtsi. Yes, the compatible property in this context will ultimately be overridden by the board file and does not have any direct functional impact. However, DTS/DTSI files are intended to describe the hardware itself, and this compatible string helps characterize the SOM—even if it is later overridden. This is similar to the role of compatible strings in certain soc.dtsi files. Therefore, I believe it is appropriate to retain this compatible and provide documentation to clarify its purpose. A useful reference for this approach is the imx8mp-sr-som.dtsi file from another vendor. > > Thanks, > Stephan -- Best Regards, Yijie
On 9/16/25 3:06 AM, Yijie Yang wrote: > > > On 2025-09-15 17:53, Stephan Gerhold wrote: >> yOn Mon, Sep 15, 2025 at 05:46:09PM +0800, Yijie Yang wrote: >>> >>> >>> On 2025-09-15 16:52, Stephan Gerhold wrote: >>>> On Mon, Sep 15, 2025 at 10:12:15AM +0800, Yijie Yang wrote: >>>>> >>>>> >>>>> On 2025-09-12 16:48, Stephan Gerhold wrote: >>>>>> On Wed, Sep 10, 2025 at 05:02:11PM +0800, Yijie Yang wrote: >>>>>>> The HAMOA-IOT-SOM is a compact computing module that integrates a System >>>>>>> on Chip (SoC) — specifically the x1e80100 — along with essential >>>>>>> components optimized for IoT applications. It is designed to be mounted on >>>>>>> carrier boards, enabling the development of complete embedded systems. >>>>>>> >>>>>>> Make the following peripherals on the SOM enabled: >>>>>>> - Regulators on the SOM >>>>>>> - Reserved memory regions >>>>>>> - PCIe6a and its PHY >>>>>>> - PCIe4 and its PHY >>>>>>> - USB0 through USB6 and their PHYs >>>>>>> - ADSP, CDSP >>>>>>> - Graphic >>>>>>> - Video >>>>>>> >>>>>>> Written in collaboration with Yingying Tang (PCIe4) >>>>>>> <quic_yintang@quicinc.com> and Wangao Wang (Video) >>>>>>> <quic_wangaow@quicinc.com>. >>>>>> >>>>>> This looks like you should have Co-developed-by: tags together with >>>>>> their Signed-off-by: tags. >>>>> >>>>> We’ve agreed on this as the preferred method for marking collaboration, as >>>>> discussed earlier in this thread. >>>>> >>>> >>>> I can't say I agree with Bjorn there, but ok, he's the maintainer. :-) >>>> >>>>>> >>>>>>> >>>>>>> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> >>>>>>> Signed-off-by: Yijie Yang <yijie.yang@oss.qualcomm.com> >>>>>>> --- >>>>>>> arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi | 621 ++++++++++++++++++++++++++++ >>>>>>> 1 file changed, 621 insertions(+) >>>>>>> >>>>>>> diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi b/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi >>>>>>> new file mode 100644 >>>>>>> index 000000000000..c7c3a167eb6a >>>>>>> --- /dev/null >>>>>>> +++ b/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi >>>>>>> @@ -0,0 +1,621 @@ >>>>>>> +// SPDX-License-Identifier: BSD-3-Clause >>>>>>> +/* >>>>>>> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. >>>>>>> + */ >>>>>>> + >>>>>>> +#include "x1e80100.dtsi" >>>>>>> +#include "x1e80100-pmics.dtsi" >>>>>>> +#include <dt-bindings/gpio/gpio.h> >>>>>>> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h> >>>>>>> + >>>>>>> +/ { >>>>>>> + compatible = "hamoa-iot-som", "qcom,x1e80100"; >>>>>> >>>>>> Undocumented compatible (without "qcom," prefix). I think you can just >>>>>> drop this? >>>>> >>>>> This compatible string was also discussed previously and is the preferred >>>>> choice. I’ll add the missing 'qcom,' prefix. >>>>> >>>> >>>> Even compatible = "qcom,hamoa-iot-som", "qcom,x1e80100"; is not >>>> documented. And it doesn't make much sense to document it either, each >>>> of the boards using the SoM should have a more specific compatible and >>>> therefore needs to override this property. I think you can really just >>>> drop this line. >>> >>> Patch 1/4 documents this compatible. It’s another requirement that SoC/SoM >>> should follow, which Krzysztof pointed out in v2: >>> https://lore.kernel.org/all/aee74e0f-c957-437d-ab48-3977013c3116@kernel.org/ >>> >> >> I'm not saying you should drop the "qcom,hamoa-iot-som" compatible. My >> point is that only the compatible list you use in hamoa-iot-evk.dts is >> documented in PATCH 1/4: >> >> compatible = "qcom,hamoa-iot-evk", "qcom,hamoa-iot-som", "qcom,x1e80100"; >> >> The compatible list you are using in hamoa-iot-som.dtsi is *not* >> documented: >> >> compatible = "(qcom,)hamoa-iot-som", "qcom,x1e80100"; >> >> because the board-specific compatible string (e.g. "qcom,hamoa-iot-evk") >> is missing. >> >> The compatible property you have in hamoa-iot-som.dtsi is redundant, >> because you override it with the valid one in hamoa-iot-evk.dts. And >> every other board using the SoM should do the same. >> >> I would expect that you can just drop this line in hamoa-iot-som.dtsi. > > Yes, the compatible property in this context will ultimately be overridden by the board file and does not have any direct functional impact. > > However, DTS/DTSI files are intended to describe the hardware itself, and this compatible string helps characterize the SOM—even if it is later overridden. This is similar to the role of compatible strings in certain soc.dtsi files. > > Therefore, I believe it is appropriate to retain this compatible and provide documentation to clarify its purpose. No, if the compatible and model are not overriden, the carrier board DT is invalid. The SoM dtsi isn't supposed to be a "functional" dt, but rather a fragment, like a code header, containing most of the common functionality for includers (which is derived from the presence of the Hamoa SoM). Konrad > > A useful reference for this approach is the imx8mp-sr-som.dtsi file from another vendor. > >> >> Thanks, >> Stephan >
On 2025-09-16 15:46, Konrad Dybcio wrote: > On 9/16/25 3:06 AM, Yijie Yang wrote: >> >> >> On 2025-09-15 17:53, Stephan Gerhold wrote: >>> yOn Mon, Sep 15, 2025 at 05:46:09PM +0800, Yijie Yang wrote: >>>> >>>> >>>> On 2025-09-15 16:52, Stephan Gerhold wrote: >>>>> On Mon, Sep 15, 2025 at 10:12:15AM +0800, Yijie Yang wrote: >>>>>> >>>>>> >>>>>> On 2025-09-12 16:48, Stephan Gerhold wrote: >>>>>>> On Wed, Sep 10, 2025 at 05:02:11PM +0800, Yijie Yang wrote: >>>>>>>> The HAMOA-IOT-SOM is a compact computing module that integrates a System >>>>>>>> on Chip (SoC) — specifically the x1e80100 — along with essential >>>>>>>> components optimized for IoT applications. It is designed to be mounted on >>>>>>>> carrier boards, enabling the development of complete embedded systems. >>>>>>>> >>>>>>>> Make the following peripherals on the SOM enabled: >>>>>>>> - Regulators on the SOM >>>>>>>> - Reserved memory regions >>>>>>>> - PCIe6a and its PHY >>>>>>>> - PCIe4 and its PHY >>>>>>>> - USB0 through USB6 and their PHYs >>>>>>>> - ADSP, CDSP >>>>>>>> - Graphic >>>>>>>> - Video >>>>>>>> >>>>>>>> Written in collaboration with Yingying Tang (PCIe4) >>>>>>>> <quic_yintang@quicinc.com> and Wangao Wang (Video) >>>>>>>> <quic_wangaow@quicinc.com>. >>>>>>> >>>>>>> This looks like you should have Co-developed-by: tags together with >>>>>>> their Signed-off-by: tags. >>>>>> >>>>>> We’ve agreed on this as the preferred method for marking collaboration, as >>>>>> discussed earlier in this thread. >>>>>> >>>>> >>>>> I can't say I agree with Bjorn there, but ok, he's the maintainer. :-) >>>>> >>>>>>> >>>>>>>> >>>>>>>> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> >>>>>>>> Signed-off-by: Yijie Yang <yijie.yang@oss.qualcomm.com> >>>>>>>> --- >>>>>>>> arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi | 621 ++++++++++++++++++++++++++++ >>>>>>>> 1 file changed, 621 insertions(+) >>>>>>>> >>>>>>>> diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi b/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi >>>>>>>> new file mode 100644 >>>>>>>> index 000000000000..c7c3a167eb6a >>>>>>>> --- /dev/null >>>>>>>> +++ b/arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi >>>>>>>> @@ -0,0 +1,621 @@ >>>>>>>> +// SPDX-License-Identifier: BSD-3-Clause >>>>>>>> +/* >>>>>>>> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. >>>>>>>> + */ >>>>>>>> + >>>>>>>> +#include "x1e80100.dtsi" >>>>>>>> +#include "x1e80100-pmics.dtsi" >>>>>>>> +#include <dt-bindings/gpio/gpio.h> >>>>>>>> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h> >>>>>>>> + >>>>>>>> +/ { >>>>>>>> + compatible = "hamoa-iot-som", "qcom,x1e80100"; >>>>>>> >>>>>>> Undocumented compatible (without "qcom," prefix). I think you can just >>>>>>> drop this? >>>>>> >>>>>> This compatible string was also discussed previously and is the preferred >>>>>> choice. I’ll add the missing 'qcom,' prefix. >>>>>> >>>>> >>>>> Even compatible = "qcom,hamoa-iot-som", "qcom,x1e80100"; is not >>>>> documented. And it doesn't make much sense to document it either, each >>>>> of the boards using the SoM should have a more specific compatible and >>>>> therefore needs to override this property. I think you can really just >>>>> drop this line. >>>> >>>> Patch 1/4 documents this compatible. It’s another requirement that SoC/SoM >>>> should follow, which Krzysztof pointed out in v2: >>>> https://lore.kernel.org/all/aee74e0f-c957-437d-ab48-3977013c3116@kernel.org/ >>>> >>> >>> I'm not saying you should drop the "qcom,hamoa-iot-som" compatible. My >>> point is that only the compatible list you use in hamoa-iot-evk.dts is >>> documented in PATCH 1/4: >>> >>> compatible = "qcom,hamoa-iot-evk", "qcom,hamoa-iot-som", "qcom,x1e80100"; >>> >>> The compatible list you are using in hamoa-iot-som.dtsi is *not* >>> documented: >>> >>> compatible = "(qcom,)hamoa-iot-som", "qcom,x1e80100"; >>> >>> because the board-specific compatible string (e.g. "qcom,hamoa-iot-evk") >>> is missing. >>> >>> The compatible property you have in hamoa-iot-som.dtsi is redundant, >>> because you override it with the valid one in hamoa-iot-evk.dts. And >>> every other board using the SoM should do the same. >>> >>> I would expect that you can just drop this line in hamoa-iot-som.dtsi. >> >> Yes, the compatible property in this context will ultimately be overridden by the board file and does not have any direct functional impact. >> >> However, DTS/DTSI files are intended to describe the hardware itself, and this compatible string helps characterize the SOM—even if it is later overridden. This is similar to the role of compatible strings in certain soc.dtsi files. >> >> Therefore, I believe it is appropriate to retain this compatible and provide documentation to clarify its purpose. > > No, if the compatible and model are not overriden, the carrier board DT is > invalid. The SoM dtsi isn't supposed to be a "functional" dt, but rather a > fragment, like a code header, containing most of the common functionality > for includers (which is derived from the presence of the Hamoa SoM). Understood, I will remove this line. > > Konrad >> >> A useful reference for this approach is the imx8mp-sr-som.dtsi file from another vendor. >> >>> >>> Thanks, >>> Stephan >> -- Best Regards, Yijie
© 2016 - 2025 Red Hat, Inc.