Linux wireless drivers development
 help / color / mirror / Atom feed
* [PATCH wireless-next v3 00/25] wifi: inffmac: introducing a driver for Infineon's new generation chipsets
@ 2026-09-02 16:50 Gokul Sivakumar
  2026-09-02 16:50 ` [PATCH wireless-next v3 01/25] wifi: inffmac: add a new driver directory for infineon WLAN vendor Gokul Sivakumar
                   ` (24 more replies)
  0 siblings, 25 replies; 26+ messages in thread
From: Gokul Sivakumar @ 2026-09-02 16:50 UTC (permalink / raw)
  To: linux-wireless, johannes
  Cc: arend.vanspriel, wlan-kernel-dev-list, gokulkumar.sivakumar

Infineon(Cypress) is introducing a new INFFMAC (WLAN FULLMAC) Linux
driver specifically for its new-generation AIROC family of Wi-Fi
Connectivity Processor (CP) chipsets (CYW5591x), the new Wi-Fi 7
(802.11be) capable chipset (ACW74xx), and also for all future chipsets.

The CYW5591x family is an AIROC Wi-Fi Connectivity Processor (CP) that
integrates a 1x1 20MHz tri-band (2.4/5/6GHz) Wi-Fi 6/6E (802.11ax) radio,
interfaced to the host over SDIO 3.0 or gSPI. Its device firmware is held
in an external QSPI flash, and as part of the secure firmware-download
sequence, the device goes through a boot firmware download, a RAM-boot
handshake, followed by a CP firmware image download and validation into
the non-volatile (flash) memory.

The ACW74xx (ACW741x) family is an ultra-low-power, single-chip tri-radio
combo that integrates a 1x1 20MHz tri-band (2.4/5/6GHz) Wi-Fi 7 (802.11be)
radio together with BLE and IEEE 802.15.4 subsystems, interfaced to the host
over SDIO 3.0 or gSPI. It is a 20MHz Wi-Fi 7 device made for IoT, which
supports MLSR for MLO and r-TWT for low-power always-connected use cases.

Infineon's full list of Wireless Connectivity product briefs and datasheets
are available in https://www.infineon.com/products/wireless-connectivity

These Infineon chipsets are tailor-made for a wide variety of IoT use cases
and provide support for multiple host BUS interfaces (eventually PCIe, gSPI,
SPI, I2C, USB, and UART support will be added in future contributions).
In addition, these new chipsets support IoT mode of operations that require
an Infineon-proprietary secured Device firmware architecture. By default,
this driver expects the device firmware/image/NVRAM/CLM_BLOB files in the
filesystem path /lib/firmware/infineon/ with the file name prefix "inffmac*",
for example: inffmac7413-sdio.trx.

Based on the review comments received in earlier submissions, the driver
size has been reduced even further in this revision. Compared to V2,
this V3 series only retains the minimal codebase needed to bring up the
device, download the firmware to the device's non-volatile/volatile
memories, perform a basic Wi-Fi scan, and do a runtime device firmware
update, so that the core architecture can be reviewed more easily before
more functionality is added incrementally in future contributions. Many
features and their associated files that were still present in V2 have
also been removed to minimize the driver footprint for code review.

More information on this driver is available in the V1 [1] and V2 [2]
cover letters.

Changes in v3:
- Reduced the driver to only the basic Wi-Fi scan functionality, keeping
  just enough code for device bring-up and firmware download.

- Added support for the new Wi-Fi 7 (802.11be) capable ACW74xx chipset.

- Skipped the CYW5557x, CYW5551x and CYW43022 chipsets, and inffmac support
  to be added later in followup patches.

- Dropped the PCIe/MSGBUF bus path, so this revision supports only the SDIO
  bus; PCIe support will be added later.

- Removed additional features and files that were still present in V2
  to further minimize the codebase for review.

- Reduced the series from 34 to 25 patches.

Changes in v2:
 - Improved support for Infineon's new type of WLAN chipsets having the
   Connectivity Processor (CP) architecture which provides wireless
   connectivity along with a host network offload. The driver communicates
   with various components (like, CP, WLAN FW) inside these devices using
   the ICDC protocol over the SDIO BUS.

 - Fully refactored the interface management functionality and added the
   Dynamic vif creation, deletion support.

 - Separated out the P2P functionality from the Management Frame TX
   functionality.

 - Improved the Device Firmware Update (DFU) support to update the Firmware
   over SDIO in Device FLASH Memory or PSRAM during runtime.

 - Started utilizing wiphy locking, wiphy work and wiphy delayed work
   scheduling infrastructure provided by cfg80211 for the WLAN Drivers.

 - Cleaned up multiple source and header files.

 - Skipped support for WLAN Sensing, XDP, Packet offloads now, to be added
   later in a separate patch with a dedicated review, as suggested in v1.

 - Also skipped the support for BT Coexistence, Shared SDIO for BT, PNO,
   Debug Logger, most of the module params, etc now to shrink the driver
   size in this version to help with the review.

[1] https://lore.kernel.org/linux-wireless/20250916221821.4387-1-gokulkumar.sivakumar@infineon.com/
[2] https://lore.kernel.org/linux-wireless/20260113203350.16734-1-gokulkumar.sivakumar@infineon.com/

Gokul Sivakumar (25):
  wifi: inffmac: add a new driver directory for infineon WLAN vendor
  wifi: inffmac: add firmware.c/h
  wifi: inffmac: add dfu.c/h
  wifi: inffmac: add trxhdr.h
  wifi: inffmac: add chip.c/h
  wifi: inffmac: add chip_{cyw5591x/acw74xx}.c/h
  wifi: inffmac: add icdc.c/h
  wifi: inffmac: add main.c/h
  wifi: inffmac: add dev_cmd.c/h
  wifi: inffmac: add dev_evt.c/h
  wifi: inffmac: add net.c/h
  wifi: inffmac: add cfg80211.c/h
  wifi: inffmac: add interface.c/h
  wifi: inffmac: add he.c/h
  wifi: inffmac: add feature.c/h
  wifi: inffmac: add bus_proto.c/h
  wifi: inffmac: add sdio.c/h
  wifi: inffmac: add fwsignal.c/h
  wifi: inffmac: add bcdc.c/h
  wifi: inffmac: add ie.c/h
  wifi: inffmac: add scan.c/h
  wifi: inffmac: add chan.c/h
  wifi: inffmac: add debug.c/h
  wifi: inffmac: add utils.c/h
  wifi: inffmac: add Kconfig, Makefile

 drivers/net/wireless/Kconfig                  |    1 +
 drivers/net/wireless/Makefile                 |    1 +
 drivers/net/wireless/infineon/Kconfig         |   25 +
 drivers/net/wireless/infineon/Makefile        |   12 +
 drivers/net/wireless/infineon/inffmac/Kconfig |   13 +
 .../net/wireless/infineon/inffmac/Makefile    |   36 +
 drivers/net/wireless/infineon/inffmac/bcdc.c  |  516 ++
 drivers/net/wireless/infineon/inffmac/bcdc.h  |   29 +
 .../net/wireless/infineon/inffmac/bus_proto.c |  162 +
 .../net/wireless/infineon/inffmac/bus_proto.h |  436 +
 .../net/wireless/infineon/inffmac/cfg80211.c  | 1418 +++
 .../net/wireless/infineon/inffmac/cfg80211.h  |  309 +
 drivers/net/wireless/infineon/inffmac/chan.c  |  795 ++
 drivers/net/wireless/infineon/inffmac/chan.h  |  365 +
 drivers/net/wireless/infineon/inffmac/chip.c  | 1483 ++++
 drivers/net/wireless/infineon/inffmac/chip.h  |  644 ++
 .../wireless/infineon/inffmac/chip_acw74xx.c  |   35 +
 .../wireless/infineon/inffmac/chip_acw74xx.h  |   19 +
 .../wireless/infineon/inffmac/chip_cyw5591x.c |   33 +
 .../wireless/infineon/inffmac/chip_cyw5591x.h |   37 +
 drivers/net/wireless/infineon/inffmac/debug.c |   59 +
 drivers/net/wireless/infineon/inffmac/debug.h |  161 +
 .../net/wireless/infineon/inffmac/dev_cmd.c   |  653 ++
 .../net/wireless/infineon/inffmac/dev_cmd.h   |  969 +++
 .../net/wireless/infineon/inffmac/dev_evt.c   |  847 ++
 .../net/wireless/infineon/inffmac/dev_evt.h   |  447 +
 drivers/net/wireless/infineon/inffmac/dfu.c   | 1084 +++
 drivers/net/wireless/infineon/inffmac/dfu.h   |  124 +
 .../net/wireless/infineon/inffmac/feature.c   |  264 +
 .../net/wireless/infineon/inffmac/feature.h   |  121 +
 .../net/wireless/infineon/inffmac/firmware.c  |  968 +++
 .../net/wireless/infineon/inffmac/firmware.h  |  100 +
 .../net/wireless/infineon/inffmac/fwsignal.c  | 3017 +++++++
 .../net/wireless/infineon/inffmac/fwsignal.h  |   53 +
 drivers/net/wireless/infineon/inffmac/he.c    |  112 +
 drivers/net/wireless/infineon/inffmac/he.h    |   27 +
 drivers/net/wireless/infineon/inffmac/icdc.c  |  346 +
 drivers/net/wireless/infineon/inffmac/icdc.h  |   29 +
 drivers/net/wireless/infineon/inffmac/ie.c    |  656 ++
 drivers/net/wireless/infineon/inffmac/ie.h    |  170 +
 .../net/wireless/infineon/inffmac/interface.c |  496 ++
 .../net/wireless/infineon/inffmac/interface.h |  155 +
 drivers/net/wireless/infineon/inffmac/main.c  |  821 ++
 drivers/net/wireless/infineon/inffmac/main.h  |  314 +
 drivers/net/wireless/infineon/inffmac/net.c   |  500 ++
 drivers/net/wireless/infineon/inffmac/net.h   |   43 +
 drivers/net/wireless/infineon/inffmac/scan.c  |  800 ++
 drivers/net/wireless/infineon/inffmac/scan.h  |  136 +
 drivers/net/wireless/infineon/inffmac/sdio.c  | 7585 +++++++++++++++++
 drivers/net/wireless/infineon/inffmac/sdio.h  |  234 +
 .../net/wireless/infineon/inffmac/trxhdr.h    |   54 +
 drivers/net/wireless/infineon/inffmac/utils.c |  291 +
 drivers/net/wireless/infineon/inffmac/utils.h |  233 +
 include/linux/mmc/sdio_ids.h                  |    2 +
 54 files changed, 28240 insertions(+)
 create mode 100644 drivers/net/wireless/infineon/Kconfig
 create mode 100644 drivers/net/wireless/infineon/Makefile
 create mode 100644 drivers/net/wireless/infineon/inffmac/Kconfig
 create mode 100644 drivers/net/wireless/infineon/inffmac/Makefile
 create mode 100644 drivers/net/wireless/infineon/inffmac/bcdc.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/bcdc.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/bus_proto.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/bus_proto.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/cfg80211.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/cfg80211.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/chan.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/chan.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/chip.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/chip.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/chip_acw74xx.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/chip_acw74xx.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/chip_cyw5591x.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/chip_cyw5591x.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/debug.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/debug.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/dev_cmd.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/dev_cmd.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/dev_evt.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/dev_evt.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/dfu.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/dfu.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/feature.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/feature.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/firmware.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/firmware.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/fwsignal.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/fwsignal.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/he.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/he.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/icdc.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/icdc.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/ie.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/ie.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/interface.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/interface.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/main.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/main.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/net.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/net.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/scan.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/scan.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/sdio.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/sdio.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/trxhdr.h
 create mode 100644 drivers/net/wireless/infineon/inffmac/utils.c
 create mode 100644 drivers/net/wireless/infineon/inffmac/utils.h

-- 
2.43.0


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

end of thread, other threads:[~2026-09-02 16:56 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-02 16:50 [PATCH wireless-next v3 00/25] wifi: inffmac: introducing a driver for Infineon's new generation chipsets Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 01/25] wifi: inffmac: add a new driver directory for infineon WLAN vendor Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 02/25] wifi: inffmac: add firmware.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 03/25] wifi: inffmac: add dfu.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 04/25] wifi: inffmac: add trxhdr.h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 05/25] wifi: inffmac: add chip.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 06/25] wifi: inffmac: add chip_{cyw5591x/acw74xx}.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 07/25] wifi: inffmac: add icdc.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 08/25] wifi: inffmac: add main.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 09/25] wifi: inffmac: add dev_cmd.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 10/25] wifi: inffmac: add dev_evt.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 11/25] wifi: inffmac: add net.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 12/25] wifi: inffmac: add cfg80211.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 13/25] wifi: inffmac: add interface.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 14/25] wifi: inffmac: add he.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 15/25] wifi: inffmac: add feature.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 16/25] wifi: inffmac: add bus_proto.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 17/25] wifi: inffmac: add sdio.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 18/25] wifi: inffmac: add fwsignal.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 19/25] wifi: inffmac: add bcdc.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 20/25] wifi: inffmac: add ie.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 21/25] wifi: inffmac: add scan.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 22/25] wifi: inffmac: add chan.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 23/25] wifi: inffmac: add debug.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 24/25] wifi: inffmac: add utils.c/h Gokul Sivakumar
2026-09-02 16:50 ` [PATCH wireless-next v3 25/25] wifi: inffmac: add Kconfig, Makefile Gokul Sivakumar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox