Commit dce45ded authored by Alexander Prutskov's avatar Alexander Prutskov Committed by Kalle Valo
Browse files

brcmfmac: Support 89459 pcie



Adds support of 89459 chip pcie device and save restore support.

Signed-off-by: default avatarAlexander Prutskov <alep@cypress.com>
Signed-off-by: default avatarJoseph chuang <jiac@cypress.com>
Signed-off-by: default avatarChi-Hsien Lin <chi-hsien.lin@cypress.com>
Signed-off-by: default avatarIan Lin <ian.lin@infineon.com>
Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220922104140.11889-3-ian.lin@infineon.com
parent 459e552b
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -735,6 +735,8 @@ static u32 brcmf_chip_tcm_rambase(struct brcmf_chip_priv *ci)
		return 0x170000;
	case BRCM_CC_4378_CHIP_ID:
		return 0x352000;
	case CY_CC_89459_CHIP_ID:
		return ((ci->pub.chiprev < 9) ? 0x180000 : 0x160000);
	default:
		brcmf_err("unknown chip: %s\n", ci->pub.name);
		break;
@@ -1425,6 +1427,7 @@ bool brcmf_chip_sr_capable(struct brcmf_chip *pub)
		reg = chip->ops->read32(chip->ctx, addr);
		return reg != 0;
	case CY_CC_4373_CHIP_ID:
	case CY_CC_89459_CHIP_ID:
		/* explicitly check SR engine enable bit */
		addr = CORE_CC_REG(base, sr_control0);
		reg = chip->ops->read32(chip->ctx, addr);
+4 −0
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ BRCMF_FW_DEF(4366B, "brcmfmac4366b-pcie");
BRCMF_FW_DEF(4366C, "brcmfmac4366c-pcie");
BRCMF_FW_DEF(4371, "brcmfmac4371-pcie");
BRCMF_FW_CLM_DEF(4378B1, "brcmfmac4378b1-pcie");
BRCMF_FW_DEF(4355, "brcmfmac89459-pcie");

/* firmware config files */
MODULE_FIRMWARE(BRCMF_FW_DEFAULT_PATH "brcmfmac*-pcie.txt");
@@ -90,6 +91,7 @@ static const struct brcmf_firmware_mapping brcmf_pcie_fwnames[] = {
	BRCMF_FW_ENTRY(BRCM_CC_43666_CHIP_ID, 0xFFFFFFF0, 4366C),
	BRCMF_FW_ENTRY(BRCM_CC_4371_CHIP_ID, 0xFFFFFFFF, 4371),
	BRCMF_FW_ENTRY(BRCM_CC_4378_CHIP_ID, 0xFFFFFFFF, 4378B1), /* revision ID 3 */
	BRCMF_FW_ENTRY(CY_CC_89459_CHIP_ID, 0xFFFFFFFF, 4355),
};

#define BRCMF_PCIE_FW_UP_TIMEOUT		5000 /* msec */
@@ -2465,6 +2467,8 @@ static const struct pci_device_id brcmf_pcie_devid_table[] = {
	BRCMF_PCIE_DEVICE(BRCM_PCIE_4366_5G_DEVICE_ID),
	BRCMF_PCIE_DEVICE(BRCM_PCIE_4371_DEVICE_ID),
	BRCMF_PCIE_DEVICE(BRCM_PCIE_4378_DEVICE_ID),
	BRCMF_PCIE_DEVICE(CY_PCIE_89459_DEVICE_ID),
	BRCMF_PCIE_DEVICE(CY_PCIE_89459_RAW_DEVICE_ID),
	{ /* end: all zeroes */ }
};

+3 −1
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@
#define CY_CC_43012_CHIP_ID		43012
#define CY_CC_43439_CHIP_ID		43439
#define CY_CC_43752_CHIP_ID		43752
#define CY_CC_89459_CHIP_ID		0x4355

/* USB Device IDs */
#define BRCM_USB_43143_DEVICE_ID	0xbd1e
@@ -90,7 +91,8 @@
#define BRCM_PCIE_4366_5G_DEVICE_ID	0x43c5
#define BRCM_PCIE_4371_DEVICE_ID	0x440d
#define BRCM_PCIE_4378_DEVICE_ID	0x4425

#define CY_PCIE_89459_DEVICE_ID         0x4415
#define CY_PCIE_89459_RAW_DEVICE_ID     0x4355

/* brcmsmac IDs */
#define BCM4313_D11N2G_ID	0x4727	/* 4313 802.11n 2.4G device */