On Fri, 3 Nov 2023 at 20:49, Komal Bajaj <quic_kbajaj@xxxxxxxxxxx> wrote: > > Add qcm6490 devicetree file for QCM6490 IDP and QCM6490 RB3 > platform. QCM6490 is derived from SC7280 meant for various > form factor including IoT. > > Supported features are, as of now: > * Debug UART > * eMMC (only in IDP) > * USB > > Co-developed-by: Naina Mehta <quic_nainmeht@xxxxxxxxxxx> > Signed-off-by: Naina Mehta <quic_nainmeht@xxxxxxxxxxx> > Signed-off-by: Komal Bajaj <quic_kbajaj@xxxxxxxxxxx> > --- > arch/arm64/boot/dts/qcom/Makefile | 2 + > arch/arm64/boot/dts/qcom/qcm6490-idp.dts | 33 ++ > .../boot/dts/qcom/qcm6490-iot-common.dtsi | 291 ++++++++++++++++++ > arch/arm64/boot/dts/qcom/qcm6490-rb3.dts | 26 ++ > 4 files changed, 352 insertions(+) > create mode 100644 arch/arm64/boot/dts/qcom/qcm6490-idp.dts > create mode 100644 arch/arm64/boot/dts/qcom/qcm6490-iot-common.dtsi > create mode 100644 arch/arm64/boot/dts/qcom/qcm6490-rb3.dts > > diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile > index 73c3be0f8872..29cd77000970 100644 > --- a/arch/arm64/boot/dts/qcom/Makefile > +++ b/arch/arm64/boot/dts/qcom/Makefile > @@ -82,6 +82,8 @@ 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) += qcm6490-fairphone-fp5.dtb > +dtb-$(CONFIG_ARCH_QCOM) += qcm6490-idp.dtb > +dtb-$(CONFIG_ARCH_QCOM) += qcm6490-rb3.dtb > dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb > dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-4000.dtb > dtb-$(CONFIG_ARCH_QCOM) += qdu1000-idp.dtb > diff --git a/arch/arm64/boot/dts/qcom/qcm6490-idp.dts b/arch/arm64/boot/dts/qcom/qcm6490-idp.dts > new file mode 100644 > index 000000000000..b1d1b8f40bdb > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/qcm6490-idp.dts > @@ -0,0 +1,33 @@ > +// SPDX-License-Identifier: BSD-3-Clause > +/* > + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. > + */ > + > +/dts-v1/; > + > +#include "qcm6490-iot-common.dtsi" > + > +/ { > + model = "Qualcomm Technologies, Inc. QCM6490 IDP"; > + compatible = "qcom,qcm6490-idp", "qcom,qcm6490"; > + > + aliases { > + serial0 = &uart5; > + }; > + > + chosen { > + stdout-path = "serial0:115200n8"; > + }; > +}; > + > +&sdhc_1 { > + non-removable; > + no-sd; > + no-sdio; > + > + vmmc-supply = <&vreg_l7b_2p952>; > + vqmmc-supply = <&vreg_l19b_1p8>; > + > + status = "okay"; > +}; > + > diff --git a/arch/arm64/boot/dts/qcom/qcm6490-iot-common.dtsi b/arch/arm64/boot/dts/qcom/qcm6490-iot-common.dtsi > new file mode 100644 > index 000000000000..01adc97789d0 > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/qcm6490-iot-common.dtsi I have mixed feelings towards this file. Usually we add such 'common' files only for the phone platforms where most of the devices are common. Do you expect that IDP and RB3 will have a lot of common code other than these regulator settings? > @@ -0,0 +1,291 @@ > +// SPDX-License-Identifier: BSD-3-Clause > +/* > + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. > + */ > + > +#include <dt-bindings/regulator/qcom,rpmh-regulator.h> > +#include "sc7280.dtsi" > +#include "pm7325.dtsi" > +#include "pm8350c.dtsi" > +#include "pmk8350.dtsi" > + > +&apps_rsc { > + regulators-0 { > + compatible = "qcom,pm7325-rpmh-regulators"; > + qcom,pmic-id = "b"; > + > + vreg_s1b_1p872: smps1 { > + regulator-min-microvolt = <1840000>; > + regulator-max-microvolt = <2040000>; > + }; > + > + vreg_s2b_0p876: smps2 { > + regulator-min-microvolt = <570070>; > + regulator-max-microvolt = <1050000>; > + }; > + > + vreg_s7b_0p972: smps7 { > + regulator-min-microvolt = <535000>; > + regulator-max-microvolt = <1120000>; > + }; > + > + vreg_s8b_1p272: smps8 { > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1500000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>; > + }; > + > + vreg_l1b_0p912: ldo1 { > + regulator-min-microvolt = <825000>; > + regulator-max-microvolt = <925000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l2b_3p072: ldo2 { > + regulator-min-microvolt = <2700000>; > + regulator-max-microvolt = <3544000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l3b_0p504: ldo3 { > + regulator-min-microvolt = <312000>; > + regulator-max-microvolt = <910000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l4b_0p752: ldo4 { > + regulator-min-microvolt = <752000>; > + regulator-max-microvolt = <820000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + reg_l5b_0p752: ldo5 { > + regulator-min-microvolt = <552000>; > + regulator-max-microvolt = <832000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l6b_1p2: ldo6 { > + regulator-min-microvolt = <1140000>; > + regulator-max-microvolt = <1260000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l7b_2p952: ldo7 { > + regulator-min-microvolt = <2400000>; > + regulator-max-microvolt = <3544000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l8b_0p904: ldo8 { > + regulator-min-microvolt = <870000>; > + regulator-max-microvolt = <970000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l9b_1p2: ldo9 { > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1304000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l11b_1p504: ldo11 { > + regulator-min-microvolt = <1504000>; > + regulator-max-microvolt = <2000000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l12b_0p751: ldo12 { > + regulator-min-microvolt = <751000>; > + regulator-max-microvolt = <824000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l13b_0p53: ldo13 { > + regulator-min-microvolt = <530000>; > + regulator-max-microvolt = <824000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l14b_1p08: ldo14 { > + regulator-min-microvolt = <1080000>; > + regulator-max-microvolt = <1304000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l15b_0p765: ldo15 { > + regulator-min-microvolt = <765000>; > + regulator-max-microvolt = <1020000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l16b_1p1: ldo16 { > + regulator-min-microvolt = <1100000>; > + regulator-max-microvolt = <1300000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l17b_1p7: ldo17 { > + regulator-min-microvolt = <1700000>; > + regulator-max-microvolt = <1900000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l18b_1p8: ldo18 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <2000000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l19b_1p8: ldo19 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <2000000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + }; > + > + regulators-1 { > + compatible = "qcom,pm8350c-rpmh-regulators"; > + qcom,pmic-id = "c"; > + > + vreg_s1c_2p19: smps1 { > + regulator-min-microvolt = <2190000>; > + regulator-max-microvolt = <2210000>; > + }; > + > + vreg_s2c_0p752: smps2 { > + regulator-min-microvolt = <750000>; > + regulator-max-microvolt = <800000>; > + }; > + > + vreg_s5c_0p752: smps5 { > + regulator-min-microvolt = <465000>; > + regulator-max-microvolt = <1050000>; > + }; > + > + vreg_s7c_0p752: smps7 { > + regulator-min-microvolt = <465000>; > + regulator-max-microvolt = <800000>; > + }; > + > + vreg_s9c_1p084: smps9 { > + regulator-min-microvolt = <1010000>; > + regulator-max-microvolt = <1170000>; > + }; > + > + vreg_l1c_1p8: ldo1 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1980000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l2c_1p62: ldo2 { > + regulator-min-microvolt = <1620000>; > + regulator-max-microvolt = <1980000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l3c_2p8: ldo3 { > + regulator-min-microvolt = <2800000>; > + regulator-max-microvolt = <3540000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l4c_1p62: ldo4 { > + regulator-min-microvolt = <1620000>; > + regulator-max-microvolt = <3300000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l5c_1p62: ldo5 { > + regulator-min-microvolt = <1620000>; > + regulator-max-microvolt = <3300000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l6c_2p96: ldo6 { > + regulator-min-microvolt = <1650000>; > + regulator-max-microvolt = <3544000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l7c_3p0: ldo7 { > + regulator-min-microvolt = <3000000>; > + regulator-max-microvolt = <3544000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l8c_1p62: ldo8 { > + regulator-min-microvolt = <1620000>; > + regulator-max-microvolt = <2000000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l9c_2p96: ldo9 { > + regulator-min-microvolt = <2700000>; > + regulator-max-microvolt = <35440000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l10c_0p88: ldo10 { > + regulator-min-microvolt = <720000>; > + regulator-max-microvolt = <1050000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l11c_2p8: ldo11 { > + regulator-min-microvolt = <2800000>; > + regulator-max-microvolt = <3544000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l12c_1p65: ldo12 { > + regulator-min-microvolt = <1650000>; > + regulator-max-microvolt = <2000000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l13c_2p7: ldo13 { > + regulator-min-microvolt = <2700000>; > + regulator-max-microvolt = <3544000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_bob_3p296: bob { > + regulator-min-microvolt = <3008000>; > + regulator-max-microvolt = <3960000>; > + }; > + }; > +}; > + > +&qupv3_id_0 { > + status = "okay"; > +}; > + > +&uart5 { > + compatible = "qcom,geni-debug-uart"; Maybe we should add qcm6490.dtsi, which has this compat string (and other possible differences between sc7280 and qcm6490). > + status = "okay"; > +}; > + > +&usb_1 { > + status = "okay"; > +}; > + > +&usb_1_dwc3 { > + dr_mode = "peripheral"; > +}; > + > +&usb_1_hsphy { > + vdda-pll-supply = <&vreg_l10c_0p88>; > + vdda33-supply = <&vreg_l2b_3p072>; > + vdda18-supply = <&vreg_l1c_1p8>; > + > + status = "okay"; > +}; > + > +&usb_1_qmpphy { > + vdda-phy-supply = <&vreg_l6b_1p2>; > + vdda-pll-supply = <&vreg_l1b_0p912>; > + > + status = "okay"; > +}; > diff --git a/arch/arm64/boot/dts/qcom/qcm6490-rb3.dts b/arch/arm64/boot/dts/qcom/qcm6490-rb3.dts > new file mode 100644 > index 000000000000..5b4c2826ac5c > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/qcm6490-rb3.dts > @@ -0,0 +1,26 @@ > +// SPDX-License-Identifier: BSD-3-Clause > +/* > + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. > + */ > + > +/dts-v1/; > + > +/* PM7250B is configured to use SID8/9 */ > +#define PM7250B_SID 8 > +#define PM7250B_SID1 9 > + > +#include "qcm6490-iot-common.dtsi" > +#include "pm7250b.dtsi" > + > +/ { > + model = "Qualcomm Technologies, Inc. QCM6490 RB3"; Is this a marketing name of the platform? > + compatible = "qcom,qcm6490-rb3", "qcom,qcm6490"; chassis-type = ? > + > + aliases { > + serial0 = &uart5; > + }; > + > + chosen { > + stdout-path = "serial0:115200n8"; > + }; > +}; > -- > 2.42.0 > -- With best wishes Dmitry