* [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 = <<9611_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 = <<9611_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 = <<9611_irq_pin>,
+ <<9611_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 = <<9611_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 = <<9611_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 = <<9611_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 = <<9611_irq_pin>,
> + <<9611_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 = <<9611_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 = <<9611_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 = <<9611_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 = <<9611_irq_pin>,
> > + <<9611_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 = <<9611_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).