diff mbox series

[1/2] arch: arm64: qcom: sdm845-shift-axolotl: fix Bluetooth firmware loading

Message ID 20220609095412.211060-1-amartinz@shiftphones.com (mailing list archive)
State Changes Requested
Headers show
Series [1/2] arch: arm64: qcom: sdm845-shift-axolotl: fix Bluetooth firmware loading | expand

Commit Message

Alexander Martinz June 9, 2022, 9:54 a.m. UTC
From: Dylan Van Assche <me@dylanvanassche.be>

Add hsuart0 alias, firmware name and prevent garbage data on Bluetooth UART lines
on the SHIFT 6mq based on the Qualcomm SDM845 chip.
I discovered that these were missing by comparing the DTS with similar
devices such as the Oneplus 6/6T and Dragonboard 845c.

Signed-of-by: Dylan Van Assche <me@dylanvanassche.be>
Tested-by: Alexander Martinz <amartinz@shiftphones.com>
---
 .../boot/dts/qcom/sdm845-shift-axolotl.dts    | 33 +++++++++++++++++++
 1 file changed, 33 insertions(+)

Comments

Krzysztof Kozlowski June 9, 2022, 12:11 p.m. UTC | #1
On 09/06/2022 11:54, Alexander Martinz wrote:
> From: Dylan Van Assche <me@dylanvanassche.be>
> 
> Add hsuart0 alias, firmware name and prevent garbage data on Bluetooth UART lines
> on the SHIFT 6mq based on the Qualcomm SDM845 chip.
> I discovered that these were missing by comparing the DTS with similar
> devices such as the Oneplus 6/6T and Dragonboard 845c.
> 
> Signed-of-by: Dylan Van Assche <me@dylanvanassche.be>
> Tested-by: Alexander Martinz <amartinz@shiftphones.co>

Thanks for the patch. Instead of your Tested-by (or beside) your SoB is
needed, following Dylan's.

Best regards,
Krzysztof
Dmitry Baryshkov June 9, 2022, 12:47 p.m. UTC | #2
On Thu, 9 Jun 2022 at 12:54, Alexander Martinz <amartinz@shiftphones.com> wrote:
>
> From: Dylan Van Assche <me@dylanvanassche.be>
>
> Add hsuart0 alias, firmware name and prevent garbage data on Bluetooth UART lines

hsuart aliases are not standard. Please use serialN alias instead.

> on the SHIFT 6mq based on the Qualcomm SDM845 chip.
> I discovered that these were missing by comparing the DTS with similar
> devices such as the Oneplus 6/6T and Dragonboard 845c.
>
> Signed-of-by: Dylan Van Assche <me@dylanvanassche.be>
> Tested-by: Alexander Martinz <amartinz@shiftphones.com>
> ---
>  .../boot/dts/qcom/sdm845-shift-axolotl.dts    | 33 +++++++++++++++++++
>  1 file changed, 33 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
> index 103cc40816fd..fa72f23ef0c2 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
> +++ b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
> @@ -20,6 +20,7 @@ / {
>
>         aliases {
>                 display0 = &framebuffer0;
> +               hsuart0 = &uart6;
>                 serial0 = &uart9;
>         };
>
> @@ -529,6 +530,32 @@ volume_down_resin: resin {
>         };
>  };
>
> +/*
> + * Prevent garbage data on bluetooth UART lines
> + */
> +&qup_uart6_default {
> +        pinmux {
> +                pins = "gpio45", "gpio46", "gpio47", "gpio48";
> +                function = "qup6";
> +        };

This chunk should probably go into sdm845.dtsi. I'd suggest either
adding a separate qup_uart6_4pin or just making qup_uart6_default the
4-pin UART.

> +
> +        cts {
> +                pins = "gpio45";

Then the label and 'pins' can go into the dtsi, while keeping just the
bias and drive-strength in the platform dtsi.

> +                bias-pull-down;
> +        };
> +
> +        rts-tx {
> +                pins = "gpio46", "gpio47";
> +                drive-strength = <2>;
> +                bias-disable;
> +        };
> +
> +        rx {
> +                pins = "gpio48";
> +                bias-pull-up;
> +        };
> +};
> +
>  &qup_uart9_default {
>         pinconf-rx {
>                 pins = "gpio5";
> @@ -667,6 +694,12 @@ &uart6 {
>         bluetooth {
>                 compatible = "qcom,wcn3990-bt";
>
> +               /*
> +                * This path is relative to the qca/
> +                * subdir under lib/firmware.
> +                */
> +               firmware-name = "axolotl/crnv21.bin";

Do you know what is the difference between axolotl's bin and the regular one?

> +
>                 vddio-supply = <&vreg_s4a_1p8>;
>                 vddxo-supply = <&vreg_l7a_1p8>;
>                 vddrf-supply = <&vreg_l17a_1p3>;
Caleb Connolly July 6, 2022, 6:49 p.m. UTC | #3
On 09/06/2022 13:47, Dmitry Baryshkov wrote:
> On Thu, 9 Jun 2022 at 12:54, Alexander Martinz <amartinz@shiftphones.com> wrote:
>>
>> From: Dylan Van Assche <me@dylanvanassche.be>
>>
>> Add hsuart0 alias, firmware name and prevent garbage data on Bluetooth UART lines
>
> hsuart aliases are not standard. Please use serialN alias instead.
>
>> on the SHIFT 6mq based on the Qualcomm SDM845 chip.
>> I discovered that these were missing by comparing the DTS with similar
>> devices such as the Oneplus 6/6T and Dragonboard 845c.
>>
>> Signed-of-by: Dylan Van Assche <me@dylanvanassche.be>
>> Tested-by: Alexander Martinz <amartinz@shiftphones.com>
>> ---
>>   .../boot/dts/qcom/sdm845-shift-axolotl.dts    | 33 +++++++++++++++++++
>>   1 file changed, 33 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
>> index 103cc40816fd..fa72f23ef0c2 100644
>> --- a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
>> +++ b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
>> @@ -20,6 +20,7 @@ / {
>>
>>          aliases {
>>                  display0 = &framebuffer0;
>> +               hsuart0 = &uart6;
>>                  serial0 = &uart9;
>>          };
>>
>> @@ -529,6 +530,32 @@ volume_down_resin: resin {
>>          };
>>   };
>>
>> +/*
>> + * Prevent garbage data on bluetooth UART lines
>> + */
>> +&qup_uart6_default {
>> +        pinmux {
>> +                pins = "gpio45", "gpio46", "gpio47", "gpio48";
>> +                function = "qup6";
>> +        };
>
> This chunk should probably go into sdm845.dtsi. I'd suggest either
> adding a separate qup_uart6_4pin or just making qup_uart6_default the
> 4-pin UART.
This sounds good
>
>> +
>> +        cts {
>> +                pins = "gpio45";
>
> Then the label and 'pins' can go into the dtsi, while keeping just the
> bias and drive-strength in the platform dtsi.
>
>> +                bias-pull-down;
>> +        };
>> +
>> +        rts-tx {
>> +                pins = "gpio46", "gpio47";
>> +                drive-strength = <2>;
>> +                bias-disable;
>> +        };
>> +
>> +        rx {
>> +                pins = "gpio48";
>> +                bias-pull-up;
>> +        };
>> +};
>> +
>>   &qup_uart9_default {
>>          pinconf-rx {
>>                  pins = "gpio5";
>> @@ -667,6 +694,12 @@ &uart6 {
>>          bluetooth {
>>                  compatible = "qcom,wcn3990-bt";
>>
>> +               /*
>> +                * This path is relative to the qca/
>> +                * subdir under lib/firmware.
>> +                */
>> +               firmware-name = "axolotl/crnv21.bin";
>
> Do you know what is the difference between axolotl's bin and the regular one?
Just checked in a hex editor and there are some differences. This firmware is
signed on most devices but given the SHIFT6mq is secureboot off we could in
theory use upstream firmware here - if it works. This particular device has some
very broken wifi firmware - we have to use the firmware from the OnePlus 6 to
get wifi to work at all...
>
>> +
>>                  vddio-supply = <&vreg_s4a_1p8>;
>>                  vddxo-supply = <&vreg_l7a_1p8>;
>>                  vddrf-supply = <&vreg_l17a_1p3>;
>
> --
> With best wishes
> Dmitry

--
Kind Regards,
Caleb
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
index 103cc40816fd..fa72f23ef0c2 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
+++ b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
@@ -20,6 +20,7 @@  / {
 
 	aliases {
 		display0 = &framebuffer0;
+		hsuart0 = &uart6;
 		serial0 = &uart9;
 	};
 
@@ -529,6 +530,32 @@  volume_down_resin: resin {
 	};
 };
 
+/*
+ * Prevent garbage data on bluetooth UART lines
+ */
+&qup_uart6_default {
+        pinmux {
+                pins = "gpio45", "gpio46", "gpio47", "gpio48";
+                function = "qup6";
+        };
+
+        cts {
+                pins = "gpio45";
+                bias-pull-down;
+        };
+
+        rts-tx {
+                pins = "gpio46", "gpio47";
+                drive-strength = <2>;
+                bias-disable;
+        };
+
+        rx {
+                pins = "gpio48";
+                bias-pull-up;
+        };
+};
+
 &qup_uart9_default {
 	pinconf-rx {
 		pins = "gpio5";
@@ -667,6 +694,12 @@  &uart6 {
 	bluetooth {
 		compatible = "qcom,wcn3990-bt";
 
+		/*
+		 * This path is relative to the qca/
+		 * subdir under lib/firmware.
+		 */
+		firmware-name = "axolotl/crnv21.bin";
+
 		vddio-supply = <&vreg_s4a_1p8>;
 		vddxo-supply = <&vreg_l7a_1p8>;
 		vddrf-supply = <&vreg_l17a_1p3>;