The Chip family specific initialization for Infineon's CYW5557x chipsets which has varying spatial stream (1x1/2x2) and bandwidth (20/40/80 MHz) capabilities. Signed-off-by: Gokul Sivakumar --- .../wireless/infineon/inffmac/chip_5557x.c | 31 +++++++++++++++++++ .../wireless/infineon/inffmac/chip_5557x.h | 24 ++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 drivers/net/wireless/infineon/inffmac/chip_5557x.c create mode 100644 drivers/net/wireless/infineon/inffmac/chip_5557x.h diff --git a/drivers/net/wireless/infineon/inffmac/chip_5557x.c b/drivers/net/wireless/infineon/inffmac/chip_5557x.c new file mode 100644 index 000000000000..b6c9edf31c40 --- /dev/null +++ b/drivers/net/wireless/infineon/inffmac/chip_5557x.c @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: ISC +/* + * Copyright (c) 2024-2025, Infineon Technologies AG, or an affiliate of Infineon Technologies AG. + * All rights reserved. + */ + +#include "chip_5557x.h" + +void inff_chip_5557x_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; + + chip_spec->hw_chip_rambase = INF55572_RAM_BASE; + chip_spec->hw_chip_tcam_size = INF55572_TCAM_SIZE; + chip_spec->hw_chip_trxhdr_size = INF55572_TRXHDR_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_5557x.h b/drivers/net/wireless/infineon/inffmac/chip_5557x.h new file mode 100644 index 000000000000..644e81bd1c9c --- /dev/null +++ b/drivers/net/wireless/infineon/inffmac/chip_5557x.h @@ -0,0 +1,24 @@ +/* SPDX-License-Identifier: ISC */ +/* + * Copyright (c) 2024-2025, Infineon Technologies AG, or an affiliate of Infineon Technologies AG. + * All rights reserved. + */ + +#include "chip.h" + +/* INF55572 dedicated space and RAM base */ +#define INF55572_TCAM_SIZE 0x800 +#define INF55572_TRXHDR_SIZE 0x2b4 +#define INF55572_RAM_BASE (0x370000 + \ + INF55572_TCAM_SIZE + INF55572_TRXHDR_SIZE) + +/* INF55572 SDIO func2 block size */ +#define SDIO_INF55572_FUNC2_BLOCKSIZE 256 + +/* INF55572 watermark expressed in number of words */ +#define INF55572_F2_WATERMARK 0x40 +#define INF55572_MES_WATERMARK 0x40 +#define INF55572_F1_MESBUSYCTRL (INF55572_MES_WATERMARK | \ + SBSDIO_MESBUSYCTRL_ENAB) + +void inff_chip_5557x_init(struct inff_chip *chip); -- 2.25.1