Message ID | 20250207-rb1-bt-v4-6-d810fc8c94a9@linaro.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Bluetooth: qca: add Qualcomm WCN3950 BT/WiFi chip support | expand |
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.
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
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";