Linux ARM-MSM sub-architecture
 help / color / mirror / Atom feed
* [PATCH v4 0/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts
@ 2025-09-30  4:32 Hongyang Zhao
  2025-09-30  4:32 ` [PATCH v4 1/2] " Hongyang Zhao
  2025-09-30  4:32 ` [PATCH v4 2/2] dt-bindings: arm: qcom: rubikpi3: document rubikpi3 board binding Hongyang Zhao
  0 siblings, 2 replies; 11+ messages in thread
From: Hongyang Zhao @ 2025-09-30  4:32 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

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

---
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 | 1410 +++++++++++++++++
 3 files changed, 1412 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts

-- 
2.43.0


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

* [PATCH v4 1/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts
  2025-09-30  4:32 [PATCH v4 0/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts Hongyang Zhao
@ 2025-09-30  4:32 ` Hongyang Zhao
  2025-10-06 10:33   ` Konrad Dybcio
  2025-09-30  4:32 ` [PATCH v4 2/2] dt-bindings: arm: qcom: rubikpi3: document rubikpi3 board binding Hongyang Zhao
  1 sibling, 1 reply; 11+ messages in thread
From: Hongyang Zhao @ 2025-09-30  4:32 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:
- Wi-Fi (AP6256)
- Bluetooth (AP6256)
- Ethernet (AX88179B connected to UPD720201)
- USB Type-C
- USB Type-A 2.0 port
- Two USB Type-A 3.0 ports (UPD720201 connected to PCIe0)
- M.2 M-Key 2280 PCIe 3.0
- RTC
- 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 V1<loic.minier@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/Makefile             |    1 +
 .../dts/qcom/qcs6490-thundercomm-rubikpi3.dts | 1410 +++++++++++++++++
 2 files changed, 1411 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..e09a94819565
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts
@@ -0,0 +1,1410 @@
+// 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";
+		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 {
+		sdm-skin-thermal {
+			thermal-sensors = <&pmk8350_adc_tm 3>;
+
+			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";
+				};
+			};
+		};
+
+		xo-thermal {
+			thermal-sensors = <&pmk8350_adc_tm 0>;
+
+			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 0>;
+		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 0>;
+		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 0>;
+		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 0>;
+		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 0>;
+		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>;
+				};
+			};
+		};
+	};
+};
+
+&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 {
+	status = "okay";
+	vdda-phy-supply = <&vreg_l10c_0p88>;
+	vdda-pll-supply = <&vreg_l6b_1p2>;
+};
+
+&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";
+	};
+};
+
+&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>;
+	};
+};
+
+&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";
+};
+
+&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;
+};
+
+&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";
+			};
+		};
+	};
+
+	gpuss0-thermal {
+		trips {
+			gpuss0_alert0: trip-point0 {
+				temperature = <95000>;
+				hysteresis = <5000>;
+				type = "passive";
+			};
+		};
+	};
+
+	gpuss1-thermal {
+		trips {
+			gpuss1_alert0: trip-point0 {
+				temperature = <95000>;
+				hysteresis = <5000>;
+				type = "passive";
+			};
+		};
+	};
+
+	nspss0-thermal {
+		trips {
+			nspss0_alert0: trip-point0 {
+				temperature = <95000>;
+				hysteresis = <5000>;
+				type = "hot";
+			};
+		};
+	};
+
+	nspss1-thermal {
+		trips {
+			nspss1_alert0: trip-point0 {
+				temperature = <95000>;
+				hysteresis = <5000>;
+				type = "hot";
+			};
+		};
+	};
+};
+
+/* PINCTRL - ADDITIONS TO NODES IN PARENT DEVICE TREE FILES */
+&sdc2_clk {
+	bias-disable;
+	drive-strength = <16>;
+};
+
+&sdc2_cmd {
+	bias-pull-up;
+	drive-strength = <10>;
+};
+
+&sdc2_data {
+	bias-pull-up;
+	drive-strength = <10>;
+};
+
+&tlmm {
+	bt_device_wake: bt-device-wake-state {
+		pins = "gpio39";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	bt_host_wake: bt-host-wake-state {
+		pins = "gpio137";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	bt_reset: bt-reset-state {
+		pins = "gpio17";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	lt9611_vcc_pin: lt9611-vcc-pin-state {
+		pins = "gpio83";
+		function = "gpio";
+		output-high;
+		input-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;
+	};
+
+	m2_vcc_pin: m2-vcc-state {
+		pins = "gpio56";
+		function = "gpio";
+		output-high;
+		input-disable;
+	};
+
+	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;
+	};
+
+	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_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;
+	};
+
+	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;
+	};
+
+	usb1_sbu_default: usb1-sbu-state {
+		oe-n-pins {
+			pins = "gpio53";
+			function = "gpio";
+			bias-disable;
+			drive-strength = <16>;
+			output-high;
+		};
+		sel-pins {
+			pins = "gpio52";
+			function = "gpio";
+			bias-disable;
+			drive-strength = <16>;
+		};
+	};
+
+	usb_eth_power: usb-eth-power-state {
+		pins = "gpio7";
+		function = "gpio";
+		drive-strength = <16>;
+		bias-disable;
+	};
+
+	usbhub_power: usbhub-power-state {
+		pins = "gpio86";
+		function = "gpio";
+		drive-strength = <16>;
+		bias-disable;
+	};
+
+	usbhub_rest: usbhub-reset-state {
+		pins = "gpio136";
+		function = "gpio";
+		drive-strength = <16>;
+		bias-disable;
+	};
+
+	wifi_host_wake: wifi-host-wake-state {
+		pins = "gpio38";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	wifi_power_on: wifi-power-on-state {
+		pins = "gpio125";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	wifi_reset_active: wifi-reset-active-state {
+		pins = "gpio16";
+		function = "gpio";
+		drive-strength = <2>;
+		output-high;
+		bias-disable;
+	};
+};
+
+/*
+ * Update the lpassaudio node to support the new compatible as the
+ * lpassaudio needs to support the reset functionality on the
+ * QCS6490 RUBIK Pi 3 board and the rest of the Audio functionality would be
+ * provided from the LPASS firmware.
+ */
+&lpass_audiocc {
+	compatible = "qcom,qcm6490-lpassaudiocc";
+	/delete-property/ power-domains;
+};
-- 
2.43.0


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

* [PATCH v4 2/2] dt-bindings: arm: qcom: rubikpi3: document rubikpi3 board binding
  2025-09-30  4:32 [PATCH v4 0/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts Hongyang Zhao
  2025-09-30  4:32 ` [PATCH v4 1/2] " Hongyang Zhao
@ 2025-09-30  4:32 ` Hongyang Zhao
  2025-09-30  5:30   ` Dmitry Baryshkov
  2025-10-06  8:53   ` Krzysztof Kozlowski
  1 sibling, 2 replies; 11+ messages in thread
From: Hongyang Zhao @ 2025-09-30  4:32 UTC (permalink / raw)
  To: linux-arm-msm
  Cc: casey.connolly, christopher.obbard, loic.minier, andersson,
	Hongyang Zhao

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>
---
 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..763fa2ad2425 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -340,6 +340,7 @@ properties:
               - particle,tachyon
               - qcom,qcm6490-idp
               - qcom,qcs6490-rb3gen2
+              - thundercomm,rubikpi3
               - shift,otter
           - const: qcom,qcm6490
 
-- 
2.43.0


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

* Re: [PATCH v4 2/2] dt-bindings: arm: qcom: rubikpi3: document rubikpi3 board binding
  2025-09-30  4:32 ` [PATCH v4 2/2] dt-bindings: arm: qcom: rubikpi3: document rubikpi3 board binding Hongyang Zhao
@ 2025-09-30  5:30   ` Dmitry Baryshkov
  2025-09-30  6:26     ` Hongyang Zhao
  2025-10-06  8:53   ` Krzysztof Kozlowski
  1 sibling, 1 reply; 11+ messages in thread
From: Dmitry Baryshkov @ 2025-09-30  5:30 UTC (permalink / raw)
  To: Hongyang Zhao
  Cc: linux-arm-msm, casey.connolly, christopher.obbard, loic.minier,
	andersson

On Tue, Sep 30, 2025 at 12:32:52PM +0800, 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>
> ---
>  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..763fa2ad2425 100644
> --- a/Documentation/devicetree/bindings/arm/qcom.yaml
> +++ b/Documentation/devicetree/bindings/arm/qcom.yaml
> @@ -340,6 +340,7 @@ properties:
>                - particle,tachyon
>                - qcom,qcm6490-idp
>                - qcom,qcs6490-rb3gen2
> +              - thundercomm,rubikpi3
>                - shift,otter

'shift' < 'thundercomm'

>            - const: qcom,qcm6490
>  
> -- 
> 2.43.0
> 

-- 
With best wishes
Dmitry

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

* Re: [PATCH v4 2/2] dt-bindings: arm: qcom: rubikpi3: document rubikpi3 board binding
  2025-09-30  5:30   ` Dmitry Baryshkov
@ 2025-09-30  6:26     ` Hongyang Zhao
  0 siblings, 0 replies; 11+ messages in thread
From: Hongyang Zhao @ 2025-09-30  6:26 UTC (permalink / raw)
  To: dmitry.baryshkov
  Cc: andersson, casey.connolly, christopher.obbard, hongyang.zhao,
	linux-arm-msm, loic.minier

> On Tue, Sep 30, 2025 at 12:32:52PM +0800, 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>
> > ---
> >  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..763fa2ad2425 100644
> > --- a/Documentation/devicetree/bindings/arm/qcom.yaml
> > +++ b/Documentation/devicetree/bindings/arm/qcom.yaml
> > @@ -340,6 +340,7 @@ properties:
> >                - particle,tachyon
> >                - qcom,qcm6490-idp
> >                - qcom,qcs6490-rb3gen2
> > +              - thundercomm,rubikpi3
> >                - shift,otter
> 
> 'shift' < 'thundercomm'
> 
> >            - const: qcom,qcm6490
> >

That's my mistake. Thank you for pointing it out.
I'll wait a few days and make the changes in the new patch.

--
Thanks,
Hongyang

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

* Re: [PATCH v4 2/2] dt-bindings: arm: qcom: rubikpi3: document rubikpi3 board binding
  2025-09-30  4:32 ` [PATCH v4 2/2] dt-bindings: arm: qcom: rubikpi3: document rubikpi3 board binding Hongyang Zhao
  2025-09-30  5:30   ` Dmitry Baryshkov
@ 2025-10-06  8:53   ` Krzysztof Kozlowski
  2025-10-09 11:05     ` [PATCH v4 2/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts Hongyang Zhao
  1 sibling, 1 reply; 11+ messages in thread
From: Krzysztof Kozlowski @ 2025-10-06  8:53 UTC (permalink / raw)
  To: Hongyang Zhao, linux-arm-msm
  Cc: casey.connolly, christopher.obbard, loic.minier, andersson

On 30/09/2025 13:32, 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>

<form letter>
Please use scripts/get_maintainers.pl to get a list of necessary people
and lists to CC. It might happen, that command when run on an older
kernel, gives you outdated entries. Therefore please be sure you base
your patches on recent Linux kernel.

Tools like b4 or scripts/get_maintainer.pl provide you proper list of
people, so fix your workflow. Tools might also fail if you work on some
ancient tree (don't, instead use mainline) or work on fork of kernel
(don't, instead use mainline). Just use b4 and everything should be
fine, although remember about `b4 prep --auto-to-cc` if you added new
patches to the patchset.

You missed at least devicetree list (maybe more), so this won't be
tested by automated tooling. Performing review on untested code might be
a waste of time.

Please kindly resend and include all necessary To/Cc entries.
</form letter>

Best regards,
Krzysztof

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

* Re: [PATCH v4 1/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts
  2025-09-30  4:32 ` [PATCH v4 1/2] " Hongyang Zhao
@ 2025-10-06 10:33   ` Konrad Dybcio
  2025-10-09 10:30     ` Hongyang Zhao
  0 siblings, 1 reply; 11+ messages in thread
From: Konrad Dybcio @ 2025-10-06 10:33 UTC (permalink / raw)
  To: Hongyang Zhao, linux-arm-msm
  Cc: casey.connolly, christopher.obbard, loic.minier, andersson,
	Roger Shimizu

On 9/30/25 6:32 AM, Hongyang Zhao wrote:
> Add DTS for Thundercomm qcs6490-rubikpi3 board which uses
> QCS6490 SoC.
> 
> Works:
> - Wi-Fi (AP6256)
> - Bluetooth (AP6256)
> - Ethernet (AX88179B connected to UPD720201)
> - USB Type-C
> - USB Type-A 2.0 port
> - Two USB Type-A 3.0 ports (UPD720201 connected to PCIe0)
> - M.2 M-Key 2280 PCIe 3.0
> - RTC
> - 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 V1<loic.minier@oss.qualcomm.com>

Is the "V1" part of Loic's name?> ---

[...]

> +	fan0: pwm-fan {
> +		compatible = "pwm-fan";
> +		pwms = <&pm8350c_pwm 3 1000000>;
> +		pinctrl-0 = <&fan_pwm_out_default>;
> +		pinctrl-names = "default";

You most definitely want some cooling-levels in here, so that the
fan can be then referred to as a cooling device from some thermal-zone

[...]

> +	thermal-zones {
> +		sdm-skin-thermal {
> +			thermal-sensors = <&pmk8350_adc_tm 3>;
> +
> +			trips {
> +				active-config0 {
> +					temperature = <125000>;
> +					hysteresis = <1000>;
> +					type = "passive";
> +				};
> +			};
> +		};
> +
> +		quiet-thermal {

'q' < 's', but perhaps sorting by the thermal provider index (i.e.
pmk8350_adc_tm 0/1/3) could make this more legible

[...]

> +	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 0>;

"0" is supposed to be "GPIO_ACTIVE_HIGH" here, similarly elsewhere

[...]

> +&pcie0_phy {
> +	status = "okay";

Please put 'status' uniformly as the last property, with a \n preceeding it

[...]

> +&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";
> +	};

Are these three separate LEDs (i.e. are none of them combined)?

[...]

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

these are not useful unless you wire up the fan here

> +
> +			cpu_warm: cpu-warm {
> +				temperature = <80000>;
> +				hysteresis = <5000>;
> +				type = "active";
> +			};
> +
> +			cpu_hot: cpu-hot {
> +				temperature = <90000>;
> +				hysteresis = <5000>;
> +				type = "active";
> +			};
> +		};
> +	};
> +
> +	gpuss0-thermal {
> +		trips {
> +			gpuss0_alert0: trip-point0 {
> +				temperature = <95000>;
> +				hysteresis = <5000>;
> +				type = "passive";
> +			};
> +		};
> +	};
> +
> +	gpuss1-thermal {
> +		trips {
> +			gpuss1_alert0: trip-point0 {
> +				temperature = <95000>;
> +				hysteresis = <5000>;
> +				type = "passive";
> +			};
> +		};
> +	};
> +
> +	nspss0-thermal {
> +		trips {
> +			nspss0_alert0: trip-point0 {
> +				temperature = <95000>;
> +				hysteresis = <5000>;
> +				type = "hot";
> +			};
> +		};
> +	};
> +
> +	nspss1-thermal {
> +		trips {
> +			nspss1_alert0: trip-point0 {
> +				temperature = <95000>;
> +				hysteresis = <5000>;
> +				type = "hot";
> +			};
> +		};
> +	};

neither are any of these ^

[...]

> +&tlmm {
> +	bt_device_wake: bt-device-wake-state {
> +		pins = "gpio39";

It'd be nice if entries here were sorted by the GPIO index, as per

https://docs.kernel.org/devicetree/bindings/dts-coding-style.html

[...]

> +/*
> + * Update the lpassaudio node to support the new compatible as the
> + * lpassaudio needs to support the reset functionality on the
> + * QCS6490 RUBIK Pi 3 board and the rest of the Audio functionality would be
> + * provided from the LPASS firmware.
> + */

I'm not sure this comment is useful, given this is a "common" situation,
but this override should most definitely not hang out at the tail end of
the file

Konrad

> +&lpass_audiocc {
> +	compatible = "qcom,qcm6490-lpassaudiocc";
> +	/delete-property/ power-domains;
> +};

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

* Re: [PATCH v4 1/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts
  2025-10-06 10:33   ` Konrad Dybcio
@ 2025-10-09 10:30     ` Hongyang Zhao
  2025-10-22 16:47       ` Konrad Dybcio
  0 siblings, 1 reply; 11+ messages in thread
From: Hongyang Zhao @ 2025-10-09 10:30 UTC (permalink / raw)
  To: konrad.dybcio
  Cc: andersson, casey.connolly, christopher.obbard, hongyang.zhao,
	linux-arm-msm, loic.minier, rosh

> On 9/30/25 6:32 AM, Hongyang Zhao wrote:
> > Add DTS for Thundercomm qcs6490-rubikpi3 board which uses
> > QCS6490 SoC.
> > 
> > Works:
> > - Wi-Fi (AP6256)
> > - Bluetooth (AP6256)
> > - Ethernet (AX88179B connected to UPD720201)
> > - USB Type-C
> > - USB Type-A 2.0 port
> > - Two USB Type-A 3.0 ports (UPD720201 connected to PCIe0)
> > - M.2 M-Key 2280 PCIe 3.0
> > - RTC
> > - 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 V1<loic.minier@oss.qualcomm.com>
> 
> Is the "V1" part of Loic's name?> ---

No... Sorry, I didn't check carefully.

> 
> [...]
> 
> > +	fan0: pwm-fan {
> > +		compatible = "pwm-fan";
> > +		pwms = <&pm8350c_pwm 3 1000000>;
> > +		pinctrl-0 = <&fan_pwm_out_default>;
> > +		pinctrl-names = "default";
> 
> You most definitely want some cooling-levels in here, so that the
> fan can be then referred to as a cooling device from some thermal-zone

Yes, thank you. I will change it like this:

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

> 
> [...]
> 
> > +	thermal-zones {
> > +		sdm-skin-thermal {
> > +			thermal-sensors = <&pmk8350_adc_tm 3>;
> > +
> > +			trips {
> > +				active-config0 {
> > +					temperature = <125000>;
> > +					hysteresis = <1000>;
> > +					type = "passive";
> > +				};
> > +			};
> > +		};
> > +
> > +		quiet-thermal {
> 
> 'q' < 's', but perhaps sorting by the thermal provider index (i.e.
> pmk8350_adc_tm 0/1/3) could make this more legible
> 

Understood, I will modify the order to pmk8350_adc_tm 0/1/3.

> [...]
> 
> > +	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 0>;
> 
> "0" is supposed to be "GPIO_ACTIVE_HIGH" here, similarly elsewhere

Understood, I will review the entire file.

> 
> [...]
> 
> > +&pcie0_phy {
> > +	status = "okay";
> 
> Please put 'status' uniformly as the last property, with a 
>  preceeding it
> 

Got it, I missed that...

> [...]
> 
> > +&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";
> > +	};
> 
> Are these three separate LEDs (i.e. are none of them combined)?
> 

These three LEDs are independent.

> [...]
> 
> > +&thermal_zones {
> > +	cpu0-thermal {
> > +		trips {
> > +			cpu_tepid: cpu-tepid {
> > +				temperature = <65000>;
> > +				hysteresis = <5000>;
> > +				type = "active";
> > +			};
> 
> these are not useful unless you wire up the fan here

I wrote a service program at the user levelthat listens for netlink messages
from here to control the fan.
Controlling the fan at the kernel level should be a better approach,
and I have verified this. I will make modifications similar to the following:

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

> 
> > +
> > +			cpu_warm: cpu-warm {
> > +				temperature = <80000>;
> > +				hysteresis = <5000>;
> > +				type = "active";
> > +			};
> > +
> > +			cpu_hot: cpu-hot {
> > +				temperature = <90000>;
> > +				hysteresis = <5000>;
> > +				type = "active";
> > +			};
> > +		};
> > +	};
> > +
> > +	gpuss0-thermal {
> > +		trips {
> > +			gpuss0_alert0: trip-point0 {
> > +				temperature = <95000>;
> > +				hysteresis = <5000>;
> > +				type = "passive";
> > +			};
> > +		};
> > +	};
> > +
> > +	gpuss1-thermal {
> > +		trips {
> > +			gpuss1_alert0: trip-point0 {
> > +				temperature = <95000>;
> > +				hysteresis = <5000>;
> > +				type = "passive";
> > +			};
> > +		};
> > +	};
> > +
> > +	nspss0-thermal {
> > +		trips {
> > +			nspss0_alert0: trip-point0 {
> > +				temperature = <95000>;
> > +				hysteresis = <5000>;
> > +				type = "hot";
> > +			};
> > +		};
> > +	};
> > +
> > +	nspss1-thermal {
> > +		trips {
> > +			nspss1_alert0: trip-point0 {
> > +				temperature = <95000>;
> > +				hysteresis = <5000>;
> > +				type = "hot";
> > +			};
> > +		};
> > +	};
> 
> neither are any of these ^
> 
> [...]
> 
> > +&tlmm {
> > +	bt_device_wake: bt-device-wake-state {
> > +		pins = "gpio39";
> 
> It'd be nice if entries here were sorted by the GPIO index, as per
> 
> https://docs.kernel.org/devicetree/bindings/dts-coding-style.html
> 

Thank you, understood. I will arrange them in ascending order of pins,
for example:

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

> [...]
> 
> > +/*
> > + * Update the lpassaudio node to support the new compatible as the
> > + * lpassaudio needs to support the reset functionality on the
> > + * QCS6490 RUBIK Pi 3 board and the rest of the Audio functionality would be
> > + * provided from the LPASS firmware.
> > + */
> 
> I'm not sure this comment is useful, given this is a "common" situation,
> but this override should most definitely not hang out at the tail end of
> the file
> 
> Konrad
> 
> > +&lpass_audiocc {
> > +	compatible = "qcom,qcm6490-lpassaudiocc";
> > +	/delete-property/ power-domains;
> > +};

I will remove this comment and place this node in alphabetical order
between &i2c9 and &mdss.

--
Thanks,
Hongyang

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

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

> On 30/09/2025 13:32, 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>
> 
> <form letter>
> Please use scripts/get_maintainers.pl to get a list of necessary people
> and lists to CC. It might happen, that command when run on an older
> kernel, gives you outdated entries. Therefore please be sure you base
> your patches on recent Linux kernel.
> 
> Tools like b4 or scripts/get_maintainer.pl provide you proper list of
> people, so fix your workflow. Tools might also fail if you work on some
> ancient tree (don't, instead use mainline) or work on fork of kernel
> (don't, instead use mainline). Just use b4 and everything should be
> fine, although remember about `b4 prep --auto-to-cc` if you added new
> patches to the patchset.
> 
> You missed at least devicetree list (maybe more), so this won't be
> tested by automated tooling. Performing review on untested code might be
> a waste of time.
> 
> Please kindly resend and include all necessary To/Cc entries.
> </form letter>
> 
> Best regards,
> Krzysztof

Thank you very much. Understood. I will make the adjustments and resend
the new patch. However, since the discussion on [PATCH v4 1/2] is
still ongoing, I should wait a few days before sending it.

--
Thanks,
Hongyang

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

* Re: [PATCH v4 1/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts
  2025-10-09 10:30     ` Hongyang Zhao
@ 2025-10-22 16:47       ` Konrad Dybcio
  2025-10-30  2:21         ` Hongyang Zhao
  0 siblings, 1 reply; 11+ messages in thread
From: Konrad Dybcio @ 2025-10-22 16:47 UTC (permalink / raw)
  To: Hongyang Zhao
  Cc: andersson, casey.connolly, christopher.obbard, linux-arm-msm,
	loic.minier, rosh

On 10/9/25 12:30 PM, Hongyang Zhao wrote:
>> On 9/30/25 6:32 AM, Hongyang Zhao wrote:
>>> Add DTS for Thundercomm qcs6490-rubikpi3 board which uses
>>> QCS6490 SoC.
>>>
>>> Works:
>>> - Wi-Fi (AP6256)
>>> - Bluetooth (AP6256)
>>> - Ethernet (AX88179B connected to UPD720201)
>>> - USB Type-C
>>> - USB Type-A 2.0 port
>>> - Two USB Type-A 3.0 ports (UPD720201 connected to PCIe0)
>>> - M.2 M-Key 2280 PCIe 3.0
>>> - RTC
>>> - 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 V1<loic.minier@oss.qualcomm.com>

[...]

>>> +&thermal_zones {
>>> +	cpu0-thermal {
>>> +		trips {
>>> +			cpu_tepid: cpu-tepid {
>>> +				temperature = <65000>;
>>> +				hysteresis = <5000>;
>>> +				type = "active";
>>> +			};
>>
>> these are not useful unless you wire up the fan here
> 
> I wrote a service program at the user levelthat listens for netlink messages
> from here to control the fan.

Creative!

> Controlling the fan at the kernel level should be a better approach,
> and I have verified this. I will make modifications similar to the following:
> 
> 	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 */

You can drop these comments

Konrad

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

* Re: [PATCH v4 1/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts
  2025-10-22 16:47       ` Konrad Dybcio
@ 2025-10-30  2:21         ` Hongyang Zhao
  0 siblings, 0 replies; 11+ messages in thread
From: Hongyang Zhao @ 2025-10-30  2:21 UTC (permalink / raw)
  To: konrad.dybcio
  Cc: andersson, casey.connolly, christopher.obbard, hongyang.zhao,
	linux-arm-msm, loic.minier, rosh

>>> On 9/30/25 6:32 AM, Hongyang Zhao wrote:
>>>> Add DTS for Thundercomm qcs6490-rubikpi3 board which uses
>>>> QCS6490 SoC.
>>>>
>>>> Works:
>>>> - Wi-Fi (AP6256)
>>>> - Bluetooth (AP6256)
>>>> - Ethernet (AX88179B connected to UPD720201)
>>>> - USB Type-C
>>>> - USB Type-A 2.0 port
>>>> - Two USB Type-A 3.0 ports (UPD720201 connected to PCIe0)
>>>> - M.2 M-Key 2280 PCIe 3.0
>>>> - RTC
>>>> - 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 V1<loic.minier@oss.qualcomm.com>
>
>[...]
>
>>>> +&thermal_zones {
>>>> +	cpu0-thermal {
>>>> +		trips {
>>>> +			cpu_tepid: cpu-tepid {
>>>> +				temperature = <65000>;
>>>> +				hysteresis = <5000>;
>>>> +				type = "active";
>>>> +			};
>>>
>>> these are not useful unless you wire up the fan here
>> 
>> I wrote a service program at the user levelthat listens for netlink messages
>> from here to control the fan.
>
>Creative!
>
>> Controlling the fan at the kernel level should be a better approach,
>> and I have verified this. I will make modifications similar to the following:
>> 
>> 	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 */
>
>You can drop these comments

Hi Konrad,

Sorry, in the v5 patch I sent, I missed your review,
I will remove this part in the v6 version.

Thank you!
Hongyang

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

end of thread, other threads:[~2025-10-30  2:27 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-30  4:32 [PATCH v4 0/2] arm64: dts: qcom: rubikpi3: Add qcs6490-rubikpi3 board dts Hongyang Zhao
2025-09-30  4:32 ` [PATCH v4 1/2] " Hongyang Zhao
2025-10-06 10:33   ` Konrad Dybcio
2025-10-09 10:30     ` Hongyang Zhao
2025-10-22 16:47       ` Konrad Dybcio
2025-10-30  2:21         ` Hongyang Zhao
2025-09-30  4:32 ` [PATCH v4 2/2] dt-bindings: arm: qcom: rubikpi3: document rubikpi3 board binding Hongyang Zhao
2025-09-30  5:30   ` Dmitry Baryshkov
2025-09-30  6:26     ` Hongyang Zhao
2025-10-06  8:53   ` Krzysztof Kozlowski
2025-10-09 11:05     ` [PATCH v4 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