Add support for the onboard WCN3950 BT/WiFi chip. Corresponding firmware
has been merged to linux-firmware and should be available in the next
release.
Bluetooth: hci0: setting up wcn399x
Bluetooth: hci0: QCA Product ID :0x0000000f
Bluetooth: hci0: QCA SOC Version :0x40070120
Bluetooth: hci0: QCA ROM Version :0x00000102
Bluetooth: hci0: QCA Patch Version:0x00000001
Bluetooth: hci0: QCA controller version 0x01200102
Bluetooth: hci0: QCA Downloading qca/cmbtfw12.tlv
Bluetooth: hci0: QCA Downloading qca/cmnv12.bin
Bluetooth: hci0: QCA setup on UART is completed
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
arch/arm64/boot/dts/qcom/qrb2210-rb1.dts | 83 ++++++++++++++++++++++++++++++++
1 file changed, 83 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts b/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts
index 7a789b41c2f1887f0c41ae24da2e2fe8915ab13c..9a2c86144ed529f13987b4135407f605b9ec71cd 100644
--- a/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts
+++ b/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts
@@ -15,6 +15,7 @@ / {
aliases {
serial0 = &uart4;
+ serial1 = &uart3;
sdhc1 = &sdhc_1;
sdhc2 = &sdhc_2;
};
@@ -549,6 +550,66 @@ can@0 {
};
&tlmm {
+ uart3_default: uart3-default-state {
+ cts-pins {
+ pins = "gpio8";
+ function = "qup3";
+ drive-strength = <2>;
+ bias-bus-hold;
+ };
+
+ rts-pins {
+ pins = "gpio9";
+ function = "qup3";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ tx-pins {
+ pins = "gpio10";
+ function = "qup3";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ rx-pins {
+ pins = "gpio11";
+ function = "qup3";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ uart3_sleep: uart3-sleep-state {
+ cts-pins {
+ pins = "gpio8";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-bus-hold;
+ };
+
+ rts-pins {
+ pins = "gpio9";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ tx-pins {
+ pins = "gpio10";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ rx-pins {
+ pins = "gpio11";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
lt9611_rst_pin: lt9611-rst-state {
pins = "gpio41";
function = "gpio";
@@ -584,6 +645,28 @@ key_volp_n: key-volp-n-state {
};
};
+&uart3 {
+ /delete-property/ interrupts;
+ interrupts-extended = <&intc GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
+ <&tlmm 11 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&uart3_default>;
+ pinctrl-1 = <&uart3_sleep>;
+ pinctrl-names = "default", "sleep";
+
+ status = "okay";
+
+ bluetooth {
+ compatible = "qcom,wcn3950-bt";
+
+ vddio-supply = <&pm4125_l15>;
+ vddxo-supply = <&pm4125_l13>;
+ vddrf-supply = <&pm4125_l10>;
+ vddch0-supply = <&pm4125_l22>;
+ enable-gpios = <&tlmm 87 GPIO_ACTIVE_HIGH>;
+ max-speed = <3200000>;
+ };
+};
+
/* UART connected to the Micro-USB port via a FTDI chip */
&uart4 {
compatible = "qcom,geni-debug-uart";
--
2.39.5
On 7.02.2025 9:41 PM, Dmitry Baryshkov wrote:
> Add support for the onboard WCN3950 BT/WiFi chip. Corresponding firmware
> has been merged to linux-firmware and should be available in the next
> release.
>
> Bluetooth: hci0: setting up wcn399x
> Bluetooth: hci0: QCA Product ID :0x0000000f
> Bluetooth: hci0: QCA SOC Version :0x40070120
> Bluetooth: hci0: QCA ROM Version :0x00000102
> Bluetooth: hci0: QCA Patch Version:0x00000001
> Bluetooth: hci0: QCA controller version 0x01200102
> Bluetooth: hci0: QCA Downloading qca/cmbtfw12.tlv
> Bluetooth: hci0: QCA Downloading qca/cmnv12.bin
> Bluetooth: hci0: QCA setup on UART is completed
>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
[...]
> +&uart3 {
> + /delete-property/ interrupts;
> + interrupts-extended = <&intc GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
> + <&tlmm 11 IRQ_TYPE_LEVEL_HIGH>;
> + pinctrl-0 = <&uart3_default>;
> + pinctrl-1 = <&uart3_sleep>;
> + pinctrl-names = "default", "sleep";
> +
> + status = "okay";
> +
> + bluetooth {
> + compatible = "qcom,wcn3950-bt";
> +
> + vddio-supply = <&pm4125_l15>;
> + vddxo-supply = <&pm4125_l13>;
> + vddrf-supply = <&pm4125_l10>;
> + vddch0-supply = <&pm4125_l22>;
> + enable-gpios = <&tlmm 87 GPIO_ACTIVE_HIGH>;
> + max-speed = <3200000>;
I suppose we don't need a power sequencer for this smaller,
tightly-integrated-via-snoc chip?
Konrad
On Tue, 11 Feb 2025 at 16:52, Konrad Dybcio
<konrad.dybcio@oss.qualcomm.com> wrote:
>
> On 7.02.2025 9:41 PM, Dmitry Baryshkov wrote:
> > Add support for the onboard WCN3950 BT/WiFi chip. Corresponding firmware
> > has been merged to linux-firmware and should be available in the next
> > release.
> >
> > Bluetooth: hci0: setting up wcn399x
> > Bluetooth: hci0: QCA Product ID :0x0000000f
> > Bluetooth: hci0: QCA SOC Version :0x40070120
> > Bluetooth: hci0: QCA ROM Version :0x00000102
> > Bluetooth: hci0: QCA Patch Version:0x00000001
> > Bluetooth: hci0: QCA controller version 0x01200102
> > Bluetooth: hci0: QCA Downloading qca/cmbtfw12.tlv
> > Bluetooth: hci0: QCA Downloading qca/cmnv12.bin
> > Bluetooth: hci0: QCA setup on UART is completed
> >
> > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > ---
>
> [...]
>
> > +&uart3 {
> > + /delete-property/ interrupts;
> > + interrupts-extended = <&intc GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
> > + <&tlmm 11 IRQ_TYPE_LEVEL_HIGH>;
> > + pinctrl-0 = <&uart3_default>;
> > + pinctrl-1 = <&uart3_sleep>;
> > + pinctrl-names = "default", "sleep";
> > +
> > + status = "okay";
> > +
> > + bluetooth {
> > + compatible = "qcom,wcn3950-bt";
> > +
> > + vddio-supply = <&pm4125_l15>;
> > + vddxo-supply = <&pm4125_l13>;
> > + vddrf-supply = <&pm4125_l10>;
> > + vddch0-supply = <&pm4125_l22>;
> > + enable-gpios = <&tlmm 87 GPIO_ACTIVE_HIGH>;
> > + max-speed = <3200000>;
>
> I suppose we don't need a power sequencer for this smaller,
> tightly-integrated-via-snoc chip?
We can (and should) have it in a longer term. Currently none of
wcm39xx chips have a powerseq implementation.
--
With best wishes
Dmitry
On 11.02.2025 10:19 PM, Dmitry Baryshkov wrote:
> On Tue, 11 Feb 2025 at 16:52, Konrad Dybcio
> <konrad.dybcio@oss.qualcomm.com> wrote:
>>
>> On 7.02.2025 9:41 PM, Dmitry Baryshkov wrote:
>>> Add support for the onboard WCN3950 BT/WiFi chip. Corresponding firmware
>>> has been merged to linux-firmware and should be available in the next
>>> release.
>>>
>>> Bluetooth: hci0: setting up wcn399x
>>> Bluetooth: hci0: QCA Product ID :0x0000000f
>>> Bluetooth: hci0: QCA SOC Version :0x40070120
>>> Bluetooth: hci0: QCA ROM Version :0x00000102
>>> Bluetooth: hci0: QCA Patch Version:0x00000001
>>> Bluetooth: hci0: QCA controller version 0x01200102
>>> Bluetooth: hci0: QCA Downloading qca/cmbtfw12.tlv
>>> Bluetooth: hci0: QCA Downloading qca/cmnv12.bin
>>> Bluetooth: hci0: QCA setup on UART is completed
>>>
>>> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
>>> ---
>>
>> [...]
>>
>>> +&uart3 {
>>> + /delete-property/ interrupts;
>>> + interrupts-extended = <&intc GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
>>> + <&tlmm 11 IRQ_TYPE_LEVEL_HIGH>;
>>> + pinctrl-0 = <&uart3_default>;
>>> + pinctrl-1 = <&uart3_sleep>;
>>> + pinctrl-names = "default", "sleep";
>>> +
>>> + status = "okay";
>>> +
>>> + bluetooth {
>>> + compatible = "qcom,wcn3950-bt";
>>> +
>>> + vddio-supply = <&pm4125_l15>;
>>> + vddxo-supply = <&pm4125_l13>;
>>> + vddrf-supply = <&pm4125_l10>;
>>> + vddch0-supply = <&pm4125_l22>;
>>> + enable-gpios = <&tlmm 87 GPIO_ACTIVE_HIGH>;
>>> + max-speed = <3200000>;
>>
>> I suppose we don't need a power sequencer for this smaller,
>> tightly-integrated-via-snoc chip?
>
> We can (and should) have it in a longer term. Currently none of
> wcm39xx chips have a powerseq implementation.
Alright, let's kick the can down the road.. hopefully not too far though
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
© 2016 - 2025 Red Hat, Inc.