Skip to content

Commit d2587c5

Browse files
nytowlKalle Valo
authored andcommitted
brcmfmac: add 43752 SDIO ids and initialization
Add HW and SDIO ids for use with the SparkLan AP6275S Add the firmware mapping structures for the BRCM43752 chipset. The 43752 needs some things setup similar to the 43012 chipset. The WATERMARK shows better performance when initialized to the 4373 value. Signed-off-by: Angus Ainslie <angus@akkea.ca> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Link: https://lore.kernel.org/r/20210812165218.2508258-2-angus@akkea.ca
1 parent 41b637b commit d2587c5

File tree

5 files changed

+12
-2
lines changed

5 files changed

+12
-2
lines changed

drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -991,6 +991,7 @@ static const struct sdio_device_id brcmf_sdmmc_ids[] = {
991991
BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4359),
992992
BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_4373),
993993
BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_43012),
994+
BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_43752),
994995
BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_89359),
995996
{ /* end: all zeroes */ }
996997
};

drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -729,6 +729,8 @@ static u32 brcmf_chip_tcm_rambase(struct brcmf_chip_priv *ci)
729729
case BRCM_CC_4364_CHIP_ID:
730730
case CY_CC_4373_CHIP_ID:
731731
return 0x160000;
732+
case CY_CC_43752_CHIP_ID:
733+
return 0x170000;
732734
default:
733735
brcmf_err("unknown chip: %s\n", ci->pub.name);
734736
break;
@@ -1421,6 +1423,7 @@ bool brcmf_chip_sr_capable(struct brcmf_chip *pub)
14211423
reg = chip->ops->read32(chip->ctx, addr);
14221424
return (reg & CC_SR_CTL0_ENABLE_MASK) != 0;
14231425
case BRCM_CC_4359_CHIP_ID:
1426+
case CY_CC_43752_CHIP_ID:
14241427
case CY_CC_43012_CHIP_ID:
14251428
addr = CORE_CC_REG(pmu->base, retention_ctl);
14261429
reg = chip->ops->read32(chip->ctx, addr);

drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -625,6 +625,7 @@ BRCMF_FW_CLM_DEF(4356, "brcmfmac4356-sdio");
625625
BRCMF_FW_DEF(4359, "brcmfmac4359-sdio");
626626
BRCMF_FW_CLM_DEF(4373, "brcmfmac4373-sdio");
627627
BRCMF_FW_CLM_DEF(43012, "brcmfmac43012-sdio");
628+
BRCMF_FW_CLM_DEF(43752, "brcmfmac43752-sdio");
628629

629630
/* firmware config files */
630631
MODULE_FIRMWARE(BRCMF_FW_DEFAULT_PATH "brcmfmac*-sdio.*.txt");
@@ -655,7 +656,8 @@ static const struct brcmf_firmware_mapping brcmf_sdio_fwnames[] = {
655656
BRCMF_FW_ENTRY(BRCM_CC_4356_CHIP_ID, 0xFFFFFFFF, 4356),
656657
BRCMF_FW_ENTRY(BRCM_CC_4359_CHIP_ID, 0xFFFFFFFF, 4359),
657658
BRCMF_FW_ENTRY(CY_CC_4373_CHIP_ID, 0xFFFFFFFF, 4373),
658-
BRCMF_FW_ENTRY(CY_CC_43012_CHIP_ID, 0xFFFFFFFF, 43012)
659+
BRCMF_FW_ENTRY(CY_CC_43012_CHIP_ID, 0xFFFFFFFF, 43012),
660+
BRCMF_FW_ENTRY(CY_CC_43752_CHIP_ID, 0xFFFFFFFF, 43752)
659661
};
660662

661663
#define TXCTL_CREDITS 2
@@ -3421,7 +3423,8 @@ static int brcmf_sdio_download_firmware(struct brcmf_sdio *bus,
34213423

34223424
static bool brcmf_sdio_aos_no_decode(struct brcmf_sdio *bus)
34233425
{
3424-
if (bus->ci->chip == CY_CC_43012_CHIP_ID)
3426+
if (bus->ci->chip == CY_CC_43012_CHIP_ID ||
3427+
bus->ci->chip == CY_CC_43752_CHIP_ID)
34253428
return true;
34263429
else
34273430
return false;
@@ -4266,6 +4269,7 @@ static void brcmf_sdio_firmware_callback(struct device *dev, int err,
42664269

42674270
switch (sdiod->func1->device) {
42684271
case SDIO_DEVICE_ID_BROADCOM_CYPRESS_4373:
4272+
case SDIO_DEVICE_ID_BROADCOM_CYPRESS_43752:
42694273
brcmf_dbg(INFO, "set F2 watermark to 0x%x*4 bytes\n",
42704274
CY_4373_F2_WATERMARK);
42714275
brcmf_sdiod_writeb(sdiod, SBSDIO_WATERMARK,

drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
#define BRCM_CC_4371_CHIP_ID 0x4371
5353
#define CY_CC_4373_CHIP_ID 0x4373
5454
#define CY_CC_43012_CHIP_ID 43012
55+
#define CY_CC_43752_CHIP_ID 43752
5556

5657
/* USB Device IDs */
5758
#define BRCM_USB_43143_DEVICE_ID 0xbd1e

include/linux/mmc/sdio_ids.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@
7575
#define SDIO_DEVICE_ID_BROADCOM_43364 0xa9a4
7676
#define SDIO_DEVICE_ID_BROADCOM_43430 0xa9a6
7777
#define SDIO_DEVICE_ID_BROADCOM_43455 0xa9bf
78+
#define SDIO_DEVICE_ID_BROADCOM_CYPRESS_43752 0xaae8
7879

7980
#define SDIO_VENDOR_ID_MARVELL 0x02df
8081
#define SDIO_DEVICE_ID_MARVELL_LIBERTAS 0x9103

0 commit comments

Comments
 (0)