* [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
* 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 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
* [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 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
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).