Add AIM300 AIoT support along with usb, ufs, regulators, serial, PCIe,
sound card and PMIC functions.
AIM300 Series is a highly optimized family of modules designed
to support AIoT applications. The module is mounted onto Qualcomm AIoT
carrier board to support verification, evaluation and development.
AIM stands for Artificial Intelligence Module. AIoT stands for AI IoT.
Signed-off-by: Tengfei Fan <[email protected]>
---
v2 -> v3:
- introduce qcs8550.dtsi
- separate fix dtc W=1 warning patch to another patch series
v1 -> v2:
- merge the splited dts patches into one patch
- update dts file name from qcom8550-aim300.dts to qcs8550-aim300 dts
- drop PCIe1 dts node due to it is not enabled
- update display node name for drop sde characters
previous discussion here:
[1] v2: https://lore.kernel.org/linux-arm-msm/[email protected]
[2] v1: https://lore.kernel.org/linux-arm-msm/[email protected]
Tengfei Fan (6):
dt-bindings: arm: qcom: Document qcs8550 SoC and board
dt-bindings: arm: qcom,ids: add SoC ID for QCS8550
soc: qcom: socinfo: add SoC Info support for the QCS8550 platform
arm64: dts: qcom: qcs8550: introduce qcs8550 dtsi
arm64: dts: qcom: add base AIM300 dtsi
arm64: dts: qcom: aim300: add AIM300 AIoT
.../devicetree/bindings/arm/qcom.yaml | 7 +
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../boot/dts/qcom/qcs8550-aim300-aiot.dts | 579 ++++++++++++++++++
arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi | 371 +++++++++++
arch/arm64/boot/dts/qcom/qcs8550.dtsi | 6 +
drivers/soc/qcom/socinfo.c | 1 +
include/dt-bindings/arm/qcom,ids.h | 1 +
7 files changed, 966 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/qcs8550.dtsi
base-commit: ceb2fe0d438644e1de06b9a6468a1fb8e2199c70
--
2.17.1
Add the ID for the Qualcomm QCS8550 SoC.
Reviewed-by: Krzysztof Kozlowski <[email protected]>
Signed-off-by: Tengfei Fan <[email protected]>
---
include/dt-bindings/arm/qcom,ids.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/dt-bindings/arm/qcom,ids.h b/include/dt-bindings/arm/qcom,ids.h
index 51e0f6059410..4d4114811613 100644
--- a/include/dt-bindings/arm/qcom,ids.h
+++ b/include/dt-bindings/arm/qcom,ids.h
@@ -265,6 +265,7 @@
#define QCOM_ID_IPQ5322 593
#define QCOM_ID_IPQ5312 594
#define QCOM_ID_IPQ5302 595
+#define QCOM_ID_QCS8550 603
#define QCOM_ID_IPQ5300 624
/*
--
2.17.1
Add SoC Info support for the QCS8550 platform.
Reviewed-by: Krzysztof Kozlowski <[email protected]>
Signed-off-by: Tengfei Fan <[email protected]>
---
drivers/soc/qcom/socinfo.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/soc/qcom/socinfo.c b/drivers/soc/qcom/socinfo.c
index 6349a0debeb5..e059b0b0f11f 100644
--- a/drivers/soc/qcom/socinfo.c
+++ b/drivers/soc/qcom/socinfo.c
@@ -437,6 +437,7 @@ static const struct soc_id soc_id[] = {
{ qcom_board_id(IPQ5322) },
{ qcom_board_id(IPQ5312) },
{ qcom_board_id(IPQ5302) },
+ { qcom_board_id(QCS8550) },
{ qcom_board_id(IPQ5300) },
};
--
2.17.1
QCS8550 is derived from SM8550, it is mainly used in IoT scenarios.
Signed-off-by: Tengfei Fan <[email protected]>
---
arch/arm64/boot/dts/qcom/qcs8550.dtsi | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/qcs8550.dtsi
diff --git a/arch/arm64/boot/dts/qcom/qcs8550.dtsi b/arch/arm64/boot/dts/qcom/qcs8550.dtsi
new file mode 100644
index 000000000000..254657f46c5e
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qcs8550.dtsi
@@ -0,0 +1,6 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+#include "sm8550.dtsi"
--
2.17.1
AIM300 is a module with QCS8550 SoC, UFS and PMIC chip.
AIM300 Series is a highly optimized family of modules designed to support
AIoT applications. The Module is mounted onto Qualcomm AIoT carrier board
to support verification, evaluation and development.
Co-developed-by: Fenglin Wu <[email protected]>
Signed-off-by: Fenglin Wu <[email protected]>
Signed-off-by: Tengfei Fan <[email protected]>
---
arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi | 371 +++++++++++++++++++
1 file changed, 371 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi
diff --git a/arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi b/arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi
new file mode 100644
index 000000000000..04ca4597f952
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi
@@ -0,0 +1,371 @@
+// 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 "qcs8550.dtsi"
+#include "pm8010.dtsi"
+#include "pm8550.dtsi"
+#include "pm8550b.dtsi"
+#define PMK8550VE_SID 5
+#include "pm8550ve.dtsi"
+#include "pm8550vs.dtsi"
+#include "pmk8550.dtsi"
+#include "pmr735d_a.dtsi"
+#include "pmr735d_b.dtsi"
+
+/ {
+ vph_pwr: vph-pwr-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "vph_pwr";
+ regulator-min-microvolt = <3700000>;
+ regulator-max-microvolt = <3700000>;
+
+ regulator-always-on;
+ regulator-boot-on;
+ };
+};
+
+&apps_rsc {
+ 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_s6g_1p86>;
+ vdd-l2-l13-l14-supply = <&vreg_bob1>;
+ vdd-l3-supply = <&vreg_s4g_1p25>;
+ vdd-l5-l16-supply = <&vreg_bob1>;
+ vdd-l6-l7-supply = <&vreg_bob1>;
+ vdd-l8-l9-supply = <&vreg_bob1>;
+ vdd-l11-supply = <&vreg_s4g_1p25>;
+ vdd-l12-supply = <&vreg_s6g_1p86>;
+ vdd-l15-supply = <&vreg_s6g_1p86>;
+ vdd-l17-supply = <&vreg_bob2>;
+
+ vreg_bob1: bob1 {
+ regulator-name = "vreg_bob1";
+ regulator-min-microvolt = <3296000>;
+ regulator-max-microvolt = <3960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_bob2: bob2 {
+ regulator-name = "vreg_bob2";
+ regulator-min-microvolt = <2720000>;
+ regulator-max-microvolt = <3960000>;
+ 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 = <3008000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l5b_3p1: ldo5 {
+ regulator-name = "vreg_l5b_3p1";
+ regulator-min-microvolt = <3104000>;
+ regulator-max-microvolt = <3104000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l6b_1p8: ldo6 {
+ regulator-name = "vreg_l6b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l7b_1p8: ldo7 {
+ regulator-name = "vreg_l7b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l8b_1p8: ldo8 {
+ regulator-name = "vreg_l8b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l9b_2p9: ldo9 {
+ regulator-name = "vreg_l9b_2p9";
+ regulator-min-microvolt = <2960000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l11b_1p2: ldo11 {
+ regulator-name = "vreg_l11b_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1504000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l12b_1p8: ldo12 {
+ regulator-name = "vreg_l12b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l13b_3p0: ldo13 {
+ regulator-name = "vreg_l13b_3p0";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l14b_3p2: ldo14 {
+ regulator-name = "vreg_l14b_3p2";
+ regulator-min-microvolt = <3200000>;
+ regulator-max-microvolt = <3200000>;
+ 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>;
+ };
+
+ vreg_l16b_2p8: ldo16 {
+ regulator-name = "vreg_l16b_2p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ 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>;
+ };
+ };
+
+ regulators-1 {
+ compatible = "qcom,pm8550vs-rpmh-regulators";
+ qcom,pmic-id = "c";
+
+ vdd-l1-supply = <&vreg_s4g_1p25>;
+ vdd-l2-supply = <&vreg_s4e_0p95>;
+ vdd-l3-supply = <&vreg_s4e_0p95>;
+
+ vreg_l3c_0p9: ldo3 {
+ regulator-name = "vreg_l3c_0p9";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-2 {
+ compatible = "qcom,pm8550vs-rpmh-regulators";
+ qcom,pmic-id = "d";
+
+ vdd-l1-supply = <&vreg_s4e_0p95>;
+ vdd-l2-supply = <&vreg_s4e_0p95>;
+ vdd-l3-supply = <&vreg_s4e_0p95>;
+
+ vreg_l1d_0p88: ldo1 {
+ regulator-name = "vreg_l1d_0p88";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-3 {
+ compatible = "qcom,pm8550vs-rpmh-regulators";
+ qcom,pmic-id = "e";
+
+ vdd-l1-supply = <&vreg_s4e_0p95>;
+ vdd-l2-supply = <&vreg_s4e_0p95>;
+ vdd-l3-supply = <&vreg_s4g_1p25>;
+ vdd-s4-supply = <&vph_pwr>;
+ vdd-s5-supply = <&vph_pwr>;
+
+ vreg_s4e_0p95: smps4 {
+ regulator-name = "vreg_s4e_0p95";
+ regulator-min-microvolt = <904000>;
+ regulator-max-microvolt = <984000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s5e_1p08: smps5 {
+ regulator-name = "vreg_s5e_1p08";
+ regulator-min-microvolt = <1010000>;
+ regulator-max-microvolt = <1120000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1e_0p88: ldo1 {
+ regulator-name = "vreg_l1e_0p88";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2e_0p9: ldo2 {
+ regulator-name = "vreg_l2e_0p9";
+ regulator-min-microvolt = <870000>;
+ regulator-max-microvolt = <970000>;
+ 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>;
+ };
+ };
+
+ regulators-4 {
+ compatible = "qcom,pm8550ve-rpmh-regulators";
+ qcom,pmic-id = "f";
+
+ vdd-l1-supply = <&vreg_s4e_0p95>;
+ vdd-l2-supply = <&vreg_s4e_0p95>;
+ vdd-l3-supply = <&vreg_s4e_0p95>;
+ vdd-s4-supply = <&vph_pwr>;
+
+ vreg_s4f_0p5: smps4 {
+ regulator-name = "vreg_s4f_0p5";
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <600000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1f_0p9: ldo1 {
+ regulator-name = "vreg_l1f_0p9";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2f_0p88: ldo2 {
+ regulator-name = "vreg_l2f_0p88";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3f_0p88: ldo3 {
+ regulator-name = "vreg_l3f_0p88";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-5 {
+ compatible = "qcom,pm8550vs-rpmh-regulators";
+ qcom,pmic-id = "g";
+ vdd-l1-supply = <&vreg_s4g_1p25>;
+ vdd-l2-supply = <&vreg_s4g_1p25>;
+ vdd-l3-supply = <&vreg_s4g_1p25>;
+ vdd-s1-supply = <&vph_pwr>;
+ vdd-s2-supply = <&vph_pwr>;
+ vdd-s3-supply = <&vph_pwr>;
+ vdd-s4-supply = <&vph_pwr>;
+ vdd-s5-supply = <&vph_pwr>;
+ vdd-s6-supply = <&vph_pwr>;
+
+ vreg_s1g_1p25: smps1 {
+ regulator-name = "vreg_s1g_1p25";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1300000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s2g_0p85: smps2 {
+ regulator-name = "vreg_s2g_0p85";
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <1000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s3g_0p8: smps3 {
+ regulator-name = "vreg_s3g_0p8";
+ regulator-min-microvolt = <300000>;
+ regulator-max-microvolt = <1004000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s4g_1p25: smps4 {
+ regulator-name = "vreg_s4g_1p25";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1300000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s5g_0p85: smps5 {
+ regulator-name = "vreg_s5g_0p85";
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <1004000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s6g_1p86: smps6 {
+ regulator-name = "vreg_s6g_1p86";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1g_1p2: ldo1 {
+ regulator-name = "vreg_l1g_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2g_1p2: ldo2 {
+ regulator-name = "vreg_l2g_1p2";
+ regulator-min-microvolt = <1100000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3g_1p2: ldo3 {
+ regulator-name = "vreg_l3g_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+};
+
+&ufs_mem_hc {
+ reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
+ vcc-supply = <&vreg_l17b_2p5>;
+ vcc-max-microamp = <1300000>;
+ vccq-supply = <&vreg_l1g_1p2>;
+ vccq-max-microamp = <1200000>;
+ vdd-hba-supply = <&vreg_l3g_1p2>;
+
+ status = "okay";
+};
+
+&ufs_mem_phy {
+ vdda-phy-supply = <&vreg_l1d_0p88>;
+ vdda-pll-supply = <&vreg_l3e_1p2>;
+
+ status = "okay";
+};
--
2.17.1
Add AIM300 AIoT board DTS support, including usb, serial, PCIe, and sound
card functions support.
Co-developed-by: Qiang Yu <[email protected]>
Signed-off-by: Qiang Yu <[email protected]>
Co-developed-by: Ziyue Zhang <[email protected]>
Signed-off-by: Ziyue Zhang <[email protected]>
Signed-off-by: Tengfei Fan <[email protected]>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../boot/dts/qcom/qcs8550-aim300-aiot.dts | 579 ++++++++++++++++++
2 files changed, 580 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 39889d5f8e12..fe54f4518165 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -92,6 +92,7 @@ dtb-$(CONFIG_ARCH_QCOM) += qcm6490-idp.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-4000.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2.dtb
+dtb-$(CONFIG_ARCH_QCOM) += qcs8550-aim300-aiot.dtb
dtb-$(CONFIG_ARCH_QCOM) += qdu1000-idp.dtb
dtb-$(CONFIG_ARCH_QCOM) += qrb2210-rb1.dtb
dtb-$(CONFIG_ARCH_QCOM) += qrb4210-rb2.dtb
diff --git a/arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts b/arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
new file mode 100644
index 000000000000..099f28b86559
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
@@ -0,0 +1,579 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+#include "qcs8550-aim300.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. QCS8550 AIM300 AIOT";
+ compatible = "qcom,qcs8550-aim300-aiot", "qcom,qcs8550-aim300", "qcom,qcs8550";
+
+ aliases {
+ serial0 = &uart7;
+ };
+
+ wcd938x: audio-codec {
+ compatible = "qcom,wcd9385-codec";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&wcd_default>;
+
+ qcom,micbias1-microvolt = <1800000>;
+ qcom,micbias2-microvolt = <1800000>;
+ qcom,micbias3-microvolt = <1800000>;
+ qcom,micbias4-microvolt = <1800000>;
+ qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000
+ 500000 500000 500000>;
+ qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
+ qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
+ qcom,rx-device = <&wcd_rx>;
+ qcom,tx-device = <&wcd_tx>;
+
+ reset-gpios = <&tlmm 108 GPIO_ACTIVE_LOW>;
+
+ #sound-dai-cells = <1>;
+
+ vdd-buck-supply = <&vreg_l15b_1p8>;
+ vdd-rxtx-supply = <&vreg_l15b_1p8>;
+ vdd-io-supply = <&vreg_l15b_1p8>;
+ vdd-mic-bias-supply = <&vreg_bob1>;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ pinctrl-0 = <&volume_up_n>;
+ pinctrl-names = "default";
+
+ key-volume-up {
+ label = "Volume Up";
+ debounce-interval = <15>;
+ gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_VOLUMEUP>;
+ linux,can-disable;
+ wakeup-source;
+ };
+ };
+
+ pmic-glink {
+ compatible = "qcom,sm8550-pmic-glink", "qcom,pmic-glink";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ orientation-gpios = <&tlmm 11 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_hs_in: endpoint {
+ remote-endpoint = <&usb_1_dwc3_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ pmic_glink_ss_in: endpoint {
+ remote-endpoint = <&redriver_ss_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ pmic_glink_sbu: endpoint {
+ remote-endpoint = <&fsa4480_sbu_mux>;
+ };
+ };
+ };
+ };
+ };
+
+ sound {
+ compatible = "qcom,sm8550-sndcard", "qcom,sm8450-sndcard";
+ model = "AIM300-AIOT";
+ audio-routing = "SpkrLeft IN", "WSA_SPK1 OUT",
+ "SpkrRight IN", "WSA_SPK2 OUT",
+ "IN1_HPHL", "HPHL_OUT",
+ "IN2_HPHR", "HPHR_OUT",
+ "AMIC2", "MIC BIAS2",
+ "VA DMIC0", "MIC BIAS1",
+ "VA DMIC1", "MIC BIAS1",
+ "VA DMIC2", "MIC BIAS3",
+ "TX DMIC0", "MIC BIAS1",
+ "TX DMIC1", "MIC BIAS2",
+ "TX DMIC2", "MIC BIAS3",
+ "TX SWR_ADC1", "ADC2_OUTPUT";
+
+ wcd-capture-dai-link {
+ link-name = "WCD Capture";
+
+ cpu {
+ sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
+ };
+
+ codec {
+ sound-dai = <&wcd938x 1>, <&swr2 0>, <&lpass_txmacro 0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ wcd-playback-dai-link {
+ link-name = "WCD Playback";
+
+ cpu {
+ sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
+ };
+
+ codec {
+ sound-dai = <&wcd938x 0>, <&swr1 0>, <&lpass_rxmacro 0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ wsa-dai-link {
+ link-name = "WSA Playback";
+
+ cpu {
+ sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
+ };
+
+ codec {
+ sound-dai = <&north_spkr>, <&south_spkr>,
+ <&swr0 0>, <&lpass_wsamacro 0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ va-dai-link {
+ link-name = "VA Capture";
+
+ cpu {
+ sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
+ };
+
+ codec {
+ sound-dai = <&lpass_vamacro 0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+ };
+};
+
+&i2c_master_hub_0 {
+ status = "okay";
+};
+
+&i2c_hub_2 {
+ status = "okay";
+
+ typec-mux@42 {
+ compatible = "fcs,fsa4480";
+ reg = <0x42>;
+
+ vcc-supply = <&vreg_bob1>;
+
+ mode-switch;
+ orientation-switch;
+
+ port {
+ fsa4480_sbu_mux: endpoint {
+ remote-endpoint = <&pmic_glink_sbu>;
+ };
+ };
+ };
+
+ typec-retimer@1c {
+ compatible = "onnn,nb7vpq904m";
+ reg = <0x1c>;
+
+ vcc-supply = <&vreg_l15b_1p8>;
+
+ orientation-switch;
+ retimer-switch;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ redriver_ss_out: endpoint {
+ remote-endpoint = <&pmic_glink_ss_in>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ redriver_ss_in: endpoint {
+ data-lanes = <3 2 1 0>;
+ remote-endpoint = <&usb_dp_qmpphy_out>;
+ };
+ };
+ };
+ };
+};
+
+&gcc {
+ clocks = <&bi_tcxo_div2>, <&sleep_clk>,
+ <0>,
+ <&pcie1_phy>,
+ <0>,
+ <&ufs_mem_phy 0>,
+ <&ufs_mem_phy 1>,
+ <&ufs_mem_phy 2>,
+ <&usb_dp_qmpphy QMP_USB43DP_USB3_PIPE_CLK>;
+};
+
+&lpass_tlmm {
+ spkr_1_sd_n_active: spkr-1-sd-n-active-state {
+ pins = "gpio17";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ output-low;
+ };
+
+ spkr_2_sd_n_active: spkr-2-sd-n-active-state {
+ pins = "gpio18";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ output-low;
+ };
+};
+
+&mdss {
+ status = "okay";
+};
+
+&mdss_dp0 {
+ status = "okay";
+};
+
+&mdss_dp0_out {
+ data-lanes = <0 1>;
+ remote-endpoint = <&usb_dp_qmpphy_dp_in>;
+};
+
+
+&mdss_dsi0 {
+ vdda-supply = <&vreg_l3e_1p2>;
+ status = "okay";
+
+ panel@0 {
+ compatible = "visionox,vtdr6130";
+ reg = <0>;
+
+ pinctrl-0 = <&dsi_active>, <&te_active>;
+ pinctrl-1 = <&dsi_suspend>, <&te_suspend>;
+ pinctrl-names = "default", "sleep";
+
+ reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
+
+ vci-supply = <&vreg_l13b_3p0>;
+ vdd-supply = <&vreg_l11b_1p2>;
+ vddio-supply = <&vreg_l12b_1p8>;
+
+ port {
+ panel0_in: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+ };
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <&panel0_in>;
+ data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+ vdds-supply = <&vreg_l1e_0p88>;
+ status = "okay";
+};
+
+&pcie_1_phy_aux_clk {
+ clock-frequency = <1000>;
+};
+
+&pcie1 {
+ perst-gpios = <&tlmm 97 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 99 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-0 = <&pcie1_default_state>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie1_phy {
+ vdda-phy-supply = <&vreg_l3c_0p9>;
+ vdda-pll-supply = <&vreg_l3e_1p2>;
+ vdda-qref-supply = <&vreg_l1e_0p88>;
+
+ status = "okay";
+};
+
+&pm8550_flash {
+ status = "okay";
+
+ led-0 {
+ function = LED_FUNCTION_FLASH;
+ color = <LED_COLOR_ID_YELLOW>;
+ flash-max-microamp = <2000000>;
+ flash-max-timeout-us = <1280000>;
+ function-enumerator = <0>;
+ led-sources = <1>, <4>;
+ led-max-microamp = <500000>;
+ };
+
+ led-1 {
+ function = LED_FUNCTION_FLASH;
+ color = <LED_COLOR_ID_WHITE>;
+ flash-max-microamp = <2000000>;
+ flash-max-timeout-us = <1280000>;
+ function-enumerator = <1>;
+ led-sources = <2>, <3>;
+ led-max-microamp = <500000>;
+ };
+};
+
+&pm8550_gpios {
+ volume_up_n: volume-up-n-state {
+ pins = "gpio6";
+ function = "normal";
+ power-source = <1>;
+ bias-pull-up;
+ input-enable;
+ };
+};
+
+&pm8550_pwm {
+ status = "okay";
+
+ multi-led {
+ color = <LED_COLOR_ID_RGB>;
+ function = LED_FUNCTION_STATUS;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ led@1 {
+ reg = <1>;
+ color = <LED_COLOR_ID_RED>;
+ };
+
+ led@2 {
+ reg = <2>;
+ color = <LED_COLOR_ID_GREEN>;
+ };
+
+ led@3 {
+ reg = <3>;
+ color = <LED_COLOR_ID_BLUE>;
+ };
+ };
+};
+
+&pm8550b_eusb2_repeater {
+ vdd18-supply = <&vreg_l15b_1p8>;
+ vdd3-supply = <&vreg_l5b_3p1>;
+};
+
+
+&pon_pwrkey {
+ status = "okay";
+};
+
+&pon_resin {
+ linux,code = <KEY_VOLUMEDOWN>;
+
+ status = "okay";
+};
+
+&qupv3_id_0 {
+ status = "okay";
+};
+
+&sleep_clk {
+ clock-frequency = <32000>;
+};
+
+&swr0 {
+ status = "okay";
+
+ /* WSA8845, Speaker North */
+ north_spkr: speaker@0,0 {
+ compatible = "sdw20217020400";
+ reg = <0 0>;
+ pinctrl-0 = <&spkr_1_sd_n_active>;
+ pinctrl-names = "default";
+ powerdown-gpios = <&lpass_tlmm 17 GPIO_ACTIVE_LOW>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "SpkrLeft";
+ vdd-1p8-supply = <&vreg_l15b_1p8>;
+ vdd-io-supply = <&vreg_l3g_1p2>;
+ };
+
+ /* WSA8845, Speaker South */
+ south_spkr: speaker@0,1 {
+ compatible = "sdw20217020400";
+ reg = <0 1>;
+ pinctrl-0 = <&spkr_2_sd_n_active>;
+ pinctrl-names = "default";
+ powerdown-gpios = <&lpass_tlmm 18 GPIO_ACTIVE_LOW>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "SpkrRight";
+ vdd-1p8-supply = <&vreg_l15b_1p8>;
+ vdd-io-supply = <&vreg_l3g_1p2>;
+ };
+};
+
+&swr1 {
+ status = "okay";
+
+ /* WCD9385 RX */
+ wcd_rx: codec@0,4 {
+ compatible = "sdw20217010d00";
+ reg = <0 4>;
+ qcom,rx-port-mapping = <1 2 3 4 5>;
+ };
+};
+
+&swr2 {
+ status = "okay";
+
+ /* WCD9385 TX */
+ wcd_tx: codec@0,3 {
+ compatible = "sdw20217010d00";
+ reg = <0 3>;
+ qcom,tx-port-mapping = <1 1 2 3>;
+ };
+};
+
+&tlmm {
+ gpio-reserved-ranges = <32 8>;
+
+ dsi_active: dsi-active-state {
+ pins = "gpio133";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ dsi_suspend: dsi-suspend-state {
+ pins = "gpio133";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ te_active: te-active-state {
+ pins = "gpio86";
+ function = "mdp_vsync";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ te_suspend: te-suspend-state {
+ pins = "gpio86";
+ function = "mdp_vsync";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ wcd_default: wcd-reset-n-active-state {
+ pins = "gpio108";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ output-low;
+ };
+};
+
+&uart7 {
+ status = "okay";
+};
+
+&usb_1 {
+ status = "okay";
+};
+
+&usb_1_dwc3 {
+ dr_mode = "otg";
+ usb-role-switch;
+};
+
+&usb_1_dwc3_hs {
+ remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&usb_1_dwc3_ss {
+ remote-endpoint = <&usb_dp_qmpphy_usb_ss_in>;
+};
+
+&usb_1_hsphy {
+ phys = <&pm8550b_eusb2_repeater>;
+
+ vdd-supply = <&vreg_l1e_0p88>;
+ vdda12-supply = <&vreg_l3e_1p2>;
+
+ status = "okay";
+};
+
+&usb_dp_qmpphy {
+ vdda-phy-supply = <&vreg_l3e_1p2>;
+ vdda-pll-supply = <&vreg_l3f_0p88>;
+
+ orientation-switch;
+
+ status = "okay";
+};
+
+&usb_dp_qmpphy_dp_in {
+ remote-endpoint = <&mdss_dp0_out>;
+};
+
+&usb_dp_qmpphy_out {
+ remote-endpoint = <&redriver_ss_in>;
+};
+
+&usb_dp_qmpphy_usb_ss_in {
+ remote-endpoint = <&usb_1_dwc3_ss>;
+};
+
+&xo_board {
+ clock-frequency = <76800000>;
+};
--
2.17.1
On 19/12/2023 01:50, Tengfei Fan wrote:
> QCS8550 is derived from SM8550, it is mainly used in IoT scenarios.
What are the differences? You need to describe the hardware, you have
entire commit msg for something useful which will avoid such comments
from reviewers.
>
> Signed-off-by: Tengfei Fan <[email protected]>
> ---
> arch/arm64/boot/dts/qcom/qcs8550.dtsi | 6 ++++++
> 1 file changed, 6 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/qcs8550.dtsi
>
> diff --git a/arch/arm64/boot/dts/qcom/qcs8550.dtsi b/arch/arm64/boot/dts/qcom/qcs8550.dtsi
> new file mode 100644
> index 000000000000..254657f46c5e
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/qcs8550.dtsi
> @@ -0,0 +1,6 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
> + */
> +
> +#include "sm8550.dtsi"
This is a weird file. I thought qcs8550 has differences from sm8550,
e.g. lack of modem, so why do you claim you have here MPSS?
It's really confusing now.
Best regards,
Krzysztof
On 19/12/2023 01:50, Tengfei Fan wrote:
> Add AIM300 AIoT board DTS support, including usb, serial, PCIe, and sound
> card functions support.
>
> Co-developed-by: Qiang Yu <[email protected]>
> Signed-off-by: Qiang Yu <[email protected]>
> Co-developed-by: Ziyue Zhang <[email protected]>
> Signed-off-by: Ziyue Zhang <[email protected]>
> Signed-off-by: Tengfei Fan <[email protected]>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> .../boot/dts/qcom/qcs8550-aim300-aiot.dts | 579 ++++++++++++++++++
> 2 files changed, 580 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 39889d5f8e12..fe54f4518165 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -92,6 +92,7 @@ dtb-$(CONFIG_ARCH_QCOM) += qcm6490-idp.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-4000.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2.dtb
> +dtb-$(CONFIG_ARCH_QCOM) += qcs8550-aim300-aiot.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qdu1000-idp.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qrb2210-rb1.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qrb4210-rb2.dtb
> diff --git a/arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts b/arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
> new file mode 100644
> index 000000000000..099f28b86559
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
> @@ -0,0 +1,579 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/leds/common.h>
> +#include "qcs8550-aim300.dtsi"
> +
> +/ {
> + model = "Qualcomm Technologies, Inc. QCS8550 AIM300 AIOT";
> + compatible = "qcom,qcs8550-aim300-aiot", "qcom,qcs8550-aim300", "qcom,qcs8550";
Missing fallback compatible. I think I was clear last time:
"using sm8550 fallback."
Best regards,
Krzysztof
On 12/19/2023 3:02 PM, Krzysztof Kozlowski wrote:
> On 19/12/2023 01:50, Tengfei Fan wrote:
>> QCS8550 is derived from SM8550, it is mainly used in IoT scenarios.
>
> What are the differences? You need to describe the hardware, you have
> entire commit msg for something useful which will avoid such comments
> from reviewers.
>
>>
>> Signed-off-by: Tengfei Fan <[email protected]>
>> ---
>> arch/arm64/boot/dts/qcom/qcs8550.dtsi | 6 ++++++
>> 1 file changed, 6 insertions(+)
>> create mode 100644 arch/arm64/boot/dts/qcom/qcs8550.dtsi
>>
>> diff --git a/arch/arm64/boot/dts/qcom/qcs8550.dtsi b/arch/arm64/boot/dts/qcom/qcs8550.dtsi
>> new file mode 100644
>> index 000000000000..254657f46c5e
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/qcom/qcs8550.dtsi
>> @@ -0,0 +1,6 @@
>> +// SPDX-License-Identifier: BSD-3-Clause
>> +/*
>> + * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
>> + */
>> +
>> +#include "sm8550.dtsi"
>
> This is a weird file. I thought qcs8550 has differences from sm8550,
> e.g. lack of modem, so why do you claim you have here MPSS?
MPSS here in qcs8550 is a GPS only MPSS.
QCS8550 will have a different firmware release with sm8550, and it will
have different memory reserved for the firmware to be used.
While firmware release along with memory map was not settled down yet.
That's why currently qcs8550.dtsi is an "empty file" and only include
sm8550.dtsi. As long as the firmware release is settled down, we will
have more detailed different node here.
By the way, RB5 gen2 will also relies on the current qcs8550.dtsi, since
it is using the same qcs8550 soc, and will use the same firmware release.
We have patch version2 remove the qcs8550.dtsi, and have SOM dtsi
qcs8550-aim300.dtsi include the sm8550.dtsi. While after discussion, our
understanding is that we can have an qcs8550.dtsi like this. Feel free
to let us know if it is not right understanding.
>
> It's really confusing now.
We can have a syncup to clear the confusing point if needed. :)
>
> Best regards,
> Krzysztof
>
--
Thx and BRs,
Aiqun(Maria) Yu
On 19/12/2023 10:57, Aiqun Yu (Maria) wrote:
>
>
> On 12/19/2023 3:02 PM, Krzysztof Kozlowski wrote:
>> On 19/12/2023 01:50, Tengfei Fan wrote:
>>> QCS8550 is derived from SM8550, it is mainly used in IoT scenarios.
>>
>> What are the differences? You need to describe the hardware, you have
>> entire commit msg for something useful which will avoid such comments
>> from reviewers.
>>
>>>
>>> Signed-off-by: Tengfei Fan <[email protected]>
>>> ---
>>> arch/arm64/boot/dts/qcom/qcs8550.dtsi | 6 ++++++
>>> 1 file changed, 6 insertions(+)
>>> create mode 100644 arch/arm64/boot/dts/qcom/qcs8550.dtsi
>>>
>>> diff --git a/arch/arm64/boot/dts/qcom/qcs8550.dtsi b/arch/arm64/boot/dts/qcom/qcs8550.dtsi
>>> new file mode 100644
>>> index 000000000000..254657f46c5e
>>> --- /dev/null
>>> +++ b/arch/arm64/boot/dts/qcom/qcs8550.dtsi
>>> @@ -0,0 +1,6 @@
>>> +// SPDX-License-Identifier: BSD-3-Clause
>>> +/*
>>> + * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
>>> + */
>>> +
>>> +#include "sm8550.dtsi"
>>
>> This is a weird file. I thought qcs8550 has differences from sm8550,
>> e.g. lack of modem, so why do you claim you have here MPSS?
> MPSS here in qcs8550 is a GPS only MPSS.
Is it different or the same? Is the interface the same? So many
questions and so little information. You have entire commit msg to
explain this.
>
> QCS8550 will have a different firmware release with sm8550, and it will
> have different memory reserved for the firmware to be used.
> While firmware release along with memory map was not settled down yet.
> That's why currently qcs8550.dtsi is an "empty file" and only include
> sm8550.dtsi. As long as the firmware release is settled down, we will
> have more detailed different node here.
So the DTS is not really usable now?
>
> By the way, RB5 gen2 will also relies on the current qcs8550.dtsi, since
> it is using the same qcs8550 soc, and will use the same firmware release.
>
> We have patch version2 remove the qcs8550.dtsi, and have SOM dtsi
> qcs8550-aim300.dtsi include the sm8550.dtsi. While after discussion, our
> understanding is that we can have an qcs8550.dtsi like this. Feel free
> to let us know if it is not right understanding.
>
>>
>> It's really confusing now.
>
> We can have a syncup to clear the confusing point if needed. :)
>>
The code and commit msg are confusing. I need to keep asking you to get
any information.
Best regards,
Krzysztof
On 12/19/2023 6:01 PM, Krzysztof Kozlowski wrote:
> On 19/12/2023 10:57, Aiqun Yu (Maria) wrote:
>>
>>
>> On 12/19/2023 3:02 PM, Krzysztof Kozlowski wrote:
>>> On 19/12/2023 01:50, Tengfei Fan wrote:
>>>> QCS8550 is derived from SM8550, it is mainly used in IoT scenarios.
>>>
>>> What are the differences? You need to describe the hardware, you have
>>> entire commit msg for something useful which will avoid such comments
>>> from reviewers.
>>>
>>>>
>>>> Signed-off-by: Tengfei Fan <[email protected]>
>>>> ---
>>>> arch/arm64/boot/dts/qcom/qcs8550.dtsi | 6 ++++++
>>>> 1 file changed, 6 insertions(+)
>>>> create mode 100644 arch/arm64/boot/dts/qcom/qcs8550.dtsi
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/qcs8550.dtsi b/arch/arm64/boot/dts/qcom/qcs8550.dtsi
>>>> new file mode 100644
>>>> index 000000000000..254657f46c5e
>>>> --- /dev/null
>>>> +++ b/arch/arm64/boot/dts/qcom/qcs8550.dtsi
>>>> @@ -0,0 +1,6 @@
>>>> +// SPDX-License-Identifier: BSD-3-Clause
>>>> +/*
>>>> + * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
>>>> + */
>>>> +
>>>> +#include "sm8550.dtsi"
>>>
>>> This is a weird file. I thought qcs8550 has differences from sm8550,
>>> e.g. lack of modem, so why do you claim you have here MPSS?
>> MPSS here in qcs8550 is a GPS only MPSS.
>
> Is it different or the same? Is the interface the same? So many
> questions and so little information. You have entire commit msg to
> explain this.
we can add all current email information into the commit message in next
patchset.
>
>>
>> QCS8550 will have a different firmware release with sm8550, and it will
>> have different memory reserved for the firmware to be used.
>> While firmware release along with memory map was not settled down yet.
>> That's why currently qcs8550.dtsi is an "empty file" and only include
>> sm8550.dtsi. As long as the firmware release is settled down, we will
>> have more detailed different node here.
>
> So the DTS is not really usable now?
curent qcs8550.dtsi is an "empty file" which is identical to "sm8550.dtsi".
While qcs8550-aim300-itot.dts is currently used with a "temporary
reserved memory" for those engineer qcs8550 firmware for boot up and
limited function verify.
So the idea here is to postpone only the firmware related reserved
memory part. And open an "empty file" qcs8550.dtsi for common which can
be used for other board like qcs8550-rb5-gen2.
>>
>> By the way, RB5 gen2 will also relies on the current qcs8550.dtsi, since
>> it is using the same qcs8550 soc, and will use the same firmware release.
>>
>> We have patch version2 remove the qcs8550.dtsi, and have SOM dtsi
>> qcs8550-aim300.dtsi include the sm8550.dtsi. While after discussion, our
>> understanding is that we can have an qcs8550.dtsi like this. Feel free
>> to let us know if it is not right understanding.
>>
>>>
>>> It's really confusing now.
>>
>> We can have a syncup to clear the confusing point if needed. :)
>>>
>
> The code and commit msg are confusing. I need to keep asking you to get
> any information.
>
> Best regards,
> Krzysztof
>
--
Thx and BRs,
Aiqun(Maria) Yu
On Tue, 19 Dec 2023 at 02:52, Tengfei Fan <[email protected]> wrote:
>
> AIM300 is a module with QCS8550 SoC, UFS and PMIC chip.
> AIM300 Series is a highly optimized family of modules designed to support
> AIoT applications. The Module is mounted onto Qualcomm AIoT carrier board
> to support verification, evaluation and development.
>
> Co-developed-by: Fenglin Wu <[email protected]>
> Signed-off-by: Fenglin Wu <[email protected]>
> Signed-off-by: Tengfei Fan <[email protected]>
> ---
> arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi | 371 +++++++++++++++++++
> 1 file changed, 371 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi
>
> diff --git a/arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi b/arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi
> new file mode 100644
> index 000000000000..04ca4597f952
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi
> @@ -0,0 +1,371 @@
> +// 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 "qcs8550.dtsi"
> +#include "pm8010.dtsi"
> +#include "pm8550.dtsi"
> +#include "pm8550b.dtsi"
> +#define PMK8550VE_SID 5
> +#include "pm8550ve.dtsi"
> +#include "pm8550vs.dtsi"
> +#include "pmk8550.dtsi"
> +#include "pmr735d_a.dtsi"
> +#include "pmr735d_b.dtsi"
> +
> +/ {
> + vph_pwr: vph-pwr-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "vph_pwr";
> + regulator-min-microvolt = <3700000>;
> + regulator-max-microvolt = <3700000>;
> +
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +};
Is VPH_PWR regulator present on the SoM or on the carrier board?
> +
> +&apps_rsc {
> + 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_s6g_1p86>;
> + vdd-l2-l13-l14-supply = <&vreg_bob1>;
> + vdd-l3-supply = <&vreg_s4g_1p25>;
> + vdd-l5-l16-supply = <&vreg_bob1>;
> + vdd-l6-l7-supply = <&vreg_bob1>;
> + vdd-l8-l9-supply = <&vreg_bob1>;
> + vdd-l11-supply = <&vreg_s4g_1p25>;
> + vdd-l12-supply = <&vreg_s6g_1p86>;
> + vdd-l15-supply = <&vreg_s6g_1p86>;
> + vdd-l17-supply = <&vreg_bob2>;
> +
> + vreg_bob1: bob1 {
> + regulator-name = "vreg_bob1";
> + regulator-min-microvolt = <3296000>;
> + regulator-max-microvolt = <3960000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_bob2: bob2 {
> + regulator-name = "vreg_bob2";
> + regulator-min-microvolt = <2720000>;
> + regulator-max-microvolt = <3960000>;
> + 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 = <3008000>;
> + regulator-max-microvolt = <3008000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l5b_3p1: ldo5 {
> + regulator-name = "vreg_l5b_3p1";
> + regulator-min-microvolt = <3104000>;
> + regulator-max-microvolt = <3104000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l6b_1p8: ldo6 {
> + regulator-name = "vreg_l6b_1p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3008000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l7b_1p8: ldo7 {
> + regulator-name = "vreg_l7b_1p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3008000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l8b_1p8: ldo8 {
> + regulator-name = "vreg_l8b_1p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3008000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l9b_2p9: ldo9 {
> + regulator-name = "vreg_l9b_2p9";
> + regulator-min-microvolt = <2960000>;
> + regulator-max-microvolt = <3008000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l11b_1p2: ldo11 {
> + regulator-name = "vreg_l11b_1p2";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1504000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l12b_1p8: ldo12 {
> + regulator-name = "vreg_l12b_1p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l13b_3p0: ldo13 {
> + regulator-name = "vreg_l13b_3p0";
> + regulator-min-microvolt = <3000000>;
> + regulator-max-microvolt = <3000000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l14b_3p2: ldo14 {
> + regulator-name = "vreg_l14b_3p2";
> + regulator-min-microvolt = <3200000>;
> + regulator-max-microvolt = <3200000>;
> + 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>;
> + };
> +
> + vreg_l16b_2p8: ldo16 {
> + regulator-name = "vreg_l16b_2p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> + 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>;
> + };
> + };
> +
> + regulators-1 {
> + compatible = "qcom,pm8550vs-rpmh-regulators";
> + qcom,pmic-id = "c";
> +
> + vdd-l1-supply = <&vreg_s4g_1p25>;
> + vdd-l2-supply = <&vreg_s4e_0p95>;
> + vdd-l3-supply = <&vreg_s4e_0p95>;
> +
> + vreg_l3c_0p9: ldo3 {
> + regulator-name = "vreg_l3c_0p9";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <912000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-2 {
> + compatible = "qcom,pm8550vs-rpmh-regulators";
> + qcom,pmic-id = "d";
> +
> + vdd-l1-supply = <&vreg_s4e_0p95>;
> + vdd-l2-supply = <&vreg_s4e_0p95>;
> + vdd-l3-supply = <&vreg_s4e_0p95>;
> +
> + vreg_l1d_0p88: ldo1 {
> + regulator-name = "vreg_l1d_0p88";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <920000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-3 {
> + compatible = "qcom,pm8550vs-rpmh-regulators";
> + qcom,pmic-id = "e";
> +
> + vdd-l1-supply = <&vreg_s4e_0p95>;
> + vdd-l2-supply = <&vreg_s4e_0p95>;
> + vdd-l3-supply = <&vreg_s4g_1p25>;
> + vdd-s4-supply = <&vph_pwr>;
> + vdd-s5-supply = <&vph_pwr>;
> +
> + vreg_s4e_0p95: smps4 {
> + regulator-name = "vreg_s4e_0p95";
> + regulator-min-microvolt = <904000>;
> + regulator-max-microvolt = <984000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_s5e_1p08: smps5 {
> + regulator-name = "vreg_s5e_1p08";
> + regulator-min-microvolt = <1010000>;
> + regulator-max-microvolt = <1120000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l1e_0p88: ldo1 {
> + regulator-name = "vreg_l1e_0p88";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <912000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l2e_0p9: ldo2 {
> + regulator-name = "vreg_l2e_0p9";
> + regulator-min-microvolt = <870000>;
> + regulator-max-microvolt = <970000>;
> + 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>;
> + };
> + };
> +
> + regulators-4 {
> + compatible = "qcom,pm8550ve-rpmh-regulators";
> + qcom,pmic-id = "f";
> +
> + vdd-l1-supply = <&vreg_s4e_0p95>;
> + vdd-l2-supply = <&vreg_s4e_0p95>;
> + vdd-l3-supply = <&vreg_s4e_0p95>;
> + vdd-s4-supply = <&vph_pwr>;
> +
> + vreg_s4f_0p5: smps4 {
> + regulator-name = "vreg_s4f_0p5";
> + regulator-min-microvolt = <500000>;
> + regulator-max-microvolt = <600000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l1f_0p9: ldo1 {
> + regulator-name = "vreg_l1f_0p9";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <912000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l2f_0p88: ldo2 {
> + regulator-name = "vreg_l2f_0p88";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <912000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l3f_0p88: ldo3 {
> + regulator-name = "vreg_l3f_0p88";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <912000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-5 {
> + compatible = "qcom,pm8550vs-rpmh-regulators";
> + qcom,pmic-id = "g";
> + vdd-l1-supply = <&vreg_s4g_1p25>;
> + vdd-l2-supply = <&vreg_s4g_1p25>;
> + vdd-l3-supply = <&vreg_s4g_1p25>;
> + vdd-s1-supply = <&vph_pwr>;
> + vdd-s2-supply = <&vph_pwr>;
> + vdd-s3-supply = <&vph_pwr>;
> + vdd-s4-supply = <&vph_pwr>;
> + vdd-s5-supply = <&vph_pwr>;
> + vdd-s6-supply = <&vph_pwr>;
> +
> + vreg_s1g_1p25: smps1 {
> + regulator-name = "vreg_s1g_1p25";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1300000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_s2g_0p85: smps2 {
> + regulator-name = "vreg_s2g_0p85";
> + regulator-min-microvolt = <800000>;
> + regulator-max-microvolt = <1000000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_s3g_0p8: smps3 {
> + regulator-name = "vreg_s3g_0p8";
> + regulator-min-microvolt = <300000>;
> + regulator-max-microvolt = <1004000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_s4g_1p25: smps4 {
> + regulator-name = "vreg_s4g_1p25";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1300000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_s5g_0p85: smps5 {
> + regulator-name = "vreg_s5g_0p85";
> + regulator-min-microvolt = <500000>;
> + regulator-max-microvolt = <1004000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_s6g_1p86: smps6 {
> + regulator-name = "vreg_s6g_1p86";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <2000000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l1g_1p2: ldo1 {
> + regulator-name = "vreg_l1g_1p2";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l2g_1p2: ldo2 {
> + regulator-name = "vreg_l2g_1p2";
> + regulator-min-microvolt = <1100000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l3g_1p2: ldo3 {
> + regulator-name = "vreg_l3g_1p2";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +};
> +
> +&ufs_mem_hc {
> + reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
> + vcc-supply = <&vreg_l17b_2p5>;
> + vcc-max-microamp = <1300000>;
> + vccq-supply = <&vreg_l1g_1p2>;
> + vccq-max-microamp = <1200000>;
> + vdd-hba-supply = <&vreg_l3g_1p2>;
> +
> + status = "okay";
> +};
> +
> +&ufs_mem_phy {
> + vdda-phy-supply = <&vreg_l1d_0p88>;
> + vdda-pll-supply = <&vreg_l3e_1p2>;
> +
> + status = "okay";
> +};
> --
> 2.17.1
>
>
--
With best wishes
Dmitry
On Tue, 19 Dec 2023 at 12:20, Aiqun Yu (Maria) <[email protected]> wrote:
>
>
>
> On 12/19/2023 6:01 PM, Krzysztof Kozlowski wrote:
> > On 19/12/2023 10:57, Aiqun Yu (Maria) wrote:
> >>
> >>
> >> On 12/19/2023 3:02 PM, Krzysztof Kozlowski wrote:
> >>> On 19/12/2023 01:50, Tengfei Fan wrote:
> >>>> QCS8550 is derived from SM8550, it is mainly used in IoT scenarios.
> >>>
> >>> What are the differences? You need to describe the hardware, you have
> >>> entire commit msg for something useful which will avoid such comments
> >>> from reviewers.
> >>>
> >>>>
> >>>> Signed-off-by: Tengfei Fan <[email protected]>
> >>>> ---
> >>>> arch/arm64/boot/dts/qcom/qcs8550.dtsi | 6 ++++++
> >>>> 1 file changed, 6 insertions(+)
> >>>> create mode 100644 arch/arm64/boot/dts/qcom/qcs8550.dtsi
> >>>>
> >>>> diff --git a/arch/arm64/boot/dts/qcom/qcs8550.dtsi b/arch/arm64/boot/dts/qcom/qcs8550.dtsi
> >>>> new file mode 100644
> >>>> index 000000000000..254657f46c5e
> >>>> --- /dev/null
> >>>> +++ b/arch/arm64/boot/dts/qcom/qcs8550.dtsi
> >>>> @@ -0,0 +1,6 @@
> >>>> +// SPDX-License-Identifier: BSD-3-Clause
> >>>> +/*
> >>>> + * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
> >>>> + */
> >>>> +
> >>>> +#include "sm8550.dtsi"
> >>>
> >>> This is a weird file. I thought qcs8550 has differences from sm8550,
> >>> e.g. lack of modem, so why do you claim you have here MPSS?
> >> MPSS here in qcs8550 is a GPS only MPSS.
> >
> > Is it different or the same? Is the interface the same? So many
> > questions and so little information. You have entire commit msg to
> > explain this.
> we can add all current email information into the commit message in next
> patchset.
> >
> >>
> >> QCS8550 will have a different firmware release with sm8550, and it will
> >> have different memory reserved for the firmware to be used.
> >> While firmware release along with memory map was not settled down yet.
> >> That's why currently qcs8550.dtsi is an "empty file" and only include
> >> sm8550.dtsi. As long as the firmware release is settled down, we will
> >> have more detailed different node here.
> >
> > So the DTS is not really usable now?
> curent qcs8550.dtsi is an "empty file" which is identical to "sm8550.dtsi".
> While qcs8550-aim300-itot.dts is currently used with a "temporary
> reserved memory" for those engineer qcs8550 firmware for boot up and
> limited function verify.
You know, this doesn't work this way. Once the board dts file lands
into the kernel, it _must_ be supported for quite a while. So if you
land your 'temporary' memory map, you will be forced to stick to it
forever.
If you want to share the interim state, you _MUST_ state that in the
cover letter and you _MUST_ mark your patches in a sufficient way so
that they can not be merged by accident.
> So the idea here is to postpone only the firmware related reserved
> memory part. And open an "empty file" qcs8550.dtsi for common which can
> be used for other board like qcs8550-rb5-gen2.
Unfortunately, this means NAK for this patch and for the whole series.
Please finish the memory map first. You can not change that after the
patches have been landed in the kernel.
And BTW, as we have landed the qcm6490-rb3gen2, could you please drop
the second dash for the sake of uniformity?
> >>
> >> By the way, RB5 gen2 will also relies on the current qcs8550.dtsi, since
> >> it is using the same qcs8550 soc, and will use the same firmware release.
> >>
> >> We have patch version2 remove the qcs8550.dtsi, and have SOM dtsi
> >> qcs8550-aim300.dtsi include the sm8550.dtsi. While after discussion, our
> >> understanding is that we can have an qcs8550.dtsi like this. Feel free
> >> to let us know if it is not right understanding.
> >>
> >>>
> >>> It's really confusing now.
> >>
> >> We can have a syncup to clear the confusing point if needed. :)
> >>>
> >
> > The code and commit msg are confusing. I need to keep asking you to get
> > any information.
--
With best wishes
Dmitry
On 12/19/2023 6:25 PM, Dmitry Baryshkov wrote:
> On Tue, 19 Dec 2023 at 02:52, Tengfei Fan <[email protected]> wrote:
>>
>> AIM300 is a module with QCS8550 SoC, UFS and PMIC chip.
>> AIM300 Series is a highly optimized family of modules designed to support
>> AIoT applications. The Module is mounted onto Qualcomm AIoT carrier board
>> to support verification, evaluation and development.
>>
>> Co-developed-by: Fenglin Wu <[email protected]>
>> Signed-off-by: Fenglin Wu <[email protected]>
>> Signed-off-by: Tengfei Fan <[email protected]>
>> ---
>> arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi | 371 +++++++++++++++++++
>> 1 file changed, 371 insertions(+)
>> create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi
>>
>> diff --git a/arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi b/arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi
>> new file mode 100644
>> index 000000000000..04ca4597f952
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi
>> @@ -0,0 +1,371 @@
>> +// 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 "qcs8550.dtsi"
>> +#include "pm8010.dtsi"
>> +#include "pm8550.dtsi"
>> +#include "pm8550b.dtsi"
>> +#define PMK8550VE_SID 5
>> +#include "pm8550ve.dtsi"
>> +#include "pm8550vs.dtsi"
>> +#include "pmk8550.dtsi"
>> +#include "pmr735d_a.dtsi"
>> +#include "pmr735d_b.dtsi"
>> +
>> +/ {
>> + vph_pwr: vph-pwr-regulator {
>> + compatible = "regulator-fixed";
>> + regulator-name = "vph_pwr";
>> + regulator-min-microvolt = <3700000>;
>> + regulator-max-microvolt = <3700000>;
>> +
>> + regulator-always-on;
>> + regulator-boot-on;
>> + };
>> +};
>
> Is VPH_PWR regulator present on the SoM or on the carrier board?VPH_PWR regulator present on the SoM.
>
>> +
>> +&apps_rsc {
>> + 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_s6g_1p86>;
>> + vdd-l2-l13-l14-supply = <&vreg_bob1>;
>> + vdd-l3-supply = <&vreg_s4g_1p25>;
>> + vdd-l5-l16-supply = <&vreg_bob1>;
>> + vdd-l6-l7-supply = <&vreg_bob1>;
>> + vdd-l8-l9-supply = <&vreg_bob1>;
>> + vdd-l11-supply = <&vreg_s4g_1p25>;
>> + vdd-l12-supply = <&vreg_s6g_1p86>;
>> + vdd-l15-supply = <&vreg_s6g_1p86>;
>> + vdd-l17-supply = <&vreg_bob2>;
>> +
>> + vreg_bob1: bob1 {
>> + regulator-name = "vreg_bob1";
>> + regulator-min-microvolt = <3296000>;
>> + regulator-max-microvolt = <3960000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_bob2: bob2 {
>> + regulator-name = "vreg_bob2";
>> + regulator-min-microvolt = <2720000>;
>> + regulator-max-microvolt = <3960000>;
>> + 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 = <3008000>;
>> + regulator-max-microvolt = <3008000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l5b_3p1: ldo5 {
>> + regulator-name = "vreg_l5b_3p1";
>> + regulator-min-microvolt = <3104000>;
>> + regulator-max-microvolt = <3104000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l6b_1p8: ldo6 {
>> + regulator-name = "vreg_l6b_1p8";
>> + regulator-min-microvolt = <1800000>;
>> + regulator-max-microvolt = <3008000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l7b_1p8: ldo7 {
>> + regulator-name = "vreg_l7b_1p8";
>> + regulator-min-microvolt = <1800000>;
>> + regulator-max-microvolt = <3008000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l8b_1p8: ldo8 {
>> + regulator-name = "vreg_l8b_1p8";
>> + regulator-min-microvolt = <1800000>;
>> + regulator-max-microvolt = <3008000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l9b_2p9: ldo9 {
>> + regulator-name = "vreg_l9b_2p9";
>> + regulator-min-microvolt = <2960000>;
>> + regulator-max-microvolt = <3008000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l11b_1p2: ldo11 {
>> + regulator-name = "vreg_l11b_1p2";
>> + regulator-min-microvolt = <1200000>;
>> + regulator-max-microvolt = <1504000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l12b_1p8: ldo12 {
>> + regulator-name = "vreg_l12b_1p8";
>> + regulator-min-microvolt = <1800000>;
>> + regulator-max-microvolt = <1800000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l13b_3p0: ldo13 {
>> + regulator-name = "vreg_l13b_3p0";
>> + regulator-min-microvolt = <3000000>;
>> + regulator-max-microvolt = <3000000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l14b_3p2: ldo14 {
>> + regulator-name = "vreg_l14b_3p2";
>> + regulator-min-microvolt = <3200000>;
>> + regulator-max-microvolt = <3200000>;
>> + 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>;
>> + };
>> +
>> + vreg_l16b_2p8: ldo16 {
>> + regulator-name = "vreg_l16b_2p8";
>> + regulator-min-microvolt = <1800000>;
>> + regulator-max-microvolt = <3300000>;
>> + 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>;
>> + };
>> + };
>> +
>> + regulators-1 {
>> + compatible = "qcom,pm8550vs-rpmh-regulators";
>> + qcom,pmic-id = "c";
>> +
>> + vdd-l1-supply = <&vreg_s4g_1p25>;
>> + vdd-l2-supply = <&vreg_s4e_0p95>;
>> + vdd-l3-supply = <&vreg_s4e_0p95>;
>> +
>> + vreg_l3c_0p9: ldo3 {
>> + regulator-name = "vreg_l3c_0p9";
>> + regulator-min-microvolt = <880000>;
>> + regulator-max-microvolt = <912000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> + };
>> +
>> + regulators-2 {
>> + compatible = "qcom,pm8550vs-rpmh-regulators";
>> + qcom,pmic-id = "d";
>> +
>> + vdd-l1-supply = <&vreg_s4e_0p95>;
>> + vdd-l2-supply = <&vreg_s4e_0p95>;
>> + vdd-l3-supply = <&vreg_s4e_0p95>;
>> +
>> + vreg_l1d_0p88: ldo1 {
>> + regulator-name = "vreg_l1d_0p88";
>> + regulator-min-microvolt = <880000>;
>> + regulator-max-microvolt = <920000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> + };
>> +
>> + regulators-3 {
>> + compatible = "qcom,pm8550vs-rpmh-regulators";
>> + qcom,pmic-id = "e";
>> +
>> + vdd-l1-supply = <&vreg_s4e_0p95>;
>> + vdd-l2-supply = <&vreg_s4e_0p95>;
>> + vdd-l3-supply = <&vreg_s4g_1p25>;
>> + vdd-s4-supply = <&vph_pwr>;
>> + vdd-s5-supply = <&vph_pwr>;
>> +
>> + vreg_s4e_0p95: smps4 {
>> + regulator-name = "vreg_s4e_0p95";
>> + regulator-min-microvolt = <904000>;
>> + regulator-max-microvolt = <984000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_s5e_1p08: smps5 {
>> + regulator-name = "vreg_s5e_1p08";
>> + regulator-min-microvolt = <1010000>;
>> + regulator-max-microvolt = <1120000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l1e_0p88: ldo1 {
>> + regulator-name = "vreg_l1e_0p88";
>> + regulator-min-microvolt = <880000>;
>> + regulator-max-microvolt = <912000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l2e_0p9: ldo2 {
>> + regulator-name = "vreg_l2e_0p9";
>> + regulator-min-microvolt = <870000>;
>> + regulator-max-microvolt = <970000>;
>> + 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>;
>> + };
>> + };
>> +
>> + regulators-4 {
>> + compatible = "qcom,pm8550ve-rpmh-regulators";
>> + qcom,pmic-id = "f";
>> +
>> + vdd-l1-supply = <&vreg_s4e_0p95>;
>> + vdd-l2-supply = <&vreg_s4e_0p95>;
>> + vdd-l3-supply = <&vreg_s4e_0p95>;
>> + vdd-s4-supply = <&vph_pwr>;
>> +
>> + vreg_s4f_0p5: smps4 {
>> + regulator-name = "vreg_s4f_0p5";
>> + regulator-min-microvolt = <500000>;
>> + regulator-max-microvolt = <600000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l1f_0p9: ldo1 {
>> + regulator-name = "vreg_l1f_0p9";
>> + regulator-min-microvolt = <880000>;
>> + regulator-max-microvolt = <912000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l2f_0p88: ldo2 {
>> + regulator-name = "vreg_l2f_0p88";
>> + regulator-min-microvolt = <880000>;
>> + regulator-max-microvolt = <912000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l3f_0p88: ldo3 {
>> + regulator-name = "vreg_l3f_0p88";
>> + regulator-min-microvolt = <880000>;
>> + regulator-max-microvolt = <912000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> + };
>> +
>> + regulators-5 {
>> + compatible = "qcom,pm8550vs-rpmh-regulators";
>> + qcom,pmic-id = "g";
>> + vdd-l1-supply = <&vreg_s4g_1p25>;
>> + vdd-l2-supply = <&vreg_s4g_1p25>;
>> + vdd-l3-supply = <&vreg_s4g_1p25>;
>> + vdd-s1-supply = <&vph_pwr>;
>> + vdd-s2-supply = <&vph_pwr>;
>> + vdd-s3-supply = <&vph_pwr>;
>> + vdd-s4-supply = <&vph_pwr>;
>> + vdd-s5-supply = <&vph_pwr>;
>> + vdd-s6-supply = <&vph_pwr>;
>> +
>> + vreg_s1g_1p25: smps1 {
>> + regulator-name = "vreg_s1g_1p25";
>> + regulator-min-microvolt = <1200000>;
>> + regulator-max-microvolt = <1300000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_s2g_0p85: smps2 {
>> + regulator-name = "vreg_s2g_0p85";
>> + regulator-min-microvolt = <800000>;
>> + regulator-max-microvolt = <1000000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_s3g_0p8: smps3 {
>> + regulator-name = "vreg_s3g_0p8";
>> + regulator-min-microvolt = <300000>;
>> + regulator-max-microvolt = <1004000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_s4g_1p25: smps4 {
>> + regulator-name = "vreg_s4g_1p25";
>> + regulator-min-microvolt = <1200000>;
>> + regulator-max-microvolt = <1300000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_s5g_0p85: smps5 {
>> + regulator-name = "vreg_s5g_0p85";
>> + regulator-min-microvolt = <500000>;
>> + regulator-max-microvolt = <1004000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_s6g_1p86: smps6 {
>> + regulator-name = "vreg_s6g_1p86";
>> + regulator-min-microvolt = <1800000>;
>> + regulator-max-microvolt = <2000000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l1g_1p2: ldo1 {
>> + regulator-name = "vreg_l1g_1p2";
>> + regulator-min-microvolt = <1200000>;
>> + regulator-max-microvolt = <1200000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l2g_1p2: ldo2 {
>> + regulator-name = "vreg_l2g_1p2";
>> + regulator-min-microvolt = <1100000>;
>> + regulator-max-microvolt = <1200000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l3g_1p2: ldo3 {
>> + regulator-name = "vreg_l3g_1p2";
>> + regulator-min-microvolt = <1200000>;
>> + regulator-max-microvolt = <1200000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> + };
>> +};
>> +
>> +&ufs_mem_hc {
>> + reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
>> + vcc-supply = <&vreg_l17b_2p5>;
>> + vcc-max-microamp = <1300000>;
>> + vccq-supply = <&vreg_l1g_1p2>;
>> + vccq-max-microamp = <1200000>;
>> + vdd-hba-supply = <&vreg_l3g_1p2>;
>> +
>> + status = "okay";
>> +};
>> +
>> +&ufs_mem_phy {
>> + vdda-phy-supply = <&vreg_l1d_0p88>;
>> + vdda-pll-supply = <&vreg_l3e_1p2>;
>> +
>> + status = "okay";
>> +};
>> --
>> 2.17.1
>>
>>
>
>
--
Thx and BRs,
Tengfei Fan
On Wed, 20 Dec 2023 at 03:23, Tengfei Fan <[email protected]> wrote:
>
>
>
> On 12/19/2023 6:25 PM, Dmitry Baryshkov wrote:
> > On Tue, 19 Dec 2023 at 02:52, Tengfei Fan <[email protected]> wrote:
> >>
> >> AIM300 is a module with QCS8550 SoC, UFS and PMIC chip.
> >> AIM300 Series is a highly optimized family of modules designed to support
> >> AIoT applications. The Module is mounted onto Qualcomm AIoT carrier board
> >> to support verification, evaluation and development.
> >>
> >> Co-developed-by: Fenglin Wu <[email protected]>
> >> Signed-off-by: Fenglin Wu <[email protected]>
> >> Signed-off-by: Tengfei Fan <[email protected]>
> >> ---
> >> arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi | 371 +++++++++++++++++++
> >> 1 file changed, 371 insertions(+)
> >> create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi
> >>
> >> diff --git a/arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi b/arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi
> >> new file mode 100644
> >> index 000000000000..04ca4597f952
> >> --- /dev/null
> >> +++ b/arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi
> >> @@ -0,0 +1,371 @@
> >> +// 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 "qcs8550.dtsi"
> >> +#include "pm8010.dtsi"
> >> +#include "pm8550.dtsi"
> >> +#include "pm8550b.dtsi"
> >> +#define PMK8550VE_SID 5
> >> +#include "pm8550ve.dtsi"
> >> +#include "pm8550vs.dtsi"
> >> +#include "pmk8550.dtsi"
> >> +#include "pmr735d_a.dtsi"
> >> +#include "pmr735d_b.dtsi"
> >> +
> >> +/ {
> >> + vph_pwr: vph-pwr-regulator {
> >> + compatible = "regulator-fixed";
> >> + regulator-name = "vph_pwr";
> >> + regulator-min-microvolt = <3700000>;
> >> + regulator-max-microvolt = <3700000>;
> >> +
> >> + regulator-always-on;
> >> + regulator-boot-on;
> >> + };
> >> +};
> >
> > Is VPH_PWR regulator present on the SoM or on the carrier board?VPH_PWR regulator present on the SoM.
If not for gmail, I could have missed your reply.
Maybe it is a good idea to add an explicit comment here.
BTW: what regulators are present on the carrier board rather than on the SoM?
> >
> >> +
> >> +&apps_rsc {
> >> + 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_s6g_1p86>;
> >> + vdd-l2-l13-l14-supply = <&vreg_bob1>;
> >> + vdd-l3-supply = <&vreg_s4g_1p25>;
> >> + vdd-l5-l16-supply = <&vreg_bob1>;
> >> + vdd-l6-l7-supply = <&vreg_bob1>;
> >> + vdd-l8-l9-supply = <&vreg_bob1>;
> >> + vdd-l11-supply = <&vreg_s4g_1p25>;
> >> + vdd-l12-supply = <&vreg_s6g_1p86>;
> >> + vdd-l15-supply = <&vreg_s6g_1p86>;
> >> + vdd-l17-supply = <&vreg_bob2>;
> >> +
> >> + vreg_bob1: bob1 {
> >> + regulator-name = "vreg_bob1";
> >> + regulator-min-microvolt = <3296000>;
> >> + regulator-max-microvolt = <3960000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_bob2: bob2 {
> >> + regulator-name = "vreg_bob2";
> >> + regulator-min-microvolt = <2720000>;
> >> + regulator-max-microvolt = <3960000>;
> >> + 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 = <3008000>;
> >> + regulator-max-microvolt = <3008000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_l5b_3p1: ldo5 {
> >> + regulator-name = "vreg_l5b_3p1";
> >> + regulator-min-microvolt = <3104000>;
> >> + regulator-max-microvolt = <3104000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_l6b_1p8: ldo6 {
> >> + regulator-name = "vreg_l6b_1p8";
> >> + regulator-min-microvolt = <1800000>;
> >> + regulator-max-microvolt = <3008000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_l7b_1p8: ldo7 {
> >> + regulator-name = "vreg_l7b_1p8";
> >> + regulator-min-microvolt = <1800000>;
> >> + regulator-max-microvolt = <3008000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_l8b_1p8: ldo8 {
> >> + regulator-name = "vreg_l8b_1p8";
> >> + regulator-min-microvolt = <1800000>;
> >> + regulator-max-microvolt = <3008000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_l9b_2p9: ldo9 {
> >> + regulator-name = "vreg_l9b_2p9";
> >> + regulator-min-microvolt = <2960000>;
> >> + regulator-max-microvolt = <3008000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_l11b_1p2: ldo11 {
> >> + regulator-name = "vreg_l11b_1p2";
> >> + regulator-min-microvolt = <1200000>;
> >> + regulator-max-microvolt = <1504000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_l12b_1p8: ldo12 {
> >> + regulator-name = "vreg_l12b_1p8";
> >> + regulator-min-microvolt = <1800000>;
> >> + regulator-max-microvolt = <1800000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_l13b_3p0: ldo13 {
> >> + regulator-name = "vreg_l13b_3p0";
> >> + regulator-min-microvolt = <3000000>;
> >> + regulator-max-microvolt = <3000000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_l14b_3p2: ldo14 {
> >> + regulator-name = "vreg_l14b_3p2";
> >> + regulator-min-microvolt = <3200000>;
> >> + regulator-max-microvolt = <3200000>;
> >> + 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>;
> >> + };
> >> +
> >> + vreg_l16b_2p8: ldo16 {
> >> + regulator-name = "vreg_l16b_2p8";
> >> + regulator-min-microvolt = <1800000>;
> >> + regulator-max-microvolt = <3300000>;
> >> + 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>;
> >> + };
> >> + };
> >> +
> >> + regulators-1 {
> >> + compatible = "qcom,pm8550vs-rpmh-regulators";
> >> + qcom,pmic-id = "c";
> >> +
> >> + vdd-l1-supply = <&vreg_s4g_1p25>;
> >> + vdd-l2-supply = <&vreg_s4e_0p95>;
> >> + vdd-l3-supply = <&vreg_s4e_0p95>;
> >> +
> >> + vreg_l3c_0p9: ldo3 {
> >> + regulator-name = "vreg_l3c_0p9";
> >> + regulator-min-microvolt = <880000>;
> >> + regulator-max-microvolt = <912000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> + };
> >> +
> >> + regulators-2 {
> >> + compatible = "qcom,pm8550vs-rpmh-regulators";
> >> + qcom,pmic-id = "d";
> >> +
> >> + vdd-l1-supply = <&vreg_s4e_0p95>;
> >> + vdd-l2-supply = <&vreg_s4e_0p95>;
> >> + vdd-l3-supply = <&vreg_s4e_0p95>;
> >> +
> >> + vreg_l1d_0p88: ldo1 {
> >> + regulator-name = "vreg_l1d_0p88";
> >> + regulator-min-microvolt = <880000>;
> >> + regulator-max-microvolt = <920000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> + };
> >> +
> >> + regulators-3 {
> >> + compatible = "qcom,pm8550vs-rpmh-regulators";
> >> + qcom,pmic-id = "e";
> >> +
> >> + vdd-l1-supply = <&vreg_s4e_0p95>;
> >> + vdd-l2-supply = <&vreg_s4e_0p95>;
> >> + vdd-l3-supply = <&vreg_s4g_1p25>;
> >> + vdd-s4-supply = <&vph_pwr>;
> >> + vdd-s5-supply = <&vph_pwr>;
> >> +
> >> + vreg_s4e_0p95: smps4 {
> >> + regulator-name = "vreg_s4e_0p95";
> >> + regulator-min-microvolt = <904000>;
> >> + regulator-max-microvolt = <984000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_s5e_1p08: smps5 {
> >> + regulator-name = "vreg_s5e_1p08";
> >> + regulator-min-microvolt = <1010000>;
> >> + regulator-max-microvolt = <1120000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_l1e_0p88: ldo1 {
> >> + regulator-name = "vreg_l1e_0p88";
> >> + regulator-min-microvolt = <880000>;
> >> + regulator-max-microvolt = <912000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_l2e_0p9: ldo2 {
> >> + regulator-name = "vreg_l2e_0p9";
> >> + regulator-min-microvolt = <870000>;
> >> + regulator-max-microvolt = <970000>;
> >> + 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>;
> >> + };
> >> + };
> >> +
> >> + regulators-4 {
> >> + compatible = "qcom,pm8550ve-rpmh-regulators";
> >> + qcom,pmic-id = "f";
> >> +
> >> + vdd-l1-supply = <&vreg_s4e_0p95>;
> >> + vdd-l2-supply = <&vreg_s4e_0p95>;
> >> + vdd-l3-supply = <&vreg_s4e_0p95>;
> >> + vdd-s4-supply = <&vph_pwr>;
> >> +
> >> + vreg_s4f_0p5: smps4 {
> >> + regulator-name = "vreg_s4f_0p5";
> >> + regulator-min-microvolt = <500000>;
> >> + regulator-max-microvolt = <600000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_l1f_0p9: ldo1 {
> >> + regulator-name = "vreg_l1f_0p9";
> >> + regulator-min-microvolt = <880000>;
> >> + regulator-max-microvolt = <912000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_l2f_0p88: ldo2 {
> >> + regulator-name = "vreg_l2f_0p88";
> >> + regulator-min-microvolt = <880000>;
> >> + regulator-max-microvolt = <912000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_l3f_0p88: ldo3 {
> >> + regulator-name = "vreg_l3f_0p88";
> >> + regulator-min-microvolt = <880000>;
> >> + regulator-max-microvolt = <912000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> + };
> >> +
> >> + regulators-5 {
> >> + compatible = "qcom,pm8550vs-rpmh-regulators";
> >> + qcom,pmic-id = "g";
> >> + vdd-l1-supply = <&vreg_s4g_1p25>;
> >> + vdd-l2-supply = <&vreg_s4g_1p25>;
> >> + vdd-l3-supply = <&vreg_s4g_1p25>;
> >> + vdd-s1-supply = <&vph_pwr>;
> >> + vdd-s2-supply = <&vph_pwr>;
> >> + vdd-s3-supply = <&vph_pwr>;
> >> + vdd-s4-supply = <&vph_pwr>;
> >> + vdd-s5-supply = <&vph_pwr>;
> >> + vdd-s6-supply = <&vph_pwr>;
> >> +
> >> + vreg_s1g_1p25: smps1 {
> >> + regulator-name = "vreg_s1g_1p25";
> >> + regulator-min-microvolt = <1200000>;
> >> + regulator-max-microvolt = <1300000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_s2g_0p85: smps2 {
> >> + regulator-name = "vreg_s2g_0p85";
> >> + regulator-min-microvolt = <800000>;
> >> + regulator-max-microvolt = <1000000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_s3g_0p8: smps3 {
> >> + regulator-name = "vreg_s3g_0p8";
> >> + regulator-min-microvolt = <300000>;
> >> + regulator-max-microvolt = <1004000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_s4g_1p25: smps4 {
> >> + regulator-name = "vreg_s4g_1p25";
> >> + regulator-min-microvolt = <1200000>;
> >> + regulator-max-microvolt = <1300000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_s5g_0p85: smps5 {
> >> + regulator-name = "vreg_s5g_0p85";
> >> + regulator-min-microvolt = <500000>;
> >> + regulator-max-microvolt = <1004000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_s6g_1p86: smps6 {
> >> + regulator-name = "vreg_s6g_1p86";
> >> + regulator-min-microvolt = <1800000>;
> >> + regulator-max-microvolt = <2000000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_l1g_1p2: ldo1 {
> >> + regulator-name = "vreg_l1g_1p2";
> >> + regulator-min-microvolt = <1200000>;
> >> + regulator-max-microvolt = <1200000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_l2g_1p2: ldo2 {
> >> + regulator-name = "vreg_l2g_1p2";
> >> + regulator-min-microvolt = <1100000>;
> >> + regulator-max-microvolt = <1200000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> +
> >> + vreg_l3g_1p2: ldo3 {
> >> + regulator-name = "vreg_l3g_1p2";
> >> + regulator-min-microvolt = <1200000>;
> >> + regulator-max-microvolt = <1200000>;
> >> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >> + };
> >> + };
> >> +};
> >> +
> >> +&ufs_mem_hc {
> >> + reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
> >> + vcc-supply = <&vreg_l17b_2p5>;
> >> + vcc-max-microamp = <1300000>;
> >> + vccq-supply = <&vreg_l1g_1p2>;
> >> + vccq-max-microamp = <1200000>;
> >> + vdd-hba-supply = <&vreg_l3g_1p2>;
> >> +
> >> + status = "okay";
> >> +};
> >> +
> >> +&ufs_mem_phy {
> >> + vdda-phy-supply = <&vreg_l1d_0p88>;
> >> + vdda-pll-supply = <&vreg_l3e_1p2>;
> >> +
> >> + status = "okay";
> >> +};
> >> --
> >> 2.17.1
> >>
> >>
> >
> >
>
> --
> Thx and BRs,
> Tengfei Fan
--
With best wishes
Dmitry
On 12/20/2023 3:00 PM, Dmitry Baryshkov wrote:
> On Wed, 20 Dec 2023 at 03:23, Tengfei Fan <[email protected]> wrote:
>>
>>
>>
>> On 12/19/2023 6:25 PM, Dmitry Baryshkov wrote:
>>> On Tue, 19 Dec 2023 at 02:52, Tengfei Fan <[email protected]> wrote:
>>>>
>>>> AIM300 is a module with QCS8550 SoC, UFS and PMIC chip.
>>>> AIM300 Series is a highly optimized family of modules designed to support
>>>> AIoT applications. The Module is mounted onto Qualcomm AIoT carrier board
>>>> to support verification, evaluation and development.
>>>>
>>>> Co-developed-by: Fenglin Wu <[email protected]>
>>>> Signed-off-by: Fenglin Wu <[email protected]>
>>>> Signed-off-by: Tengfei Fan <[email protected]>
>>>> ---
>>>> arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi | 371 +++++++++++++++++++
>>>> 1 file changed, 371 insertions(+)
>>>> create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi b/arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi
>>>> new file mode 100644
>>>> index 000000000000..04ca4597f952
>>>> --- /dev/null
>>>> +++ b/arch/arm64/boot/dts/qcom/qcs8550-aim300.dtsi
>>>> @@ -0,0 +1,371 @@
>>>> +// 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 "qcs8550.dtsi"
>>>> +#include "pm8010.dtsi"
>>>> +#include "pm8550.dtsi"
>>>> +#include "pm8550b.dtsi"
>>>> +#define PMK8550VE_SID 5
>>>> +#include "pm8550ve.dtsi"
>>>> +#include "pm8550vs.dtsi"
>>>> +#include "pmk8550.dtsi"
>>>> +#include "pmr735d_a.dtsi"
>>>> +#include "pmr735d_b.dtsi"
>>>> +
>>>> +/ {
>>>> + vph_pwr: vph-pwr-regulator {
>>>> + compatible = "regulator-fixed";
>>>> + regulator-name = "vph_pwr";
>>>> + regulator-min-microvolt = <3700000>;
>>>> + regulator-max-microvolt = <3700000>;
>>>> +
>>>> + regulator-always-on;
>>>> + regulator-boot-on;
>>>> + };
>>>> +};
>>>
>>> Is VPH_PWR regulator present on the SoM or on the carrier board?VPH_PWR regulator present on the SoM.
>
> If not for gmail, I could have missed your reply.
>
> Maybe it is a good idea to add an explicit comment here.
________________________________________
|AIM300 SoM |
| _____ |
| | | |
| |--->| UFS | |
| | |_____| |
| | |
| _________________ | _________ |
3.8v | | | | | | |
-------->| Regulatorss |----->| QCS8550 | |
| |_________________| | |_________| |
| | |
| | _____ |
| | | | |
| |--->| ... | |
| |_____| |
| |
|________________________________________|
VPH_PWR is obtained by vonverting 12v voltage into 3.8 voltage with a
3.8v buck. VPH_PWR is power supply for regulators in AIM300 SOM.
VPH_PWR regulator is defined in AIM300 SOM dtsi file.
>
> BTW: what regulators are present on the carrier board rather than on the SoM?
The regulators in pm8550, pm8550ve and pm8550vs are present on the SoM.
The regulators in pm8010 and pmr73d are present on the carrier board.
In the next version patch series, pm8010 and pmr73d will be moved from
SOM dtsi to carrier board dts file.
>
>>>
>>>> +
>>>> +&apps_rsc {
>>>> + 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_s6g_1p86>;
>>>> + vdd-l2-l13-l14-supply = <&vreg_bob1>;
>>>> + vdd-l3-supply = <&vreg_s4g_1p25>;
>>>> + vdd-l5-l16-supply = <&vreg_bob1>;
>>>> + vdd-l6-l7-supply = <&vreg_bob1>;
>>>> + vdd-l8-l9-supply = <&vreg_bob1>;
>>>> + vdd-l11-supply = <&vreg_s4g_1p25>;
>>>> + vdd-l12-supply = <&vreg_s6g_1p86>;
>>>> + vdd-l15-supply = <&vreg_s6g_1p86>;
>>>> + vdd-l17-supply = <&vreg_bob2>;
>>>> +
>>>> + vreg_bob1: bob1 {
>>>> + regulator-name = "vreg_bob1";
>>>> + regulator-min-microvolt = <3296000>;
>>>> + regulator-max-microvolt = <3960000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_bob2: bob2 {
>>>> + regulator-name = "vreg_bob2";
>>>> + regulator-min-microvolt = <2720000>;
>>>> + regulator-max-microvolt = <3960000>;
>>>> + 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 = <3008000>;
>>>> + regulator-max-microvolt = <3008000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_l5b_3p1: ldo5 {
>>>> + regulator-name = "vreg_l5b_3p1";
>>>> + regulator-min-microvolt = <3104000>;
>>>> + regulator-max-microvolt = <3104000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_l6b_1p8: ldo6 {
>>>> + regulator-name = "vreg_l6b_1p8";
>>>> + regulator-min-microvolt = <1800000>;
>>>> + regulator-max-microvolt = <3008000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_l7b_1p8: ldo7 {
>>>> + regulator-name = "vreg_l7b_1p8";
>>>> + regulator-min-microvolt = <1800000>;
>>>> + regulator-max-microvolt = <3008000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_l8b_1p8: ldo8 {
>>>> + regulator-name = "vreg_l8b_1p8";
>>>> + regulator-min-microvolt = <1800000>;
>>>> + regulator-max-microvolt = <3008000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_l9b_2p9: ldo9 {
>>>> + regulator-name = "vreg_l9b_2p9";
>>>> + regulator-min-microvolt = <2960000>;
>>>> + regulator-max-microvolt = <3008000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_l11b_1p2: ldo11 {
>>>> + regulator-name = "vreg_l11b_1p2";
>>>> + regulator-min-microvolt = <1200000>;
>>>> + regulator-max-microvolt = <1504000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_l12b_1p8: ldo12 {
>>>> + regulator-name = "vreg_l12b_1p8";
>>>> + regulator-min-microvolt = <1800000>;
>>>> + regulator-max-microvolt = <1800000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_l13b_3p0: ldo13 {
>>>> + regulator-name = "vreg_l13b_3p0";
>>>> + regulator-min-microvolt = <3000000>;
>>>> + regulator-max-microvolt = <3000000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_l14b_3p2: ldo14 {
>>>> + regulator-name = "vreg_l14b_3p2";
>>>> + regulator-min-microvolt = <3200000>;
>>>> + regulator-max-microvolt = <3200000>;
>>>> + 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>;
>>>> + };
>>>> +
>>>> + vreg_l16b_2p8: ldo16 {
>>>> + regulator-name = "vreg_l16b_2p8";
>>>> + regulator-min-microvolt = <1800000>;
>>>> + regulator-max-microvolt = <3300000>;
>>>> + 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>;
>>>> + };
>>>> + };
>>>> +
>>>> + regulators-1 {
>>>> + compatible = "qcom,pm8550vs-rpmh-regulators";
>>>> + qcom,pmic-id = "c";
>>>> +
>>>> + vdd-l1-supply = <&vreg_s4g_1p25>;
>>>> + vdd-l2-supply = <&vreg_s4e_0p95>;
>>>> + vdd-l3-supply = <&vreg_s4e_0p95>;
>>>> +
>>>> + vreg_l3c_0p9: ldo3 {
>>>> + regulator-name = "vreg_l3c_0p9";
>>>> + regulator-min-microvolt = <880000>;
>>>> + regulator-max-microvolt = <912000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> + };
>>>> +
>>>> + regulators-2 {
>>>> + compatible = "qcom,pm8550vs-rpmh-regulators";
>>>> + qcom,pmic-id = "d";
>>>> +
>>>> + vdd-l1-supply = <&vreg_s4e_0p95>;
>>>> + vdd-l2-supply = <&vreg_s4e_0p95>;
>>>> + vdd-l3-supply = <&vreg_s4e_0p95>;
>>>> +
>>>> + vreg_l1d_0p88: ldo1 {
>>>> + regulator-name = "vreg_l1d_0p88";
>>>> + regulator-min-microvolt = <880000>;
>>>> + regulator-max-microvolt = <920000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> + };
>>>> +
>>>> + regulators-3 {
>>>> + compatible = "qcom,pm8550vs-rpmh-regulators";
>>>> + qcom,pmic-id = "e";
>>>> +
>>>> + vdd-l1-supply = <&vreg_s4e_0p95>;
>>>> + vdd-l2-supply = <&vreg_s4e_0p95>;
>>>> + vdd-l3-supply = <&vreg_s4g_1p25>;
>>>> + vdd-s4-supply = <&vph_pwr>;
>>>> + vdd-s5-supply = <&vph_pwr>;
>>>> +
>>>> + vreg_s4e_0p95: smps4 {
>>>> + regulator-name = "vreg_s4e_0p95";
>>>> + regulator-min-microvolt = <904000>;
>>>> + regulator-max-microvolt = <984000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_s5e_1p08: smps5 {
>>>> + regulator-name = "vreg_s5e_1p08";
>>>> + regulator-min-microvolt = <1010000>;
>>>> + regulator-max-microvolt = <1120000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_l1e_0p88: ldo1 {
>>>> + regulator-name = "vreg_l1e_0p88";
>>>> + regulator-min-microvolt = <880000>;
>>>> + regulator-max-microvolt = <912000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_l2e_0p9: ldo2 {
>>>> + regulator-name = "vreg_l2e_0p9";
>>>> + regulator-min-microvolt = <870000>;
>>>> + regulator-max-microvolt = <970000>;
>>>> + 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>;
>>>> + };
>>>> + };
>>>> +
>>>> + regulators-4 {
>>>> + compatible = "qcom,pm8550ve-rpmh-regulators";
>>>> + qcom,pmic-id = "f";
>>>> +
>>>> + vdd-l1-supply = <&vreg_s4e_0p95>;
>>>> + vdd-l2-supply = <&vreg_s4e_0p95>;
>>>> + vdd-l3-supply = <&vreg_s4e_0p95>;
>>>> + vdd-s4-supply = <&vph_pwr>;
>>>> +
>>>> + vreg_s4f_0p5: smps4 {
>>>> + regulator-name = "vreg_s4f_0p5";
>>>> + regulator-min-microvolt = <500000>;
>>>> + regulator-max-microvolt = <600000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_l1f_0p9: ldo1 {
>>>> + regulator-name = "vreg_l1f_0p9";
>>>> + regulator-min-microvolt = <880000>;
>>>> + regulator-max-microvolt = <912000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_l2f_0p88: ldo2 {
>>>> + regulator-name = "vreg_l2f_0p88";
>>>> + regulator-min-microvolt = <880000>;
>>>> + regulator-max-microvolt = <912000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_l3f_0p88: ldo3 {
>>>> + regulator-name = "vreg_l3f_0p88";
>>>> + regulator-min-microvolt = <880000>;
>>>> + regulator-max-microvolt = <912000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> + };
>>>> +
>>>> + regulators-5 {
>>>> + compatible = "qcom,pm8550vs-rpmh-regulators";
>>>> + qcom,pmic-id = "g";
>>>> + vdd-l1-supply = <&vreg_s4g_1p25>;
>>>> + vdd-l2-supply = <&vreg_s4g_1p25>;
>>>> + vdd-l3-supply = <&vreg_s4g_1p25>;
>>>> + vdd-s1-supply = <&vph_pwr>;
>>>> + vdd-s2-supply = <&vph_pwr>;
>>>> + vdd-s3-supply = <&vph_pwr>;
>>>> + vdd-s4-supply = <&vph_pwr>;
>>>> + vdd-s5-supply = <&vph_pwr>;
>>>> + vdd-s6-supply = <&vph_pwr>;
>>>> +
>>>> + vreg_s1g_1p25: smps1 {
>>>> + regulator-name = "vreg_s1g_1p25";
>>>> + regulator-min-microvolt = <1200000>;
>>>> + regulator-max-microvolt = <1300000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_s2g_0p85: smps2 {
>>>> + regulator-name = "vreg_s2g_0p85";
>>>> + regulator-min-microvolt = <800000>;
>>>> + regulator-max-microvolt = <1000000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_s3g_0p8: smps3 {
>>>> + regulator-name = "vreg_s3g_0p8";
>>>> + regulator-min-microvolt = <300000>;
>>>> + regulator-max-microvolt = <1004000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_s4g_1p25: smps4 {
>>>> + regulator-name = "vreg_s4g_1p25";
>>>> + regulator-min-microvolt = <1200000>;
>>>> + regulator-max-microvolt = <1300000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_s5g_0p85: smps5 {
>>>> + regulator-name = "vreg_s5g_0p85";
>>>> + regulator-min-microvolt = <500000>;
>>>> + regulator-max-microvolt = <1004000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_s6g_1p86: smps6 {
>>>> + regulator-name = "vreg_s6g_1p86";
>>>> + regulator-min-microvolt = <1800000>;
>>>> + regulator-max-microvolt = <2000000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_l1g_1p2: ldo1 {
>>>> + regulator-name = "vreg_l1g_1p2";
>>>> + regulator-min-microvolt = <1200000>;
>>>> + regulator-max-microvolt = <1200000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_l2g_1p2: ldo2 {
>>>> + regulator-name = "vreg_l2g_1p2";
>>>> + regulator-min-microvolt = <1100000>;
>>>> + regulator-max-microvolt = <1200000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> +
>>>> + vreg_l3g_1p2: ldo3 {
>>>> + regulator-name = "vreg_l3g_1p2";
>>>> + regulator-min-microvolt = <1200000>;
>>>> + regulator-max-microvolt = <1200000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> + };
>>>> +};
>>>> +
>>>> +&ufs_mem_hc {
>>>> + reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
>>>> + vcc-supply = <&vreg_l17b_2p5>;
>>>> + vcc-max-microamp = <1300000>;
>>>> + vccq-supply = <&vreg_l1g_1p2>;
>>>> + vccq-max-microamp = <1200000>;
>>>> + vdd-hba-supply = <&vreg_l3g_1p2>;
>>>> +
>>>> + status = "okay";
>>>> +};
>>>> +
>>>> +&ufs_mem_phy {
>>>> + vdda-phy-supply = <&vreg_l1d_0p88>;
>>>> + vdda-pll-supply = <&vreg_l3e_1p2>;
>>>> +
>>>> + status = "okay";
>>>> +};
>>>> --
>>>> 2.17.1
>>>>
>>>>
>>>
>>>
>>
>> --
>> Thx and BRs,
>> Tengfei Fan
>
>
>
--
Thx and BRs,
Tengfei Fan