From: Gokul Sivakumar <gokulkumar.sivakumar@infineon.com>
To: <linux-wireless@vger.kernel.org>, <johannes@sipsolutions.net>
Cc: <arend.vanspriel@broadcom.com>,
<wlan-kernel-dev-list@infineon.com>,
<gokulkumar.sivakumar@infineon.com>
Subject: [PATCH wireless-next v3 06/25] wifi: inffmac: add chip_{cyw5591x/acw74xx}.c/h
Date: Wed, 2 Sep 2026 16:50:37 +0000 [thread overview]
Message-ID: <20260902165057.456447-7-gokulkumar.sivakumar@infineon.com> (raw)
In-Reply-To: <20260902165057.456447-1-gokulkumar.sivakumar@infineon.com>
Chip family specific initialization and definitions for Infineon's new
generation secure chipsets CYW5591x and ACW74xx.
Signed-off-by: Gokul Sivakumar <gokulkumar.sivakumar@infineon.com>
---
.../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 +++++++++++++++++++
4 files changed, 124 insertions(+)
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
diff --git a/drivers/net/wireless/infineon/inffmac/chip_acw74xx.c b/drivers/net/wireless/infineon/inffmac/chip_acw74xx.c
new file mode 100644
index 000000000000..fcd64481616d
--- /dev/null
+++ b/drivers/net/wireless/infineon/inffmac/chip_acw74xx.c
@@ -0,0 +1,35 @@
+// SPDX-License-Identifier: ISC
+/*
+ * Copyright (c) 2024-2026, Infineon Technologies AG, or an affiliate of Infineon Technologies AG.
+ * All rights reserved.
+ */
+
+#include "chip_acw74xx.h"
+
+#define ACW74XX_CR4_RAM_BASE 0x5e3b8000
+#define ACW74XX_CR4_RAM_SIZE 0x88000 /* 544 KBytes - TCM-A+TCM-B */
+#define ACW74XX_CM33_RAM_BASE 0x34002000
+#define ACW74XX_CM33_RAM_SIZE 0x25000 /* 148 KBytes */
+
+void inff_chip_acw74xx_init(struct inff_chip *chip)
+{
+ struct inff_chip_specific *chip_spec = &chip->chip_spec;
+ struct inff_fw_dataset *fw_data = &chip_spec->fwdata[0];
+
+ chip_spec->hw_chip_rambase = ACW74XX_CR4_RAM_BASE;
+ chip_spec->hw_chip_ramsize = ACW74XX_CR4_RAM_SIZE;
+ chip_spec->hw_chip_cpuss_rambase = ACW74XX_CM33_RAM_BASE;
+ chip_spec->hw_chip_cpuss_ramsize = ACW74XX_CM33_RAM_SIZE;
+
+ fw_data[INFF_FW_CODE].fwnames.extension = ".trxse";
+ fw_data[INFF_FW_CODE].fwnames.path = chip_spec->fw_name;
+ fw_data[INFF_FW_CODE].type = INFF_FW_TYPE_TRXSE;
+
+ fw_data[INFF_FW_NVRAM].fwnames.extension = ".txt";
+ fw_data[INFF_FW_NVRAM].fwnames.path = chip_spec->nvram_name;
+ fw_data[INFF_FW_NVRAM].type = INFF_FW_TYPE_NVRAM;
+
+ fw_data[INFF_FW_CLM].fwnames.extension = ".clm_blob";
+ fw_data[INFF_FW_CLM].fwnames.path = chip_spec->clm_name;
+ fw_data[INFF_FW_CLM].type = INFF_FW_TYPE_CLM;
+}
diff --git a/drivers/net/wireless/infineon/inffmac/chip_acw74xx.h b/drivers/net/wireless/infineon/inffmac/chip_acw74xx.h
new file mode 100644
index 000000000000..e3cdcaa968c6
--- /dev/null
+++ b/drivers/net/wireless/infineon/inffmac/chip_acw74xx.h
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: ISC */
+/*
+ * Copyright (c) 2024-2026, Infineon Technologies AG, or an affiliate of Infineon Technologies AG.
+ * All rights reserved.
+ */
+
+#ifndef INFF_CHIP_ACW74XX_H
+#define INFF_CHIP_ACW74XX_H
+
+#include "chip.h"
+
+/* INFACW74XX watermark expressed in number of words */
+#define INFACW74XX_F2_WATERMARK 0x40
+#define INFACW74XX_MES_WATERMARK 0x40
+#define INFACW74XX_F1_MESBUSYCTRL (INFACW74XX_MES_WATERMARK | \
+ SBSDIO_MESBUSYCTRL_ENAB)
+
+void inff_chip_acw74xx_init(struct inff_chip *chip);
+#endif /* INFF_CHIP_ACW74XX_H */
diff --git a/drivers/net/wireless/infineon/inffmac/chip_cyw5591x.c b/drivers/net/wireless/infineon/inffmac/chip_cyw5591x.c
new file mode 100644
index 000000000000..754996cbab4a
--- /dev/null
+++ b/drivers/net/wireless/infineon/inffmac/chip_cyw5591x.c
@@ -0,0 +1,33 @@
+// SPDX-License-Identifier: ISC
+/*
+ * Copyright (c) 2024-2026, Infineon Technologies AG, or an affiliate of Infineon Technologies AG.
+ * All rights reserved.
+ */
+
+#include "chip_cyw5591x.h"
+
+void inff_chip_cyw5591x_init(struct inff_chip *chip)
+{
+ struct inff_chip_specific *chip_spec = &chip->chip_spec;
+ struct inff_fw_dataset *fw_data = &chip_spec->fwdata[0];
+
+ chip_spec->hw_caps_replaycnts = INFF_CHIP_COMMON_HW_CAPS_REPLAYCNTS;
+
+ if (chip->chiprev == 0) {
+ chip_spec->hw_chip_tcam_size = INF55900_TCAM_SIZE;
+ chip_spec->hw_chip_trxhdr_size = INF55900_TRXHDR_SIZE;
+ chip_spec->hw_chip_rambase = INF55900_RAM_BASE;
+ } else {
+ chip_spec->hw_chip_tcam_size = INF55900_A1_TCAM_SIZE;
+ chip_spec->hw_chip_trxhdr_size = INF55900_A1_TRXHDR_SIZE;
+ chip_spec->hw_chip_rambase = INF55900_A1_RAM_BASE;
+ }
+
+ fw_data[INFF_FW_CP].fwnames.extension = ".hex";
+ fw_data[INFF_FW_CP].fwnames.path = chip_spec->fw_name;
+ fw_data[INFF_FW_CP].type = INFF_FW_TYPE_HEX;
+
+ fw_data[INFF_FW_BOOT].fwnames.extension = ".hex";
+ fw_data[INFF_FW_BOOT].fwnames.path = chip_spec->boot_fw_name;
+ fw_data[INFF_FW_BOOT].type = INFF_FW_TYPE_HEX;
+}
diff --git a/drivers/net/wireless/infineon/inffmac/chip_cyw5591x.h b/drivers/net/wireless/infineon/inffmac/chip_cyw5591x.h
new file mode 100644
index 000000000000..3c0810f3e601
--- /dev/null
+++ b/drivers/net/wireless/infineon/inffmac/chip_cyw5591x.h
@@ -0,0 +1,37 @@
+/* SPDX-License-Identifier: ISC */
+/*
+ * Copyright (c) 2024-2026, Infineon Technologies AG, or an affiliate of Infineon Technologies AG.
+ * All rights reserved.
+ */
+
+#include "chip.h"
+
+/* 55900-A0, Dedicated sapce for TCAM_PATCH and TRX HDR area at RAMSTART */
+#define INF55900_RAM_START (0x3a0000)
+#define INF55900_TCAM_SIZE (0x800)
+#define INF55900_TRXHDR_SIZE (0x2b4)
+
+#define INF55900_RAM_BASE (INF55900_RAM_START + INF55900_TCAM_SIZE + \
+ INF55900_TRXHDR_SIZE)
+
+/* 55900-A1, Dedicated sapce for TCAM_PATCH and TRX HDR area at RAMSTART */
+#define INF55900_A1_TCAM_SIZE (0x1000)
+#define INF55900_A1_TRXHDR_SIZE (0x20)
+
+#define INF55900_A1_RAM_BASE (INF55900_RAM_START + INF55900_A1_TCAM_SIZE + \
+ INF55900_A1_TRXHDR_SIZE)
+
+/* INF55900 SDIO func2 block size */
+#define SDIO_INF55900_FUNC2_BLOCKSIZE 256
+
+/* INF55900 watermark expressed in number of words */
+#define INF55900_F2_WATERMARK 0x40
+#define INF55900_MES_WATERMARK 0x40
+#define INF55900_F1_MESBUSYCTRL (INF55900_MES_WATERMARK | \
+ SBSDIO_MESBUSYCTRL_ENAB)
+
+#define CYW5591X_BOOTFW_RAM_LD_ADDR 0x80420000
+#define CYW5591X_FWDWNLD_RAM_WR_ADDR 0x80470000
+#define CYW5591X_IMAGE_LAUNCH_ADDR 0xffffffff
+
+void inff_chip_cyw5591x_init(struct inff_chip *chip);
--
2.43.0
next prev parent reply other threads:[~2026-09-02 16:52 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
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 ` Gokul Sivakumar [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260902165057.456447-7-gokulkumar.sivakumar@infineon.com \
--to=gokulkumar.sivakumar@infineon.com \
--cc=arend.vanspriel@broadcom.com \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=wlan-kernel-dev-list@infineon.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox