netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 00/17] wifi: cc33xx: Add driver for new TI CC33xx wireless device family
@ 2024-10-29 17:23 Michael Nemanov
  2024-10-29 17:23 ` [PATCH v4 01/17] dt-bindings: net: wireless: cc33xx: Add ti,cc33xx.yaml Michael Nemanov
                   ` (16 more replies)
  0 siblings, 17 replies; 29+ messages in thread
From: Michael Nemanov @ 2024-10-29 17:23 UTC (permalink / raw)
  To: Kalle Valo, David S . Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	linux-wireless, netdev, devicetree, linux-kernel
  Cc: Sabeeh Khan, Michael Nemanov

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.

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.

Data sheet: https://www.ti.com/lit/gpn/cc3301

All code passes sparse, smatch, coccicheck and checkpatch with very few pragmatic exceptions.

Driver is split on file boundary as required by Linux-wireless wiki:
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches#new_driver


Change log:
v4:
* Fixed DT compatibility for all CC33xx variants. Improved general formatting
* Refactored sdio.c to better align with other SDIO drivers
* Removed multiple debug traces

v3:
* Added missing sign-offs
* Fixed multiple warnings for memcpy overflow
* Fixed commit message and description of device-tree bindings
Link: https://lore.kernel.org/linux-wireless/20240806170018.638585-1-michael.nemanov@ti.com/

v2:
* Fixed build bug on non-ARM architectures
* Removed driver version
* Removed trivial debug traces
* Removed debug parameters for cc33xx module
* Fixed multiple type compatibility warnings
* Minor fixes
Link: https://lore.kernel.org/linux-wireless/20240609182102.2950457-1-michael.nemanov@ti.com/

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
Link: https://lore.kernel.org/linux-wireless/20240521171841.884576-1-michael.nemanov@ti.com/


Test log:
https://0x0.st/X0gn.log

[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):
  dt-bindings: net: wireless: cc33xx: Add ti,cc33xx.yaml
  wifi: cc33xx: Add cc33xx.h, cc33xx_i.h
  wifi: cc33xx: Add debug.h
  wifi: cc33xx: Add sdio.c, io.c, io.h
  wifi: cc33xx: Add cmd.c, cmd.h
  wifi: cc33xx: Add acx.c, acx.h
  wifi: cc33xx: Add event.c, event.h
  wifi: cc33xx: Add boot.c, boot.h
  wifi: cc33xx: Add main.c
  wifi: cc33xx: Add rx.c, rx.h
  wifi: cc33xx: Add tx.c, tx.h
  wifi: cc33xx: Add init.c, init.h
  wifi: cc33xx: Add scan.c, scan.h
  wifi: cc33xx: Add conf.h
  wifi: cc33xx: Add ps.c, ps.h
  wifi: cc33xx: Add testmode.c, testmode.h
  wifi: cc33xx: Add Kconfig, Makefile

 .../bindings/net/wireless/ti,cc33xx.yaml      |   59 +
 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          |  931 +++
 drivers/net/wireless/ti/cc33xx/acx.h          |  835 +++
 drivers/net/wireless/ti/cc33xx/boot.c         |  345 +
 drivers/net/wireless/ti/cc33xx/boot.h         |   24 +
 drivers/net/wireless/ti/cc33xx/cc33xx.h       |  483 ++
 drivers/net/wireless/ti/cc33xx/cc33xx_i.h     |  459 ++
 drivers/net/wireless/ti/cc33xx/cmd.c          | 1920 ++++++
 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        |  363 ++
 drivers/net/wireless/ti/cc33xx/event.h        |   71 +
 drivers/net/wireless/ti/cc33xx/init.c         |  231 +
 drivers/net/wireless/ti/cc33xx/init.h         |   15 +
 drivers/net/wireless/ti/cc33xx/io.c           |  129 +
 drivers/net/wireless/ti/cc33xx/io.h           |   26 +
 drivers/net/wireless/ti/cc33xx/main.c         | 5689 +++++++++++++++++
 drivers/net/wireless/ti/cc33xx/ps.c           |  108 +
 drivers/net/wireless/ti/cc33xx/ps.h           |   16 +
 drivers/net/wireless/ti/cc33xx/rx.c           |  388 ++
 drivers/net/wireless/ti/cc33xx/rx.h           |   86 +
 drivers/net/wireless/ti/cc33xx/scan.c         |  735 +++
 drivers/net/wireless/ti/cc33xx/scan.h         |  385 ++
 drivers/net/wireless/ti/cc33xx/sdio.c         |  530 ++
 drivers/net/wireless/ti/cc33xx/testmode.c     |  349 +
 drivers/net/wireless/ti/cc33xx/testmode.h     |   12 +
 drivers/net/wireless/ti/cc33xx/tx.c           | 1409 ++++
 drivers/net/wireless/ti/cc33xx/tx.h           |  160 +
 33 files changed, 17832 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

-- 
2.34.1


^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2024-11-03 13:34 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-29 17:23 [PATCH v4 00/17] wifi: cc33xx: Add driver for new TI CC33xx wireless device family Michael Nemanov
2024-10-29 17:23 ` [PATCH v4 01/17] dt-bindings: net: wireless: cc33xx: Add ti,cc33xx.yaml Michael Nemanov
2024-10-29 17:28   ` Krzysztof Kozlowski
2024-10-30 10:59     ` Nemanov, Michael
2024-10-30 11:09       ` Krzysztof Kozlowski
2024-10-30 12:14         ` Nemanov, Michael
2024-10-30 14:01           ` Krzysztof Kozlowski
2024-10-29 17:23 ` [PATCH v4 02/17] wifi: cc33xx: Add cc33xx.h, cc33xx_i.h Michael Nemanov
2024-10-29 17:23 ` [PATCH v4 03/17] wifi: cc33xx: Add debug.h Michael Nemanov
2024-10-29 17:23 ` [PATCH v4 04/17] wifi: cc33xx: Add sdio.c, io.c, io.h Michael Nemanov
2024-10-29 17:34   ` Krzysztof Kozlowski
2024-11-03 13:33     ` Nemanov, Michael
2024-10-29 17:23 ` [PATCH v4 05/17] wifi: cc33xx: Add cmd.c, cmd.h Michael Nemanov
2024-10-29 17:23 ` [PATCH v4 06/17] wifi: cc33xx: Add acx.c, acx.h Michael Nemanov
2024-10-29 17:23 ` [PATCH v4 07/17] wifi: cc33xx: Add event.c, event.h Michael Nemanov
2024-11-02 13:12   ` Simon Horman
2024-10-29 17:23 ` [PATCH v4 08/17] wifi: cc33xx: Add boot.c, boot.h Michael Nemanov
2024-10-29 17:23 ` [PATCH v4 09/17] wifi: cc33xx: Add main.c Michael Nemanov
2024-11-02 13:25   ` Simon Horman
2024-11-03 12:55     ` Nemanov, Michael
2024-10-29 17:23 ` [PATCH v4 10/17] wifi: cc33xx: Add rx.c, rx.h Michael Nemanov
2024-10-29 17:23 ` [PATCH v4 11/17] wifi: cc33xx: Add tx.c, tx.h Michael Nemanov
2024-10-29 17:23 ` [PATCH v4 12/17] wifi: cc33xx: Add init.c, init.h Michael Nemanov
2024-10-29 17:23 ` [PATCH v4 13/17] wifi: cc33xx: Add scan.c, scan.h Michael Nemanov
2024-10-29 17:23 ` [PATCH v4 14/17] wifi: cc33xx: Add conf.h Michael Nemanov
2024-10-29 17:23 ` [PATCH v4 15/17] wifi: cc33xx: Add ps.c, ps.h Michael Nemanov
2024-10-29 17:23 ` [PATCH v4 16/17] wifi: cc33xx: Add testmode.c, testmode.h Michael Nemanov
2024-10-29 17:23 ` [PATCH v4 17/17] wifi: cc33xx: Add Kconfig, Makefile Michael Nemanov
2024-10-29 17:55   ` Krzysztof Kozlowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).