The Chip family specific initialization for Infineon's CYW5591x chipsets. Signed-off-by: Gokul Sivakumar --- .../wireless/infineon/inffmac/chip_5591x.c | 24 ++++++++++++++ .../wireless/infineon/inffmac/chip_5591x.h | 33 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 drivers/net/wireless/infineon/inffmac/chip_5591x.c create mode 100644 drivers/net/wireless/infineon/inffmac/chip_5591x.h diff --git a/drivers/net/wireless/infineon/inffmac/chip_5591x.c b/drivers/net/wireless/infineon/inffmac/chip_5591x.c new file mode 100644 index 000000000000..8901ede943cf --- /dev/null +++ b/drivers/net/wireless/infineon/inffmac/chip_5591x.c @@ -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_5591x.h" + +void inff_chip_5591x_init(struct inff_chip *chip) +{ + struct inff_chip_specific *chip_spec = &chip->chip_spec; + + 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; + } +} diff --git a/drivers/net/wireless/infineon/inffmac/chip_5591x.h b/drivers/net/wireless/infineon/inffmac/chip_5591x.h new file mode 100644 index 000000000000..c1ca76788004 --- /dev/null +++ b/drivers/net/wireless/infineon/inffmac/chip_5591x.h @@ -0,0 +1,33 @@ +/* SPDX-License-Identifier: ISC */ +/* + * Copyright (c) 2024-2025, 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) + +void inff_chip_5591x_init(struct inff_chip *chip); -- 2.25.1