OSDN Git Service

arm64: dts: qcom: sc7280: Configure uart7 to support bluetooth on sc7280-idp
authorRajesh Patil <rajpat@codeaurora.org>
Thu, 23 Sep 2021 12:16:16 +0000 (17:46 +0530)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Fri, 24 Sep 2021 22:40:20 +0000 (17:40 -0500)
Add bluetooth uart pin configuration for sc7280-idp.

Signed-off-by: Rajesh Patil <rajpat@codeaurora.org>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/1632399378-12229-7-git-send-email-rajpat@codeaurora.org
arch/arm64/boot/dts/qcom/sc7280-idp.dtsi

index c93e218..c417473 100644 (file)
        vdda18-supply = <&vreg_l1c_1p8>;
 };
 
+&uart7 {
+       status = "okay";
+
+       /delete-property/interrupts;
+       interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
+                               <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>, <&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>;
+};
+
 /* PINCTRL - additions to nodes defined in sc7280.dtsi */
 
 &pm7325_gpios {
        bias-pull-up;
 };
 
+&qup_uart7_cts {
+       /*
+        * Configure a pull-down on CTS to match the pull of
+        * the Bluetooth module.
+        */
+       bias-pull-down;
+};
+
+&qup_uart7_rts {
+       /* We'll drive RTS, so no pull */
+       drive-strength = <2>;
+       bias-disable;
+};
+
+&qup_uart7_tx {
+       /* We'll drive TX, 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;
+};
+
+&tlmm {
+       qup_uart7_sleep_cts: qup-uart7-sleep-cts {
+               pins = "gpio28";
+               function = "gpio";
+               /*
+                * Configure a pull-down on CTS to match the pull of
+                * the Bluetooth module.
+                */
+               bias-pull-down;
+       };
+
+       qup_uart7_sleep_rts: qup-uart7-sleep-rts {
+               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 {
+               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 {
+               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;
+       };
+};
+
 &sdc1_on {
        clk {
                bias-disable;