Re: [PATCH] arm64: dts: qcom: sdm845-mtp: Add WCN3990 BT node

From: Matthias Kaehlcke
Date: Thu Jan 17 2019 - 14:28:17 EST


On Wed, Jan 16, 2019 at 08:40:06PM -0800, Bjorn Andersson wrote:
> The SDM845 MTP has a WCN3990 Bluetooth chip on UART6, enable this.
>
> Signed-off-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>
> ---
> arch/arm64/boot/dts/qcom/sdm845-mtp.dts | 44 +++++++++++++++++++++++++
> 1 file changed, 44 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-mtp.dts b/arch/arm64/boot/dts/qcom/sdm845-mtp.dts
> index af8c6a2445a2..f65d5a674103 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845-mtp.dts
> +++ b/arch/arm64/boot/dts/qcom/sdm845-mtp.dts
> @@ -17,6 +17,7 @@
>
> aliases {
> serial0 = &uart9;
> + hsuart0 = &uart6;
> };
>
> chosen {
> @@ -357,6 +358,10 @@
> clock-frequency = <400000>;
> };
>
> +&qupv3_id_0 {
> + status = "okay";
> +};
> +
> &qupv3_id_1 {
> status = "okay";
> };
> @@ -373,6 +378,20 @@
> cd-gpios = <&tlmm 126 GPIO_ACTIVE_LOW>;
> };
>
> +&uart6 {
> + status = "okay";
> +
> + bluetooth {
> + compatible = "qcom,wcn3990-bt";
> +
> + vddio-supply = <&vreg_s4a_1p8>;
> + vddxo-supply = <&vreg_l7a_1p8>;
> + vddrf-supply = <&vreg_l17a_1p3>;
> + vddch0-supply = <&vreg_l25a_3p3>;
> + max-speed = <3200000>;
> + };
> +};
> +
> &uart9 {
> status = "okay";
> };
> @@ -470,6 +489,31 @@
> };
> };
>
> +&qup_uart6_default {
> + pinmux {
> + pins = "gpio45", "gpio46", "gpio47", "gpio48";
> + function = "qup6";
> + };
> +
> + ctsrx {
> + pins = "gpio45", "gpio48";
> + drive-strength = <2>;

CTS and RX are input signals, no need to configure drive strength in
this case IIUC.

> + bias-no-pull;

On another SDM845 based device we observe garbage on RX at
initialization time, unless we enable a pull-up.

> + };
> +
> + rts {
> + pins = "gpio46";
> + drive-strength = <2>;
> + bias-pull-down;
> + };

On our device we don't configure a pull on the lines driven by the
AP. I think a pull-down on RTS should be fine though since it matches
the pull (during reset) on CTS of the BT module.

> + tx {
> + pins = "gpio47";
> + drive-strength = <2>;
> + bias-pull-up;
> + };
> +};

Similar to RTS, the pull matches the one on RXD of the BT module.

For reference, this is what we currently use on our device:

https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/1391888/3/arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi

Cheers

Matthias