linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 0/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts
@ 2025-10-25 12:27 Hongyang Zhao
  2025-10-25 12:27 ` [PATCH v5 1/2] " Hongyang Zhao
  2025-10-25 12:27 ` [PATCH v5 2/2] dt-bindings: arm: qcom: rubikpi3: document rubikpi3 board binding Hongyang Zhao
  0 siblings, 2 replies; 14+ messages in thread
From: Hongyang Zhao @ 2025-10-25 12:27 UTC (permalink / raw)
  To: linux-arm-msm
  Cc: casey.connolly, christopher.obbard, loic.minier, andersson,
	Hongyang Zhao

RUBIK Pi 3 (https://rubikpi.ai/), a lightweight development board based on
Qualcomm Dragonwing™ QCS6490 platform, is the first Pi built on Qualcomm
AI platforms for developers.

This commit enables the following features:
    Works:
    - Bluetooth (AP6256)
    - Wi-Fi (AP6256)
    - Ethernet (AX88179B connected to UPD720201)
    - FAN
    - Two USB Type-A 3.0 ports (UPD720201 connected to PCIe0)
    - M.2 M-Key 2280 PCIe 3.0
    - RTC
    - USB Type-C
    - USB Type-A 2.0 port
    - 40PIN: I2C x1, UART x1

---
Changes in v5:
- Fix device tree formatting issues.
- Add fan control that follows CPU0 temperature.
- Link to v4: https://lore.kernel.org/linux-arm-msm/20250930043258.249641-1-hongyang.zhao@thundersoft.com/

Changes in v4:
- Enable PCIe0 node.
- Added AX88179B Ethernet and UPD720201 USBHUB power control.
- Delete the nodes and attributes defined in sc7280.dtsi.
- Modify qcom.yaml to add binding for the Thundercomm RUBIK Pi 3 board.
- Link to v3: https://lore.kernel.org/linux-arm-msm/20250924161120.27051-1-hongyang.zhao@thundersoft.com/

Changes in v3:
- Rebase on linux-next/master.
- Link to v2: https://lore.kernel.org/linux-arm-msm/20250924121541.128582-1-hongyang.zhao@thundersoft.com/

Changes in v2:
- Fix problems found when running device tree check.
- Enable USB2.0 interface.
- Link to v1: https://lore.kernel.org/linux-arm-msm/20250923064330.518784-1-hongyang.zhao@thundersoft.com/
---

Hongyang Zhao (2):
  arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts
  dt-bindings: arm: qcom: rubikpi3: document rubikpi3 board binding

 .../devicetree/bindings/arm/qcom.yaml         |    1 +
 arch/arm64/boot/dts/qcom/Makefile             |    1 +
 .../dts/qcom/qcs6490-thundercomm-rubikpi3.dts | 1390 +++++++++++++++++
 3 files changed, 1392 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts


base-commit: 72fb0170ef1f45addf726319c52a0562b6913707
-- 
2.43.0


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH v5 1/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts
  2025-10-25 12:27 [PATCH v5 0/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts Hongyang Zhao
@ 2025-10-25 12:27 ` Hongyang Zhao
  2025-10-27 14:51   ` Dmitry Baryshkov
  2025-10-25 12:27 ` [PATCH v5 2/2] dt-bindings: arm: qcom: rubikpi3: document rubikpi3 board binding Hongyang Zhao
  1 sibling, 1 reply; 14+ messages in thread
From: Hongyang Zhao @ 2025-10-25 12:27 UTC (permalink / raw)
  To: linux-arm-msm
  Cc: casey.connolly, christopher.obbard, loic.minier, andersson,
	Hongyang Zhao, Roger Shimizu

Add DTS for Thundercomm qcs6490-rubikpi3 board which uses
QCS6490 SoC.

Works:
- Bluetooth (AP6256)
- Wi-Fi (AP6256)
- Ethernet (AX88179B connected to UPD720201)
- FAN
- Two USB Type-A 3.0 ports (UPD720201 connected to PCIe0)
- M.2 M-Key 2280 PCIe 3.0
- RTC
- USB Type-C
- USB Type-A 2.0 port
- 40PIN: I2C x1, UART x1

Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com>
Reviewed-by: Roger Shimizu <rosh@debian.org>
Cc: Casey Connolly <casey.connolly@linaro.org>
Cc: Christopher Obbard <christopher.obbard@linaro.org>
Cc: Loic Minier <loic.minier@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/Makefile             |    1 +
 .../dts/qcom/qcs6490-thundercomm-rubikpi3.dts | 1390 +++++++++++++++++
 2 files changed, 1391 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts

diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 296688f7cb26..74938791f62d 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -133,6 +133,7 @@ qcs6490-rb3gen2-industrial-mezzanine-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2
 
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-rb3gen2-industrial-mezzanine.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-rb3gen2-vision-mezzanine.dtb
+dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-thundercomm-rubikpi3.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs8300-ride.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs8550-aim300-aiot.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qcs9100-ride.dtb
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts b/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts
new file mode 100644
index 000000000000..e08c2afbf849
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts
@@ -0,0 +1,1390 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2025, Thundercomm All rights reserved.
+ */
+
+/dts-v1/;
+
+/* PM7250B is configured to use SID8/9 */
+#define PM7250B_SID 8
+#define PM7250B_SID1 9
+
+#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
+#include <dt-bindings/iio/qcom,spmi-adc7-pm7325.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sc7280.dtsi"
+#include "pm7250b.dtsi"
+#include "pm7325.dtsi"
+#include "pm8350c.dtsi"
+#include "pmk8350.dtsi"
+
+/delete-node/ &adsp_mem;
+/delete-node/ &cdsp_mem;
+/delete-node/ &ipa_fw_mem;
+/delete-node/ &mpss_mem;
+/delete-node/ &remoteproc_mpss;
+/delete-node/ &remoteproc_wpss;
+/delete-node/ &rmtfs_mem;
+/delete-node/ &video_mem;
+/delete-node/ &wifi;
+/delete-node/ &wlan_ce_mem;
+/delete-node/ &wlan_fw_mem;
+/delete-node/ &wpss_mem;
+/delete-node/ &xbl_mem;
+
+/ {
+	model = "Thundercomm RUBIK Pi 3";
+	compatible = "thundercomm,rubikpi3", "qcom,qcm6490";
+
+	chassis-type = "embedded";
+
+	aliases {
+		serial0 = &uart5;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	fan0: pwm-fan {
+		compatible = "pwm-fan";
+		/* cooling level (0, 1, 2, 3) : (0% duty, 25% duty, 50% duty, 100% duty) */
+		cooling-levels = <0 64 128 255>;
+		#cooling-cells = <2>;
+		pwms = <&pm8350c_pwm 3 1000000>;
+		pinctrl-0 = <&fan_pwm_out_default>;
+		pinctrl-names = "default";
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		pinctrl-0 = <&kypd_vol_up_n>;
+		pinctrl-names = "default";
+
+		key-volume-up {
+			label = "Volume Up";
+			gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_VOLUMEUP>;
+			linux,can-disable;
+		};
+	};
+
+	hdmi-connector {
+		compatible = "hdmi-connector";
+		type = "a";
+
+		port {
+			hdmi_con: endpoint {
+				remote-endpoint = <&lt9611_out>;
+			};
+		};
+	};
+
+	pmic-glink {
+		compatible = "qcom,qcm6490-pmic-glink", "qcom,pmic-glink";
+
+		#address-cells = <1>;
+		#size-cells = <0>;
+		orientation-gpios = <&tlmm 140 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 = <&usb_dp_qmpphy_out>;
+					};
+				};
+
+				port@2 {
+					reg = <2>;
+
+					pmic_glink_sbu_in: endpoint {
+						remote-endpoint = <&usb1_sbu_mux>;
+					};
+				};
+			};
+		};
+	};
+
+	reserved-memory {
+		xbl_mem: xbl@80700000 {
+			reg = <0x0 0x80700000 0x0 0x100000>;
+			no-map;
+		};
+
+		cdsp_secure_heap_mem: cdsp-secure-heap@81800000 {
+			reg = <0x0 0x81800000 0x0 0x1e00000>;
+			no-map;
+		};
+
+		camera_mem: camera@84300000 {
+			reg = <0x0 0x84300000 0x0 0x500000>;
+			no-map;
+		};
+
+		adsp_mem: adsp@86100000 {
+			reg = <0x0 0x86100000 0x0 0x2800000>;
+			no-map;
+		};
+
+		cdsp_mem: cdsp@88900000 {
+			reg = <0x0 0x88900000 0x0 0x1e00000>;
+			no-map;
+		};
+
+		video_mem: video@8a700000 {
+			reg = <0x0 0x8a700000 0x0 0x700000>;
+			no-map;
+		};
+
+		cvp_mem: cvp@8ae00000 {
+			reg = <0x0 0x8ae00000 0x0 0x500000>;
+			no-map;
+		};
+
+		gpu_microcode_mem: gpu-microcode@8b31a000 {
+			reg = <0x0 0x8b31a000 0x0 0x2000>;
+			no-map;
+		};
+
+		tz_stat_mem: tz-stat@c0000000 {
+			reg = <0x0 0xc0000000 0x0 0x100000>;
+			no-map;
+		};
+
+		tags_mem: tags@c0100000 {
+			reg = <0x0 0xc0100000 0x0 0x1200000>;
+			no-map;
+		};
+
+		qtee_mem: qtee@c1300000 {
+			reg = <0x0 0xc1300000 0x0 0x500000>;
+			no-map;
+		};
+
+		trusted_apps_mem: trusted-apps@c1800000 {
+			reg = <0x0 0xc1800000 0x0 0x1c00000>;
+			no-map;
+		};
+
+		debug_vm_mem: debug-vm@d0600000 {
+			reg = <0x0 0xd0600000 0x0 0x100000>;
+			no-map;
+		};
+	};
+
+	thermal-zones {
+		xo-thermal {
+			thermal-sensors = <&pmk8350_adc_tm 0>;
+
+			trips {
+				active-config0 {
+					temperature = <125000>;
+					hysteresis = <1000>;
+					type = "passive";
+				};
+			};
+		};
+
+		quiet-thermal {
+			thermal-sensors = <&pmk8350_adc_tm 1>;
+
+			trips {
+				active-config0 {
+					temperature = <125000>;
+					hysteresis = <1000>;
+					type = "passive";
+				};
+			};
+		};
+
+		sdm-skin-thermal {
+			thermal-sensors = <&pmk8350_adc_tm 3>;
+
+			trips {
+				active-config0 {
+					temperature = <125000>;
+					hysteresis = <1000>;
+					type = "passive";
+				};
+			};
+		};
+	};
+
+	usb1-sbu-mux {
+		compatible = "pericom,pi3usb102", "gpio-sbu-mux";
+		enable-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>;
+		select-gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>;
+		pinctrl-0 = <&usb1_sbu_default>;
+		pinctrl-names = "default";
+		mode-switch;
+		orientation-switch;
+
+		port {
+			usb1_sbu_mux: endpoint {
+				remote-endpoint = <&pmic_glink_sbu_in>;
+			};
+		};
+	};
+
+	vreg_lt9611_3p3: vreg_lt9611_3p3 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "vreg_lt9611_3p3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+
+		gpio = <&tlmm 83 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&lt9611_vcc_pin>;
+		pinctrl-names = "default";
+	};
+
+	vreg_m2_1p8: vreg_m2_1p8 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "vreg_m2_1p8";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		regulator-enable-ramp-delay = <50000>;
+
+		gpio = <&tlmm 56 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&m2_vcc_pin>;
+		pinctrl-names = "default";
+
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
+	vph_pwr: vph-pwr-regulator {
+		compatible = "regulator-fixed";
+
+		regulator-name = "vph_pwr";
+		regulator-min-microvolt = <3700000>;
+		regulator-max-microvolt = <3700000>;
+	};
+
+	vreg_sdio_wifi_1p8: vreg_sdio_wifi_1p8 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "vreg_sdio_wifi_1p8";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		regulator-enable-ramp-delay = <50000>;
+
+		gpio = <&tlmm 125 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&wifi_reset_active>,
+			    <&wifi_host_wake>,
+			    <&wifi_power_on>;
+		pinctrl-names = "default";
+
+		regulator-always-on;
+	};
+
+	vreg_usbhub_1p8: vreg_usbhub_1p8 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "vreg_usbhub_1p8";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		regulator-enable-ramp-delay = <50000>;
+
+		gpio = <&tlmm 86 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&usbhub_power>;
+		pinctrl-names = "default";
+
+		regulator-always-on;
+	};
+
+	vreg_usb_eth_1p8: vreg_usb_eth_1p8 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "vreg_usb_eth_1p8";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		regulator-enable-ramp-delay = <50000>;
+
+		gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&usb_eth_power>;
+		pinctrl-names = "default";
+
+		vin-supply = <&vreg_usbhub_1p8>;
+	};
+
+	vreg_usbhub_rest: vreg_usbhub_rest {
+		compatible = "regulator-fixed";
+
+		regulator-name = "vreg_usbhub_rest";
+		regulator-min-microvolt = <1800000>;
+		regulator-enable-ramp-delay = <50000>;
+		regulator-max-microvolt = <1800000>;
+
+		gpio = <&tlmm 136 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&usbhub_rest>;
+		pinctrl-names = "default";
+
+		vin-supply = <&vreg_usb_eth_1p8>;
+
+		regulator-always-on;
+		regulator-boot-on;
+	};
+};
+
+&apps_rsc {
+	regulators-0 {
+		compatible = "qcom,pm7325-rpmh-regulators";
+		qcom,pmic-id = "b";
+
+		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>;
+		vdd-s7-supply = <&vph_pwr>;
+		vdd-s8-supply = <&vph_pwr>;
+		vdd-l1-l4-l12-l15-supply = <&vreg_s7b_0p972>;
+		vdd-l2-l7-supply = <&vreg_bob_3p296>;
+		vdd-l3-supply = <&vreg_s2b_0p876>;
+		vdd-l5-supply = <&vreg_s2b_0p876>;
+		vdd-l6-l9-l10-supply = <&vreg_s8b_1p272>;
+		vdd-l8-supply = <&vreg_s7b_0p972>;
+		vdd-l11-l17-l18-l19-supply = <&vreg_s1b_1p872>;
+		vdd-l13-supply = <&vreg_s7b_0p972>;
+		vdd-l14-l16-supply = <&vreg_s8b_1p272>;
+
+		vreg_s1b_1p872: smps1 {
+			regulator-name = "vreg_s1b_1p872";
+			regulator-min-microvolt = <1840000>;
+			regulator-max-microvolt = <2040000>;
+		};
+
+		vreg_s2b_0p876: smps2 {
+			regulator-name = "vreg_s2b_0p876";
+			regulator-min-microvolt = <570070>;
+			regulator-max-microvolt = <1050000>;
+		};
+
+		vreg_s7b_0p972: smps7 {
+			regulator-name = "vreg_s7b_0p972";
+			regulator-min-microvolt = <535000>;
+			regulator-max-microvolt = <1120000>;
+		};
+
+		vreg_s8b_1p272: smps8 {
+			regulator-name = "vreg_s8b_1p272";
+			regulator-min-microvolt = <1200000>;
+			regulator-max-microvolt = <1500000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
+		};
+
+		vreg_l1b_0p912: ldo1 {
+			regulator-name = "vreg_l1b_0p912";
+			regulator-min-microvolt = <825000>;
+			regulator-max-microvolt = <925000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l2b_3p072: ldo2 {
+			regulator-name = "vreg_l2b_3p072";
+			regulator-min-microvolt = <2700000>;
+			regulator-max-microvolt = <3544000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l3b_0p504: ldo3 {
+			regulator-name = "vreg_l3b_0p504";
+			regulator-min-microvolt = <312000>;
+			regulator-max-microvolt = <910000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l4b_0p752: ldo4 {
+			regulator-name = "vreg_l4b_0p752";
+			regulator-min-microvolt = <752000>;
+			regulator-max-microvolt = <820000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		reg_l5b_0p752: ldo5 {
+			regulator-name = "reg_l5b_0p752";
+			regulator-min-microvolt = <552000>;
+			regulator-max-microvolt = <832000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l6b_1p2: ldo6 {
+			regulator-name = "vreg_l6b_1p2";
+			regulator-min-microvolt = <1140000>;
+			regulator-max-microvolt = <1260000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l7b_2p952: ldo7 {
+			regulator-name = "vreg_l7b_2p952";
+			regulator-min-microvolt = <2952000>;
+			regulator-max-microvolt = <2952000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l8b_0p904: ldo8 {
+			regulator-name = "vreg_l8b_0p904";
+			regulator-min-microvolt = <870000>;
+			regulator-max-microvolt = <970000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l9b_1p2: ldo9 {
+			regulator-name = "vreg_l9b_1p2";
+			regulator-min-microvolt = <1200000>;
+			regulator-max-microvolt = <1200000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+			regulator-allow-set-load;
+			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+						   RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l11b_1p504: ldo11 {
+			regulator-name = "vreg_l11b_1p504";
+			regulator-min-microvolt = <1504000>;
+			regulator-max-microvolt = <2000000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l12b_0p751: ldo12 {
+			regulator-name = "vreg_l12b_0p751";
+			regulator-min-microvolt = <751000>;
+			regulator-max-microvolt = <824000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l13b_0p53: ldo13 {
+			regulator-name = "vreg_l13b_0p53";
+			regulator-min-microvolt = <530000>;
+			regulator-max-microvolt = <824000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l14b_1p08: ldo14 {
+			regulator-name = "vreg_l14b_1p08";
+			regulator-min-microvolt = <1080000>;
+			regulator-max-microvolt = <1304000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l15b_0p765: ldo15 {
+			regulator-name = "vreg_l15b_0p765";
+			regulator-min-microvolt = <765000>;
+			regulator-max-microvolt = <1020000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l16b_1p1: ldo16 {
+			regulator-name = "vreg_l16b_1p1";
+			regulator-min-microvolt = <1100000>;
+			regulator-max-microvolt = <1300000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l17b_1p7: ldo17 {
+			regulator-name = "vreg_l17b_1p7";
+			regulator-min-microvolt = <1700000>;
+			regulator-max-microvolt = <1900000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l18b_1p8: ldo18 {
+			regulator-name = "vreg_l18b_1p8";
+			regulator-min-microvolt = <1800000>;
+			regulator-max-microvolt = <2000000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l19b_1p8: ldo19 {
+			regulator-name = "vreg_l19b_1p8";
+			regulator-min-microvolt = <1800000>;
+			regulator-max-microvolt = <2000000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+	};
+
+	regulators-1 {
+		compatible = "qcom,pm8350c-rpmh-regulators";
+		qcom,pmic-id = "c";
+
+		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>;
+		vdd-s7-supply = <&vph_pwr>;
+		vdd-s8-supply = <&vph_pwr>;
+		vdd-s9-supply = <&vph_pwr>;
+		vdd-s10-supply = <&vph_pwr>;
+		vdd-l1-l12-supply = <&vreg_s1b_1p872>;
+		vdd-l2-l8-supply = <&vreg_s1b_1p872>;
+		vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob_3p296>;
+		vdd-l6-l9-l11-supply = <&vreg_bob_3p296>;
+		vdd-l10-supply = <&vreg_s7b_0p972>;
+		vdd-bob-supply = <&vph_pwr>;
+
+		vreg_s1c_2p19: smps1 {
+			regulator-name = "vreg_s1c_2p19";
+			regulator-min-microvolt = <2190000>;
+			regulator-max-microvolt = <2210000>;
+		};
+
+		vreg_s2c_0p752: smps2 {
+			regulator-name = "vreg_s2c_0p752";
+			regulator-min-microvolt = <750000>;
+			regulator-max-microvolt = <800000>;
+		};
+
+		vreg_s5c_0p752: smps5 {
+			regulator-name = "vreg_s5c_0p752";
+			regulator-min-microvolt = <465000>;
+			regulator-max-microvolt = <1050000>;
+		};
+
+		vreg_s7c_0p752: smps7 {
+			regulator-name = "vreg_s7c_0p752";
+			regulator-min-microvolt = <465000>;
+			regulator-max-microvolt = <800000>;
+		};
+
+		vreg_s9c_1p084: smps9 {
+			regulator-name = "vreg_s9c_1p084";
+			regulator-min-microvolt = <1010000>;
+			regulator-max-microvolt = <1170000>;
+		};
+
+		vreg_l1c_1p8: ldo1 {
+			regulator-name = "vreg_l1c_1p8";
+			regulator-min-microvolt = <1800000>;
+			regulator-max-microvolt = <1980000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l2c_1p62: ldo2 {
+			regulator-name = "vreg_l2c_1p62";
+			regulator-min-microvolt = <1620000>;
+			regulator-max-microvolt = <1980000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l3c_2p8: ldo3 {
+			regulator-name = "vreg_l3c_2p8";
+			regulator-min-microvolt = <2800000>;
+			regulator-max-microvolt = <3540000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l4c_1p62: ldo4 {
+			regulator-name = "vreg_l4c_1p62";
+			regulator-min-microvolt = <1620000>;
+			regulator-max-microvolt = <3300000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l5c_1p62: ldo5 {
+			regulator-name = "vreg_l5c_1p62";
+			regulator-min-microvolt = <1620000>;
+			regulator-max-microvolt = <3300000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l6c_2p96: ldo6 {
+			regulator-name = "vreg_l6c_2p96";
+			regulator-min-microvolt = <1800000>;
+			regulator-max-microvolt = <1800000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l7c_3p0: ldo7 {
+			regulator-name = "vreg_l7c_3p0";
+			regulator-min-microvolt = <3000000>;
+			regulator-max-microvolt = <3544000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l8c_1p62: ldo8 {
+			regulator-name = "vreg_l8c_1p62";
+			regulator-min-microvolt = <1620000>;
+			regulator-max-microvolt = <2000000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l9c_2p96: ldo9 {
+			regulator-name = "vreg_l9c_2p96";
+			regulator-min-microvolt = <2700000>;
+			regulator-max-microvolt = <3544000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l10c_0p88: ldo10 {
+			regulator-name = "vreg_l10c_0p88";
+			regulator-min-microvolt = <720000>;
+			regulator-max-microvolt = <1050000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l11c_2p8: ldo11 {
+			regulator-name = "vreg_l11c_2p8";
+			regulator-min-microvolt = <2800000>;
+			regulator-max-microvolt = <3544000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l12c_1p65: ldo12 {
+			regulator-name = "vreg_l12c_1p65";
+			regulator-min-microvolt = <1650000>;
+			regulator-max-microvolt = <2000000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_l13c_2p7: ldo13 {
+			regulator-name = "vreg_l13c_2p7";
+			regulator-min-microvolt = <2700000>;
+			regulator-max-microvolt = <3544000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
+		vreg_bob_3p296: bob {
+			regulator-name = "vreg_bob_3p296";
+			regulator-min-microvolt = <3008000>;
+			regulator-max-microvolt = <3960000>;
+		};
+	};
+};
+
+&gcc {
+	protected-clocks = <GCC_CFG_NOC_LPASS_CLK>,
+			   <GCC_MSS_CFG_AHB_CLK>,
+			   <GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>,
+			   <GCC_MSS_OFFLINE_AXI_CLK>,
+			   <GCC_MSS_Q6SS_BOOT_CLK_SRC>,
+			   <GCC_MSS_Q6_MEMNOC_AXI_CLK>,
+			   <GCC_MSS_SNOC_AXI_CLK>,
+			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
+			   <GCC_QSPI_CORE_CLK>,
+			   <GCC_QSPI_CORE_CLK_SRC>,
+			   <GCC_SEC_CTRL_CLK_SRC>,
+			   <GCC_WPSS_AHB_BDG_MST_CLK>,
+			   <GCC_WPSS_AHB_CLK>,
+			   <GCC_WPSS_RSCP_CLK>;
+};
+
+&gpi_dma0 {
+	status = "okay";
+};
+
+&gpi_dma1 {
+	status = "okay";
+};
+
+&gpu {
+	status = "okay";
+};
+
+&gpu_zap_shader {
+	firmware-name = "qcom/qcs6490/a660_zap.mbn";
+};
+
+/* Pin 3, 5 in 40-pin connector */
+&i2c1 {
+	status = "okay";
+};
+
+&i2c9 {
+	clock-frequency = <400000>;
+
+	status = "okay";
+
+	lt9611_codec: hdmi-bridge@39 {
+		compatible = "lontium,lt9611";
+		reg = <0x39>;
+
+		interrupts-extended = <&tlmm 20 IRQ_TYPE_EDGE_FALLING>;
+		reset-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
+
+		vdd-supply = <&vreg_lt9611_3p3>;
+		vcc-supply = <&vreg_lt9611_3p3>;
+
+		pinctrl-0 = <&lt9611_irq_pin>,
+			    <&lt9611_rst_pin>;
+		pinctrl-names = "default";
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				lt9611_a: endpoint {
+					remote-endpoint = <&mdss_dsi0_out>;
+				};
+			};
+
+			port@2 {
+				reg = <2>;
+
+				lt9611_out: endpoint {
+					remote-endpoint = <&hdmi_con>;
+				};
+			};
+		};
+	};
+};
+
+&lpass_audiocc {
+	compatible = "qcom,qcm6490-lpassaudiocc";
+	/delete-property/ power-domains;
+};
+
+&mdss {
+	status = "okay";
+};
+
+&mdss_dp {
+	status = "okay";
+};
+
+&mdss_dp_out {
+	data-lanes = <0 1>;
+	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+
+	remote-endpoint = <&usb_dp_qmpphy_dp_in>;
+};
+
+&mdss_dsi {
+	vdda-supply = <&vreg_l6b_1p2>;
+
+	status = "okay";
+};
+
+&mdss_dsi0_out {
+	remote-endpoint = <&lt9611_a>;
+	data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi_phy {
+	vdds-supply = <&vreg_l10c_0p88>;
+
+	status = "okay";
+};
+
+&pcie0 {
+	status = "okay";
+};
+
+&pcie0_phy {
+	vdda-phy-supply = <&vreg_l10c_0p88>;
+	vdda-pll-supply = <&vreg_l6b_1p2>;
+
+	status = "okay";
+};
+
+&pcie1 {
+	perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
+	wake-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>;
+
+	pinctrl-0 = <&pcie1_reset_n>,
+		    <&pcie1_wake_n>,
+		    <&pcie1_clkreq_n>;
+	pinctrl-names = "default";
+
+	status = "okay";
+};
+
+&pcie1_phy {
+	vdda-phy-supply = <&vreg_l10c_0p88>;
+	vdda-pll-supply = <&vreg_l6b_1p2>;
+
+	status = "okay";
+};
+
+&pm7325_gpios {
+	kypd_vol_up_n: kypd-vol-up-n-state {
+		pins = "gpio6";
+		function = PMIC_GPIO_FUNC_NORMAL;
+		power-source = <1>;
+		bias-pull-up;
+		input-enable;
+	};
+};
+
+&pm7325_temp_alarm {
+	io-channels = <&pmk8350_vadc PM7325_ADC7_DIE_TEMP>;
+	io-channel-names = "thermal";
+};
+
+&pmk8350_adc_tm {
+	status = "okay";
+
+	xo-therm@0 {
+		reg = <0>;
+		io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
+		qcom,ratiometric;
+		qcom,hw-settle-time-us = <200>;
+	};
+
+	quiet-therm@1 {
+		reg = <1>;
+		io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>;
+		qcom,ratiometric;
+		qcom,hw-settle-time-us = <200>;
+	};
+
+	sdm-skin-therm@3 {
+		reg = <3>;
+		io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>;
+		qcom,ratiometric;
+		qcom,hw-settle-time-us = <200>;
+	};
+};
+
+&pm8350c_pwm {
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	status = "okay";
+
+	led@1 {
+		reg = <1>;
+		color = <LED_COLOR_ID_GREEN>;
+		function = LED_FUNCTION_INDICATOR;
+		function-enumerator = <3>;
+		linux,default-trigger = "none";
+		default-state = "off";
+		panic-indicator;
+		label = "red";
+	};
+
+	led@2 {
+		reg = <2>;
+		color = <LED_COLOR_ID_GREEN>;
+		function = LED_FUNCTION_INDICATOR;
+		function-enumerator = <2>;
+		linux,default-trigger = "none";
+		default-state = "off";
+		label = "green";
+	};
+
+	led@3 {
+		reg = <3>;
+		color = <LED_COLOR_ID_GREEN>;
+		function = LED_FUNCTION_INDICATOR;
+		function-enumerator = <1>;
+		linux,default-trigger = "none";
+		default-state = "off";
+		label = "blue";
+	};
+};
+
+&pmk8350_rtc {
+	allow-set-time;
+
+	status = "okay";
+};
+
+&pmk8350_vadc {
+	channel@3 {
+		reg = <PMK8350_ADC7_DIE_TEMP>;
+		label = "pmk8350_die_temp";
+		qcom,pre-scaling = <1 1>;
+	};
+
+	channel@44 {
+		reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
+		label = "xo_therm";
+		qcom,hw-settle-time = <200>;
+		qcom,pre-scaling = <1 1>;
+		qcom,ratiometric;
+	};
+
+	channel@103 {
+		reg = <PM7325_ADC7_DIE_TEMP>;
+		label = "pm7325_die_temp";
+		qcom,pre-scaling = <1 1>;
+	};
+
+	channel@144 {
+		reg = <PM7325_ADC7_AMUX_THM1_100K_PU>;
+		qcom,ratiometric;
+		qcom,hw-settle-time = <200>;
+		qcom,pre-scaling = <1 1>;
+		label = "pm7325_quiet_therm";
+	};
+
+	channel@146 {
+		reg = <PM7325_ADC7_AMUX_THM3_100K_PU>;
+		qcom,ratiometric;
+		qcom,hw-settle-time = <200>;
+		qcom,pre-scaling = <1 1>;
+		label = "pm7325_sdm_skin_therm";
+	};
+};
+
+&pon_pwrkey {
+	status = "okay";
+};
+
+&pon_resin {
+	linux,code = <KEY_VOLUMEDOWN>;
+
+	status = "okay";
+};
+
+&qupv3_id_0 {
+	status = "okay";
+};
+
+&qupv3_id_1 {
+	status = "okay";
+};
+
+&remoteproc_adsp {
+	firmware-name = "qcom/qcs6490/adsp.mbn";
+
+	status = "okay";
+};
+
+&remoteproc_cdsp {
+	firmware-name = "qcom/qcs6490/cdsp.mbn";
+
+	status = "okay";
+};
+
+/* WIFI part of the AP6256 connected with SDIO */
+&sdhc_2 {
+	vmmc-supply = <&vreg_l9c_2p96>;
+	vqmmc-supply = <&vreg_l6c_2p96>;
+
+	non-removable;
+	keep-power-in-suspend;
+	/delete-property/ cd-gpios;
+
+	status = "okay";
+};
+
+/* Pin 19, 21, 23, 24 in 40-pin connector */
+&spi12 {
+	status = "okay";
+};
+
+/* Pin 8, 10 in 40-pin connector */
+&uart2 {
+	status = "okay";
+};
+
+&uart5 {
+	status = "okay";
+};
+
+/* BT part of the AP6256 connected with UART */
+&uart7 {
+	/delete-property/ interrupts;
+	interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
+			      <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
+	pinctrl-1 = <&qup_uart7_sleep_cts>,
+		    <&qup_uart7_sleep_rts>,
+		    <&qup_uart7_sleep_tx>,
+		    <&qup_uart7_sleep_rx>;
+	pinctrl-names = "default",
+			"sleep";
+
+	status = "okay";
+
+	bluetooth {
+		compatible = "brcm,bcm4345c5";
+		clocks = <&sleep_clk>;
+		clock-names = "lpo";
+		device-wakeup-gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>;
+		host-wakeup-gpios = <&tlmm 137 GPIO_ACTIVE_HIGH>;
+		shutdown-gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>;
+		pinctrl-0 = <&bt_device_wake>,
+			    <&bt_host_wake>,
+			    <&bt_reset>;
+		pinctrl-names = "default";
+		vbat-supply = <&vreg_sdio_wifi_1p8>;
+		vddio-supply = <&vreg_sdio_wifi_1p8>;
+		max-speed = <3000000>;
+	};
+};
+
+&usb_1 {
+	dr_mode = "otg";
+
+	status = "okay";
+};
+
+&usb_1_dwc3_hs {
+	remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&usb_1_hsphy {
+	vdda-pll-supply = <&vreg_l10c_0p88>;
+	vdda33-supply = <&vreg_l2b_3p072>;
+	vdda18-supply = <&vreg_l1c_1p8>;
+
+	status = "okay";
+};
+
+&usb_1_qmpphy {
+	vdda-phy-supply = <&vreg_l6b_1p2>;
+	vdda-pll-supply = <&vreg_l1b_0p912>;
+
+	status = "okay";
+};
+
+&usb_2 {
+	dr_mode = "host";
+
+	status = "okay";
+};
+
+&usb_2_hsphy {
+	vdda-pll-supply = <&vreg_l10c_0p88>;
+	vdda18-supply = <&vreg_l1c_1p8>;
+	vdda33-supply = <&vreg_l2b_3p072>;
+
+	status = "okay";
+};
+
+&usb_dp_qmpphy_out {
+	remote-endpoint = <&pmic_glink_ss_in>;
+};
+
+&ufs_mem_hc {
+	reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
+	vcc-supply = <&vreg_l7b_2p952>;
+	vcc-max-microamp = <800000>;
+	vccq-supply = <&vreg_l9b_1p2>;
+	vccq-max-microamp = <900000>;
+	vccq2-supply = <&vreg_l9b_1p2>;
+	vccq2-max-microamp = <900000>;
+
+	status = "okay";
+};
+
+&ufs_mem_phy {
+	vdda-phy-supply = <&vreg_l10c_0p88>;
+	vdda-pll-supply = <&vreg_l6b_1p2>;
+
+	status = "okay";
+};
+
+&venus {
+	status = "okay";
+};
+
+&thermal_zones {
+	cpu0-thermal {
+		trips {
+			cpu_tepid: cpu-tepid {
+				temperature = <65000>;
+				hysteresis = <5000>;
+				type = "active";
+			};
+
+			cpu_warm: cpu-warm {
+				temperature = <80000>;
+				hysteresis = <5000>;
+				type = "active";
+			};
+
+			cpu_hot: cpu-hot {
+				temperature = <90000>;
+				hysteresis = <5000>;
+				type = "active";
+			};
+		};
+
+		cooling-maps {
+			map-cpu-tepid {
+				/* active: set fan to cooling level 1 */
+				cooling-device = <&fan0 1 1>;
+				trip = <&cpu_tepid>;
+			};
+
+			map-cpu-warm {
+				/* active: set fan to cooling level 2 */
+				cooling-device = <&fan0 2 2>;
+				trip = <&cpu_warm>;
+			};
+
+			map-cpu-hot {
+				/* active: set fan to cooling level 3 */
+				cooling-device = <&fan0 3 3>;
+				trip = <&cpu_hot>;
+			};
+		};
+	};
+};
+
+/* PINCTRL - ADDITIONS TO NODES IN PARENT DEVICE TREE FILES */
+
+&pm8350c_gpios {
+	fan_pwm_out_default: fan-pwm-out-default-state {
+		pins = "gpio8";
+		function = "func1";
+		power-source = <1>;
+		drive-push-pull;
+		output-high;
+		qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+	};
+};
+
+&sdc2_clk {
+	bias-disable;
+	drive-strength = <16>;
+};
+
+&sdc2_cmd {
+	bias-pull-up;
+	drive-strength = <10>;
+};
+
+&sdc2_data {
+	bias-pull-up;
+	drive-strength = <10>;
+};
+
+&tlmm {
+	pcie1_reset_n: pcie1-reset-n-state {
+		pins = "gpio2";
+		function = "gpio";
+		drive-strength = <16>;
+		output-low;
+		bias-disable;
+	};
+
+	pcie1_wake_n: pcie1-wake-n-state {
+		pins = "gpio3";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-pull-up;
+	};
+
+	usb_eth_power: usb-eth-power-state {
+		pins = "gpio7";
+		function = "gpio";
+		drive-strength = <16>;
+		bias-disable;
+	};
+
+	wifi_reset_active: wifi-reset-active-state {
+		pins = "gpio16";
+		function = "gpio";
+		drive-strength = <2>;
+		output-high;
+		bias-disable;
+	};
+
+	bt_reset: bt-reset-state {
+		pins = "gpio17";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	lt9611_irq_pin: lt9611-irq-state {
+		pins = "gpio20";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	lt9611_rst_pin: lt9611-rst-state {
+		pins = "gpio21";
+		function = "gpio";
+		output-high;
+		input-disable;
+	};
+
+	qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
+		pins = "gpio28";
+		function = "gpio";
+		/*
+		 * Configure a bias-bus-hold on CTS to lower power
+		 * usage when Bluetooth is turned off. Bus hold will
+		 * maintain a low power state regardless of whether
+		 * the Bluetooth module drives the pin in either
+		 * direction or leaves the pin fully unpowered.
+		 */
+		bias-bus-hold;
+	};
+
+	qup_uart7_sleep_rts: qup-uart7-sleep-rts-state {
+		pins = "gpio29";
+		function = "gpio";
+		/*
+		 * Configure pull-down on RTS. As RTS is active low
+		 * signal, pull it low to indicate the BT SoC that it
+		 * can wakeup the system anytime from suspend state by
+		 * pulling RX low (by sending wakeup bytes).
+		 */
+		bias-pull-down;
+	};
+
+	qup_uart7_sleep_tx: qup-uart7-sleep-tx-state {
+		pins = "gpio30";
+		function = "gpio";
+		/*
+		 * Configure pull-up on TX when it isn't actively driven
+		 * to prevent BT SoC from receiving garbage during sleep.
+		 */
+		bias-pull-up;
+	};
+
+	qup_uart7_sleep_rx: qup-uart7-sleep-rx-state {
+		pins = "gpio31";
+		function = "gpio";
+		/*
+		 * Configure a pull-up on RX. This is needed to avoid
+		 * garbage data when the TX pin of the Bluetooth module
+		 * is floating which may cause spurious wakeups.
+		 */
+		bias-pull-up;
+	};
+
+	wifi_host_wake: wifi-host-wake-state {
+		pins = "gpio38";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	bt_device_wake: bt-device-wake-state {
+		pins = "gpio39";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	usb1_sbu_default: usb1-sbu-state {
+		sel-pins {
+			pins = "gpio52";
+			function = "gpio";
+			bias-disable;
+			drive-strength = <16>;
+		};
+
+		oe-n-pins {
+			pins = "gpio53";
+			function = "gpio";
+			bias-disable;
+			drive-strength = <16>;
+			output-high;
+		};
+	};
+
+	m2_vcc_pin: m2-vcc-state {
+		pins = "gpio56";
+		function = "gpio";
+		output-high;
+		input-disable;
+	};
+
+	lt9611_vcc_pin: lt9611-vcc-pin-state {
+		pins = "gpio83";
+		function = "gpio";
+		output-high;
+		input-disable;
+	};
+
+	usbhub_power: usbhub-power-state {
+		pins = "gpio86";
+		function = "gpio";
+		drive-strength = <16>;
+		bias-disable;
+	};
+
+	wifi_power_on: wifi-power-on-state {
+		pins = "gpio125";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	usbhub_rest: usbhub-reset-state {
+		pins = "gpio136";
+		function = "gpio";
+		drive-strength = <16>;
+		bias-disable;
+	};
+
+	bt_host_wake: bt-host-wake-state {
+		pins = "gpio137";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+};
+
+&qup_uart7_cts {
+	/*
+	 * Configure a bias-bus-hold on CTS to lower power
+	 * usage when Bluetooth is turned off. Bus hold will
+	 * maintain a low power state regardless of whether
+	 * the Bluetooth module drives the pin in either
+	 * direction or leaves the pin fully unpowered.
+	 */
+	bias-bus-hold;
+};
+
+&qup_uart7_rts {
+	/* We'll drive RTS, so no pull */
+	drive-strength = <2>;
+	bias-disable;
+};
+
+&qup_uart7_rx {
+	/*
+	 * Configure a pull-up on RX. This is needed to avoid
+	 * garbage data when the TX pin of the Bluetooth module is
+	 * in tri-state (module powered off or not driving the
+	 * signal yet).
+	 */
+	bias-pull-up;
+};
+
+&qup_uart7_tx {
+	/* We'll drive TX, so no pull */
+	drive-strength = <2>;
+	bias-disable;
+};
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v5 2/2] dt-bindings: arm: qcom: rubikpi3: document rubikpi3 board binding
  2025-10-25 12:27 [PATCH v5 0/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts Hongyang Zhao
  2025-10-25 12:27 ` [PATCH v5 1/2] " Hongyang Zhao
@ 2025-10-25 12:27 ` Hongyang Zhao
  2025-10-26  9:05   ` Krzysztof Kozlowski
  1 sibling, 1 reply; 14+ messages in thread
From: Hongyang Zhao @ 2025-10-25 12:27 UTC (permalink / raw)
  To: linux-arm-msm
  Cc: casey.connolly, christopher.obbard, loic.minier, andersson,
	Hongyang Zhao, Roger Shimizu

Add binding for the Thundercomm RUBIK Pi 3 board,
which is based on the Qualcomm Dragonwing QCS6490 SoC.

Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com>
Reviewed-by: Roger Shimizu <rosh@debian.org>
Cc: Casey Connolly <casey.connolly@linaro.org>
Cc: Christopher Obbard <christopher.obbard@linaro.org>
Cc: Loic Minier <loic.minier@oss.qualcomm.com>
---
 Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index 18b5ed044f9f..0275f81c7cb0 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -341,6 +341,7 @@ properties:
               - qcom,qcm6490-idp
               - qcom,qcs6490-rb3gen2
               - shift,otter
+              - thundercomm,rubikpi3
           - const: qcom,qcm6490
 
       - description: Qualcomm Technologies, Inc. Distributed Unit 1000 platform
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH v5 2/2] dt-bindings: arm: qcom: rubikpi3: document rubikpi3 board binding
  2025-10-25 12:27 ` [PATCH v5 2/2] dt-bindings: arm: qcom: rubikpi3: document rubikpi3 board binding Hongyang Zhao
@ 2025-10-26  9:05   ` Krzysztof Kozlowski
  2025-10-30  2:33     ` [PATCH v5 2/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts Hongyang Zhao
  0 siblings, 1 reply; 14+ messages in thread
From: Krzysztof Kozlowski @ 2025-10-26  9:05 UTC (permalink / raw)
  To: Hongyang Zhao, linux-arm-msm
  Cc: casey.connolly, christopher.obbard, loic.minier, andersson,
	Roger Shimizu

On 25/10/2025 14:27, Hongyang Zhao wrote:
> Add binding for the Thundercomm RUBIK Pi 3 board,
> which is based on the Qualcomm Dragonwing QCS6490 SoC.
> 
> Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com>
> Reviewed-by: Roger Shimizu <rosh@debian.org>
> Cc: Casey Connolly <casey.connolly@linaro.org>
> Cc: Christopher Obbard <christopher.obbard@linaro.org>
> Cc: Loic Minier <loic.minier@oss.qualcomm.com>


You ignored comments. Respond to them and then implement them.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v5 1/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts
  2025-10-25 12:27 ` [PATCH v5 1/2] " Hongyang Zhao
@ 2025-10-27 14:51   ` Dmitry Baryshkov
  2025-10-31  9:27     ` Hongyang Zhao
  0 siblings, 1 reply; 14+ messages in thread
From: Dmitry Baryshkov @ 2025-10-27 14:51 UTC (permalink / raw)
  To: Hongyang Zhao
  Cc: linux-arm-msm, casey.connolly, christopher.obbard, loic.minier,
	andersson, Roger Shimizu

On Sat, Oct 25, 2025 at 08:27:22PM +0800, Hongyang Zhao wrote:
> Add DTS for Thundercomm qcs6490-rubikpi3 board which uses
> QCS6490 SoC.
> 
> Works:
> - Bluetooth (AP6256)
> - Wi-Fi (AP6256)
> - Ethernet (AX88179B connected to UPD720201)
> - FAN
> - Two USB Type-A 3.0 ports (UPD720201 connected to PCIe0)
> - M.2 M-Key 2280 PCIe 3.0
> - RTC
> - USB Type-C
> - USB Type-A 2.0 port
> - 40PIN: I2C x1, UART x1
> 
> Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com>
> Reviewed-by: Roger Shimizu <rosh@debian.org>
> Cc: Casey Connolly <casey.connolly@linaro.org>
> Cc: Christopher Obbard <christopher.obbard@linaro.org>
> Cc: Loic Minier <loic.minier@oss.qualcomm.com>
> ---
>  arch/arm64/boot/dts/qcom/Makefile             |    1 +
>  .../dts/qcom/qcs6490-thundercomm-rubikpi3.dts | 1390 +++++++++++++++++
>  2 files changed, 1391 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts
> 
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 296688f7cb26..74938791f62d 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -133,6 +133,7 @@ qcs6490-rb3gen2-industrial-mezzanine-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2
>  
>  dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-rb3gen2-industrial-mezzanine.dtb
>  dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-rb3gen2-vision-mezzanine.dtb
> +dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-thundercomm-rubikpi3.dtb
>  dtb-$(CONFIG_ARCH_QCOM)	+= qcs8300-ride.dtb
>  dtb-$(CONFIG_ARCH_QCOM)	+= qcs8550-aim300-aiot.dtb
>  dtb-$(CONFIG_ARCH_QCOM)	+= qcs9100-ride.dtb
> diff --git a/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts b/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts
> new file mode 100644
> index 000000000000..e08c2afbf849
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts
> @@ -0,0 +1,1390 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) 2025, Thundercomm All rights reserved.
> + */
> +
> +/dts-v1/;
> +
> +/* PM7250B is configured to use SID8/9 */
> +#define PM7250B_SID 8
> +#define PM7250B_SID1 9
> +
> +#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
> +#include <dt-bindings/iio/qcom,spmi-adc7-pm7325.h>
> +#include <dt-bindings/leds/common.h>
> +#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> +#include "sc7280.dtsi"
> +#include "pm7250b.dtsi"
> +#include "pm7325.dtsi"
> +#include "pm8350c.dtsi"
> +#include "pmk8350.dtsi"
> +
> +/delete-node/ &adsp_mem;
> +/delete-node/ &cdsp_mem;
> +/delete-node/ &ipa_fw_mem;
> +/delete-node/ &mpss_mem;
> +/delete-node/ &remoteproc_mpss;
> +/delete-node/ &remoteproc_wpss;
> +/delete-node/ &rmtfs_mem;
> +/delete-node/ &video_mem;
> +/delete-node/ &wifi;
> +/delete-node/ &wlan_ce_mem;
> +/delete-node/ &wlan_fw_mem;
> +/delete-node/ &wpss_mem;
> +/delete-node/ &xbl_mem;
> +
> +/ {
> +	model = "Thundercomm RUBIK Pi 3";
> +	compatible = "thundercomm,rubikpi3", "qcom,qcm6490";
> +
> +	chassis-type = "embedded";
> +
> +	aliases {
> +		serial0 = &uart5;
> +	};
> +
> +	chosen {
> +		stdout-path = "serial0:115200n8";
> +	};
> +
> +	fan0: pwm-fan {

'pwm' > 'gpio'

> +		compatible = "pwm-fan";
> +		/* cooling level (0, 1, 2, 3) : (0% duty, 25% duty, 50% duty, 100% duty) */
> +		cooling-levels = <0 64 128 255>;
> +		#cooling-cells = <2>;
> +		pwms = <&pm8350c_pwm 3 1000000>;
> +		pinctrl-0 = <&fan_pwm_out_default>;
> +		pinctrl-names = "default";
> +	};
> +
> +	gpio-keys {
> +		compatible = "gpio-keys";
> +
> +		pinctrl-0 = <&kypd_vol_up_n>;
> +		pinctrl-names = "default";
> +
> +		key-volume-up {
> +			label = "Volume Up";
> +			gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_VOLUMEUP>;
> +			linux,can-disable;
> +		};
> +	};
> +
> +	hdmi-connector {
> +		compatible = "hdmi-connector";
> +		type = "a";
> +
> +		port {
> +			hdmi_con: endpoint {
> +				remote-endpoint = <&lt9611_out>;
> +			};
> +		};
> +	};
> +
> +	pmic-glink {
> +		compatible = "qcom,qcm6490-pmic-glink", "qcom,pmic-glink";
> +
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		orientation-gpios = <&tlmm 140 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 = <&usb_dp_qmpphy_out>;
> +					};
> +				};
> +
> +				port@2 {
> +					reg = <2>;
> +
> +					pmic_glink_sbu_in: endpoint {
> +						remote-endpoint = <&usb1_sbu_mux>;
> +					};
> +				};
> +			};
> +		};
> +	};
> +
> +	reserved-memory {
> +		xbl_mem: xbl@80700000 {
> +			reg = <0x0 0x80700000 0x0 0x100000>;
> +			no-map;
> +		};
> +
> +		cdsp_secure_heap_mem: cdsp-secure-heap@81800000 {
> +			reg = <0x0 0x81800000 0x0 0x1e00000>;
> +			no-map;
> +		};
> +
> +		camera_mem: camera@84300000 {
> +			reg = <0x0 0x84300000 0x0 0x500000>;
> +			no-map;
> +		};
> +
> +		adsp_mem: adsp@86100000 {
> +			reg = <0x0 0x86100000 0x0 0x2800000>;
> +			no-map;
> +		};
> +
> +		cdsp_mem: cdsp@88900000 {
> +			reg = <0x0 0x88900000 0x0 0x1e00000>;
> +			no-map;
> +		};
> +
> +		video_mem: video@8a700000 {
> +			reg = <0x0 0x8a700000 0x0 0x700000>;
> +			no-map;
> +		};
> +
> +		cvp_mem: cvp@8ae00000 {
> +			reg = <0x0 0x8ae00000 0x0 0x500000>;
> +			no-map;
> +		};
> +
> +		gpu_microcode_mem: gpu-microcode@8b31a000 {
> +			reg = <0x0 0x8b31a000 0x0 0x2000>;
> +			no-map;
> +		};
> +
> +		tz_stat_mem: tz-stat@c0000000 {
> +			reg = <0x0 0xc0000000 0x0 0x100000>;
> +			no-map;
> +		};
> +
> +		tags_mem: tags@c0100000 {
> +			reg = <0x0 0xc0100000 0x0 0x1200000>;
> +			no-map;
> +		};
> +
> +		qtee_mem: qtee@c1300000 {
> +			reg = <0x0 0xc1300000 0x0 0x500000>;
> +			no-map;
> +		};
> +
> +		trusted_apps_mem: trusted-apps@c1800000 {
> +			reg = <0x0 0xc1800000 0x0 0x1c00000>;
> +			no-map;
> +		};
> +
> +		debug_vm_mem: debug-vm@d0600000 {
> +			reg = <0x0 0xd0600000 0x0 0x100000>;
> +			no-map;
> +		};
> +	};
> +
> +	thermal-zones {
> +		xo-thermal {

quiet, sdm, xo.

> +			thermal-sensors = <&pmk8350_adc_tm 0>;
> +
> +			trips {
> +				active-config0 {
> +					temperature = <125000>;
> +					hysteresis = <1000>;
> +					type = "passive";
> +				};
> +			};
> +		};
> +
> +		quiet-thermal {
> +			thermal-sensors = <&pmk8350_adc_tm 1>;
> +
> +			trips {
> +				active-config0 {
> +					temperature = <125000>;
> +					hysteresis = <1000>;
> +					type = "passive";
> +				};
> +			};
> +		};
> +
> +		sdm-skin-thermal {
> +			thermal-sensors = <&pmk8350_adc_tm 3>;
> +
> +			trips {
> +				active-config0 {
> +					temperature = <125000>;
> +					hysteresis = <1000>;
> +					type = "passive";
> +				};
> +			};
> +		};
> +	};
> +
> +	usb1-sbu-mux {
> +		compatible = "pericom,pi3usb102", "gpio-sbu-mux";
> +		enable-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>;
> +		select-gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>;
> +		pinctrl-0 = <&usb1_sbu_default>;
> +		pinctrl-names = "default";
> +		mode-switch;
> +		orientation-switch;
> +
> +		port {
> +			usb1_sbu_mux: endpoint {
> +				remote-endpoint = <&pmic_glink_sbu_in>;
> +			};
> +		};
> +	};
> +
> +	vreg_lt9611_3p3: vreg_lt9611_3p3 {

regulator-foo-bar-baz, please. This way VPH PWR doesn't stand out.

> +		compatible = "regulator-fixed";
> +
> +		regulator-name = "vreg_lt9611_3p3";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +
> +		gpio = <&tlmm 83 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +
> +		pinctrl-0 = <&lt9611_vcc_pin>;
> +		pinctrl-names = "default";
> +	};
> +
> +	vreg_m2_1p8: vreg_m2_1p8 {
> +		compatible = "regulator-fixed";
> +
> +		regulator-name = "vreg_m2_1p8";
> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <1800000>;
> +		regulator-enable-ramp-delay = <50000>;
> +
> +		gpio = <&tlmm 56 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +
> +		pinctrl-0 = <&m2_vcc_pin>;
> +		pinctrl-names = "default";
> +
> +		regulator-always-on;
> +		regulator-boot-on;
> +	};
> +
> +	vph_pwr: vph-pwr-regulator {

Otherwise you currently stuffed it in the middle of other regulators,
although it doesn't belong here.

> +		compatible = "regulator-fixed";
> +
> +		regulator-name = "vph_pwr";
> +		regulator-min-microvolt = <3700000>;
> +		regulator-max-microvolt = <3700000>;
> +	};
> +
> +	vreg_sdio_wifi_1p8: vreg_sdio_wifi_1p8 {
> +		compatible = "regulator-fixed";
> +
> +		regulator-name = "vreg_sdio_wifi_1p8";
> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <1800000>;
> +		regulator-enable-ramp-delay = <50000>;
> +
> +		gpio = <&tlmm 125 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +
> +		pinctrl-0 = <&wifi_reset_active>,
> +			    <&wifi_host_wake>,
> +			    <&wifi_power_on>;
> +		pinctrl-names = "default";
> +
> +		regulator-always-on;
> +	};
> +
> +	vreg_usbhub_1p8: vreg_usbhub_1p8 {
> +		compatible = "regulator-fixed";
> +
> +		regulator-name = "vreg_usbhub_1p8";
> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <1800000>;
> +		regulator-enable-ramp-delay = <50000>;
> +
> +		gpio = <&tlmm 86 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +
> +		pinctrl-0 = <&usbhub_power>;
> +		pinctrl-names = "default";
> +
> +		regulator-always-on;
> +	};
> +
> +	vreg_usb_eth_1p8: vreg_usb_eth_1p8 {
> +		compatible = "regulator-fixed";
> +
> +		regulator-name = "vreg_usb_eth_1p8";
> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <1800000>;
> +		regulator-enable-ramp-delay = <50000>;
> +
> +		gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +
> +		pinctrl-0 = <&usb_eth_power>;
> +		pinctrl-names = "default";
> +
> +		vin-supply = <&vreg_usbhub_1p8>;
> +	};
> +
> +	vreg_usbhub_rest: vreg_usbhub_rest {
> +		compatible = "regulator-fixed";
> +
> +		regulator-name = "vreg_usbhub_rest";
> +		regulator-min-microvolt = <1800000>;
> +		regulator-enable-ramp-delay = <50000>;
> +		regulator-max-microvolt = <1800000>;
> +
> +		gpio = <&tlmm 136 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +
> +		pinctrl-0 = <&usbhub_rest>;
> +		pinctrl-names = "default";
> +
> +		vin-supply = <&vreg_usb_eth_1p8>;
> +
> +		regulator-always-on;
> +		regulator-boot-on;
> +	};
> +};
> +
> +&apps_rsc {
> +	regulators-0 {
> +		compatible = "qcom,pm7325-rpmh-regulators";
> +		qcom,pmic-id = "b";
> +
> +		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>;
> +		vdd-s7-supply = <&vph_pwr>;
> +		vdd-s8-supply = <&vph_pwr>;
> +		vdd-l1-l4-l12-l15-supply = <&vreg_s7b_0p972>;
> +		vdd-l2-l7-supply = <&vreg_bob_3p296>;
> +		vdd-l3-supply = <&vreg_s2b_0p876>;
> +		vdd-l5-supply = <&vreg_s2b_0p876>;
> +		vdd-l6-l9-l10-supply = <&vreg_s8b_1p272>;
> +		vdd-l8-supply = <&vreg_s7b_0p972>;
> +		vdd-l11-l17-l18-l19-supply = <&vreg_s1b_1p872>;
> +		vdd-l13-supply = <&vreg_s7b_0p972>;
> +		vdd-l14-l16-supply = <&vreg_s8b_1p272>;
> +
> +		vreg_s1b_1p872: smps1 {
> +			regulator-name = "vreg_s1b_1p872";
> +			regulator-min-microvolt = <1840000>;
> +			regulator-max-microvolt = <2040000>;
> +		};
> +
> +		vreg_s2b_0p876: smps2 {
> +			regulator-name = "vreg_s2b_0p876";
> +			regulator-min-microvolt = <570070>;
> +			regulator-max-microvolt = <1050000>;
> +		};
> +
> +		vreg_s7b_0p972: smps7 {
> +			regulator-name = "vreg_s7b_0p972";
> +			regulator-min-microvolt = <535000>;
> +			regulator-max-microvolt = <1120000>;
> +		};
> +
> +		vreg_s8b_1p272: smps8 {
> +			regulator-name = "vreg_s8b_1p272";
> +			regulator-min-microvolt = <1200000>;
> +			regulator-max-microvolt = <1500000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
> +		};
> +
> +		vreg_l1b_0p912: ldo1 {
> +			regulator-name = "vreg_l1b_0p912";
> +			regulator-min-microvolt = <825000>;
> +			regulator-max-microvolt = <925000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l2b_3p072: ldo2 {
> +			regulator-name = "vreg_l2b_3p072";
> +			regulator-min-microvolt = <2700000>;
> +			regulator-max-microvolt = <3544000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l3b_0p504: ldo3 {
> +			regulator-name = "vreg_l3b_0p504";
> +			regulator-min-microvolt = <312000>;
> +			regulator-max-microvolt = <910000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l4b_0p752: ldo4 {
> +			regulator-name = "vreg_l4b_0p752";
> +			regulator-min-microvolt = <752000>;
> +			regulator-max-microvolt = <820000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		reg_l5b_0p752: ldo5 {
> +			regulator-name = "reg_l5b_0p752";
> +			regulator-min-microvolt = <552000>;
> +			regulator-max-microvolt = <832000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l6b_1p2: ldo6 {
> +			regulator-name = "vreg_l6b_1p2";
> +			regulator-min-microvolt = <1140000>;
> +			regulator-max-microvolt = <1260000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l7b_2p952: ldo7 {
> +			regulator-name = "vreg_l7b_2p952";
> +			regulator-min-microvolt = <2952000>;
> +			regulator-max-microvolt = <2952000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l8b_0p904: ldo8 {
> +			regulator-name = "vreg_l8b_0p904";
> +			regulator-min-microvolt = <870000>;
> +			regulator-max-microvolt = <970000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l9b_1p2: ldo9 {
> +			regulator-name = "vreg_l9b_1p2";
> +			regulator-min-microvolt = <1200000>;
> +			regulator-max-microvolt = <1200000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +			regulator-allow-set-load;
> +			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
> +						   RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l11b_1p504: ldo11 {
> +			regulator-name = "vreg_l11b_1p504";
> +			regulator-min-microvolt = <1504000>;
> +			regulator-max-microvolt = <2000000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l12b_0p751: ldo12 {
> +			regulator-name = "vreg_l12b_0p751";
> +			regulator-min-microvolt = <751000>;
> +			regulator-max-microvolt = <824000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l13b_0p53: ldo13 {
> +			regulator-name = "vreg_l13b_0p53";
> +			regulator-min-microvolt = <530000>;
> +			regulator-max-microvolt = <824000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l14b_1p08: ldo14 {
> +			regulator-name = "vreg_l14b_1p08";
> +			regulator-min-microvolt = <1080000>;
> +			regulator-max-microvolt = <1304000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l15b_0p765: ldo15 {
> +			regulator-name = "vreg_l15b_0p765";
> +			regulator-min-microvolt = <765000>;
> +			regulator-max-microvolt = <1020000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l16b_1p1: ldo16 {
> +			regulator-name = "vreg_l16b_1p1";
> +			regulator-min-microvolt = <1100000>;
> +			regulator-max-microvolt = <1300000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l17b_1p7: ldo17 {
> +			regulator-name = "vreg_l17b_1p7";
> +			regulator-min-microvolt = <1700000>;
> +			regulator-max-microvolt = <1900000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l18b_1p8: ldo18 {
> +			regulator-name = "vreg_l18b_1p8";
> +			regulator-min-microvolt = <1800000>;
> +			regulator-max-microvolt = <2000000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l19b_1p8: ldo19 {
> +			regulator-name = "vreg_l19b_1p8";
> +			regulator-min-microvolt = <1800000>;
> +			regulator-max-microvolt = <2000000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +	};
> +
> +	regulators-1 {
> +		compatible = "qcom,pm8350c-rpmh-regulators";
> +		qcom,pmic-id = "c";
> +
> +		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>;
> +		vdd-s7-supply = <&vph_pwr>;
> +		vdd-s8-supply = <&vph_pwr>;
> +		vdd-s9-supply = <&vph_pwr>;
> +		vdd-s10-supply = <&vph_pwr>;
> +		vdd-l1-l12-supply = <&vreg_s1b_1p872>;
> +		vdd-l2-l8-supply = <&vreg_s1b_1p872>;
> +		vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob_3p296>;
> +		vdd-l6-l9-l11-supply = <&vreg_bob_3p296>;
> +		vdd-l10-supply = <&vreg_s7b_0p972>;
> +		vdd-bob-supply = <&vph_pwr>;
> +
> +		vreg_s1c_2p19: smps1 {
> +			regulator-name = "vreg_s1c_2p19";
> +			regulator-min-microvolt = <2190000>;
> +			regulator-max-microvolt = <2210000>;
> +		};
> +
> +		vreg_s2c_0p752: smps2 {
> +			regulator-name = "vreg_s2c_0p752";
> +			regulator-min-microvolt = <750000>;
> +			regulator-max-microvolt = <800000>;
> +		};
> +
> +		vreg_s5c_0p752: smps5 {
> +			regulator-name = "vreg_s5c_0p752";
> +			regulator-min-microvolt = <465000>;
> +			regulator-max-microvolt = <1050000>;
> +		};
> +
> +		vreg_s7c_0p752: smps7 {
> +			regulator-name = "vreg_s7c_0p752";
> +			regulator-min-microvolt = <465000>;
> +			regulator-max-microvolt = <800000>;
> +		};
> +
> +		vreg_s9c_1p084: smps9 {
> +			regulator-name = "vreg_s9c_1p084";
> +			regulator-min-microvolt = <1010000>;
> +			regulator-max-microvolt = <1170000>;
> +		};
> +
> +		vreg_l1c_1p8: ldo1 {
> +			regulator-name = "vreg_l1c_1p8";
> +			regulator-min-microvolt = <1800000>;
> +			regulator-max-microvolt = <1980000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l2c_1p62: ldo2 {
> +			regulator-name = "vreg_l2c_1p62";
> +			regulator-min-microvolt = <1620000>;
> +			regulator-max-microvolt = <1980000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l3c_2p8: ldo3 {
> +			regulator-name = "vreg_l3c_2p8";
> +			regulator-min-microvolt = <2800000>;
> +			regulator-max-microvolt = <3540000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l4c_1p62: ldo4 {
> +			regulator-name = "vreg_l4c_1p62";
> +			regulator-min-microvolt = <1620000>;
> +			regulator-max-microvolt = <3300000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l5c_1p62: ldo5 {
> +			regulator-name = "vreg_l5c_1p62";
> +			regulator-min-microvolt = <1620000>;
> +			regulator-max-microvolt = <3300000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l6c_2p96: ldo6 {
> +			regulator-name = "vreg_l6c_2p96";
> +			regulator-min-microvolt = <1800000>;
> +			regulator-max-microvolt = <1800000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l7c_3p0: ldo7 {
> +			regulator-name = "vreg_l7c_3p0";
> +			regulator-min-microvolt = <3000000>;
> +			regulator-max-microvolt = <3544000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l8c_1p62: ldo8 {
> +			regulator-name = "vreg_l8c_1p62";
> +			regulator-min-microvolt = <1620000>;
> +			regulator-max-microvolt = <2000000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l9c_2p96: ldo9 {
> +			regulator-name = "vreg_l9c_2p96";
> +			regulator-min-microvolt = <2700000>;
> +			regulator-max-microvolt = <3544000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l10c_0p88: ldo10 {
> +			regulator-name = "vreg_l10c_0p88";
> +			regulator-min-microvolt = <720000>;
> +			regulator-max-microvolt = <1050000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l11c_2p8: ldo11 {
> +			regulator-name = "vreg_l11c_2p8";
> +			regulator-min-microvolt = <2800000>;
> +			regulator-max-microvolt = <3544000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l12c_1p65: ldo12 {
> +			regulator-name = "vreg_l12c_1p65";
> +			regulator-min-microvolt = <1650000>;
> +			regulator-max-microvolt = <2000000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_l13c_2p7: ldo13 {
> +			regulator-name = "vreg_l13c_2p7";
> +			regulator-min-microvolt = <2700000>;
> +			regulator-max-microvolt = <3544000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
> +		vreg_bob_3p296: bob {
> +			regulator-name = "vreg_bob_3p296";
> +			regulator-min-microvolt = <3008000>;
> +			regulator-max-microvolt = <3960000>;
> +		};
> +	};
> +};
> +
> +&gcc {
> +	protected-clocks = <GCC_CFG_NOC_LPASS_CLK>,
> +			   <GCC_MSS_CFG_AHB_CLK>,
> +			   <GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>,
> +			   <GCC_MSS_OFFLINE_AXI_CLK>,
> +			   <GCC_MSS_Q6SS_BOOT_CLK_SRC>,
> +			   <GCC_MSS_Q6_MEMNOC_AXI_CLK>,
> +			   <GCC_MSS_SNOC_AXI_CLK>,
> +			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
> +			   <GCC_QSPI_CORE_CLK>,
> +			   <GCC_QSPI_CORE_CLK_SRC>,
> +			   <GCC_SEC_CTRL_CLK_SRC>,
> +			   <GCC_WPSS_AHB_BDG_MST_CLK>,
> +			   <GCC_WPSS_AHB_CLK>,
> +			   <GCC_WPSS_RSCP_CLK>;
> +};
> +
> +&gpi_dma0 {
> +	status = "okay";
> +};
> +
> +&gpi_dma1 {
> +	status = "okay";
> +};
> +
> +&gpu {
> +	status = "okay";
> +};
> +
> +&gpu_zap_shader {
> +	firmware-name = "qcom/qcs6490/a660_zap.mbn";
> +};
> +
> +/* Pin 3, 5 in 40-pin connector */
> +&i2c1 {
> +	status = "okay";
> +};
> +
> +&i2c9 {
> +	clock-frequency = <400000>;
> +
> +	status = "okay";
> +
> +	lt9611_codec: hdmi-bridge@39 {
> +		compatible = "lontium,lt9611";
> +		reg = <0x39>;
> +
> +		interrupts-extended = <&tlmm 20 IRQ_TYPE_EDGE_FALLING>;
> +		reset-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
> +
> +		vdd-supply = <&vreg_lt9611_3p3>;
> +		vcc-supply = <&vreg_lt9611_3p3>;
> +
> +		pinctrl-0 = <&lt9611_irq_pin>,
> +			    <&lt9611_rst_pin>;
> +		pinctrl-names = "default";
> +
> +		ports {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			port@0 {
> +				reg = <0>;
> +
> +				lt9611_a: endpoint {
> +					remote-endpoint = <&mdss_dsi0_out>;
> +				};
> +			};
> +
> +			port@2 {
> +				reg = <2>;
> +
> +				lt9611_out: endpoint {
> +					remote-endpoint = <&hdmi_con>;
> +				};
> +			};
> +		};
> +	};
> +};
> +
> +&lpass_audiocc {
> +	compatible = "qcom,qcm6490-lpassaudiocc";
> +	/delete-property/ power-domains;
> +};
> +
> +&mdss {
> +	status = "okay";
> +};
> +
> +&mdss_dp {
> +	status = "okay";
> +};
> +
> +&mdss_dp_out {
> +	data-lanes = <0 1>;
> +	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> +
> +	remote-endpoint = <&usb_dp_qmpphy_dp_in>;
> +};
> +
> +&mdss_dsi {
> +	vdda-supply = <&vreg_l6b_1p2>;
> +
> +	status = "okay";
> +};
> +
> +&mdss_dsi0_out {
> +	remote-endpoint = <&lt9611_a>;
> +	data-lanes = <0 1 2 3>;
> +};
> +
> +&mdss_dsi_phy {
> +	vdds-supply = <&vreg_l10c_0p88>;
> +
> +	status = "okay";
> +};
> +
> +&pcie0 {
> +	status = "okay";
> +};
> +
> +&pcie0_phy {
> +	vdda-phy-supply = <&vreg_l10c_0p88>;
> +	vdda-pll-supply = <&vreg_l6b_1p2>;
> +
> +	status = "okay";
> +};
> +
> +&pcie1 {
> +	perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
> +	wake-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>;
> +
> +	pinctrl-0 = <&pcie1_reset_n>,
> +		    <&pcie1_wake_n>,
> +		    <&pcie1_clkreq_n>;
> +	pinctrl-names = "default";
> +
> +	status = "okay";
> +};
> +
> +&pcie1_phy {
> +	vdda-phy-supply = <&vreg_l10c_0p88>;
> +	vdda-pll-supply = <&vreg_l6b_1p2>;
> +
> +	status = "okay";
> +};
> +
> +&pm7325_gpios {
> +	kypd_vol_up_n: kypd-vol-up-n-state {
> +		pins = "gpio6";
> +		function = PMIC_GPIO_FUNC_NORMAL;
> +		power-source = <1>;
> +		bias-pull-up;
> +		input-enable;
> +	};
> +};
> +
> +&pm7325_temp_alarm {
> +	io-channels = <&pmk8350_vadc PM7325_ADC7_DIE_TEMP>;
> +	io-channel-names = "thermal";
> +};
> +
> +&pmk8350_adc_tm {
> +	status = "okay";
> +
> +	xo-therm@0 {
> +		reg = <0>;
> +		io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
> +		qcom,ratiometric;
> +		qcom,hw-settle-time-us = <200>;
> +	};
> +
> +	quiet-therm@1 {
> +		reg = <1>;
> +		io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>;
> +		qcom,ratiometric;
> +		qcom,hw-settle-time-us = <200>;
> +	};
> +
> +	sdm-skin-therm@3 {
> +		reg = <3>;
> +		io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>;
> +		qcom,ratiometric;
> +		qcom,hw-settle-time-us = <200>;
> +	};
> +};
> +
> +&pm8350c_pwm {
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +
> +	status = "okay";
> +
> +	led@1 {
> +		reg = <1>;
> +		color = <LED_COLOR_ID_GREEN>;
> +		function = LED_FUNCTION_INDICATOR;
> +		function-enumerator = <3>;
> +		linux,default-trigger = "none";
> +		default-state = "off";
> +		panic-indicator;
> +		label = "red";

So, is it "red" or LED_COLOR_ID_GREEN?

> +	};
> +
> +	led@2 {
> +		reg = <2>;
> +		color = <LED_COLOR_ID_GREEN>;
> +		function = LED_FUNCTION_INDICATOR;
> +		function-enumerator = <2>;
> +		linux,default-trigger = "none";
> +		default-state = "off";
> +		label = "green";
> +	};
> +
> +	led@3 {
> +		reg = <3>;
> +		color = <LED_COLOR_ID_GREEN>;
> +		function = LED_FUNCTION_INDICATOR;
> +		function-enumerator = <1>;
> +		linux,default-trigger = "none";
> +		default-state = "off";
> +		label = "blue";

Likewise, why is this blue?

> +	};
> +};
> +
> +&pmk8350_rtc {
> +	allow-set-time;
> +
> +	status = "okay";
> +};
> +
> +&pmk8350_vadc {
> +	channel@3 {
> +		reg = <PMK8350_ADC7_DIE_TEMP>;
> +		label = "pmk8350_die_temp";
> +		qcom,pre-scaling = <1 1>;
> +	};
> +
> +	channel@44 {
> +		reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
> +		label = "xo_therm";
> +		qcom,hw-settle-time = <200>;
> +		qcom,pre-scaling = <1 1>;
> +		qcom,ratiometric;
> +	};
> +
> +	channel@103 {
> +		reg = <PM7325_ADC7_DIE_TEMP>;
> +		label = "pm7325_die_temp";
> +		qcom,pre-scaling = <1 1>;
> +	};
> +
> +	channel@144 {
> +		reg = <PM7325_ADC7_AMUX_THM1_100K_PU>;
> +		qcom,ratiometric;
> +		qcom,hw-settle-time = <200>;
> +		qcom,pre-scaling = <1 1>;
> +		label = "pm7325_quiet_therm";
> +	};
> +
> +	channel@146 {
> +		reg = <PM7325_ADC7_AMUX_THM3_100K_PU>;
> +		qcom,ratiometric;
> +		qcom,hw-settle-time = <200>;
> +		qcom,pre-scaling = <1 1>;
> +		label = "pm7325_sdm_skin_therm";
> +	};
> +};
> +
> +&pon_pwrkey {
> +	status = "okay";
> +};
> +
> +&pon_resin {
> +	linux,code = <KEY_VOLUMEDOWN>;
> +
> +	status = "okay";
> +};
> +
> +&qupv3_id_0 {
> +	status = "okay";
> +};
> +
> +&qupv3_id_1 {
> +	status = "okay";
> +};
> +
> +&remoteproc_adsp {
> +	firmware-name = "qcom/qcs6490/adsp.mbn";
> +
> +	status = "okay";
> +};
> +
> +&remoteproc_cdsp {
> +	firmware-name = "qcom/qcs6490/cdsp.mbn";
> +
> +	status = "okay";
> +};
> +
> +/* WIFI part of the AP6256 connected with SDIO */
> +&sdhc_2 {
> +	vmmc-supply = <&vreg_l9c_2p96>;
> +	vqmmc-supply = <&vreg_l6c_2p96>;
> +
> +	non-removable;
> +	keep-power-in-suspend;
> +	/delete-property/ cd-gpios;
> +
> +	status = "okay";
> +};
> +
> +/* Pin 19, 21, 23, 24 in 40-pin connector */
> +&spi12 {
> +	status = "okay";
> +};
> +
> +/* Pin 8, 10 in 40-pin connector */
> +&uart2 {
> +	status = "okay";
> +};
> +
> +&uart5 {
> +	status = "okay";
> +};
> +
> +/* BT part of the AP6256 connected with UART */
> +&uart7 {
> +	/delete-property/ interrupts;
> +	interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
> +			      <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
> +	pinctrl-1 = <&qup_uart7_sleep_cts>,
> +		    <&qup_uart7_sleep_rts>,
> +		    <&qup_uart7_sleep_tx>,
> +		    <&qup_uart7_sleep_rx>;
> +	pinctrl-names = "default",
> +			"sleep";
> +
> +	status = "okay";
> +
> +	bluetooth {
> +		compatible = "brcm,bcm4345c5";
> +		clocks = <&sleep_clk>;
> +		clock-names = "lpo";
> +		device-wakeup-gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>;
> +		host-wakeup-gpios = <&tlmm 137 GPIO_ACTIVE_HIGH>;
> +		shutdown-gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>;
> +		pinctrl-0 = <&bt_device_wake>,
> +			    <&bt_host_wake>,
> +			    <&bt_reset>;
> +		pinctrl-names = "default";
> +		vbat-supply = <&vreg_sdio_wifi_1p8>;
> +		vddio-supply = <&vreg_sdio_wifi_1p8>;
> +		max-speed = <3000000>;
> +	};
> +};
> +
> +&usb_1 {
> +	dr_mode = "otg";

Not necessary, this is default.

> +
> +	status = "okay";
> +};
> +
> +&usb_1_dwc3_hs {
> +	remote-endpoint = <&pmic_glink_hs_in>;
> +};
> +
> +&usb_1_hsphy {
> +	vdda-pll-supply = <&vreg_l10c_0p88>;
> +	vdda33-supply = <&vreg_l2b_3p072>;
> +	vdda18-supply = <&vreg_l1c_1p8>;
> +
> +	status = "okay";
> +};
> +
> +&usb_1_qmpphy {
> +	vdda-phy-supply = <&vreg_l6b_1p2>;
> +	vdda-pll-supply = <&vreg_l1b_0p912>;
> +
> +	status = "okay";
> +};
> +
> +&usb_2 {
> +	dr_mode = "host";
> +
> +	status = "okay";
> +};
> +
> +&usb_2_hsphy {
> +	vdda-pll-supply = <&vreg_l10c_0p88>;
> +	vdda18-supply = <&vreg_l1c_1p8>;
> +	vdda33-supply = <&vreg_l2b_3p072>;
> +
> +	status = "okay";
> +};
> +
> +&usb_dp_qmpphy_out {
> +	remote-endpoint = <&pmic_glink_ss_in>;
> +};
> +
> +&ufs_mem_hc {
> +	reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
> +	vcc-supply = <&vreg_l7b_2p952>;
> +	vcc-max-microamp = <800000>;
> +	vccq-supply = <&vreg_l9b_1p2>;
> +	vccq-max-microamp = <900000>;
> +	vccq2-supply = <&vreg_l9b_1p2>;
> +	vccq2-max-microamp = <900000>;
> +
> +	status = "okay";
> +};
> +
> +&ufs_mem_phy {
> +	vdda-phy-supply = <&vreg_l10c_0p88>;
> +	vdda-pll-supply = <&vreg_l6b_1p2>;
> +
> +	status = "okay";
> +};
> +
> +&venus {
> +	status = "okay";
> +};
> +
> +&thermal_zones {

Why is it here?`

> +	cpu0-thermal {
> +		trips {
> +			cpu_tepid: cpu-tepid {
> +				temperature = <65000>;
> +				hysteresis = <5000>;
> +				type = "active";
> +			};
> +
> +			cpu_warm: cpu-warm {
> +				temperature = <80000>;
> +				hysteresis = <5000>;
> +				type = "active";
> +			};
> +
> +			cpu_hot: cpu-hot {
> +				temperature = <90000>;
> +				hysteresis = <5000>;
> +				type = "active";
> +			};

This has the same value as trip-point0. Is it intentional?

> +		};
> +
> +		cooling-maps {
> +			map-cpu-tepid {
> +				/* active: set fan to cooling level 1 */
> +				cooling-device = <&fan0 1 1>;
> +				trip = <&cpu_tepid>;
> +			};
> +
> +			map-cpu-warm {
> +				/* active: set fan to cooling level 2 */
> +				cooling-device = <&fan0 2 2>;
> +				trip = <&cpu_warm>;
> +			};
> +
> +			map-cpu-hot {
> +				/* active: set fan to cooling level 3 */
> +				cooling-device = <&fan0 3 3>;
> +				trip = <&cpu_hot>;
> +			};
> +		};
> +	};
> +};
> +

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v5 2/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts
  2025-10-26  9:05   ` Krzysztof Kozlowski
@ 2025-10-30  2:33     ` Hongyang Zhao
  0 siblings, 0 replies; 14+ messages in thread
From: Hongyang Zhao @ 2025-10-30  2:33 UTC (permalink / raw)
  To: krzk
  Cc: andersson, casey.connolly, christopher.obbard, hongyang.zhao,
	linux-arm-msm, loic.minier, rosh

> On 25/10/2025 14:27, Hongyang Zhao wrote:
> > Add binding for the Thundercomm RUBIK Pi 3 board,
> > which is based on the Qualcomm Dragonwing QCS6490 SoC.
> > 
> > Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com>
> > Reviewed-by: Roger Shimizu <rosh@debian.org>
> > Cc: Casey Connolly <casey.connolly@linaro.org>
> > Cc: Christopher Obbard <christopher.obbard@linaro.org>
> > Cc: Loic Minier <loic.minier@oss.qualcomm.com>
> 
> 
> You ignored comments. Respond to them and then implement them.
> 

Hi Krzysztof,

Sorry, my workflow was incorrect.
I will use the b4 tool later to check and send my patch.

Thank you!
Hongyang

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v5 1/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts
  2025-10-27 14:51   ` Dmitry Baryshkov
@ 2025-10-31  9:27     ` Hongyang Zhao
  2025-11-01  8:37       ` Dmitry Baryshkov
  2025-11-03 11:57       ` Konrad Dybcio
  0 siblings, 2 replies; 14+ messages in thread
From: Hongyang Zhao @ 2025-10-31  9:27 UTC (permalink / raw)
  To: dmitry.baryshkov
  Cc: andersson, casey.connolly, christopher.obbard, hongyang.zhao,
	linux-arm-msm, loic.minier, rosh

> On Sat, Oct 25, 2025 at 08:27:22PM +0800, Hongyang Zhao wrote:
> > Add DTS for Thundercomm qcs6490-rubikpi3 board which uses
> > QCS6490 SoC.
> > 
> > Works:
> > - Bluetooth (AP6256)
> > - Wi-Fi (AP6256)
> > - Ethernet (AX88179B connected to UPD720201)
> > - FAN
> > - Two USB Type-A 3.0 ports (UPD720201 connected to PCIe0)
> > - M.2 M-Key 2280 PCIe 3.0
> > - RTC
> > - USB Type-C
> > - USB Type-A 2.0 port
> > - 40PIN: I2C x1, UART x1
> > 
> > Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com>
> > Reviewed-by: Roger Shimizu <rosh@debian.org>
> > Cc: Casey Connolly <casey.connolly@linaro.org>
> > Cc: Christopher Obbard <christopher.obbard@linaro.org>
> > Cc: Loic Minier <loic.minier@oss.qualcomm.com>
> > ---
> >  arch/arm64/boot/dts/qcom/Makefile             |    1 +
> >  .../dts/qcom/qcs6490-thundercomm-rubikpi3.dts | 1390 +++++++++++++++++
> >  2 files changed, 1391 insertions(+)
> >  create mode 100644 arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts
> > 
> > diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> > index 296688f7cb26..74938791f62d 100644
> > --- a/arch/arm64/boot/dts/qcom/Makefile
> > +++ b/arch/arm64/boot/dts/qcom/Makefile
> > @@ -133,6 +133,7 @@ qcs6490-rb3gen2-industrial-mezzanine-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2
> >  
> >  dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-rb3gen2-industrial-mezzanine.dtb
> >  dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-rb3gen2-vision-mezzanine.dtb
> > +dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-thundercomm-rubikpi3.dtb
> >  dtb-$(CONFIG_ARCH_QCOM)	+= qcs8300-ride.dtb
> >  dtb-$(CONFIG_ARCH_QCOM)	+= qcs8550-aim300-aiot.dtb
> >  dtb-$(CONFIG_ARCH_QCOM)	+= qcs9100-ride.dtb
> > diff --git a/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts b/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts
> > new file mode 100644
> > index 000000000000..e08c2afbf849
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts
> > @@ -0,0 +1,1390 @@
> > +// SPDX-License-Identifier: BSD-3-Clause
> > +/*
> > + * Copyright (c) 2025, Thundercomm All rights reserved.
> > + */
> > +
> > +/dts-v1/;
> > +
> > +/* PM7250B is configured to use SID8/9 */
> > +#define PM7250B_SID 8
> > +#define PM7250B_SID1 9
> > +
> > +#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
> > +#include <dt-bindings/iio/qcom,spmi-adc7-pm7325.h>
> > +#include <dt-bindings/leds/common.h>
> > +#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
> > +#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> > +#include "sc7280.dtsi"
> > +#include "pm7250b.dtsi"
> > +#include "pm7325.dtsi"
> > +#include "pm8350c.dtsi"
> > +#include "pmk8350.dtsi"
> > +
> > +/delete-node/ &adsp_mem;
> > +/delete-node/ &cdsp_mem;
> > +/delete-node/ &ipa_fw_mem;
> > +/delete-node/ &mpss_mem;
> > +/delete-node/ &remoteproc_mpss;
> > +/delete-node/ &remoteproc_wpss;
> > +/delete-node/ &rmtfs_mem;
> > +/delete-node/ &video_mem;
> > +/delete-node/ &wifi;
> > +/delete-node/ &wlan_ce_mem;
> > +/delete-node/ &wlan_fw_mem;
> > +/delete-node/ &wpss_mem;
> > +/delete-node/ &xbl_mem;
> > +
> > +/ {
> > +	model = "Thundercomm RUBIK Pi 3";
> > +	compatible = "thundercomm,rubikpi3", "qcom,qcm6490";
> > +
> > +	chassis-type = "embedded";
> > +
> > +	aliases {
> > +		serial0 = &uart5;
> > +	};
> > +
> > +	chosen {
> > +		stdout-path = "serial0:115200n8";
> > +	};
> > +
> > +	fan0: pwm-fan {
> 
> 'pwm' > 'gpio'
> 

Understood, I will move "fan0: pwm-fan" between pmic-glink and reserved-memory.

> > +		compatible = "pwm-fan";
> > +		/* cooling level (0, 1, 2, 3) : (0% duty, 25% duty, 50% duty, 100% duty) */
> > +		cooling-levels = <0 64 128 255>;
> > +		#cooling-cells = <2>;
> > +		pwms = <&pm8350c_pwm 3 1000000>;
> > +		pinctrl-0 = <&fan_pwm_out_default>;
> > +		pinctrl-names = "default";
> > +	};
> > +
> > +	gpio-keys {
> > +		compatible = "gpio-keys";
> > +
> > +		pinctrl-0 = <&kypd_vol_up_n>;
> > +		pinctrl-names = "default";
> > +
> > +		key-volume-up {
> > +			label = "Volume Up";
> > +			gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>;
> > +			linux,code = <KEY_VOLUMEUP>;
> > +			linux,can-disable;
> > +		};
> > +	};
> > +
> > +	hdmi-connector {
> > +		compatible = "hdmi-connector";
> > +		type = "a";
> > +
> > +		port {
> > +			hdmi_con: endpoint {
> > +				remote-endpoint = <&lt9611_out>;
> > +			};
> > +		};
> > +	};
> > +
> > +	pmic-glink {
> > +		compatible = "qcom,qcm6490-pmic-glink", "qcom,pmic-glink";
> > +
> > +		#address-cells = <1>;
> > +		#size-cells = <0>;
> > +		orientation-gpios = <&tlmm 140 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 = <&usb_dp_qmpphy_out>;
> > +					};
> > +				};
> > +
> > +				port@2 {
> > +					reg = <2>;
> > +
> > +					pmic_glink_sbu_in: endpoint {
> > +						remote-endpoint = <&usb1_sbu_mux>;
> > +					};
> > +				};
> > +			};
> > +		};
> > +	};
> > +
> > +	reserved-memory {
> > +		xbl_mem: xbl@80700000 {
> > +			reg = <0x0 0x80700000 0x0 0x100000>;
> > +			no-map;
> > +		};
> > +
> > +		cdsp_secure_heap_mem: cdsp-secure-heap@81800000 {
> > +			reg = <0x0 0x81800000 0x0 0x1e00000>;
> > +			no-map;
> > +		};
> > +
> > +		camera_mem: camera@84300000 {
> > +			reg = <0x0 0x84300000 0x0 0x500000>;
> > +			no-map;
> > +		};
> > +
> > +		adsp_mem: adsp@86100000 {
> > +			reg = <0x0 0x86100000 0x0 0x2800000>;
> > +			no-map;
> > +		};
> > +
> > +		cdsp_mem: cdsp@88900000 {
> > +			reg = <0x0 0x88900000 0x0 0x1e00000>;
> > +			no-map;
> > +		};
> > +
> > +		video_mem: video@8a700000 {
> > +			reg = <0x0 0x8a700000 0x0 0x700000>;
> > +			no-map;
> > +		};
> > +
> > +		cvp_mem: cvp@8ae00000 {
> > +			reg = <0x0 0x8ae00000 0x0 0x500000>;
> > +			no-map;
> > +		};
> > +
> > +		gpu_microcode_mem: gpu-microcode@8b31a000 {
> > +			reg = <0x0 0x8b31a000 0x0 0x2000>;
> > +			no-map;
> > +		};
> > +
> > +		tz_stat_mem: tz-stat@c0000000 {
> > +			reg = <0x0 0xc0000000 0x0 0x100000>;
> > +			no-map;
> > +		};
> > +
> > +		tags_mem: tags@c0100000 {
> > +			reg = <0x0 0xc0100000 0x0 0x1200000>;
> > +			no-map;
> > +		};
> > +
> > +		qtee_mem: qtee@c1300000 {
> > +			reg = <0x0 0xc1300000 0x0 0x500000>;
> > +			no-map;
> > +		};
> > +
> > +		trusted_apps_mem: trusted-apps@c1800000 {
> > +			reg = <0x0 0xc1800000 0x0 0x1c00000>;
> > +			no-map;
> > +		};
> > +
> > +		debug_vm_mem: debug-vm@d0600000 {
> > +			reg = <0x0 0xd0600000 0x0 0x100000>;
> > +			no-map;
> > +		};
> > +	};
> > +
> > +	thermal-zones {
> > +		xo-thermal {
> 
> quiet, sdm, xo.

Understood, I will adjust the order.

> 
> > +			thermal-sensors = <&pmk8350_adc_tm 0>;
> > +
> > +			trips {
> > +				active-config0 {
> > +					temperature = <125000>;
> > +					hysteresis = <1000>;
> > +					type = "passive";
> > +				};
> > +			};
> > +		};
> > +
> > +		quiet-thermal {
> > +			thermal-sensors = <&pmk8350_adc_tm 1>;
> > +
> > +			trips {
> > +				active-config0 {
> > +					temperature = <125000>;
> > +					hysteresis = <1000>;
> > +					type = "passive";
> > +				};
> > +			};
> > +		};
> > +
> > +		sdm-skin-thermal {
> > +			thermal-sensors = <&pmk8350_adc_tm 3>;
> > +
> > +			trips {
> > +				active-config0 {
> > +					temperature = <125000>;
> > +					hysteresis = <1000>;
> > +					type = "passive";
> > +				};
> > +			};
> > +		};
> > +	};
> > +
> > +	usb1-sbu-mux {
> > +		compatible = "pericom,pi3usb102", "gpio-sbu-mux";
> > +		enable-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>;
> > +		select-gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>;
> > +		pinctrl-0 = <&usb1_sbu_default>;
> > +		pinctrl-names = "default";
> > +		mode-switch;
> > +		orientation-switch;
> > +
> > +		port {
> > +			usb1_sbu_mux: endpoint {
> > +				remote-endpoint = <&pmic_glink_sbu_in>;
> > +			};
> > +		};
> > +	};
> > +
> > +	vreg_lt9611_3p3: vreg_lt9611_3p3 {
> 
> regulator-foo-bar-baz, please. This way VPH PWR doesn't stand out.

Understood, I will check the entire device tree and change:
vreg_lt9611_3v3: regulator-lt9611-3v3
vreg_m2_1v8: regulator-m2-1v8
vreg_sdio_wifi_1v8: regulator-wifi-1v8
...

> 
> > +		compatible = "regulator-fixed";
> > +
> > +		regulator-name = "vreg_lt9611_3p3";
> > +		regulator-min-microvolt = <3300000>;
> > +		regulator-max-microvolt = <3300000>;
> > +
> > +		gpio = <&tlmm 83 GPIO_ACTIVE_HIGH>;
> > +		enable-active-high;
> > +
> > +		pinctrl-0 = <&lt9611_vcc_pin>;
> > +		pinctrl-names = "default";
> > +	};
> > +
> > +	vreg_m2_1p8: vreg_m2_1p8 {
> > +		compatible = "regulator-fixed";
> > +
> > +		regulator-name = "vreg_m2_1p8";
> > +		regulator-min-microvolt = <1800000>;
> > +		regulator-max-microvolt = <1800000>;
> > +		regulator-enable-ramp-delay = <50000>;
> > +
> > +		gpio = <&tlmm 56 GPIO_ACTIVE_HIGH>;
> > +		enable-active-high;
> > +
> > +		pinctrl-0 = <&m2_vcc_pin>;
> > +		pinctrl-names = "default";
> > +
> > +		regulator-always-on;
> > +		regulator-boot-on;
> > +	};
> > +
> > +	vph_pwr: vph-pwr-regulator {
> 
> Otherwise you currently stuffed it in the middle of other regulators,
> although it doesn't belong here.

Understood, I will move vph-pwr-regulator after usb1-sbu-mux.

> 
> > +		compatible = "regulator-fixed";
> > +
> > +		regulator-name = "vph_pwr";
> > +		regulator-min-microvolt = <3700000>;
> > +		regulator-max-microvolt = <3700000>;
> > +	};
> > +
> > +	vreg_sdio_wifi_1p8: vreg_sdio_wifi_1p8 {
> > +		compatible = "regulator-fixed";
> > +
> > +		regulator-name = "vreg_sdio_wifi_1p8";
> > +		regulator-min-microvolt = <1800000>;
> > +		regulator-max-microvolt = <1800000>;
> > +		regulator-enable-ramp-delay = <50000>;
> > +
> > +		gpio = <&tlmm 125 GPIO_ACTIVE_HIGH>;
> > +		enable-active-high;
> > +
> > +		pinctrl-0 = <&wifi_reset_active>,
> > +			    <&wifi_host_wake>,
> > +			    <&wifi_power_on>;
> > +		pinctrl-names = "default";
> > +
> > +		regulator-always-on;
> > +	};
> > +
> > +	vreg_usbhub_1p8: vreg_usbhub_1p8 {
> > +		compatible = "regulator-fixed";
> > +
> > +		regulator-name = "vreg_usbhub_1p8";
> > +		regulator-min-microvolt = <1800000>;
> > +		regulator-max-microvolt = <1800000>;
> > +		regulator-enable-ramp-delay = <50000>;
> > +
> > +		gpio = <&tlmm 86 GPIO_ACTIVE_HIGH>;
> > +		enable-active-high;
> > +
> > +		pinctrl-0 = <&usbhub_power>;
> > +		pinctrl-names = "default";
> > +
> > +		regulator-always-on;
> > +	};
> > +
> > +	vreg_usb_eth_1p8: vreg_usb_eth_1p8 {
> > +		compatible = "regulator-fixed";
> > +
> > +		regulator-name = "vreg_usb_eth_1p8";
> > +		regulator-min-microvolt = <1800000>;
> > +		regulator-max-microvolt = <1800000>;
> > +		regulator-enable-ramp-delay = <50000>;
> > +
> > +		gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>;
> > +		enable-active-high;
> > +
> > +		pinctrl-0 = <&usb_eth_power>;
> > +		pinctrl-names = "default";
> > +
> > +		vin-supply = <&vreg_usbhub_1p8>;
> > +	};
> > +
> > +	vreg_usbhub_rest: vreg_usbhub_rest {
> > +		compatible = "regulator-fixed";
> > +
> > +		regulator-name = "vreg_usbhub_rest";
> > +		regulator-min-microvolt = <1800000>;
> > +		regulator-enable-ramp-delay = <50000>;
> > +		regulator-max-microvolt = <1800000>;
> > +
> > +		gpio = <&tlmm 136 GPIO_ACTIVE_HIGH>;
> > +		enable-active-high;
> > +
> > +		pinctrl-0 = <&usbhub_rest>;
> > +		pinctrl-names = "default";
> > +
> > +		vin-supply = <&vreg_usb_eth_1p8>;
> > +
> > +		regulator-always-on;
> > +		regulator-boot-on;
> > +	};
> > +};
> > +
> > +&apps_rsc {
> > +	regulators-0 {
> > +		compatible = "qcom,pm7325-rpmh-regulators";
> > +		qcom,pmic-id = "b";
> > +
> > +		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>;
> > +		vdd-s7-supply = <&vph_pwr>;
> > +		vdd-s8-supply = <&vph_pwr>;
> > +		vdd-l1-l4-l12-l15-supply = <&vreg_s7b_0p972>;
> > +		vdd-l2-l7-supply = <&vreg_bob_3p296>;
> > +		vdd-l3-supply = <&vreg_s2b_0p876>;
> > +		vdd-l5-supply = <&vreg_s2b_0p876>;
> > +		vdd-l6-l9-l10-supply = <&vreg_s8b_1p272>;
> > +		vdd-l8-supply = <&vreg_s7b_0p972>;
> > +		vdd-l11-l17-l18-l19-supply = <&vreg_s1b_1p872>;
> > +		vdd-l13-supply = <&vreg_s7b_0p972>;
> > +		vdd-l14-l16-supply = <&vreg_s8b_1p272>;
> > +
> > +		vreg_s1b_1p872: smps1 {
> > +			regulator-name = "vreg_s1b_1p872";
> > +			regulator-min-microvolt = <1840000>;
> > +			regulator-max-microvolt = <2040000>;
> > +		};
> > +
> > +		vreg_s2b_0p876: smps2 {
> > +			regulator-name = "vreg_s2b_0p876";
> > +			regulator-min-microvolt = <570070>;
> > +			regulator-max-microvolt = <1050000>;
> > +		};
> > +
> > +		vreg_s7b_0p972: smps7 {
> > +			regulator-name = "vreg_s7b_0p972";
> > +			regulator-min-microvolt = <535000>;
> > +			regulator-max-microvolt = <1120000>;
> > +		};
> > +
> > +		vreg_s8b_1p272: smps8 {
> > +			regulator-name = "vreg_s8b_1p272";
> > +			regulator-min-microvolt = <1200000>;
> > +			regulator-max-microvolt = <1500000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
> > +		};
> > +
> > +		vreg_l1b_0p912: ldo1 {
> > +			regulator-name = "vreg_l1b_0p912";
> > +			regulator-min-microvolt = <825000>;
> > +			regulator-max-microvolt = <925000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l2b_3p072: ldo2 {
> > +			regulator-name = "vreg_l2b_3p072";
> > +			regulator-min-microvolt = <2700000>;
> > +			regulator-max-microvolt = <3544000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l3b_0p504: ldo3 {
> > +			regulator-name = "vreg_l3b_0p504";
> > +			regulator-min-microvolt = <312000>;
> > +			regulator-max-microvolt = <910000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l4b_0p752: ldo4 {
> > +			regulator-name = "vreg_l4b_0p752";
> > +			regulator-min-microvolt = <752000>;
> > +			regulator-max-microvolt = <820000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		reg_l5b_0p752: ldo5 {
> > +			regulator-name = "reg_l5b_0p752";
> > +			regulator-min-microvolt = <552000>;
> > +			regulator-max-microvolt = <832000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l6b_1p2: ldo6 {
> > +			regulator-name = "vreg_l6b_1p2";
> > +			regulator-min-microvolt = <1140000>;
> > +			regulator-max-microvolt = <1260000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l7b_2p952: ldo7 {
> > +			regulator-name = "vreg_l7b_2p952";
> > +			regulator-min-microvolt = <2952000>;
> > +			regulator-max-microvolt = <2952000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l8b_0p904: ldo8 {
> > +			regulator-name = "vreg_l8b_0p904";
> > +			regulator-min-microvolt = <870000>;
> > +			regulator-max-microvolt = <970000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l9b_1p2: ldo9 {
> > +			regulator-name = "vreg_l9b_1p2";
> > +			regulator-min-microvolt = <1200000>;
> > +			regulator-max-microvolt = <1200000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +			regulator-allow-set-load;
> > +			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
> > +						   RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l11b_1p504: ldo11 {
> > +			regulator-name = "vreg_l11b_1p504";
> > +			regulator-min-microvolt = <1504000>;
> > +			regulator-max-microvolt = <2000000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l12b_0p751: ldo12 {
> > +			regulator-name = "vreg_l12b_0p751";
> > +			regulator-min-microvolt = <751000>;
> > +			regulator-max-microvolt = <824000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l13b_0p53: ldo13 {
> > +			regulator-name = "vreg_l13b_0p53";
> > +			regulator-min-microvolt = <530000>;
> > +			regulator-max-microvolt = <824000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l14b_1p08: ldo14 {
> > +			regulator-name = "vreg_l14b_1p08";
> > +			regulator-min-microvolt = <1080000>;
> > +			regulator-max-microvolt = <1304000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l15b_0p765: ldo15 {
> > +			regulator-name = "vreg_l15b_0p765";
> > +			regulator-min-microvolt = <765000>;
> > +			regulator-max-microvolt = <1020000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l16b_1p1: ldo16 {
> > +			regulator-name = "vreg_l16b_1p1";
> > +			regulator-min-microvolt = <1100000>;
> > +			regulator-max-microvolt = <1300000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l17b_1p7: ldo17 {
> > +			regulator-name = "vreg_l17b_1p7";
> > +			regulator-min-microvolt = <1700000>;
> > +			regulator-max-microvolt = <1900000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l18b_1p8: ldo18 {
> > +			regulator-name = "vreg_l18b_1p8";
> > +			regulator-min-microvolt = <1800000>;
> > +			regulator-max-microvolt = <2000000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l19b_1p8: ldo19 {
> > +			regulator-name = "vreg_l19b_1p8";
> > +			regulator-min-microvolt = <1800000>;
> > +			regulator-max-microvolt = <2000000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +	};
> > +
> > +	regulators-1 {
> > +		compatible = "qcom,pm8350c-rpmh-regulators";
> > +		qcom,pmic-id = "c";
> > +
> > +		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>;
> > +		vdd-s7-supply = <&vph_pwr>;
> > +		vdd-s8-supply = <&vph_pwr>;
> > +		vdd-s9-supply = <&vph_pwr>;
> > +		vdd-s10-supply = <&vph_pwr>;
> > +		vdd-l1-l12-supply = <&vreg_s1b_1p872>;
> > +		vdd-l2-l8-supply = <&vreg_s1b_1p872>;
> > +		vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob_3p296>;
> > +		vdd-l6-l9-l11-supply = <&vreg_bob_3p296>;
> > +		vdd-l10-supply = <&vreg_s7b_0p972>;
> > +		vdd-bob-supply = <&vph_pwr>;
> > +
> > +		vreg_s1c_2p19: smps1 {
> > +			regulator-name = "vreg_s1c_2p19";
> > +			regulator-min-microvolt = <2190000>;
> > +			regulator-max-microvolt = <2210000>;
> > +		};
> > +
> > +		vreg_s2c_0p752: smps2 {
> > +			regulator-name = "vreg_s2c_0p752";
> > +			regulator-min-microvolt = <750000>;
> > +			regulator-max-microvolt = <800000>;
> > +		};
> > +
> > +		vreg_s5c_0p752: smps5 {
> > +			regulator-name = "vreg_s5c_0p752";
> > +			regulator-min-microvolt = <465000>;
> > +			regulator-max-microvolt = <1050000>;
> > +		};
> > +
> > +		vreg_s7c_0p752: smps7 {
> > +			regulator-name = "vreg_s7c_0p752";
> > +			regulator-min-microvolt = <465000>;
> > +			regulator-max-microvolt = <800000>;
> > +		};
> > +
> > +		vreg_s9c_1p084: smps9 {
> > +			regulator-name = "vreg_s9c_1p084";
> > +			regulator-min-microvolt = <1010000>;
> > +			regulator-max-microvolt = <1170000>;
> > +		};
> > +
> > +		vreg_l1c_1p8: ldo1 {
> > +			regulator-name = "vreg_l1c_1p8";
> > +			regulator-min-microvolt = <1800000>;
> > +			regulator-max-microvolt = <1980000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l2c_1p62: ldo2 {
> > +			regulator-name = "vreg_l2c_1p62";
> > +			regulator-min-microvolt = <1620000>;
> > +			regulator-max-microvolt = <1980000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l3c_2p8: ldo3 {
> > +			regulator-name = "vreg_l3c_2p8";
> > +			regulator-min-microvolt = <2800000>;
> > +			regulator-max-microvolt = <3540000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l4c_1p62: ldo4 {
> > +			regulator-name = "vreg_l4c_1p62";
> > +			regulator-min-microvolt = <1620000>;
> > +			regulator-max-microvolt = <3300000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l5c_1p62: ldo5 {
> > +			regulator-name = "vreg_l5c_1p62";
> > +			regulator-min-microvolt = <1620000>;
> > +			regulator-max-microvolt = <3300000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l6c_2p96: ldo6 {
> > +			regulator-name = "vreg_l6c_2p96";
> > +			regulator-min-microvolt = <1800000>;
> > +			regulator-max-microvolt = <1800000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l7c_3p0: ldo7 {
> > +			regulator-name = "vreg_l7c_3p0";
> > +			regulator-min-microvolt = <3000000>;
> > +			regulator-max-microvolt = <3544000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l8c_1p62: ldo8 {
> > +			regulator-name = "vreg_l8c_1p62";
> > +			regulator-min-microvolt = <1620000>;
> > +			regulator-max-microvolt = <2000000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l9c_2p96: ldo9 {
> > +			regulator-name = "vreg_l9c_2p96";
> > +			regulator-min-microvolt = <2700000>;
> > +			regulator-max-microvolt = <3544000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l10c_0p88: ldo10 {
> > +			regulator-name = "vreg_l10c_0p88";
> > +			regulator-min-microvolt = <720000>;
> > +			regulator-max-microvolt = <1050000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l11c_2p8: ldo11 {
> > +			regulator-name = "vreg_l11c_2p8";
> > +			regulator-min-microvolt = <2800000>;
> > +			regulator-max-microvolt = <3544000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l12c_1p65: ldo12 {
> > +			regulator-name = "vreg_l12c_1p65";
> > +			regulator-min-microvolt = <1650000>;
> > +			regulator-max-microvolt = <2000000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_l13c_2p7: ldo13 {
> > +			regulator-name = "vreg_l13c_2p7";
> > +			regulator-min-microvolt = <2700000>;
> > +			regulator-max-microvolt = <3544000>;
> > +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +		};
> > +
> > +		vreg_bob_3p296: bob {
> > +			regulator-name = "vreg_bob_3p296";
> > +			regulator-min-microvolt = <3008000>;
> > +			regulator-max-microvolt = <3960000>;
> > +		};
> > +	};
> > +};
> > +
> > +&gcc {
> > +	protected-clocks = <GCC_CFG_NOC_LPASS_CLK>,
> > +			   <GCC_MSS_CFG_AHB_CLK>,
> > +			   <GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>,
> > +			   <GCC_MSS_OFFLINE_AXI_CLK>,
> > +			   <GCC_MSS_Q6SS_BOOT_CLK_SRC>,
> > +			   <GCC_MSS_Q6_MEMNOC_AXI_CLK>,
> > +			   <GCC_MSS_SNOC_AXI_CLK>,
> > +			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
> > +			   <GCC_QSPI_CORE_CLK>,
> > +			   <GCC_QSPI_CORE_CLK_SRC>,
> > +			   <GCC_SEC_CTRL_CLK_SRC>,
> > +			   <GCC_WPSS_AHB_BDG_MST_CLK>,
> > +			   <GCC_WPSS_AHB_CLK>,
> > +			   <GCC_WPSS_RSCP_CLK>;
> > +};
> > +
> > +&gpi_dma0 {
> > +	status = "okay";
> > +};
> > +
> > +&gpi_dma1 {
> > +	status = "okay";
> > +};
> > +
> > +&gpu {
> > +	status = "okay";
> > +};
> > +
> > +&gpu_zap_shader {
> > +	firmware-name = "qcom/qcs6490/a660_zap.mbn";
> > +};
> > +
> > +/* Pin 3, 5 in 40-pin connector */
> > +&i2c1 {
> > +	status = "okay";
> > +};
> > +
> > +&i2c9 {
> > +	clock-frequency = <400000>;
> > +
> > +	status = "okay";
> > +
> > +	lt9611_codec: hdmi-bridge@39 {
> > +		compatible = "lontium,lt9611";
> > +		reg = <0x39>;
> > +
> > +		interrupts-extended = <&tlmm 20 IRQ_TYPE_EDGE_FALLING>;
> > +		reset-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
> > +
> > +		vdd-supply = <&vreg_lt9611_3p3>;
> > +		vcc-supply = <&vreg_lt9611_3p3>;
> > +
> > +		pinctrl-0 = <&lt9611_irq_pin>,
> > +			    <&lt9611_rst_pin>;
> > +		pinctrl-names = "default";
> > +
> > +		ports {
> > +			#address-cells = <1>;
> > +			#size-cells = <0>;
> > +
> > +			port@0 {
> > +				reg = <0>;
> > +
> > +				lt9611_a: endpoint {
> > +					remote-endpoint = <&mdss_dsi0_out>;
> > +				};
> > +			};
> > +
> > +			port@2 {
> > +				reg = <2>;
> > +
> > +				lt9611_out: endpoint {
> > +					remote-endpoint = <&hdmi_con>;
> > +				};
> > +			};
> > +		};
> > +	};
> > +};
> > +
> > +&lpass_audiocc {
> > +	compatible = "qcom,qcm6490-lpassaudiocc";
> > +	/delete-property/ power-domains;
> > +};
> > +
> > +&mdss {
> > +	status = "okay";
> > +};
> > +
> > +&mdss_dp {
> > +	status = "okay";
> > +};
> > +
> > +&mdss_dp_out {
> > +	data-lanes = <0 1>;
> > +	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> > +
> > +	remote-endpoint = <&usb_dp_qmpphy_dp_in>;
> > +};
> > +
> > +&mdss_dsi {
> > +	vdda-supply = <&vreg_l6b_1p2>;
> > +
> > +	status = "okay";
> > +};
> > +
> > +&mdss_dsi0_out {
> > +	remote-endpoint = <&lt9611_a>;
> > +	data-lanes = <0 1 2 3>;
> > +};
> > +
> > +&mdss_dsi_phy {
> > +	vdds-supply = <&vreg_l10c_0p88>;
> > +
> > +	status = "okay";
> > +};
> > +
> > +&pcie0 {
> > +	status = "okay";
> > +};
> > +
> > +&pcie0_phy {
> > +	vdda-phy-supply = <&vreg_l10c_0p88>;
> > +	vdda-pll-supply = <&vreg_l6b_1p2>;
> > +
> > +	status = "okay";
> > +};
> > +
> > +&pcie1 {
> > +	perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
> > +	wake-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>;
> > +
> > +	pinctrl-0 = <&pcie1_reset_n>,
> > +		    <&pcie1_wake_n>,
> > +		    <&pcie1_clkreq_n>;
> > +	pinctrl-names = "default";
> > +
> > +	status = "okay";
> > +};
> > +
> > +&pcie1_phy {
> > +	vdda-phy-supply = <&vreg_l10c_0p88>;
> > +	vdda-pll-supply = <&vreg_l6b_1p2>;
> > +
> > +	status = "okay";
> > +};
> > +
> > +&pm7325_gpios {
> > +	kypd_vol_up_n: kypd-vol-up-n-state {
> > +		pins = "gpio6";
> > +		function = PMIC_GPIO_FUNC_NORMAL;
> > +		power-source = <1>;
> > +		bias-pull-up;
> > +		input-enable;
> > +	};
> > +};
> > +
> > +&pm7325_temp_alarm {
> > +	io-channels = <&pmk8350_vadc PM7325_ADC7_DIE_TEMP>;
> > +	io-channel-names = "thermal";
> > +};
> > +
> > +&pmk8350_adc_tm {
> > +	status = "okay";
> > +
> > +	xo-therm@0 {
> > +		reg = <0>;
> > +		io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
> > +		qcom,ratiometric;
> > +		qcom,hw-settle-time-us = <200>;
> > +	};
> > +
> > +	quiet-therm@1 {
> > +		reg = <1>;
> > +		io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>;
> > +		qcom,ratiometric;
> > +		qcom,hw-settle-time-us = <200>;
> > +	};
> > +
> > +	sdm-skin-therm@3 {
> > +		reg = <3>;
> > +		io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>;
> > +		qcom,ratiometric;
> > +		qcom,hw-settle-time-us = <200>;
> > +	};
> > +};
> > +
> > +&pm8350c_pwm {
> > +	#address-cells = <1>;
> > +	#size-cells = <0>;
> > +
> > +	status = "okay";
> > +
> > +	led@1 {
> > +		reg = <1>;
> > +		color = <LED_COLOR_ID_GREEN>;
> > +		function = LED_FUNCTION_INDICATOR;
> > +		function-enumerator = <3>;
> > +		linux,default-trigger = "none";
> > +		default-state = "off";
> > +		panic-indicator;
> > +		label = "red";
> 
> So, is it "red" or LED_COLOR_ID_GREEN?

This should be changed to:
color = <LED_COLOR_ID_RED>;

> 
> > +	};
> > +
> > +	led@2 {
> > +		reg = <2>;
> > +		color = <LED_COLOR_ID_GREEN>;
> > +		function = LED_FUNCTION_INDICATOR;
> > +		function-enumerator = <2>;
> > +		linux,default-trigger = "none";
> > +		default-state = "off";
> > +		label = "green";
> > +	};
> > +
> > +	led@3 {
> > +		reg = <3>;
> > +		color = <LED_COLOR_ID_GREEN>;
> > +		function = LED_FUNCTION_INDICATOR;
> > +		function-enumerator = <1>;
> > +		linux,default-trigger = "none";
> > +		default-state = "off";
> > +		label = "blue";
> 
> Likewise, why is this blue?

This should be changed to:
color = <LED_COLOR_ID_BLUE>;

> 
> > +	};
> > +};
> > +
> > +&pmk8350_rtc {
> > +	allow-set-time;
> > +
> > +	status = "okay";
> > +};
> > +
> > +&pmk8350_vadc {
> > +	channel@3 {
> > +		reg = <PMK8350_ADC7_DIE_TEMP>;
> > +		label = "pmk8350_die_temp";
> > +		qcom,pre-scaling = <1 1>;
> > +	};
> > +
> > +	channel@44 {
> > +		reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
> > +		label = "xo_therm";
> > +		qcom,hw-settle-time = <200>;
> > +		qcom,pre-scaling = <1 1>;
> > +		qcom,ratiometric;
> > +	};
> > +
> > +	channel@103 {
> > +		reg = <PM7325_ADC7_DIE_TEMP>;
> > +		label = "pm7325_die_temp";
> > +		qcom,pre-scaling = <1 1>;
> > +	};
> > +
> > +	channel@144 {
> > +		reg = <PM7325_ADC7_AMUX_THM1_100K_PU>;
> > +		qcom,ratiometric;
> > +		qcom,hw-settle-time = <200>;
> > +		qcom,pre-scaling = <1 1>;
> > +		label = "pm7325_quiet_therm";
> > +	};
> > +
> > +	channel@146 {
> > +		reg = <PM7325_ADC7_AMUX_THM3_100K_PU>;
> > +		qcom,ratiometric;
> > +		qcom,hw-settle-time = <200>;
> > +		qcom,pre-scaling = <1 1>;
> > +		label = "pm7325_sdm_skin_therm";
> > +	};
> > +};
> > +
> > +&pon_pwrkey {
> > +	status = "okay";
> > +};
> > +
> > +&pon_resin {
> > +	linux,code = <KEY_VOLUMEDOWN>;
> > +
> > +	status = "okay";
> > +};
> > +
> > +&qupv3_id_0 {
> > +	status = "okay";
> > +};
> > +
> > +&qupv3_id_1 {
> > +	status = "okay";
> > +};
> > +
> > +&remoteproc_adsp {
> > +	firmware-name = "qcom/qcs6490/adsp.mbn";
> > +
> > +	status = "okay";
> > +};
> > +
> > +&remoteproc_cdsp {
> > +	firmware-name = "qcom/qcs6490/cdsp.mbn";
> > +
> > +	status = "okay";
> > +};
> > +
> > +/* WIFI part of the AP6256 connected with SDIO */
> > +&sdhc_2 {
> > +	vmmc-supply = <&vreg_l9c_2p96>;
> > +	vqmmc-supply = <&vreg_l6c_2p96>;
> > +
> > +	non-removable;
> > +	keep-power-in-suspend;
> > +	/delete-property/ cd-gpios;
> > +
> > +	status = "okay";
> > +};
> > +
> > +/* Pin 19, 21, 23, 24 in 40-pin connector */
> > +&spi12 {
> > +	status = "okay";
> > +};
> > +
> > +/* Pin 8, 10 in 40-pin connector */
> > +&uart2 {
> > +	status = "okay";
> > +};
> > +
> > +&uart5 {
> > +	status = "okay";
> > +};
> > +
> > +/* BT part of the AP6256 connected with UART */
> > +&uart7 {
> > +	/delete-property/ interrupts;
> > +	interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
> > +			      <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
> > +	pinctrl-1 = <&qup_uart7_sleep_cts>,
> > +		    <&qup_uart7_sleep_rts>,
> > +		    <&qup_uart7_sleep_tx>,
> > +		    <&qup_uart7_sleep_rx>;
> > +	pinctrl-names = "default",
> > +			"sleep";
> > +
> > +	status = "okay";
> > +
> > +	bluetooth {
> > +		compatible = "brcm,bcm4345c5";
> > +		clocks = <&sleep_clk>;
> > +		clock-names = "lpo";
> > +		device-wakeup-gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>;
> > +		host-wakeup-gpios = <&tlmm 137 GPIO_ACTIVE_HIGH>;
> > +		shutdown-gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>;
> > +		pinctrl-0 = <&bt_device_wake>,
> > +			    <&bt_host_wake>,
> > +			    <&bt_reset>;
> > +		pinctrl-names = "default";
> > +		vbat-supply = <&vreg_sdio_wifi_1p8>;
> > +		vddio-supply = <&vreg_sdio_wifi_1p8>;
> > +		max-speed = <3000000>;
> > +	};
> > +};
> > +
> > +&usb_1 {
> > +	dr_mode = "otg";
> 
> Not necessary, this is default.

Understood, I will remove the dr_mode property.

> 
> > +
> > +	status = "okay";
> > +};
> > +
> > +&usb_1_dwc3_hs {
> > +	remote-endpoint = <&pmic_glink_hs_in>;
> > +};
> > +
> > +&usb_1_hsphy {
> > +	vdda-pll-supply = <&vreg_l10c_0p88>;
> > +	vdda33-supply = <&vreg_l2b_3p072>;
> > +	vdda18-supply = <&vreg_l1c_1p8>;
> > +
> > +	status = "okay";
> > +};
> > +
> > +&usb_1_qmpphy {
> > +	vdda-phy-supply = <&vreg_l6b_1p2>;
> > +	vdda-pll-supply = <&vreg_l1b_0p912>;
> > +
> > +	status = "okay";
> > +};
> > +
> > +&usb_2 {
> > +	dr_mode = "host";
> > +
> > +	status = "okay";
> > +};
> > +
> > +&usb_2_hsphy {
> > +	vdda-pll-supply = <&vreg_l10c_0p88>;
> > +	vdda18-supply = <&vreg_l1c_1p8>;
> > +	vdda33-supply = <&vreg_l2b_3p072>;
> > +
> > +	status = "okay";
> > +};
> > +
> > +&usb_dp_qmpphy_out {
> > +	remote-endpoint = <&pmic_glink_ss_in>;
> > +};
> > +
> > +&ufs_mem_hc {
> > +	reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
> > +	vcc-supply = <&vreg_l7b_2p952>;
> > +	vcc-max-microamp = <800000>;
> > +	vccq-supply = <&vreg_l9b_1p2>;
> > +	vccq-max-microamp = <900000>;
> > +	vccq2-supply = <&vreg_l9b_1p2>;
> > +	vccq2-max-microamp = <900000>;
> > +
> > +	status = "okay";
> > +};
> > +
> > +&ufs_mem_phy {
> > +	vdda-phy-supply = <&vreg_l10c_0p88>;
> > +	vdda-pll-supply = <&vreg_l6b_1p2>;
> > +
> > +	status = "okay";
> > +};
> > +
> > +&venus {
> > +	status = "okay";
> > +};
> > +
> > +&thermal_zones {
> 
> Why is it here?`

I think I got the order wrong,
I will move &thermal_zones between &spi12 and &uart2.

> 
> > +	cpu0-thermal {
> > +		trips {
> > +			cpu_tepid: cpu-tepid {
> > +				temperature = <65000>;
> > +				hysteresis = <5000>;
> > +				type = "active";
> > +			};
> > +
> > +			cpu_warm: cpu-warm {
> > +				temperature = <80000>;
> > +				hysteresis = <5000>;
> > +				type = "active";
> > +			};
> > +
> > +			cpu_hot: cpu-hot {
> > +				temperature = <90000>;
> > +				hysteresis = <5000>;
> > +				type = "active";
> > +			};
> 
> This has the same value as trip-point0. Is it intentional?

I overlooked the temperatures in sc7280.dtsi, I will remove cpu_hot.

Additionally, based on Konrad's final suggestion in
"[PATCH v4 1/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts",
I will remove the cooling-maps node (user space service will get netlink
information to control the fan), and finally change to:

&thermal_zones {
	cpu0-thermal {
		trips {
			cpu_tepid: cpu-tepid {
				temperature = <65000>;
				hysteresis = <5000>;
				type = "active";
			};

			cpu_warm: cpu-warm {
				temperature = <80000>;
				hysteresis = <5000>;
				type = "active";
			};
		};
	};
};

> 
> > +		};
> > +
> > +		cooling-maps {
> > +			map-cpu-tepid {
> > +				/* active: set fan to cooling level 1 */
> > +				cooling-device = <&fan0 1 1>;
> > +				trip = <&cpu_tepid>;
> > +			};
> > +
> > +			map-cpu-warm {
> > +				/* active: set fan to cooling level 2 */
> > +				cooling-device = <&fan0 2 2>;
> > +				trip = <&cpu_warm>;
> > +			};
> > +
> > +			map-cpu-hot {
> > +				/* active: set fan to cooling level 3 */
> > +				cooling-device = <&fan0 3 3>;
> > +				trip = <&cpu_hot>;
> > +			};
> > +		};
> > +	};
> > +};
> > +
> 

---
Thank you for the review!
Hongyang

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v5 1/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts
  2025-10-31  9:27     ` Hongyang Zhao
@ 2025-11-01  8:37       ` Dmitry Baryshkov
  2025-11-02  3:09         ` Hongyang Zhao
  2025-11-03 11:57       ` Konrad Dybcio
  1 sibling, 1 reply; 14+ messages in thread
From: Dmitry Baryshkov @ 2025-11-01  8:37 UTC (permalink / raw)
  To: Hongyang Zhao
  Cc: andersson, casey.connolly, christopher.obbard, linux-arm-msm,
	loic.minier, rosh

On Fri, Oct 31, 2025 at 05:27:27PM +0800, Hongyang Zhao wrote:
> > On Sat, Oct 25, 2025 at 08:27:22PM +0800, Hongyang Zhao wrote:
> > > Add DTS for Thundercomm qcs6490-rubikpi3 board which uses
> > > QCS6490 SoC.
> > > 
> > > Works:
> > > - Bluetooth (AP6256)
> > > - Wi-Fi (AP6256)
> > > - Ethernet (AX88179B connected to UPD720201)
> > > - FAN
> > > - Two USB Type-A 3.0 ports (UPD720201 connected to PCIe0)
> > > - M.2 M-Key 2280 PCIe 3.0
> > > - RTC
> > > - USB Type-C
> > > - USB Type-A 2.0 port
> > > - 40PIN: I2C x1, UART x1
> > > 
> > > Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com>
> > > Reviewed-by: Roger Shimizu <rosh@debian.org>
> > > Cc: Casey Connolly <casey.connolly@linaro.org>
> > > Cc: Christopher Obbard <christopher.obbard@linaro.org>
> > > Cc: Loic Minier <loic.minier@oss.qualcomm.com>
> > > ---
> > >  arch/arm64/boot/dts/qcom/Makefile             |    1 +
> > >  .../dts/qcom/qcs6490-thundercomm-rubikpi3.dts | 1390 +++++++++++++++++
> > >  2 files changed, 1391 insertions(+)
> > >  create mode 100644 arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts
> > > 
> > > +	vreg_lt9611_3p3: vreg_lt9611_3p3 {
> > 
> > regulator-foo-bar-baz, please. This way VPH PWR doesn't stand out.
> 
> Understood, I will check the entire device tree and change:
> vreg_lt9611_3v3: regulator-lt9611-3v3
> vreg_m2_1v8: regulator-m2-1v8
> vreg_sdio_wifi_1v8: regulator-wifi-1v8
> ...
> 
> > > +
> > > +	vph_pwr: vph-pwr-regulator {
> > 
> > Otherwise you currently stuffed it in the middle of other regulators,
> > although it doesn't belong here.
> 
> Understood, I will move vph-pwr-regulator after usb1-sbu-mux.

I hope, you are talking about regulator-vph-pwr now.

> > > +
> > > +	led@1 {
> > > +		reg = <1>;
> > > +		color = <LED_COLOR_ID_GREEN>;
> > > +		function = LED_FUNCTION_INDICATOR;
> > > +		function-enumerator = <3>;
> > > +		linux,default-trigger = "none";
> > > +		default-state = "off";
> > > +		panic-indicator;
> > > +		label = "red";
> > 
> > So, is it "red" or LED_COLOR_ID_GREEN?
> 
> This should be changed to:
> color = <LED_COLOR_ID_RED>;

So, what is the actual LED colour? Also, is it a single multi-colour LED
or several separate LEDs?

> 
> > 
> > > +	};
> > > +
> > > +	led@2 {
> > > +		reg = <2>;
> > > +		color = <LED_COLOR_ID_GREEN>;
> > > +		function = LED_FUNCTION_INDICATOR;
> > > +		function-enumerator = <2>;
> > > +		linux,default-trigger = "none";
> > > +		default-state = "off";
> > > +		label = "green";
> > > +	};
> > > +
> > > +	led@3 {
> > > +		reg = <3>;
> > > +		color = <LED_COLOR_ID_GREEN>;
> > > +		function = LED_FUNCTION_INDICATOR;
> > > +		function-enumerator = <1>;
> > > +		linux,default-trigger = "none";
> > > +		default-state = "off";
> > > +		label = "blue";
> > 
> > Likewise, why is this blue?
> 
> This should be changed to:
> color = <LED_COLOR_ID_BLUE>;
> 
> > 
> > > +	};
> > > +};
> > > +
-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v5 1/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts
  2025-11-01  8:37       ` Dmitry Baryshkov
@ 2025-11-02  3:09         ` Hongyang Zhao
  2025-11-02 22:13           ` Dmitry Baryshkov
  0 siblings, 1 reply; 14+ messages in thread
From: Hongyang Zhao @ 2025-11-02  3:09 UTC (permalink / raw)
  To: dmitry.baryshkov
  Cc: andersson, casey.connolly, christopher.obbard, hongyang.zhao,
	linux-arm-msm, loic.minier, rosh

> On Fri, Oct 31, 2025 at 05:27:27PM +0800, Hongyang Zhao wrote:
> > > On Sat, Oct 25, 2025 at 08:27:22PM +0800, Hongyang Zhao wrote:
> > > > Add DTS for Thundercomm qcs6490-rubikpi3 board which uses
> > > > QCS6490 SoC.
> > > > 
> > > > Works:
> > > > - Bluetooth (AP6256)
> > > > - Wi-Fi (AP6256)
> > > > - Ethernet (AX88179B connected to UPD720201)
> > > > - FAN
> > > > - Two USB Type-A 3.0 ports (UPD720201 connected to PCIe0)
> > > > - M.2 M-Key 2280 PCIe 3.0
> > > > - RTC
> > > > - USB Type-C
> > > > - USB Type-A 2.0 port
> > > > - 40PIN: I2C x1, UART x1
> > > > 
> > > > Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com>
> > > > Reviewed-by: Roger Shimizu <rosh@debian.org>
> > > > Cc: Casey Connolly <casey.connolly@linaro.org>
> > > > Cc: Christopher Obbard <christopher.obbard@linaro.org>
> > > > Cc: Loic Minier <loic.minier@oss.qualcomm.com>
> > > > ---
> > > >  arch/arm64/boot/dts/qcom/Makefile             |    1 +
> > > >  .../dts/qcom/qcs6490-thundercomm-rubikpi3.dts | 1390 +++++++++++++++++
> > > >  2 files changed, 1391 insertions(+)
> > > >  create mode 100644 arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts
> > > > 
> > > > +	vreg_lt9611_3p3: vreg_lt9611_3p3 {
> > > 
> > > regulator-foo-bar-baz, please. This way VPH PWR doesn't stand out.
> > 
> > Understood, I will check the entire device tree and change:
> > vreg_lt9611_3v3: regulator-lt9611-3v3
> > vreg_m2_1v8: regulator-m2-1v8
> > vreg_sdio_wifi_1v8: regulator-wifi-1v8
> > ...
> > 
> > > > +
> > > > +	vph_pwr: vph-pwr-regulator {
> > > 
> > > Otherwise you currently stuffed it in the middle of other regulators,
> > > although it doesn't belong here.
> > 
> > Understood, I will move vph-pwr-regulator after usb1-sbu-mux.
> 
> I hope, you are talking about regulator-vph-pwr now.

Got it,
I will change it to regulator-vph-pwr and put it before all regulators:

reserved-memory { ... }
vph_pwr: regulator-vph-pwr { ... }
vreg_lt9611_3v3: regulator-lt9611-3v3 { ... }
[...]

> 
> > > > +
> > > > +	led@1 {
> > > > +		reg = <1>;
> > > > +		color = <LED_COLOR_ID_GREEN>;
> > > > +		function = LED_FUNCTION_INDICATOR;
> > > > +		function-enumerator = <3>;
> > > > +		linux,default-trigger = "none";
> > > > +		default-state = "off";
> > > > +		panic-indicator;
> > > > +		label = "red";
> > > 
> > > So, is it "red" or LED_COLOR_ID_GREEN?
> > 
> > This should be changed to:
> > color = <LED_COLOR_ID_RED>;
> 
> So, what is the actual LED colour? Also, is it a single multi-colour LED
> or several separate LEDs?

The actual color is the same as the label attribute.

It's actually an LED package that combines three LEDs side-by-side.
Our hardware colleagues thought it was three separate LEDs.
I've uploaded a photo of the LEDs to Github:
https://hongyang-rp.github.io

> 
> > 
> > > 
> > > > +	};
> > > > +
> > > > +	led@2 {
> > > > +		reg = <2>;
> > > > +		color = <LED_COLOR_ID_GREEN>;
> > > > +		function = LED_FUNCTION_INDICATOR;
> > > > +		function-enumerator = <2>;
> > > > +		linux,default-trigger = "none";
> > > > +		default-state = "off";
> > > > +		label = "green";
> > > > +	};
> > > > +
> > > > +	led@3 {
> > > > +		reg = <3>;
> > > > +		color = <LED_COLOR_ID_GREEN>;
> > > > +		function = LED_FUNCTION_INDICATOR;
> > > > +		function-enumerator = <1>;
> > > > +		linux,default-trigger = "none";
> > > > +		default-state = "off";
> > > > +		label = "blue";
> > > 
> > > Likewise, why is this blue?
> > 
> > This should be changed to:
> > color = <LED_COLOR_ID_BLUE>;
> > 
> > > 
> > > > +	};
> > > > +};
> > > > +

---
Thank you for the review!
Hongyang

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v5 1/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts
  2025-11-02  3:09         ` Hongyang Zhao
@ 2025-11-02 22:13           ` Dmitry Baryshkov
  2025-11-03  4:20             ` Hongyang Zhao
  0 siblings, 1 reply; 14+ messages in thread
From: Dmitry Baryshkov @ 2025-11-02 22:13 UTC (permalink / raw)
  To: Hongyang Zhao
  Cc: andersson, casey.connolly, christopher.obbard, linux-arm-msm,
	loic.minier, rosh

On Sun, Nov 02, 2025 at 11:09:00AM +0800, Hongyang Zhao wrote:
> > On Fri, Oct 31, 2025 at 05:27:27PM +0800, Hongyang Zhao wrote:
> > > > On Sat, Oct 25, 2025 at 08:27:22PM +0800, Hongyang Zhao wrote:
> > > > > Add DTS for Thundercomm qcs6490-rubikpi3 board which uses
> > > > > QCS6490 SoC.
> > > > > 
> > > > > Works:
> > > > > - Bluetooth (AP6256)
> > > > > - Wi-Fi (AP6256)
> > > > > - Ethernet (AX88179B connected to UPD720201)
> > > > > - FAN
> > > > > - Two USB Type-A 3.0 ports (UPD720201 connected to PCIe0)
> > > > > - M.2 M-Key 2280 PCIe 3.0
> > > > > - RTC
> > > > > - USB Type-C
> > > > > - USB Type-A 2.0 port
> > > > > - 40PIN: I2C x1, UART x1
> > > > > 
> > > > > Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com>
> > > > > Reviewed-by: Roger Shimizu <rosh@debian.org>
> > > > > Cc: Casey Connolly <casey.connolly@linaro.org>
> > > > > Cc: Christopher Obbard <christopher.obbard@linaro.org>
> > > > > Cc: Loic Minier <loic.minier@oss.qualcomm.com>
> > > > > ---
> > > > >  arch/arm64/boot/dts/qcom/Makefile             |    1 +
> > > > >  .../dts/qcom/qcs6490-thundercomm-rubikpi3.dts | 1390 +++++++++++++++++
> > > > >  2 files changed, 1391 insertions(+)
> > > > >  create mode 100644 arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts
> > > > > 
> > > > > +	vreg_lt9611_3p3: vreg_lt9611_3p3 {
> > > > 
> > > > regulator-foo-bar-baz, please. This way VPH PWR doesn't stand out.
> > > 
> > > Understood, I will check the entire device tree and change:
> > > vreg_lt9611_3v3: regulator-lt9611-3v3
> > > vreg_m2_1v8: regulator-m2-1v8
> > > vreg_sdio_wifi_1v8: regulator-wifi-1v8
> > > ...
> > > 
> > > > > +
> > > > > +	vph_pwr: vph-pwr-regulator {
> > > > 
> > > > Otherwise you currently stuffed it in the middle of other regulators,
> > > > although it doesn't belong here.
> > > 
> > > Understood, I will move vph-pwr-regulator after usb1-sbu-mux.
> > 
> > I hope, you are talking about regulator-vph-pwr now.
> 
> Got it,
> I will change it to regulator-vph-pwr and put it before all regulators:
> 
> reserved-memory { ... }
> vph_pwr: regulator-vph-pwr { ... }
> vreg_lt9611_3v3: regulator-lt9611-3v3 { ... }

Why?? What is the sort order?

> [...]
> 
> > 
> > > > > +
> > > > > +	led@1 {
> > > > > +		reg = <1>;
> > > > > +		color = <LED_COLOR_ID_GREEN>;
> > > > > +		function = LED_FUNCTION_INDICATOR;
> > > > > +		function-enumerator = <3>;
> > > > > +		linux,default-trigger = "none";
> > > > > +		default-state = "off";
> > > > > +		panic-indicator;
> > > > > +		label = "red";
> > > > 
> > > > So, is it "red" or LED_COLOR_ID_GREEN?
> > > 
> > > This should be changed to:
> > > color = <LED_COLOR_ID_RED>;
> > 
> > So, what is the actual LED colour? Also, is it a single multi-colour LED
> > or several separate LEDs?
> 
> The actual color is the same as the label attribute.
> 
> It's actually an LED package that combines three LEDs side-by-side.
> Our hardware colleagues thought it was three separate LEDs.
> I've uploaded a photo of the LEDs to Github:
> https://hongyang-rp.github.io

Then please use the the multicolour or rgb led to describe it.

> 
> > 
> > > 
> > > > 
> > > > > +	};
> > > > > +
> > > > > +	led@2 {
> > > > > +		reg = <2>;
> > > > > +		color = <LED_COLOR_ID_GREEN>;
> > > > > +		function = LED_FUNCTION_INDICATOR;
> > > > > +		function-enumerator = <2>;
> > > > > +		linux,default-trigger = "none";
> > > > > +		default-state = "off";
> > > > > +		label = "green";
> > > > > +	};
> > > > > +
> > > > > +	led@3 {
> > > > > +		reg = <3>;
> > > > > +		color = <LED_COLOR_ID_GREEN>;
> > > > > +		function = LED_FUNCTION_INDICATOR;
> > > > > +		function-enumerator = <1>;
> > > > > +		linux,default-trigger = "none";
> > > > > +		default-state = "off";
> > > > > +		label = "blue";
> > > > 
> > > > Likewise, why is this blue?
> > > 
> > > This should be changed to:
> > > color = <LED_COLOR_ID_BLUE>;
> > > 
> > > > 
> > > > > +	};
> > > > > +};
> > > > > +
> 
> ---
> Thank you for the review!
> Hongyang

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v5 1/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts
  2025-11-02 22:13           ` Dmitry Baryshkov
@ 2025-11-03  4:20             ` Hongyang Zhao
  0 siblings, 0 replies; 14+ messages in thread
From: Hongyang Zhao @ 2025-11-03  4:20 UTC (permalink / raw)
  To: dmitry.baryshkov
  Cc: andersson, casey.connolly, christopher.obbard, hongyang.zhao,
	linux-arm-msm, loic.minier, rosh

> On Sun, Nov 02, 2025 at 11:09:00AM +0800, Hongyang Zhao wrote:
> > > On Fri, Oct 31, 2025 at 05:27:27PM +0800, Hongyang Zhao wrote:
> > > > > On Sat, Oct 25, 2025 at 08:27:22PM +0800, Hongyang Zhao wrote:
> > > > > > Add DTS for Thundercomm qcs6490-rubikpi3 board which uses
> > > > > > QCS6490 SoC.
> > > > > > 
> > > > > > Works:
> > > > > > - Bluetooth (AP6256)
> > > > > > - Wi-Fi (AP6256)
> > > > > > - Ethernet (AX88179B connected to UPD720201)
> > > > > > - FAN
> > > > > > - Two USB Type-A 3.0 ports (UPD720201 connected to PCIe0)
> > > > > > - M.2 M-Key 2280 PCIe 3.0
> > > > > > - RTC
> > > > > > - USB Type-C
> > > > > > - USB Type-A 2.0 port
> > > > > > - 40PIN: I2C x1, UART x1
> > > > > > 
> > > > > > Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com>
> > > > > > Reviewed-by: Roger Shimizu <rosh@debian.org>
> > > > > > Cc: Casey Connolly <casey.connolly@linaro.org>
> > > > > > Cc: Christopher Obbard <christopher.obbard@linaro.org>
> > > > > > Cc: Loic Minier <loic.minier@oss.qualcomm.com>
> > > > > > ---
> > > > > >  arch/arm64/boot/dts/qcom/Makefile             |    1 +
> > > > > >  .../dts/qcom/qcs6490-thundercomm-rubikpi3.dts | 1390 +++++++++++++++++
> > > > > >  2 files changed, 1391 insertions(+)
> > > > > >  create mode 100644 arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts
> > > > > > 
> > > > > > +	vreg_lt9611_3p3: vreg_lt9611_3p3 {
> > > > > 
> > > > > regulator-foo-bar-baz, please. This way VPH PWR doesn't stand out.
> > > > 
> > > > Understood, I will check the entire device tree and change:
> > > > vreg_lt9611_3v3: regulator-lt9611-3v3
> > > > vreg_m2_1v8: regulator-m2-1v8
> > > > vreg_sdio_wifi_1v8: regulator-wifi-1v8
> > > > ...
> > > > 
> > > > > > +
> > > > > > +	vph_pwr: vph-pwr-regulator {
> > > > > 
> > > > > Otherwise you currently stuffed it in the middle of other regulators,
> > > > > although it doesn't belong here.
> > > > 
> > > > Understood, I will move vph-pwr-regulator after usb1-sbu-mux.
> > > 
> > > I hope, you are talking about regulator-vph-pwr now.
> > 
> > Got it,
> > I will change it to regulator-vph-pwr and put it before all regulators:
> > 
> > reserved-memory { ... }
> > vph_pwr: regulator-vph-pwr { ... }
> > vreg_lt9611_3v3: regulator-lt9611-3v3 { ... }
> 
> Why?? What is the sort order?
> 

Sorry, the sorting was incorrect.
I will correct it according to the alphabetical order of the node names:

fan0: pwm-fan { ... }
vreg_eth_1v8: regulator-eth-1v8 { ... }
vreg_lt9611_3v3: regulator-lt9611-3v3 { ... }
vreg_m2_1v8: regulator-m2-1v8 { ... }
vreg_usbhub_pwr_1v8: regulator-usbhub-pwr-1v8 { ... }
vreg_usbhub_rest_1v8: regulator-usbhub-rest-1v8 { ... }
vph_pwr: regulator-vph-pwr { ... }
vreg_wifi_1v8: regulator-wifi-1v8 { ... }
reserved-memory { ... }

> > [...]
> > 
> > > 
> > > > > > +
> > > > > > +	led@1 {
> > > > > > +		reg = <1>;
> > > > > > +		color = <LED_COLOR_ID_GREEN>;
> > > > > > +		function = LED_FUNCTION_INDICATOR;
> > > > > > +		function-enumerator = <3>;
> > > > > > +		linux,default-trigger = "none";
> > > > > > +		default-state = "off";
> > > > > > +		panic-indicator;
> > > > > > +		label = "red";
> > > > > 
> > > > > So, is it "red" or LED_COLOR_ID_GREEN?
> > > > 
> > > > This should be changed to:
> > > > color = <LED_COLOR_ID_RED>;
> > > 
> > > So, what is the actual LED colour? Also, is it a single multi-colour LED
> > > or several separate LEDs?
> > 
> > The actual color is the same as the label attribute.
> > 
> > It's actually an LED package that combines three LEDs side-by-side.
> > Our hardware colleagues thought it was three separate LEDs.
> > I've uploaded a photo of the LEDs to Github:
> > https://hongyang-rp.github.io
> 
> Then please use the the multicolour or rgb led to describe it.
> 

Understood, I will change it to:

&pm8350c_pwm {
	status = "okay";

	multi-led {
		color = <LED_COLOR_ID_RGB>;
		function = LED_FUNCTION_INDICATOR;

		#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>;
		};
	};
};

> > 
> > > 
> > > > 
> > > > > 
> > > > > > +	};
> > > > > > +
> > > > > > +	led@2 {
> > > > > > +		reg = <2>;
> > > > > > +		color = <LED_COLOR_ID_GREEN>;
> > > > > > +		function = LED_FUNCTION_INDICATOR;
> > > > > > +		function-enumerator = <2>;
> > > > > > +		linux,default-trigger = "none";
> > > > > > +		default-state = "off";
> > > > > > +		label = "green";
> > > > > > +	};
> > > > > > +
> > > > > > +	led@3 {
> > > > > > +		reg = <3>;
> > > > > > +		color = <LED_COLOR_ID_GREEN>;
> > > > > > +		function = LED_FUNCTION_INDICATOR;
> > > > > > +		function-enumerator = <1>;
> > > > > > +		linux,default-trigger = "none";
> > > > > > +		default-state = "off";
> > > > > > +		label = "blue";
> > > > > 
> > > > > Likewise, why is this blue?
> > > > 
> > > > This should be changed to:
> > > > color = <LED_COLOR_ID_BLUE>;
> > > > 
> > > > > 
> > > > > > +	};
> > > > > > +};
> > > > > > +
> > 

---
Thank you for the review!
Hongyang

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v5 1/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts
  2025-10-31  9:27     ` Hongyang Zhao
  2025-11-01  8:37       ` Dmitry Baryshkov
@ 2025-11-03 11:57       ` Konrad Dybcio
  2025-11-03 12:33         ` Hongyang Zhao
  1 sibling, 1 reply; 14+ messages in thread
From: Konrad Dybcio @ 2025-11-03 11:57 UTC (permalink / raw)
  To: Hongyang Zhao, dmitry.baryshkov
  Cc: andersson, casey.connolly, christopher.obbard, linux-arm-msm,
	loic.minier, rosh

On 10/31/25 10:27 AM, Hongyang Zhao wrote:
>> On Sat, Oct 25, 2025 at 08:27:22PM +0800, Hongyang Zhao wrote:
>>> Add DTS for Thundercomm qcs6490-rubikpi3 board which uses
>>> QCS6490 SoC.
>>>
>>> Works:
>>> - Bluetooth (AP6256)
>>> - Wi-Fi (AP6256)
>>> - Ethernet (AX88179B connected to UPD720201)
>>> - FAN
>>> - Two USB Type-A 3.0 ports (UPD720201 connected to PCIe0)
>>> - M.2 M-Key 2280 PCIe 3.0
>>> - RTC
>>> - USB Type-C
>>> - USB Type-A 2.0 port
>>> - 40PIN: I2C x1, UART x1
>>>
>>> Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com>
>>> Reviewed-by: Roger Shimizu <rosh@debian.org>
>>> Cc: Casey Connolly <casey.connolly@linaro.org>
>>> Cc: Christopher Obbard <christopher.obbard@linaro.org>
>>> Cc: Loic Minier <loic.minier@oss.qualcomm.com>
>>> ---

[...]

>>> +			cpu_hot: cpu-hot {
>>> +				temperature = <90000>;
>>> +				hysteresis = <5000>;
>>> +				type = "active";
>>> +			};
>>
>> This has the same value as trip-point0. Is it intentional?
> 
> I overlooked the temperatures in sc7280.dtsi, I will remove cpu_hot.
> 
> Additionally, based on Konrad's final suggestion in
> "[PATCH v4 1/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts",
> I will remove the cooling-maps node (user space service will get netlink
> information to control the fan), and finally change to:

My suggestion was to fix the description and wire up the fan. I called
your userland service creative because I didn't want to use the other
word that came to mind.

Konrad

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v5 1/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts
  2025-11-03 11:57       ` Konrad Dybcio
@ 2025-11-03 12:33         ` Hongyang Zhao
  2025-11-03 12:53           ` Konrad Dybcio
  0 siblings, 1 reply; 14+ messages in thread
From: Hongyang Zhao @ 2025-11-03 12:33 UTC (permalink / raw)
  To: konrad.dybcio
  Cc: andersson, casey.connolly, christopher.obbard, dmitry.baryshkov,
	hongyang.zhao, linux-arm-msm, loic.minier, rosh

>On 10/31/25 10:27 AM, Hongyang Zhao wrote:
>>> On Sat, Oct 25, 2025 at 08:27:22PM +0800, Hongyang Zhao wrote:
>>>> Add DTS for Thundercomm qcs6490-rubikpi3 board which uses
>>>> QCS6490 SoC.
>>>>
>>>> Works:
>>>> - Bluetooth (AP6256)
>>>> - Wi-Fi (AP6256)
>>>> - Ethernet (AX88179B connected to UPD720201)
>>>> - FAN
>>>> - Two USB Type-A 3.0 ports (UPD720201 connected to PCIe0)
>>>> - M.2 M-Key 2280 PCIe 3.0
>>>> - RTC
>>>> - USB Type-C
>>>> - USB Type-A 2.0 port
>>>> - 40PIN: I2C x1, UART x1
>>>>
>>>> Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com>
>>>> Reviewed-by: Roger Shimizu <rosh@debian.org>
>>>> Cc: Casey Connolly <casey.connolly@linaro.org>
>>>> Cc: Christopher Obbard <christopher.obbard@linaro.org>
>>>> Cc: Loic Minier <loic.minier@oss.qualcomm.com>
>>>> ---
>
>[...]
>
>>>> +			cpu_hot: cpu-hot {
>>>> +				temperature = <90000>;
>>>> +				hysteresis = <5000>;
>>>> +				type = "active";
>>>> +			};
>>>
>>> This has the same value as trip-point0. Is it intentional?
>> 
>> I overlooked the temperatures in sc7280.dtsi, I will remove cpu_hot.
>> 
>> Additionally, based on Konrad's final suggestion in
>> "[PATCH v4 1/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts",
>> I will remove the cooling-maps node (user space service will get netlink
>> information to control the fan), and finally change to:
>
>My suggestion was to fix the description and wire up the fan. I called
>your userland service creative because I didn't want to use the other
>word that came to mind.
>

Understood, I will change it to:

&thermal_zones {
	cpu0-thermal {
		trips {
			cpu_tepid: cpu-tepid {
				temperature = <65000>;
				hysteresis = <5000>;
				type = "active";
			};

			cpu_warm: cpu-warm {
				temperature = <80000>;
				hysteresis = <5000>;
				type = "active";
			};
		};

		cooling-maps {
			map-cpu-tepid {
				cooling-device = <&fan0 1 1>;
				trip = <&cpu_tepid>;
			};

			map-cpu-warm {
				cooling-device = <&fan0 2 2>;
				trip = <&cpu_warm>;
			};

			map-cpu-hot {
				cooling-device = <&fan0 3 3>;
				trip = <&cpu0_alert0>;
			};
		};
	};
};

---
Thank you for the review!
Hongyang

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v5 1/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts
  2025-11-03 12:33         ` Hongyang Zhao
@ 2025-11-03 12:53           ` Konrad Dybcio
  0 siblings, 0 replies; 14+ messages in thread
From: Konrad Dybcio @ 2025-11-03 12:53 UTC (permalink / raw)
  To: Hongyang Zhao
  Cc: andersson, casey.connolly, christopher.obbard, dmitry.baryshkov,
	linux-arm-msm, loic.minier, rosh

On 11/3/25 1:33 PM, Hongyang Zhao wrote:
>> On 10/31/25 10:27 AM, Hongyang Zhao wrote:
>>>> On Sat, Oct 25, 2025 at 08:27:22PM +0800, Hongyang Zhao wrote:
>>>>> Add DTS for Thundercomm qcs6490-rubikpi3 board which uses
>>>>> QCS6490 SoC.
>>>>>
>>>>> Works:
>>>>> - Bluetooth (AP6256)
>>>>> - Wi-Fi (AP6256)
>>>>> - Ethernet (AX88179B connected to UPD720201)
>>>>> - FAN
>>>>> - Two USB Type-A 3.0 ports (UPD720201 connected to PCIe0)
>>>>> - M.2 M-Key 2280 PCIe 3.0
>>>>> - RTC
>>>>> - USB Type-C
>>>>> - USB Type-A 2.0 port
>>>>> - 40PIN: I2C x1, UART x1
>>>>>
>>>>> Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com>
>>>>> Reviewed-by: Roger Shimizu <rosh@debian.org>
>>>>> Cc: Casey Connolly <casey.connolly@linaro.org>
>>>>> Cc: Christopher Obbard <christopher.obbard@linaro.org>
>>>>> Cc: Loic Minier <loic.minier@oss.qualcomm.com>
>>>>> ---
>>
>> [...]
>>
>>>>> +			cpu_hot: cpu-hot {
>>>>> +				temperature = <90000>;
>>>>> +				hysteresis = <5000>;
>>>>> +				type = "active";
>>>>> +			};
>>>>
>>>> This has the same value as trip-point0. Is it intentional?
>>>
>>> I overlooked the temperatures in sc7280.dtsi, I will remove cpu_hot.
>>>
>>> Additionally, based on Konrad's final suggestion in
>>> "[PATCH v4 1/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts",
>>> I will remove the cooling-maps node (user space service will get netlink
>>> information to control the fan), and finally change to:
>>
>> My suggestion was to fix the description and wire up the fan. I called
>> your userland service creative because I didn't want to use the other
>> word that came to mind.
>>
> 
> Understood, I will change it to:
> 
> &thermal_zones {
> 	cpu0-thermal {
> 		trips {
> 			cpu_tepid: cpu-tepid {
> 				temperature = <65000>;
> 				hysteresis = <5000>;
> 				type = "active";
> 			};
> 
> 			cpu_warm: cpu-warm {
> 				temperature = <80000>;
> 				hysteresis = <5000>;
> 				type = "active";
> 			};
> 		};
> 
> 		cooling-maps {
> 			map-cpu-tepid {
> 				cooling-device = <&fan0 1 1>;
> 				trip = <&cpu_tepid>;
> 			};
> 
> 			map-cpu-warm {
> 				cooling-device = <&fan0 2 2>;
> 				trip = <&cpu_warm>;
> 			};
> 
> 			map-cpu-hot {
> 				cooling-device = <&fan0 3 3>;
> 				trip = <&cpu0_alert0>;

lgtm

Konrad

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2025-11-03 12:53 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-25 12:27 [PATCH v5 0/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts Hongyang Zhao
2025-10-25 12:27 ` [PATCH v5 1/2] " Hongyang Zhao
2025-10-27 14:51   ` Dmitry Baryshkov
2025-10-31  9:27     ` Hongyang Zhao
2025-11-01  8:37       ` Dmitry Baryshkov
2025-11-02  3:09         ` Hongyang Zhao
2025-11-02 22:13           ` Dmitry Baryshkov
2025-11-03  4:20             ` Hongyang Zhao
2025-11-03 11:57       ` Konrad Dybcio
2025-11-03 12:33         ` Hongyang Zhao
2025-11-03 12:53           ` Konrad Dybcio
2025-10-25 12:27 ` [PATCH v5 2/2] dt-bindings: arm: qcom: rubikpi3: document rubikpi3 board binding Hongyang Zhao
2025-10-26  9:05   ` Krzysztof Kozlowski
2025-10-30  2:33     ` [PATCH v5 2/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts Hongyang Zhao

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).