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

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
...@@ -735,6 +735,8 @@ static u32 brcmf_chip_tcm_rambase(struct brcmf_chip_priv *ci) ...@@ -735,6 +735,8 @@ static u32 brcmf_chip_tcm_rambase(struct brcmf_chip_priv *ci)
return 0x170000; return 0x170000;
case BRCM_CC_4378_CHIP_ID: case BRCM_CC_4378_CHIP_ID:
return 0x352000; return 0x352000;
case CY_CC_89459_CHIP_ID:
return ((ci->pub.chiprev < 9) ? 0x180000 : 0x160000);
default: default:
brcmf_err("unknown chip: %s\n", ci->pub.name); brcmf_err("unknown chip: %s\n", ci->pub.name);
break; break;
...@@ -1425,6 +1427,7 @@ bool brcmf_chip_sr_capable(struct brcmf_chip *pub) ...@@ -1425,6 +1427,7 @@ bool brcmf_chip_sr_capable(struct brcmf_chip *pub)
reg = chip->ops->read32(chip->ctx, addr); reg = chip->ops->read32(chip->ctx, addr);
return reg != 0; return reg != 0;
case CY_CC_4373_CHIP_ID: case CY_CC_4373_CHIP_ID:
case CY_CC_89459_CHIP_ID:
/* explicitly check SR engine enable bit */ /* explicitly check SR engine enable bit */
addr = CORE_CC_REG(base, sr_control0); addr = CORE_CC_REG(base, sr_control0);
reg = chip->ops->read32(chip->ctx, addr); reg = chip->ops->read32(chip->ctx, addr);
......
...@@ -60,6 +60,7 @@ BRCMF_FW_DEF(4366B, "brcmfmac4366b-pcie"); ...@@ -60,6 +60,7 @@ BRCMF_FW_DEF(4366B, "brcmfmac4366b-pcie");
BRCMF_FW_DEF(4366C, "brcmfmac4366c-pcie"); BRCMF_FW_DEF(4366C, "brcmfmac4366c-pcie");
BRCMF_FW_DEF(4371, "brcmfmac4371-pcie"); BRCMF_FW_DEF(4371, "brcmfmac4371-pcie");
BRCMF_FW_CLM_DEF(4378B1, "brcmfmac4378b1-pcie"); BRCMF_FW_CLM_DEF(4378B1, "brcmfmac4378b1-pcie");
BRCMF_FW_DEF(4355, "brcmfmac89459-pcie");
/* firmware config files */ /* firmware config files */
MODULE_FIRMWARE(BRCMF_FW_DEFAULT_PATH "brcmfmac*-pcie.txt"); MODULE_FIRMWARE(BRCMF_FW_DEFAULT_PATH "brcmfmac*-pcie.txt");
...@@ -90,6 +91,7 @@ static const struct brcmf_firmware_mapping brcmf_pcie_fwnames[] = { ...@@ -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_43666_CHIP_ID, 0xFFFFFFF0, 4366C),
BRCMF_FW_ENTRY(BRCM_CC_4371_CHIP_ID, 0xFFFFFFFF, 4371), 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(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 */ #define BRCMF_PCIE_FW_UP_TIMEOUT 5000 /* msec */
...@@ -2465,6 +2467,8 @@ static const struct pci_device_id brcmf_pcie_devid_table[] = { ...@@ -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_4366_5G_DEVICE_ID),
BRCMF_PCIE_DEVICE(BRCM_PCIE_4371_DEVICE_ID), BRCMF_PCIE_DEVICE(BRCM_PCIE_4371_DEVICE_ID),
BRCMF_PCIE_DEVICE(BRCM_PCIE_4378_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 */ } { /* end: all zeroes */ }
}; };
......
...@@ -56,6 +56,7 @@ ...@@ -56,6 +56,7 @@
#define CY_CC_43012_CHIP_ID 43012 #define CY_CC_43012_CHIP_ID 43012
#define CY_CC_43439_CHIP_ID 43439 #define CY_CC_43439_CHIP_ID 43439
#define CY_CC_43752_CHIP_ID 43752 #define CY_CC_43752_CHIP_ID 43752
#define CY_CC_89459_CHIP_ID 0x4355
/* USB Device IDs */ /* USB Device IDs */
#define BRCM_USB_43143_DEVICE_ID 0xbd1e #define BRCM_USB_43143_DEVICE_ID 0xbd1e
...@@ -90,7 +91,8 @@ ...@@ -90,7 +91,8 @@
#define BRCM_PCIE_4366_5G_DEVICE_ID 0x43c5 #define BRCM_PCIE_4366_5G_DEVICE_ID 0x43c5
#define BRCM_PCIE_4371_DEVICE_ID 0x440d #define BRCM_PCIE_4371_DEVICE_ID 0x440d
#define BRCM_PCIE_4378_DEVICE_ID 0x4425 #define BRCM_PCIE_4378_DEVICE_ID 0x4425
#define CY_PCIE_89459_DEVICE_ID 0x4415
#define CY_PCIE_89459_RAW_DEVICE_ID 0x4355
/* brcmsmac IDs */ /* brcmsmac IDs */
#define BCM4313_D11N2G_ID 0x4727 /* 4313 802.11n 2.4G device */ #define BCM4313_D11N2G_ID 0x4727 /* 4313 802.11n 2.4G device */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment