Skip to contentSkip to conversation

Bluetooth: Add support for RTL8821CS

PATCH Superseded Chris Morgan 3 participants 6 messages Feb 27, 2023

Subsystems (4)

v3 of 5 Superseded Latest is v5 →

lore
Share & tools
lore
#0 lore raw

v3 cover Bluetooth: Add support for RTL8821CS

From: Chris Morgan <[email protected]>

This patch series is to add support for the RTL8821CS Bluetooth controller found on the RTL8821CS WiFi/Bluetooth combo chip.

This has been tested with firmware version 0x75b8f098 which has been submitted by Realtek for inclusion in linux-firmware.

https://lore.kernel.org/linux-firmware/[email protected]/

Changes from V2:
- Corrected devicetree documentation to change compatible from const back to enum.
- Removed "reviewed-by" from Alistair Francis as binding documentation updated with changes.

Changes from V1:
- Switched to use a fallback string for the rtl8822cs so as to not add an extra entry to the of_device_id table. The driver is capable of selecting the correct firmware blob to load.
- Updated the messages to note a new version of the firmware was tested and that Realtek has submitted this firmware upstream.
- Updated the devicetree node on the Anbernic RGxx3 series to use the fallback string of realtek,rtl8822cs-bt.

Chris Morgan (3):
dt-bindings: net: realtek-bluetooth: Add RTL8821CS
Bluetooth: hci_h5: btrtl: Add support for RTL8821CS
arm64: dts: rockchip: Update compatible for bluetooth

 .../bindings/net/realtek-bluetooth.yaml       | 25 ++++++++++++-------
 .../dts/rockchip/rk3566-anbernic-rgxx3.dtsi   |  2 +-
 drivers/bluetooth/btrtl.c                     |  8 ++++++
 3 files changed, 25 insertions(+), 10 deletions(-)
Signature · 1 line
2.34.1
#1 lore raw

PATCH v3 1/3 dt-bindings: net: realtek-bluetooth: Add RTL8821CS

From: Chris Morgan <[email protected]>

Add compatible string for RTL8821CS for existing Realtek Bluetooth driver.

---
 .../bindings/net/realtek-bluetooth.yaml       | 25 ++++++++++++-------
 1 file changed, 16 insertions(+), 9 deletions(-)
Documentation/devicetree/bindings/net/realtek-bluetooth.yaml +16 -9
index 143b5667abad..198c5dd1f257 100644
@@ -4,24 +4,31 @@
 $id: http://devicetree.org/schemas/net/realtek-bluetooth.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: RTL8723BS/RTL8723CS/RTL8822CS Bluetooth
+title: RTL8723BS/RTL8723CS/RTL8821CS/RTL8822CS Bluetooth
 
 maintainers:
   - Vasily Khoruzhick <[email protected]>
   - Alistair Francis <[email protected]>
 
 description:
-  RTL8723CS/RTL8723CS/RTL8822CS is WiFi + BT chip. WiFi part is connected over
-  SDIO, while BT is connected over serial. It speaks H5 protocol with few
-  extra commands to upload firmware and change module speed.
+  RTL8723CS/RTL8723CS/RTL8821CS/RTL8822CS is a WiFi + BT chip. WiFi part
+  is connected over SDIO, while BT is connected over serial. It speaks
+  H5 protocol with few extra commands to upload firmware and change
+  module speed.
 
 properties:
   compatible:
-    enum:
-      - realtek,rtl8723bs-bt
-      - realtek,rtl8723cs-bt
-      - realtek,rtl8723ds-bt
-      - realtek,rtl8822cs-bt
+    oneOf:
+      - items:
+          - enum:
+              - realtek,rtl8723bs-bt
+              - realtek,rtl8723cs-bt
+              - realtek,rtl8723ds-bt
+              - realtek,rtl8822cs-bt
+      - items:
+          - enum:
+              - realtek,rtl8821cs-bt
+          - const: realtek,rtl8822cs-bt
 
   device-wake-gpios:
     maxItems: 1
Signature · 1 line
2.34.1
#2 lore raw

Re: [PATCH 1/3 V3] dt-bindings: net: realtek-bluetooth: Add RTL8821CS

Quoted 33 lines · Chris Morgan

From: Chris Morgan <[email protected]>

Add compatible string for RTL8821CS for existing Realtek Bluetooth driver.

---
 .../bindings/net/realtek-bluetooth.yaml       | 25 ++++++++++++-------
 1 file changed, 16 insertions(+), 9 deletions(-)
Documentation/devicetree/bindings/net/realtek-bluetooth.yaml +5 -4
index 143b5667abad..198c5dd1f257 100644
@@ -4,24 +4,31 @@
 $id: http://devicetree.org/schemas/net/realtek-bluetooth.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: RTL8723BS/RTL8723CS/RTL8822CS Bluetooth
+title: RTL8723BS/RTL8723CS/RTL8821CS/RTL8822CS Bluetooth
 
 maintainers:
   - Vasily Khoruzhick <[email protected]>
   - Alistair Francis <[email protected]>
 
 description:
-  RTL8723CS/RTL8723CS/RTL8822CS is WiFi + BT chip. WiFi part is connected over
-  SDIO, while BT is connected over serial. It speaks H5 protocol with few
-  extra commands to upload firmware and change module speed.
+  RTL8723CS/RTL8723CS/RTL8821CS/RTL8822CS is a WiFi + BT chip. WiFi part
+  is connected over SDIO, while BT is connected over serial. It speaks
+  H5 protocol with few extra commands to upload firmware and change
+  module speed.

Documentation/devicetree/bindings/net/realtek-bluetooth.yaml line 22

Quoted 10 lines
Documentation/devicetree/bindings/net/realtek-bluetooth.yaml +2 -5
 
 properties:
   compatible:
-    enum:
-      - realtek,rtl8723bs-bt
-      - realtek,rtl8723cs-bt
-      - realtek,rtl8723ds-bt
-      - realtek,rtl8822cs-bt
+    oneOf:
+      - items:

Now you added items which were never here... You have only one item, so no need for items.
Best regards,
Krzysztof

#3 lore raw
In reply to Chris Morgan

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list. This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=725242

---Test result---

Test Summary:

CheckPatch                    PASS      1.66 seconds
GitLint                       PASS      0.80 seconds
SubjectPrefix                 FAIL      0.58 seconds
BuildKernel                   PASS      30.67 seconds
CheckAllWarning               PASS      34.03 seconds
CheckSparse                   WARNING   38.86 seconds
CheckSmatch                   WARNING   108.94 seconds
BuildKernel32                 PASS      30.08 seconds
TestRunnerSetup               PASS      432.95 seconds
TestRunner_l2cap-tester       PASS      15.83 seconds
TestRunner_iso-tester         PASS      16.38 seconds
TestRunner_bnep-tester        PASS      5.28 seconds
TestRunner_mgmt-tester        PASS      107.75 seconds
TestRunner_rfcomm-tester      PASS      8.54 seconds
TestRunner_sco-tester         PASS      7.86 seconds
TestRunner_ioctl-tester       PASS      9.07 seconds
TestRunner_mesh-tester        PASS      6.69 seconds
TestRunner_smp-tester         PASS      7.73 seconds
TestRunner_userchan-tester    PASS      5.60 seconds
IncrementalBuild              PASS      36.06 seconds

Details
##############################
Test: SubjectPrefix - FAIL
Desc: Check subject contains "Bluetooth" prefix
Output:
"Bluetooth: " prefix is not specified in the subject
"Bluetooth: " prefix is not specified in the subject
##############################
Test: CheckSparse - WARNING
Desc: Run sparse tool with linux kernel
Output:
drivers/bluetooth/btrtl.c: note: in included file:drivers/bluetooth/btrtl.h:47:45: warning: array of flexible structures
##############################
Test: CheckSmatch - WARNING
Desc: Run smatch tool with source
Output:
drivers/bluetooth/btrtl.c: note: in included file:drivers/bluetooth/btrtl.h:47:45: warning: array of flexible structures

---
Regards,
Linux Bluetooth

#4 lore raw

PATCH v3 2/3 Bluetooth: hci_h5: btrtl: Add support for RTL8821CS

In reply to Chris Morgan

From: Chris Morgan <[email protected]>

RTL8821CS is a WiFi + Bluetooth combo chip from Realtek that provides WiFi A/B/G/N/AC over an SDIO interface and Bluetooth 4.2 over a UART interface.

Note that the firmware this was tested with was firmware version 0x75b8f098.

---
 drivers/bluetooth/btrtl.c | 8 ++++++++
 1 file changed, 8 insertions(+)
drivers/bluetooth/btrtl.c +8 -0
index 69c3fe649ca7..72947d319fa6 100644
@@ -128,6 +128,14 @@ static const struct id_table ic_id_table[] = {
 	  .fw_name  = "rtl_bt/rtl8821c_fw.bin",
 	  .cfg_name = "rtl_bt/rtl8821c_config" },
 
+	/* 8821CS */
+	{ IC_INFO(RTL_ROM_LMP_8821A, 0xc, 0x8, HCI_UART),
+	  .config_needed = true,
+	  .has_rom_version = true,
+	  .has_msft_ext = true,
+	  .fw_name  = "rtl_bt/rtl8821cs_fw.bin",
+	  .cfg_name = "rtl_bt/rtl8821cs_config" },
+
 	/* 8761A */
 	{ IC_INFO(RTL_ROM_LMP_8761A, 0xa, 0x6, HCI_USB),
 	  .config_needed = false,
Signature · 1 line
2.34.1
#5 lore raw

PATCH v3 3/3 arm64: dts: rockchip: Update compatible for bluetooth

In reply to Chris Morgan

From: Chris Morgan <[email protected]>

Update the compatible for the Realtek RTL8821CS bluetooth node.

---
 arch/arm64/boot/dts/rockchip/rk3566-anbernic-rgxx3.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm64/boot/dts/rockchip/rk3566-anbernic-rgxx3.dtsi +1 -1
index 41262a69d33e..8fadd8afb190 100644
@@ -716,7 +716,7 @@ &uart1 {
 	status = "okay";
 
 	bluetooth {
-		compatible = "realtek,rtl8821cs-bt";
+		compatible = "realtek,rtl8821cs-bt", "realtek,rtl8822cs-bt";
 		device-wake-gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>;
 		enable-gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>;
 		host-wake-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>;
Signature · 1 line
2.34.1