From: Michael Nemanov <michael.nemanov@xxxxxx> Hello everyone, This series adds support for CC33xx which is a new family of WLAN IEEE802.11 a/b/g/n/ax and BLE 5.4 transceivers by Texas Instruments. These devices are 20MHz single spatial stream enabling STA (IEEE802.11ax) and AP (IEEE802.11n only) roles as well as both roles simultaneously. Communication to the CC33xx is done via 4-bit SDIO with two extra GPIOs: Enable and Interrupt. Data sheet: https://www.ti.com/lit/gpn/cc3301 This driver's architecture is a soft-MAC and derivative of existing wl18xx + wlcore code [1]. It has been tested with the AM335x, AM625x, and i.MX8-MP evaluation kits. All code passes sparse and checkpatch with very few pragmatic exceptions. Known gaps to be addressed in following patches: 1. BLE support Test log: https://0x0.st/XPUd.log Change log: v1: * Added dt-bindings * Removed debugfs to ease review * Fix build issue with CONFIG_CFG80211_CERTIFICATION_ONUS * Fix multiple build warnings found with Clang 18 and W=12 RFC: https://lore.kernel.org/linux-wireless/20240512183247.2190242-1-michael.nemanov@xxxxxx/ [1] It was considered implementing CC33xx as another user of wlcore but The differences in HW, host interface, IRQ functionality, Rx/Tx behavior and supported features were too significant so this was abandoned. Michael Nemanov Texas Instruments Michael Nemanov (17): Add cc33xx.h, cc33xx_i.h Add debug.h Add sdio.c, io.c, io.h Add cmd.c, cmd.h Add acx.c, acx.h Add event.c, event.h Add boot.c, boot.h Add main.c Add rx.c, rx.h Add tx.c, tx.h Add init.c, init.h Add scan.c, scan.h Add conf.h Add ps.c, ps.h Add testmode.c, testmode.h Add Kconfig, Makefile and integrate into wireless/ti folder Add ti,cc33xx.yaml .../bindings/net/wireless/ti,cc33xx.yaml | 60 + drivers/net/wireless/ti/Kconfig | 1 + drivers/net/wireless/ti/Makefile | 1 + drivers/net/wireless/ti/cc33xx/Kconfig | 24 + drivers/net/wireless/ti/cc33xx/Makefile | 10 + drivers/net/wireless/ti/cc33xx/acx.c | 1009 +++ drivers/net/wireless/ti/cc33xx/acx.h | 835 +++ drivers/net/wireless/ti/cc33xx/boot.c | 363 + drivers/net/wireless/ti/cc33xx/boot.h | 24 + drivers/net/wireless/ti/cc33xx/cc33xx.h | 481 ++ drivers/net/wireless/ti/cc33xx/cc33xx_i.h | 459 ++ drivers/net/wireless/ti/cc33xx/cmd.c | 2033 ++++++ drivers/net/wireless/ti/cc33xx/cmd.h | 700 ++ drivers/net/wireless/ti/cc33xx/conf.h | 1246 ++++ drivers/net/wireless/ti/cc33xx/debug.h | 92 + drivers/net/wireless/ti/cc33xx/event.c | 389 ++ drivers/net/wireless/ti/cc33xx/event.h | 71 + drivers/net/wireless/ti/cc33xx/init.c | 236 + drivers/net/wireless/ti/cc33xx/init.h | 15 + drivers/net/wireless/ti/cc33xx/io.c | 131 + drivers/net/wireless/ti/cc33xx/io.h | 26 + drivers/net/wireless/ti/cc33xx/main.c | 5949 +++++++++++++++++ drivers/net/wireless/ti/cc33xx/ps.c | 117 + drivers/net/wireless/ti/cc33xx/ps.h | 16 + drivers/net/wireless/ti/cc33xx/rx.c | 393 ++ drivers/net/wireless/ti/cc33xx/rx.h | 86 + drivers/net/wireless/ti/cc33xx/scan.c | 756 +++ drivers/net/wireless/ti/cc33xx/scan.h | 364 + drivers/net/wireless/ti/cc33xx/sdio.c | 581 ++ drivers/net/wireless/ti/cc33xx/testmode.c | 357 + drivers/net/wireless/ti/cc33xx/testmode.h | 12 + drivers/net/wireless/ti/cc33xx/tx.c | 1416 ++++ drivers/net/wireless/ti/cc33xx/tx.h | 160 + 33 files changed, 18413 insertions(+) create mode 100644 Documentation/devicetree/bindings/net/wireless/ti,cc33xx.yaml create mode 100644 drivers/net/wireless/ti/cc33xx/Kconfig create mode 100644 drivers/net/wireless/ti/cc33xx/Makefile create mode 100644 drivers/net/wireless/ti/cc33xx/acx.c create mode 100644 drivers/net/wireless/ti/cc33xx/acx.h create mode 100644 drivers/net/wireless/ti/cc33xx/boot.c create mode 100644 drivers/net/wireless/ti/cc33xx/boot.h create mode 100644 drivers/net/wireless/ti/cc33xx/cc33xx.h create mode 100644 drivers/net/wireless/ti/cc33xx/cc33xx_i.h create mode 100644 drivers/net/wireless/ti/cc33xx/cmd.c create mode 100644 drivers/net/wireless/ti/cc33xx/cmd.h create mode 100644 drivers/net/wireless/ti/cc33xx/conf.h create mode 100644 drivers/net/wireless/ti/cc33xx/debug.h create mode 100644 drivers/net/wireless/ti/cc33xx/event.c create mode 100644 drivers/net/wireless/ti/cc33xx/event.h create mode 100644 drivers/net/wireless/ti/cc33xx/init.c create mode 100644 drivers/net/wireless/ti/cc33xx/init.h create mode 100644 drivers/net/wireless/ti/cc33xx/io.c create mode 100644 drivers/net/wireless/ti/cc33xx/io.h create mode 100644 drivers/net/wireless/ti/cc33xx/main.c create mode 100644 drivers/net/wireless/ti/cc33xx/ps.c create mode 100644 drivers/net/wireless/ti/cc33xx/ps.h create mode 100644 drivers/net/wireless/ti/cc33xx/rx.c create mode 100644 drivers/net/wireless/ti/cc33xx/rx.h create mode 100644 drivers/net/wireless/ti/cc33xx/scan.c create mode 100644 drivers/net/wireless/ti/cc33xx/scan.h create mode 100644 drivers/net/wireless/ti/cc33xx/sdio.c create mode 100644 drivers/net/wireless/ti/cc33xx/testmode.c create mode 100644 drivers/net/wireless/ti/cc33xx/testmode.h create mode 100644 drivers/net/wireless/ti/cc33xx/tx.c create mode 100644 drivers/net/wireless/ti/cc33xx/tx.h base-commit: 2785ea9673a7305abeea87111849a4e04b0f4626 -- 2.25.1