[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ejcchgc3isc5f6tmiqbxqihmk5efmbcyhv3ehuoerb5ulkd5an@g7a2wc422l6n>
Date: Thu, 25 Sep 2025 05:09:36 +0300
From: Dmitry Baryshkov <dmitry.baryshkov@....qualcomm.com>
To: Jingyi Wang <jingyi.wang@....qualcomm.com>
Cc: Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konradybcio@...nel.org>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, linux-arm-msm@...r.kernel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
aiqun.yu@....qualcomm.com, tingwei.zhang@....qualcomm.com,
trilok.soni@....qualcomm.com, yijie.yang@....qualcomm.com
Subject: Re: [PATCH 14/20] arm64: dts: qcom: kaanapali-mtp: Enable more
features
On Wed, Sep 24, 2025 at 05:17:31PM -0700, Jingyi Wang wrote:
> Enable more features on Kaanapali MTP boards including PMIC peripherals,
> bus, SDHCI, remoteprocs, USB, PCIE, WLAN and Bluetooth.
>
> Written with help from Jyothi Kumar Seerapu(added bus), Ronak Raheja
> (added USB), Manish Pandey(added SDHCI), Jishnu Prakash(added PMIC),
> Qiang Yu(added PCIE), Yijie Yang(Added WLAN) and Zijun Hu(Added Bluetooth).
>
> Signed-off-by: Jingyi Wang <jingyi.wang@....qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/kaanapali-mtp.dts | 663 +++++++++++++++++++++++++++++
> 1 file changed, 663 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts b/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts
> index 9cf3158e2712..2949579481a9 100644
> --- a/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts
> +++ b/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts
> @@ -5,9 +5,23 @@
>
> /dts-v1/;
>
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/linux-event-codes.h>
> +#include <dt-bindings/leds/common.h>
> #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> #include "kaanapali.dtsi"
>
> +#define PMH0110_D_E0_SID 3
> +#define PMH0110_F_E0_SID 5
> +#define PMH0110_G_E0_SID 6
> +#define PMH0110_I_E0_SID 8
> +#define PMH0104_J_E1_SID 9
> +
> +#include "pmk8850.dtsi"
> +#include "pmh0101.dtsi"
> +#include "pmh0110.dtsi"
> +#include "pmh0104.dtsi"
> +
> / {
> model = "Qualcomm Technologies, Inc. Kaanapali MTP";
> compatible = "qcom,kaanapali-mtp", "qcom,kaanapali";
> @@ -15,6 +29,7 @@ / {
>
> aliases {
> serial0 = &uart7;
> + serial1 = &uart18;
> };
>
> chosen {
> @@ -52,6 +67,304 @@ bi_tcxo_ao_div2: bi-tcxo-ao-div2-clk {
> clock-div = <2>;
> };
> };
> +
> + gpio-keys {
> + compatible = "gpio-keys";
> +
> + pinctrl-0 = <&key_vol_up_default>;
> + pinctrl-names = "default";
> +
> + key-volume-up {
> + label = "Volume Up";
> + linux,code = <KEY_VOLUMEUP>;
> + gpios = <&tlmm 101 GPIO_ACTIVE_LOW>;
> + debounce-interval = <15>;
> + linux,can-disable;
> + wakeup-source;
> + };
> + };
> +
> + thermal-zones {
> + pmh0101-thermal {
> + polling-delay-passive = <100>;
> +
> + thermal-sensors = <&pmh0101_temp_alarm>;
> +
> + trips {
> + trip0 {
> + temperature = <95000>;
> + hysteresis = <0>;
> + type = "passive";
> + };
> +
> + trip1 {
> + temperature = <115000>;
> + hysteresis = <0>;
> + type = "hot";
> + };
> + };
> + };
> +
> + pmh0104-thermal {
> + polling-delay-passive = <100>;
> +
> + thermal-sensors = <&pmh0104_j_e1_temp_alarm>;
> +
> + trips {
> + trip0 {
> + temperature = <95000>;
> + hysteresis = <0>;
> + type = "passive";
> + };
> +
> + trip1 {
> + temperature = <115000>;
> + hysteresis = <0>;
> + type = "hot";
> + };
> + };
> + };
> +
> + pmh0110-d-thermal {
> + polling-delay-passive = <100>;
> +
> + thermal-sensors = <&pmh0110_d_e0_temp_alarm>;
> +
> + trips {
> + trip0 {
> + temperature = <95000>;
> + hysteresis = <0>;
> + type = "passive";
> + };
> +
> + trip1 {
> + temperature = <115000>;
> + hysteresis = <0>;
> + type = "hot";
> + };
> + };
> + };
> +
> + pmh0110-f-thermal {
> + polling-delay-passive = <100>;
> +
> + thermal-sensors = <&pmh0110_f_e0_temp_alarm>;
> +
> + trips {
> + trip0 {
> + temperature = <95000>;
> + hysteresis = <0>;
> + type = "passive";
> + };
> +
> + trip1 {
> + temperature = <115000>;
> + hysteresis = <0>;
> + type = "hot";
> + };
> + };
> + };
> +
> + pmh0110-g-thermal {
> + polling-delay-passive = <100>;
> +
> + thermal-sensors = <&pmh0110_g_e0_temp_alarm>;
> +
> + trips {
> + trip0 {
> + temperature = <95000>;
> + hysteresis = <0>;
> + type = "passive";
> + };
> +
> + trip1 {
> + temperature = <115000>;
> + hysteresis = <0>;
> + type = "hot";
> + };
> + };
> + };
> +
> + pmh0110-i-thermal {
> + polling-delay-passive = <100>;
> +
> + thermal-sensors = <&pmh0110_i_e0_temp_alarm>;
> +
> + trips {
> + trip0 {
> + temperature = <95000>;
> + hysteresis = <0>;
> + type = "passive";
> + };
> +
> + trip1 {
> + temperature = <115000>;
> + hysteresis = <0>;
> + type = "hot";
> + };
> + };
> + };
> +
> + pmd8028-thermal {
> + polling-delay-passive = <100>;
> + thermal-sensors = <&pmd8028_temp_alarm>;
> +
> + trips {
> + pmd8028_trip0: trip0 {
> + temperature = <95000>;
> + hysteresis = <0>;
> + type = "passive";
> + };
> +
> + pmd8028_trip1: trip1 {
> + temperature = <115000>;
> + hysteresis = <0>;
> + type = "hot";
> + };
> + };
> + };
> +
> + pmih0108-thermal {
> + polling-delay-passive = <100>;
> + thermal-sensors = <&pmih0108_temp_alarm>;
> +
> + trips {
> + trip0 {
> + temperature = <95000>;
> + hysteresis = <0>;
> + type = "passive";
> + };
> +
> + trip1 {
> + temperature = <115000>;
> + hysteresis = <0>;
> + type = "hot";
> + };
> + };
> + };
> +
> + pmr735d-thermal {
> + polling-delay-passive = <100>;
> +
> + thermal-sensors = <&pmr735d_temp_alarm>;
> +
> + trips {
> + trip0 {
> + temperature = <95000>;
> + hysteresis = <0>;
> + type = "passive";
> + };
> +
> + trip1 {
> + temperature = <115000>;
> + hysteresis = <0>;
> + type = "hot";
> + };
> + };
> + };
> +
> + pm8010-m-thermal {
> + polling-delay-passive = <100>;
> +
> + thermal-sensors = <&pm8010_m_temp_alarm>;
> +
> + trips {
> + trip0 {
> + temperature = <95000>;
> + hysteresis = <0>;
> + type = "passive";
> + };
> +
> + trip1 {
> + temperature = <115000>;
> + hysteresis = <0>;
> + type = "hot";
> + };
> + };
> + };
> +
> + pm8010-n-thermal {
> + polling-delay-passive = <100>;
> +
> + thermal-sensors = <&pm8010_n_temp_alarm>;
> +
> + trips {
> + trip0 {
> + temperature = <95000>;
> + hysteresis = <0>;
> + type = "passive";
> + };
> +
> + trip1 {
> + temperature = <115000>;
> + hysteresis = <0>;
> + type = "hot";
> + };
> + };
> + };
> + };
> +
> + wcn7850-pmu {
> + compatible = "qcom,wcn7850-pmu";
> +
> + pinctrl-0 = <&bt_default>, <&sw_ctrl_default>, <&wlan_en>;
> + pinctrl-names = "default";
> +
> + bt-enable-gpios = <&pmh0104_j_e1_gpios 5 GPIO_ACTIVE_HIGH>;
> + wlan-enable-gpios = <&tlmm 16 GPIO_ACTIVE_HIGH>;
> +
> + vdd-supply = <&vreg_s2j_0p8>;
> + vddio-supply = <&vreg_l2g_1p8>;
> + vddio1p2-supply = <&vreg_l3g_1p2>;
> + vddaon-supply = <&vreg_s7g_0p9>;
> + vdddig-supply = <&vreg_s1j_0p8>;
> + vddrfa1p2-supply = <&vreg_s7f_1p2>;
> + vddrfa1p8-supply = <&vreg_s8f_1p8>;
> +
> + clocks = <&rpmhcc RPMH_RF_CLK1>;
> +
> + regulators {
> + vreg_pmu_rfa_cmn: ldo0 {
> + regulator-name = "vreg_pmu_rfa_cmn";
> + };
> +
> + vreg_pmu_aon_0p59: ldo1 {
> + regulator-name = "vreg_pmu_aon_0p59";
> + };
> +
> + vreg_pmu_wlcx_0p8: ldo2 {
> + regulator-name = "vreg_pmu_wlcx_0p8";
> + };
> +
> + vreg_pmu_wlmx_0p85: ldo3 {
> + regulator-name = "vreg_pmu_wlmx_0p85";
> + };
> +
> + vreg_pmu_btcmx_0p85: ldo4 {
> + regulator-name = "vreg_pmu_btcmx_0p85";
> + };
> +
> + vreg_pmu_rfa_0p8: ldo5 {
> + regulator-name = "vreg_pmu_rfa_0p8";
> + };
> +
> + vreg_pmu_rfa_1p2: ldo6 {
> + regulator-name = "vreg_pmu_rfa_1p2";
> + };
> +
> + vreg_pmu_rfa_1p8: ldo7 {
> + regulator-name = "vreg_pmu_rfa_1p8";
> + };
> +
> + vreg_pmu_pcie_0p9: ldo8 {
> + regulator-name = "vreg_pmu_pcie_0p9";
> + };
> +
> + vreg_pmu_pcie_1p8: ldo9 {
> + regulator-name = "vreg_pmu_pcie_1p8";
> + };
> + };
> + };
> };
>
> &apps_rsc {
> @@ -674,6 +987,304 @@ vreg_l7n_3p3: ldo7 {
> };
> };
>
> +&pmh0110_d_e0 {
> + status = "okay";
> +};
> +
> +&pmh0110_f_e0 {
> + status = "okay";
> +};
> +
> +&pmh0110_g_e0 {
> + status = "okay";
> +};
> +
> +&pmh0110_i_e0 {
> + status = "okay";
> +};
> +
> +&spmi_bus1 {
> + pmd8028: pmic@4 {
> + compatible = "qcom,pmd8028", "qcom,spmi-pmic";
> + reg = <0x4 SPMI_USID>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + pmd8028_temp_alarm: temp-alarm@a00 {
> + compatible = "qcom,spmi-temp-alarm";
> + reg = <0xa00>;
> + interrupts = <0x4 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
> + #thermal-sensor-cells = <0>;
> + };
> +
> + pmd8028_gpios: gpio@...0 {
> + compatible = "qcom,pmd8028-gpio", "qcom,spmi-gpio";
> + reg = <0x8800>;
> + gpio-controller;
> + gpio-ranges = <&pmd8028_gpios 0 0 4>;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> + };
> +
> + pmih0108: pmic@7 {
> + compatible = "qcom,pmih0108", "qcom,spmi-pmic";
> + reg = <0x7 SPMI_USID>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + pmih0108_temp_alarm: temp-alarm@a00 {
> + compatible = "qcom,spmi-temp-alarm";
> + reg = <0xa00>;
> + interrupts = <0x7 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
> + #thermal-sensor-cells = <0>;
> + };
> +
> + pmih0108_gpios: gpio@...0 {
> + compatible = "qcom,pmih0108-gpio", "qcom,spmi-gpio";
> + reg = <0x8800>;
> + gpio-controller;
> + gpio-ranges = <&pmih0108_gpios 0 0 18>;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> +
> + pmih0108_eusb2_repeater: phy@...0 {
> + compatible = "qcom,pm8550b-eusb2-repeater";
> + reg = <0xfd00>;
> + #phy-cells = <0>;
> + vdd18-supply = <&vreg_l15b_1p8>;
> + vdd3-supply = <&vreg_l5b_3p1>;
> + };
> + };
> +
> + pmr735d: pmic@a {
> + compatible = "qcom,pmr735d", "qcom,spmi-pmic";
> + reg = <0xa SPMI_USID>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + pmr735d_temp_alarm: temp-alarm@a00 {
> + compatible = "qcom,spmi-temp-alarm";
> + reg = <0xa00>;
> + interrupts = <0xa 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
> + #thermal-sensor-cells = <0>;
> + };
> +
> + pmr735d_gpios: gpio@...0 {
> + compatible = "qcom,pmr735d-gpio", "qcom,spmi-gpio";
> + reg = <0x8800>;
> + gpio-controller;
> + gpio-ranges = <&pmr735d_gpios 0 0 2>;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> + };
> +
> + pm8010_m: pmic@c {
> + compatible = "qcom,pm8010", "qcom,spmi-pmic";
> + reg = <0xc SPMI_USID>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + pm8010_m_temp_alarm: temp-alarm@...0 {
> + compatible = "qcom,spmi-temp-alarm";
> + reg = <0x2400>;
> + interrupts = <0xc 0x24 0x0 IRQ_TYPE_EDGE_BOTH>;
> + #thermal-sensor-cells = <0>;
> + };
> + };
> +
> + pm8010_n: pmic@d {
> + compatible = "qcom,pm8010", "qcom,spmi-pmic";
> + reg = <0xd SPMI_USID>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + pm8010_n_temp_alarm: temp-alarm@...0 {
> + compatible = "qcom,spmi-temp-alarm";
> + reg = <0x2400>;
> + interrupts = <0xd 0x24 0x0 IRQ_TYPE_EDGE_BOTH>;
> + #thermal-sensor-cells = <0>;
> + };
> + };
> +};
> +
> +&pmh0101_flash {
spmi > pmh0101_flash
> + status = "okay";
> +
> + led-0 {
> + function = LED_FUNCTION_FLASH;
> + function-enumerator = <0>;
> + color = <LED_COLOR_ID_YELLOW>;
> + led-sources = <1>, <4>;
> + led-max-microamp = <500000>;
> + flash-max-microamp = <2000000>;
> + flash-max-timeout-us = <1280000>;
> + };
> +
> + led-1 {
> + function = LED_FUNCTION_FLASH;
> + function-enumerator = <1>;
> + color = <LED_COLOR_ID_WHITE>;
> + led-sources = <2>, <3>;
> + led-max-microamp = <500000>;
> + flash-max-microamp = <2000000>;
> + flash-max-timeout-us = <1280000>;
> + };
> +};
> +
> +&pmh0101_pwm {
> + status = "okay";
> +
> + multi-led {
> + color = <LED_COLOR_ID_RGB>;
> + function = LED_FUNCTION_STATUS;
> +
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + led@1 {
> + reg = <1>;
> + color = <LED_COLOR_ID_RED>;
> + };
> +
> + led@2 {
> + reg = <2>;
> + color = <LED_COLOR_ID_GREEN>;
> + };
> +
> + led@3 {
> + reg = <3>;
> + color = <LED_COLOR_ID_BLUE>;
> + };
> + };
> +};
> +
> +&tlmm {
> + wlan_en: wlan-en-state {
> + pins = "gpio16";
> + function = "gpio";
> + drive-strength = <8>;
> + bias-pull-down;
> + };
Why are the TLMM pin entries sorted?
> +
> + sw_ctrl_default: sw-ctrl-default-state {
> + pins = "gpio18";
> + function = "gpio";
> + bias-pull-down;
> + };
> +
> + key_vol_up_default: key-vol-up-default-state {
> + pins = "gpio101";
> + function = "gpio";
> + output-disable;
> + bias-pull-up;
> + };
> +
> + pcie0_default_state: pcie0-default-state {
> + clkreq-n-pins {
> + pins = "gpio103";
> + function = "pcie0_clk_req_n";
> + drive-strength = <2>;
> + bias-pull-up;
> + };
> +
> + perst-n-pins {
> + pins = "gpio102";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + wake-n-pins {
> + pins = "gpio104";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-up;
> + };
> + };
> +};
> +
> +&pcie0 {
This is also in the wrong place. Please keep the nodes sorted.
> + pinctrl-0 = <&pcie0_default_state>;
> + pinctrl-names = "default";
> +
> + status = "okay";
> +};
> +
> +&pcie0_phy {
> + vdda-phy-supply = <&vreg_l3i_0p8>;
> + vdda-pll-supply = <&vreg_l1d_1p2>;
> +
> + status = "okay";
> +};
> +
> @@ -702,3 +1343,25 @@ &ufs_mem_phy {
>
> status = "okay";
> };
> +
> +&usb_1 {
> + dr_mode = "peripheral";
Is it really peripheral-only?
> +
> + status = "okay";
> +};
> +
> +&usb_1_hsphy {
> + vdd-supply = <&vreg_l4f_0p8>;
> + vdda12-supply = <&vreg_l1d_1p2>;
> +
> + phys = <&pmih0108_eusb2_repeater>;
> +
> + status = "okay";
> +};
> +
> +&usb_dp_qmpphy {
> + vdda-phy-supply = <&vreg_l1d_1p2>;
> + vdda-pll-supply = <&vreg_l4f_0p8>;
> +
> + status = "okay";
> +};
>
> --
> 2.25.1
>
--
With best wishes
Dmitry
Powered by blists - more mailing lists