The Chip family specific initialization for Infineon's CYW5551x chipsets. Signed-off-by: Gokul Sivakumar --- .../wireless/infineon/inffmac/chip_5551x.c | 37 +++++++++++++++++++ .../wireless/infineon/inffmac/chip_5551x.h | 24 ++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 drivers/net/wireless/infineon/inffmac/chip_5551x.c create mode 100644 drivers/net/wireless/infineon/inffmac/chip_5551x.h diff --git a/drivers/net/wireless/infineon/inffmac/chip_5551x.c b/drivers/net/wireless/infineon/inffmac/chip_5551x.c new file mode 100644 index 000000000000..38ae4b823b05 --- /dev/null +++ b/drivers/net/wireless/infineon/inffmac/chip_5551x.c @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: ISC +/* + * Copyright (c) 2024-2025, Infineon Technologies AG, or an affiliate of Infineon Technologies AG. + * All rights reserved. + */ + +#include "chip_5551x.h" + +void inff_chip_5551x_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 = INF55500_TCAM_SIZE; + chip_spec->hw_chip_trxhdr_size = INF55500_TRXHDR_SIZE; + chip_spec->hw_chip_rambase = INF55500_RAM_BASE; + } else { + chip_spec->hw_chip_tcam_size = INF55500_A1_TCAM_SIZE; + chip_spec->hw_chip_trxhdr_size = INF55500_A1_TRXHDR_SIZE; + chip_spec->hw_chip_rambase = INF55500_A1_RAM_BASE; + } + + 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_5551x.h b/drivers/net/wireless/infineon/inffmac/chip_5551x.h new file mode 100644 index 000000000000..abf9d60a0b74 --- /dev/null +++ b/drivers/net/wireless/infineon/inffmac/chip_5551x.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" + +/* 55500-A0, Dedicated sapce for TCAM_PATCH and TRX HDR area at RAMSTART */ +#define INF55500_RAM_START (0x3a0000) +#define INF55500_TCAM_SIZE (0x800) +#define INF55500_TRXHDR_SIZE (0x2b4) + +#define INF55500_RAM_BASE (INF55500_RAM_START + INF55500_TCAM_SIZE + \ + INF55500_TRXHDR_SIZE) + +/* 55500-A1, Dedicated sapce for TCAM_PATCH and TRX HDR area at RAMSTART */ +#define INF55500_A1_TCAM_SIZE (0x1000) +#define INF55500_A1_TRXHDR_SIZE (0x20) + +#define INF55500_A1_RAM_BASE (INF55500_RAM_START + INF55500_A1_TCAM_SIZE + \ + INF55500_A1_TRXHDR_SIZE) + +void inff_chip_5551x_init(struct inff_chip *chip); -- 2.25.1