[PATCH v2 5/8] arm64: dts: qcom: sm6350-lena: Enable Bluetooth
From: erebion
Date: Sat Sep 26 2026 - 10:04:31 EST
Configure the required regulators for Bluetooth and enable it on the
Xperia 10 III.
Signed-off-by: erebion <erebion@xxxxxxxxxx>
---
.../dts/qcom/sm6350-sony-xperia-lena-pdx213.dts | 109 +++++++++++++++++++++
1 file changed, 109 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm6350-sony-xperia-lena-pdx213.dts b/arch/arm64/boot/dts/qcom/sm6350-sony-xperia-lena-pdx213.dts
index f3ed6445c7d35..9be0e7ceccb55 100644
--- a/arch/arm64/boot/dts/qcom/sm6350-sony-xperia-lena-pdx213.dts
+++ b/arch/arm64/boot/dts/qcom/sm6350-sony-xperia-lena-pdx213.dts
@@ -19,6 +19,10 @@ / {
qcom,msm-id = <434 0x10000>, <459 0x10000>;
qcom,board-id = <0x1000b 0>;
+ aliases {
+ serial1 = &uart1;
+ };
+
chosen {
#address-cells = <2>;
#size-cells = <2>;
@@ -381,6 +385,44 @@ &qupv3_id_1 {
status = "okay";
};
+/* UART1: HS UART for Bluetooth */
+&qup_uart1_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.
+ */
+ /delete-property/ bias-disable;
+ bias-bus-hold;
+};
+
+&qup_uart1_rts {
+ /* We'll drive RTS, so no pull */
+ drive-strength = <2>;
+ /delete-property/ bias-pull-down;
+ bias-disable;
+};
+
+&qup_uart1_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).
+ */
+ /delete-property/ bias-disable;
+ bias-pull-up;
+};
+
+&qup_uart1_tx {
+ /* We'll drive TX, so no pull */
+ drive-strength = <2>;
+ /delete-property/ bias-pull-up;
+ bias-disable;
+};
+
&sdc2_off_state {
sd-cd-pins {
pins = "gpio94";
@@ -424,6 +466,73 @@ ts_int_default: ts-int-default-state {
drive-strength = <2>;
bias-disable;
};
+
+ qup_uart1_sleep_cts: qup-uart1-sleep-cts-state {
+ pins = "gpio61";
+ 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_uart1_sleep_rts: qup-uart1-sleep-rts-state {
+ pins = "gpio62";
+ 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_uart1_sleep_rx: qup-uart1-sleep-rx-state {
+ pins = "gpio64";
+ function = "gpio";
+ /*
+ * Configure a pull-up on RX. This is needed to avoid
+ * garbage data when the TX pin of the Bluetooth module
+ * is floating which may cause spurious wakeups.
+ */
+ bias-pull-up;
+ };
+
+ qup_uart1_sleep_tx: qup-uart1-sleep-tx-state {
+ pins = "gpio63";
+ 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;
+ };
+};
+
+&uart1 {
+ /delete-property/ interrupts;
+ interrupts-extended = <&intc GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>,
+ <&tlmm 64 IRQ_TYPE_EDGE_FALLING>;
+
+ pinctrl-names = "default", "sleep";
+ pinctrl-1 = <&qup_uart1_sleep_cts>, <&qup_uart1_sleep_rts>, <&qup_uart1_sleep_tx>, <&qup_uart1_sleep_rx>;
+
+ status = "okay";
+
+ bluetooth {
+ compatible = "qcom,wcn3991-bt";
+ vddio-supply = <&pm6350_l11>;
+ vddxo-supply = <&pm6350_l7>;
+ vddrf-supply = <&pm6150l_l2>;
+ vddch0-supply = <&pm6150l_l10>;
+ swctrl-gpios = <&tlmm 69 GPIO_ACTIVE_HIGH>;
+ firmware-name = "crnv32u.bin";
+ };
};
&usb_1 {
--
2.53.0