[PATCH v3 4/6] wifi: rtw88: 8723bs: add the RTL8723BS SDIO bind
From: Luka Gejak
Date: Mon Sep 21 2026 - 13:25:57 EST
Add the SDIO module for the RTL8723BS, the SDIO variant of the
RTL8723B. It binds the Realtek SDIO device ids to the shared rtw88 SDIO
probe and points it at the RTL8723B chip information.
The device id table carries the same six ids the staging rtl8723bs
driver binds to this chip, so the staging driver can be dropped without
losing hardware support. I only have the 0xb723 variant to test with;
the other five are included for parity with staging, which has carried
them for years, rather than being left behind.
The driver is not built yet; the Kconfig and Makefile entries follow.
The RTL8723B chip support is based on the initial work by
Michael Straube <straube.linux@xxxxxxxxx>.
Link: https://github.com/mistraube/rtw88/tree/rtl8723bs
Co-developed-by: Michael Straube <straube.linux@xxxxxxxxx>
Signed-off-by: Michael Straube <straube.linux@xxxxxxxxx>
Signed-off-by: Luka Gejak <luka.gejak@xxxxxxxxx>
---
.../net/wireless/realtek/rtw88/rtw8723bs.c | 67 +++++++++++++++++++
1 file changed, 67 insertions(+)
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8723bs.c
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723bs.c b/drivers/net/wireless/realtek/rtw88/rtw8723bs.c
new file mode 100644
index 000000000000..f0c0fe6ee2b3
--- /dev/null
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723bs.c
@@ -0,0 +1,67 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/*
+ * Copyright(c) 2007-2017 Realtek Corporation
+ * Copyright(c) Michael Straube <straube.linux@xxxxxxxxx>
+ * Copyright(c) 2024-2026 Luka Gejak <luka.gejak@xxxxxxxxx>
+ */
+
+#include <linux/mmc/sdio_func.h>
+#include <linux/mmc/sdio_ids.h>
+#include <linux/module.h>
+#include "main.h"
+#include "rtw8723b.h"
+#include "sdio.h"
+
+static const struct sdio_device_id rtw_8723bs_id_table[] = {
+ {
+ SDIO_DEVICE(SDIO_VENDOR_ID_REALTEK,
+ SDIO_DEVICE_ID_REALTEK_RTW8723BS),
+ .driver_data = (kernel_ulong_t)&rtw8723b_hw_spec,
+ },
+ /*
+ * The remaining ids are the other RTL8723BS SDIO ids the staging
+ * rtl8723bs driver binds to this chip. They have no
+ * SDIO_DEVICE_ID_REALTEK_* names in <linux/mmc/sdio_ids.h> and are
+ * carried here for parity with staging; only 0xb723 above has been
+ * verified on hardware.
+ */
+ {
+ SDIO_DEVICE(SDIO_VENDOR_ID_REALTEK, 0x0523),
+ .driver_data = (kernel_ulong_t)&rtw8723b_hw_spec,
+ },
+ {
+ SDIO_DEVICE(SDIO_VENDOR_ID_REALTEK, 0x0525),
+ .driver_data = (kernel_ulong_t)&rtw8723b_hw_spec,
+ },
+ {
+ SDIO_DEVICE(SDIO_VENDOR_ID_REALTEK, 0x0623),
+ .driver_data = (kernel_ulong_t)&rtw8723b_hw_spec,
+ },
+ {
+ SDIO_DEVICE(SDIO_VENDOR_ID_REALTEK, 0x0626),
+ .driver_data = (kernel_ulong_t)&rtw8723b_hw_spec,
+ },
+ {
+ SDIO_DEVICE(SDIO_VENDOR_ID_REALTEK, 0x0627),
+ .driver_data = (kernel_ulong_t)&rtw8723b_hw_spec,
+ },
+ {}
+};
+MODULE_DEVICE_TABLE(sdio, rtw_8723bs_id_table);
+
+static struct sdio_driver rtw_8723bs_driver = {
+ .name = KBUILD_MODNAME,
+ .id_table = rtw_8723bs_id_table,
+ .probe = rtw_sdio_probe,
+ .remove = rtw_sdio_remove,
+ .shutdown = rtw_sdio_shutdown,
+ .drv = {
+ .pm = &rtw_sdio_pm_ops,
+ }
+};
+module_sdio_driver(rtw_8723bs_driver);
+
+MODULE_AUTHOR("Michael Straube <straube.linux@xxxxxxxxx>");
+MODULE_AUTHOR("Luka Gejak <luka.gejak@xxxxxxxxx>");
+MODULE_DESCRIPTION("Realtek 802.11n wireless 8723bs driver");
+MODULE_LICENSE("Dual BSD/GPL");
--
2.55.0