* [PATCH v2 1/6] arm64: dts: qcom: sm8250-hdk: Enable the sdhc_2 port
2026-10-27 8:07 [PATCH v2 0/6] arm64: dts: qcom: sm8250-hdk: Enable additional peripherals ShiTou Hong
@ 2026-10-27 8:07 ` ShiTou Hong
2026-10-27 8:31 ` Konrad Dybcio
2026-10-27 8:07 ` [PATCH v2 2/6] arm64: dts: qcom: sm8250-hdk: Add LT9611UXC HDMI bridge ShiTou Hong
` (4 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: ShiTou Hong @ 2026-10-27 8:07 UTC (permalink / raw)
To: andersson, konradybcio, conor+dt
Cc: linux-arm-msm, devicetree, ShiTou Hong, KancyJoe
The sm8250-hdk has an on-board SD/UFS card slot,
but the SDHCI port hasn't been enabled in the dts,
so we can't use it after booting.
Enable the dts node of SDHCI for the on-board SD card slot.
Add the pinctrl node of the SD card pins.
Co-developed-by: KancyJoe <kancy2333@outlook.com>
Signed-off-by: KancyJoe <kancy2333@outlook.com>
Signed-off-by: ShiTou Hong <dc_redstone@outlook.com>
---
arch/arm64/boot/dts/qcom/sm8250-hdk.dts | 39 +++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm8250-hdk.dts b/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
index c1c673086..ad60be5d5 100644
--- a/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
+++ b/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
@@ -396,8 +396,47 @@ &qupv3_id_1 {
status = "okay";
};
+&sdhc_2 {
+ cd-gpios = <&tlmm 77 GPIO_ACTIVE_LOW>;
+
+ vmmc-supply = <&vreg_l9c_2p96>;
+ vqmmc-supply = <&vreg_l6c_2p96>;
+
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&sdc2_default>, <&sd_ufs_cd_pins>;
+ pinctrl-1 = <&sdc2_sleep_state>, <&sd_ufs_cd_pins>;
+
+ status = "okay";
+};
+
&tlmm {
gpio-reserved-ranges = <28 4>, <40 4>;
+
+ sd_ufs_cd_pins: sd-ufs-cd-default-state {
+ pins = "gpio77";
+ function = "gpio";
+ bias-pull-up;
+ };
+
+ sdc2_default: sdc2-default-state {
+ cmd-pins {
+ pins = "sdc2_cmd";
+ bias-pull-up;
+ drive-strength = <10>;
+ };
+
+ data-pins {
+ pins = "sdc2_data";
+ bias-pull-up;
+ drive-strength = <10>;
+ };
+
+ clk-pins {
+ pins = "sdc2_clk";
+ bias-disable;
+ drive-strength = <16>;
+ };
+ };
};
&uart12 {
--
2.47.3
^ permalink raw reply related [flat|nested] 13+ messages in thread* Re: [PATCH v2 1/6] arm64: dts: qcom: sm8250-hdk: Enable the sdhc_2 port
2026-10-27 8:07 ` [PATCH v2 1/6] arm64: dts: qcom: sm8250-hdk: Enable the sdhc_2 port ShiTou Hong
@ 2026-10-27 8:31 ` Konrad Dybcio
0 siblings, 0 replies; 13+ messages in thread
From: Konrad Dybcio @ 2026-10-27 8:31 UTC (permalink / raw)
To: ShiTou Hong, andersson, konradybcio, conor+dt
Cc: linux-arm-msm, devicetree, ShiTou Hong, KancyJoe
On 10/27/26 9:07 AM, ShiTou Hong wrote:
> The sm8250-hdk has an on-board SD/UFS card slot,
> but the SDHCI port hasn't been enabled in the dts,
> so we can't use it after booting.
>
> Enable the dts node of SDHCI for the on-board SD card slot.
> Add the pinctrl node of the SD card pins.
>
> Co-developed-by: KancyJoe <kancy2333@outlook.com>
> Signed-off-by: KancyJoe <kancy2333@outlook.com>
> Signed-off-by: ShiTou Hong <dc_redstone@outlook.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v2 2/6] arm64: dts: qcom: sm8250-hdk: Add LT9611UXC HDMI bridge
2026-10-27 8:07 [PATCH v2 0/6] arm64: dts: qcom: sm8250-hdk: Enable additional peripherals ShiTou Hong
2026-10-27 8:07 ` [PATCH v2 1/6] arm64: dts: qcom: sm8250-hdk: Enable the sdhc_2 port ShiTou Hong
@ 2026-10-27 8:07 ` ShiTou Hong
2026-10-27 8:34 ` Konrad Dybcio
2026-10-27 8:07 ` [PATCH v2 3/6] arm64: dts: qcom: sm8250-hdk: Add FSA4480 USB-C protocol chip ShiTou Hong
` (3 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: ShiTou Hong @ 2026-10-27 8:07 UTC (permalink / raw)
To: andersson, konradybcio, conor+dt
Cc: linux-arm-msm, devicetree, ShiTou Hong, KancyJoe
The sm8250-hdk has a video bridge chip LT9611UXC
converting MIPI DSI to HDMI, which hasn't been added
in the dts, so we have no HDMI signal.
Add the 1V2 supply node for the chip and the HDMI connector node.
Enable the i2c port of the chip, the display controller and DSI port.
Add the pinctrl of LT9611UXC's RST and IRQ pins.
Co-developed-by: KancyJoe <kancy2333@outlook.com>
Signed-off-by: KancyJoe <kancy2333@outlook.com>
Signed-off-by: ShiTou Hong <dc_redstone@outlook.com>
---
arch/arm64/boot/dts/qcom/sm8250-hdk.dts | 104 ++++++++++++++++++++++++
1 file changed, 104 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm8250-hdk.dts b/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
index ad60be5d5..c031f91a0 100644
--- a/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
+++ b/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
@@ -44,6 +44,18 @@ vreg_s4a_1p8: pm8150-s4 {
vin-supply = <&vph_pwr>;
};
+ lt9611_1v2: lt9611-vdd12-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "LT9611_1V2";
+
+ regulator-always-on;
+ regulator-boot-on;
+
+ vin-supply = <&vph_pwr>;
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ };
+
vreg_s6c_0p88: smpc6-regulator {
compatible = "regulator-fixed";
regulator-name = "vreg_s6c_0p88";
@@ -63,6 +75,17 @@ key-vol-up {
gpios = <&pm8150_gpios 6 GPIO_ACTIVE_LOW>;
};
};
+
+ hdmi-connector {
+ compatible = "hdmi-connector";
+ type = "a";
+
+ port {
+ hdmi_con: endpoint {
+ remote-endpoint = <<9611_out>;
+ };
+ };
+ };
};
&apps_rsc {
@@ -377,6 +400,70 @@ &gpu_zap_shader {
firmware-name = "qcom/sm8250/a650_zap.mbn";
};
+&gpi_dma0 {
+ status = "okay";
+};
+
+&i2c1 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ lt9611_codec: hdmi-bridge@2b {
+ compatible = "lontium,lt9611uxc";
+ reg = <0x2b>;
+
+ vdd-supply = <<9611_1v2>;
+ vcc-supply = <&vreg_bob>;
+
+ #sound-dai-cells = <1>;
+ interrupts-extended = <&tlmm 1 IRQ_TYPE_EDGE_FALLING>;
+ reset-gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <<9611_pins>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ lt9611_a: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ lt9611_out: endpoint {
+ remote-endpoint = <&hdmi_con>;
+ };
+ };
+ };
+ };
+};
+
+&mdss {
+ status = "okay";
+};
+
+&mdss_dsi0 {
+ status = "okay";
+ vdda-supply = <&vreg_l9a_1p2>;
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <<9611_a>;
+ data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+ status = "okay";
+ vdds-supply = <&vreg_l5a_0p88>;
+};
+
&pon {
mode-bootloader = <0x2>;
mode-recovery = <0x1>;
@@ -392,6 +479,10 @@ &pon_resin {
linux,code = <KEY_VOLUMEDOWN>;
};
+&qupv3_id_0 {
+ status = "okay";
+};
+
&qupv3_id_1 {
status = "okay";
};
@@ -437,6 +528,19 @@ clk-pins {
drive-strength = <16>;
};
};
+
+ lt9611_pins: lt9611-default-state {
+ irq-pins {
+ pins = "gpio1";
+ function = "gpio";
+ bias-disable;
+ };
+
+ rst-pins {
+ pins = "gpio2";
+ function = "gpio";
+ };
+ };
};
&uart12 {
--
2.47.3
^ permalink raw reply related [flat|nested] 13+ messages in thread* Re: [PATCH v2 2/6] arm64: dts: qcom: sm8250-hdk: Add LT9611UXC HDMI bridge
2026-10-27 8:07 ` [PATCH v2 2/6] arm64: dts: qcom: sm8250-hdk: Add LT9611UXC HDMI bridge ShiTou Hong
@ 2026-10-27 8:34 ` Konrad Dybcio
[not found] ` <CALkEBsyQCJwoDiR_dnqfVynEUGBi-qNenE+1oAFADPC-6OOBZQ@mail.gmail.com>
0 siblings, 1 reply; 13+ messages in thread
From: Konrad Dybcio @ 2026-10-27 8:34 UTC (permalink / raw)
To: ShiTou Hong, andersson, konradybcio, conor+dt
Cc: linux-arm-msm, devicetree, ShiTou Hong, KancyJoe
On 10/27/26 9:07 AM, ShiTou Hong wrote:
> The sm8250-hdk has a video bridge chip LT9611UXC
> converting MIPI DSI to HDMI, which hasn't been added
> in the dts, so we have no HDMI signal.
>
> Add the 1V2 supply node for the chip and the HDMI connector node.
> Enable the i2c port of the chip, the display controller and DSI port.
> Add the pinctrl of LT9611UXC's RST and IRQ pins.
>
> Co-developed-by: KancyJoe <kancy2333@outlook.com>
> Signed-off-by: KancyJoe <kancy2333@outlook.com>
> Signed-off-by: ShiTou Hong <dc_redstone@outlook.com>
> ---
[...]
> vreg_s6c_0p88: smpc6-regulator {
> compatible = "regulator-fixed";
> regulator-name = "vreg_s6c_0p88";
> @@ -63,6 +75,17 @@ key-vol-up {
> gpios = <&pm8150_gpios 6 GPIO_ACTIVE_LOW>;
> };
> };
> +
> + hdmi-connector {
This one is still very out of order
[...]
> +&mdss {
> + status = "okay";
> +};
> +
> +&mdss_dsi0 {
> + status = "okay";
> + vdda-supply = <&vreg_l9a_1p2>;
> +};
> +
> +&mdss_dsi0_out {
> + remote-endpoint = <<9611_a>;
> + data-lanes = <0 1 2 3>;
> +};
> +
> +&mdss_dsi0_phy {
> + status = "okay";
> + vdds-supply = <&vreg_l5a_0p88>;
> +};
+ the status properties
[...]
> +
> + lt9611_pins: lt9611-default-state {
> + irq-pins {
> + pins = "gpio1";
> + function = "gpio";
> + bias-disable;
> + };
> +
> + rst-pins {
> + pins = "gpio2";
> + function = "gpio";
> + };
> + };
These are best sorted by pin idx
https://docs.kernel.org/devicetree/bindings/dts-coding-style.html
Konrad
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v2 3/6] arm64: dts: qcom: sm8250-hdk: Add FSA4480 USB-C protocol chip
2026-10-27 8:07 [PATCH v2 0/6] arm64: dts: qcom: sm8250-hdk: Enable additional peripherals ShiTou Hong
2026-10-27 8:07 ` [PATCH v2 1/6] arm64: dts: qcom: sm8250-hdk: Enable the sdhc_2 port ShiTou Hong
2026-10-27 8:07 ` [PATCH v2 2/6] arm64: dts: qcom: sm8250-hdk: Add LT9611UXC HDMI bridge ShiTou Hong
@ 2026-10-27 8:07 ` ShiTou Hong
2026-10-27 8:07 ` [PATCH v2 4/6] arm64: dts: qcom: sm8250-hdk: Enable the PCIe ports ShiTou Hong
` (2 subsequent siblings)
5 siblings, 0 replies; 13+ messages in thread
From: ShiTou Hong @ 2026-10-27 8:07 UTC (permalink / raw)
To: andersson, konradybcio, conor+dt
Cc: linux-arm-msm, devicetree, ShiTou Hong, KancyJoe
The sm8250-hdk has a USB-C port supporting OTG and DP altmode.
This is implemented with the FSA4480 chip,
which hasn't been added in the dts file.
Change the USB controller mode to OTG.
Enable the i2c controller for the chip and the dp controller.
Configure the PM8150b type-c module and vbus regulator.
Co-developed-by: KancyJoe <kancy2333@outlook.com>
Signed-off-by: KancyJoe <kancy2333@outlook.com>
Signed-off-by: ShiTou Hong <dc_redstone@outlook.com>
---
arch/arm64/boot/dts/qcom/sm8250-hdk.dts | 142 +++++++++++++++++++++---
1 file changed, 127 insertions(+), 15 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sm8250-hdk.dts b/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
index c031f91a0..96b4d6c95 100644
--- a/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
+++ b/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
@@ -6,6 +6,7 @@
/dts-v1/;
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include <dt-bindings/usb/pd.h>
#include "sm8250.dtsi"
#include "pm8150.dtsi"
#include "pm8150b.dtsi"
@@ -445,10 +446,42 @@ lt9611_out: endpoint {
};
};
+&i2c15 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ fsa4480@43 {
+ compatible = "fcs,fsa4480";
+ reg = <0x43>;
+
+ interrupts-extended = <&tlmm 63 IRQ_TYPE_LEVEL_LOW>;
+
+ vcc-supply = <&vreg_bob>;
+ mode-switch;
+ orientation-switch;
+
+ port {
+ fsa4480_sbu_mux: endpoint {
+ remote-endpoint = <&pm8150b_typec_sbu_out>;
+ };
+ };
+ };
+};
+
&mdss {
status = "okay";
};
+&mdss_dp {
+ status = "okay";
+};
+
+&mdss_dp_out {
+ data-lanes = <0 1>;
+ remote-endpoint = <&usb_1_qmpphy_dp_in>;
+};
+
&mdss_dsi0 {
status = "okay";
vdda-supply = <&vreg_l9a_1p2>;
@@ -464,6 +497,68 @@ &mdss_dsi0_phy {
vdds-supply = <&vreg_l5a_0p88>;
};
+&pm8150b_typec {
+ status = "okay";
+
+ vdd-pdphy-supply = <&vreg_l2a_3p1>;
+
+ connector {
+ compatible = "usb-c-connector";
+
+ power-role = "source";
+ data-role = "dual";
+ self-powered;
+
+ vbus-supply = <&pm8150b_vbus>;
+
+ source-pdos = <PDO_FIXED(5000, 3000,PDO_FIXED_DUAL_ROLE |
+ PDO_FIXED_USB_COMM |
+ PDO_FIXED_DATA_SWAP)>;
+
+ altmodes {
+ displayport {
+ svid = /bits/ 16 <0xff01>;
+ vdo = <0x00001c46>;
+ };
+ };
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ pm8150b_hs_in: endpoint {
+ remote-endpoint = <&usb_1_dwc3_hs_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ pm8150b_typec_mux_in: endpoint {
+ remote-endpoint = <&usb_1_qmpphy_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ pm8150b_typec_sbu_out: endpoint {
+ remote-endpoint = <&fsa4480_sbu_mux>;
+ };
+ };
+ };
+ };
+};
+
+&pm8150b_vbus {
+ regulator-min-microamp = <500000>;
+ regulator-max-microamp = <3000000>;
+ status = "okay";
+};
+
&pon {
mode-bootloader = <0x2>;
mode-recovery = <0x1>;
@@ -487,6 +582,10 @@ &qupv3_id_1 {
status = "okay";
};
+&qupv3_id_2 {
+ status = "okay";
+};
+
&sdhc_2 {
cd-gpios = <&tlmm 77 GPIO_ACTIVE_LOW>;
@@ -565,14 +664,20 @@ &ufs_mem_phy {
vdda-pll-supply = <&vreg_l9a_1p2>;
};
-&usb_1_hsphy {
+&usb_1 {
status = "okay";
- vdda-pll-supply = <&vreg_l5a_0p88>;
- vdda33-supply = <&vreg_l2a_3p1>;
- vdda18-supply = <&vreg_l12a_1p8>;
};
-&usb_2_hsphy {
+&usb_1_dwc3 {
+ dr_mode = "otg";
+ usb-role-switch;
+};
+
+&usb_1_dwc3_hs_out {
+ remote-endpoint = <&pm8150b_hs_in>;
+};
+
+&usb_1_hsphy {
status = "okay";
vdda-pll-supply = <&vreg_l5a_0p88>;
vdda33-supply = <&vreg_l2a_3p1>;
@@ -585,28 +690,35 @@ &usb_1_qmpphy {
vdda-pll-supply = <&vreg_l9a_1p2>;
};
-&usb_2_qmpphy {
- status = "okay";
- vdda-phy-supply = <&vreg_l18a_0p92>;
- vdda-pll-supply = <&vreg_l9a_1p2>;
+&usb_1_qmpphy_dp_in {
+ remote-endpoint = <&mdss_dp_out>;
};
-&usb_1 {
- status = "okay";
+&usb_1_qmpphy_out {
+ remote-endpoint = <&pm8150b_typec_mux_in>;
};
&usb_2 {
status = "okay";
};
-&usb_1_dwc3 {
- dr_mode = "peripheral";
-};
-
&usb_2_dwc3 {
dr_mode = "host";
};
+&usb_2_hsphy {
+ status = "okay";
+ vdda-pll-supply = <&vreg_l5a_0p88>;
+ vdda33-supply = <&vreg_l2a_3p1>;
+ vdda18-supply = <&vreg_l12a_1p8>;
+};
+
+&usb_2_qmpphy {
+ status = "okay";
+ vdda-phy-supply = <&vreg_l18a_0p92>;
+ vdda-pll-supply = <&vreg_l9a_1p2>;
+};
+
&venus {
status = "okay";
};
--
2.47.3
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH v2 4/6] arm64: dts: qcom: sm8250-hdk: Enable the PCIe ports
2026-10-27 8:07 [PATCH v2 0/6] arm64: dts: qcom: sm8250-hdk: Enable additional peripherals ShiTou Hong
` (2 preceding siblings ...)
2026-10-27 8:07 ` [PATCH v2 3/6] arm64: dts: qcom: sm8250-hdk: Add FSA4480 USB-C protocol chip ShiTou Hong
@ 2026-10-27 8:07 ` ShiTou Hong
2026-10-27 8:33 ` Konrad Dybcio
2026-10-27 8:07 ` [PATCH v2 5/6] arm64: dts: qcom: sm8250-hdk: Add support of QCA6390 ShiTou Hong
2026-10-27 8:07 ` [PATCH v2 6/6] arm64: dts: qcom: sm8250-hdk: Add PM8150b LEDs ShiTou Hong
5 siblings, 1 reply; 13+ messages in thread
From: ShiTou Hong @ 2026-10-27 8:07 UTC (permalink / raw)
To: andersson, konradybcio, conor+dt
Cc: linux-arm-msm, devicetree, ShiTou Hong, KancyJoe
The sm8250-hdk has 2 PCIe ports which are not enabled in the dts.
The pcie0 is for the on-board ath11k WiFi/BT module;
while the pcie2 is for the M.2 connector.
Add the 3V3 regulator node for pcie2.
Enable the 2 pcie controllers and phys.
Co-developed-by: KancyJoe <kancy2333@outlook.com>
Signed-off-by: KancyJoe <kancy2333@outlook.com>
Signed-off-by: ShiTou Hong <dc_redstone@outlook.com>
---
arch/arm64/boot/dts/qcom/sm8250-hdk.dts | 31 +++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm8250-hdk.dts b/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
index 96b4d6c95..6a7852080 100644
--- a/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
+++ b/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
@@ -57,6 +57,13 @@ lt9611_1v2: lt9611-vdd12-regulator {
regulator-max-microvolt = <1200000>;
};
+ vreg_3p3: vreg-3p3-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "vreg_3p3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
vreg_s6c_0p88: smpc6-regulator {
compatible = "regulator-fixed";
regulator-name = "vreg_s6c_0p88";
@@ -497,6 +504,30 @@ &mdss_dsi0_phy {
vdds-supply = <&vreg_l5a_0p88>;
};
+&pcie0 {
+ status = "okay";
+};
+
+&pcie0_phy {
+ vdda-phy-supply = <&vreg_l5a_0p88>;
+ vdda-pll-supply = <&vreg_l9a_1p2>;
+
+ status = "okay";
+};
+
+&pcie2 {
+ vddpe-3v3-supply = <&vreg_3p3>;
+
+ status = "okay";
+};
+
+&pcie2_phy {
+ vdda-phy-supply = <&vreg_l5a_0p88>;
+ vdda-pll-supply = <&vreg_l9a_1p2>;
+
+ status = "okay";
+};
+
&pm8150b_typec {
status = "okay";
--
2.47.3
^ permalink raw reply related [flat|nested] 13+ messages in thread* Re: [PATCH v2 4/6] arm64: dts: qcom: sm8250-hdk: Enable the PCIe ports
2026-10-27 8:07 ` [PATCH v2 4/6] arm64: dts: qcom: sm8250-hdk: Enable the PCIe ports ShiTou Hong
@ 2026-10-27 8:33 ` Konrad Dybcio
0 siblings, 0 replies; 13+ messages in thread
From: Konrad Dybcio @ 2026-10-27 8:33 UTC (permalink / raw)
To: ShiTou Hong, andersson, konradybcio, conor+dt
Cc: linux-arm-msm, devicetree, ShiTou Hong, KancyJoe
On 10/27/26 9:07 AM, ShiTou Hong wrote:
> The sm8250-hdk has 2 PCIe ports which are not enabled in the dts.
> The pcie0 is for the on-board ath11k WiFi/BT module;
> while the pcie2 is for the M.2 connector.
>
> Add the 3V3 regulator node for pcie2.
It's a dummy regulator so it does nothing - did you miss the
enable GPIO?
Also, nowadays there's
Documentation/devicetree/bindings/connector/pcie-m2-m-connector.yaml
Documentation/devicetree/bindings/connector/pcie-m2-e-connector.yaml
to let us not hardcode things like the wifi node
Konrad
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v2 5/6] arm64: dts: qcom: sm8250-hdk: Add support of QCA6390
2026-10-27 8:07 [PATCH v2 0/6] arm64: dts: qcom: sm8250-hdk: Enable additional peripherals ShiTou Hong
` (3 preceding siblings ...)
2026-10-27 8:07 ` [PATCH v2 4/6] arm64: dts: qcom: sm8250-hdk: Enable the PCIe ports ShiTou Hong
@ 2026-10-27 8:07 ` ShiTou Hong
2026-10-27 8:07 ` [PATCH v2 6/6] arm64: dts: qcom: sm8250-hdk: Add PM8150b LEDs ShiTou Hong
5 siblings, 0 replies; 13+ messages in thread
From: ShiTou Hong @ 2026-10-27 8:07 UTC (permalink / raw)
To: andersson, konradybcio, conor+dt
Cc: linux-arm-msm, devicetree, ShiTou Hong, KancyJoe
The sm8250-hdk has a QCA6390 WiFi/BT module which hasn't
been added in the dts file.
Enable the UART port of BT, add the bluetooth node.
Add the QCA6390 PMU node.
Add the wifi node of pcieport0.
Add the missing regulator node of PM8009 which is used by QCA6390.
Add the pinctrl of QCA6390 enable pins.
Co-developed-by: KancyJoe <kancy2333@outlook.com>
Signed-off-by: KancyJoe <kancy2333@outlook.com>
Signed-off-by: ShiTou Hong <dc_redstone@outlook.com>
---
arch/arm64/boot/dts/qcom/sm8250-hdk.dts | 121 +++++++++++++++++++++++-
1 file changed, 120 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/sm8250-hdk.dts b/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
index 6a7852080..b32f254bf 100644
--- a/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
+++ b/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
@@ -94,6 +94,67 @@ hdmi_con: endpoint {
};
};
};
+
+ qca6390-pmu {
+ compatible = "qcom,qca6390-pmu";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&qca6390_pins>;
+
+ vddaon-supply = <&vreg_s6a_0p95>;
+ vddpmu-supply = <&vreg_s2f_0p95>;
+ vddrfa0p95-supply = <&vreg_s2f_0p95>;
+ vddrfa1p3-supply = <&vreg_s8c_1p3>;
+ vddrfa1p9-supply = <&vreg_s5a_1p9>;
+ vddpcie1p3-supply = <&vreg_s8c_1p3>;
+ vddpcie1p9-supply = <&vreg_s5a_1p9>;
+ vddio-supply = <&vreg_s4a_1p8>;
+
+ wlan-enable-gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>;
+ bt-enable-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
+
+ 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_1p7: ldo7 {
+ regulator-name = "vreg_pmu_rfa_1p7";
+ };
+
+ vreg_pmu_pcie_0p9: ldo8 {
+ regulator-name = "vreg_pmu_pcie_0p9";
+ };
+
+ vreg_pmu_pcie_1p8: ldo9 {
+ regulator-name = "vreg_pmu_pcie_1p8";
+ };
+ };
+ };
};
&apps_rsc {
@@ -344,7 +405,6 @@ vreg_l11c_3p3: ldo11 {
regulators-2 {
compatible = "qcom,pm8009-rpmh-regulators";
- qcom,pmic-id = "f";
vdd-s1-supply = <&vph_pwr>;
vdd-s2-supply = <&vreg_bob>;
@@ -352,6 +412,15 @@ regulators-2 {
vdd-l5-l6-supply = <&vreg_bob>;
vdd-l7-supply = <&vreg_s4a_1p8>;
+ qcom,pmic-id = "f";
+
+ vreg_s2f_0p95: smps2 {
+ regulator-name = "vreg_s2f_0p95";
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <952000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ };
+
vreg_l1f_cam_dvdd1_1p1: ldo1 {
regulator-name = "vreg_l1f_cam_dvdd1_1p1";
regulator-min-microvolt = <1104000>;
@@ -515,6 +584,23 @@ &pcie0_phy {
status = "okay";
};
+&pcieport0 {
+ wifi@0 {
+ compatible = "pci17cb,1101";
+ reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+ vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ vddrfa1p7-supply = <&vreg_pmu_rfa_1p7>;
+ vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
+ vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
+ };
+};
+
&pcie2 {
vddpe-3v3-supply = <&vreg_3p3>;
@@ -671,6 +757,39 @@ rst-pins {
function = "gpio";
};
};
+
+ qca6390_pins: qca6390-default-state {
+ wlan-enable-pins {
+ pins = "gpio20";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-pull-up;
+ output-low;
+ };
+
+ bt-enable-pins {
+ pins = "gpio21";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-pull-up;
+ output-low;
+ };
+ };
+};
+
+&uart6 {
+ status = "okay";
+
+ bluetooth {
+ compatible = "qcom,qca6390-bt";
+
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ vddrfa1p7-supply = <&vreg_pmu_rfa_1p7>;
+ };
};
&uart12 {
--
2.47.3
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH v2 6/6] arm64: dts: qcom: sm8250-hdk: Add PM8150b LEDs
2026-10-27 8:07 [PATCH v2 0/6] arm64: dts: qcom: sm8250-hdk: Enable additional peripherals ShiTou Hong
` (4 preceding siblings ...)
2026-10-27 8:07 ` [PATCH v2 5/6] arm64: dts: qcom: sm8250-hdk: Add support of QCA6390 ShiTou Hong
@ 2026-10-27 8:07 ` ShiTou Hong
2026-10-27 8:33 ` Konrad Dybcio
5 siblings, 1 reply; 13+ messages in thread
From: ShiTou Hong @ 2026-10-27 8:07 UTC (permalink / raw)
To: andersson, konradybcio, conor+dt; +Cc: linux-arm-msm, devicetree, ShiTou Hong
There are 2 LEDs controlled by PM8150b on sm8250-hdk
which are not added in the dts file.
The LED1 is for heartbeat indicator,
the LED2 is for wifi activity.
Enable the LED controller of PM8150b,
add the LED nodes with proper triggers into it.
Signed-off-by: ShiTou Hong <dc_redstone@outlook.com>
---
arch/arm64/boot/dts/qcom/sm8250-hdk.dts | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm8250-hdk.dts b/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
index b32f254bf..11865abd1 100644
--- a/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
+++ b/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
@@ -7,6 +7,7 @@
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include <dt-bindings/usb/pd.h>
+#include <dt-bindings/leds/common.h>
#include "sm8250.dtsi"
#include "pm8150.dtsi"
#include "pm8150b.dtsi"
@@ -614,6 +615,24 @@ &pcie2_phy {
status = "okay";
};
+&pm8150b_lpg {
+ status = "okay";
+
+ led@1 {
+ reg = <1>;
+ function = LED_FUNCTION_HEARTBEAT;
+ color = <LED_COLOR_ID_GREEN>;
+ linux,default-trigger = "heartbeat";
+ };
+
+ led@2 {
+ reg = <2>;
+ function = LED_FUNCTION_WLAN;
+ color = <LED_COLOR_ID_RED>;
+ linux,default-trigger = "phy0tx";
+ };
+};
+
&pm8150b_typec {
status = "okay";
--
2.47.3
^ permalink raw reply related [flat|nested] 13+ messages in thread