Linux wireless drivers development
 help / color / mirror / Atom feed
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


  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