brcmfmac: Add support for bcm43340/1 wireless chipsets
authorArend van Spriel <arend@broadcom.com>
Tue, 23 Dec 2014 18:04:23 +0000 (19:04 +0100)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 6 Jan 2015 19:06:42 +0000 (21:06 +0200)
This patch adds support for the bcm43340 and bcm43341 wireless
chipsets. These two chipsets are identical from wireless parts
perspective. As such they use the same firmware image.

Cc: Samuel Ortiz <sameo@linux.intel.com>
Cc: Rob Herring <rob.herring@linaro.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
[arend@broadcom.com: squash to single commit, remove 43341 chipid]
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c
drivers/net/wireless/brcm80211/brcmfmac/chip.c
drivers/net/wireless/brcm80211/brcmfmac/sdio.c
drivers/net/wireless/brcm80211/include/brcm_hw_ids.h
include/linux/mmc/sdio_ids.h

index 9880dae2a56994b1e75a13acbba740e3af0aec7a..dffd9e44f5b6b25bcb44e0d3a8f1276a076e5213 100644 (file)
@@ -1005,6 +1005,8 @@ static const struct sdio_device_id brcmf_sdmmc_ids[] = {
        BRCMF_SDIO_DEVICE(BRCM_SDIO_4329_DEVICE_ID),
        BRCMF_SDIO_DEVICE(BRCM_SDIO_4330_DEVICE_ID),
        BRCMF_SDIO_DEVICE(BRCM_SDIO_4334_DEVICE_ID),
+       BRCMF_SDIO_DEVICE(BRCM_SDIO_43340_DEVICE_ID),
+       BRCMF_SDIO_DEVICE(BRCM_SDIO_43341_DEVICE_ID),
        BRCMF_SDIO_DEVICE(BRCM_SDIO_43362_DEVICE_ID),
        BRCMF_SDIO_DEVICE(BRCM_SDIO_4335_4339_DEVICE_ID),
        BRCMF_SDIO_DEVICE(BRCM_SDIO_4354_DEVICE_ID),
index 519b79ebaabd93d60fbc60c923b72d8709dde6f2..04d2ca0d87d60b11cd0a2ca0baac23867e700ed6 100644 (file)
@@ -481,6 +481,7 @@ static void brcmf_chip_get_raminfo(struct brcmf_chip_priv *ci)
                ci->pub.ramsize = 0x48000;
                break;
        case BRCM_CC_4334_CHIP_ID:
+       case BRCM_CC_43340_CHIP_ID:
                ci->pub.ramsize = 0x80000;
                break;
        case BRCM_CC_4335_CHIP_ID:
index 0b0d51a61060cbc42f8f755ba9b2e543b08b9426..551da356a5bdf2d58936afdfb7ff93e7be15ed5c 100644 (file)
@@ -608,6 +608,8 @@ static const struct sdiod_drive_str sdiod_drvstr_tab2_3v3[] = {
 #define BCM4330_NVRAM_NAME             "brcm/brcmfmac4330-sdio.txt"
 #define BCM4334_FIRMWARE_NAME          "brcm/brcmfmac4334-sdio.bin"
 #define BCM4334_NVRAM_NAME             "brcm/brcmfmac4334-sdio.txt"
+#define BCM43340_FIRMWARE_NAME         "brcm/brcmfmac43340-sdio.bin"
+#define BCM43340_NVRAM_NAME            "brcm/brcmfmac43340-sdio.txt"
 #define BCM4335_FIRMWARE_NAME          "brcm/brcmfmac4335-sdio.bin"
 #define BCM4335_NVRAM_NAME             "brcm/brcmfmac4335-sdio.txt"
 #define BCM43362_FIRMWARE_NAME         "brcm/brcmfmac43362-sdio.bin"
@@ -629,6 +631,8 @@ MODULE_FIRMWARE(BCM4330_FIRMWARE_NAME);
 MODULE_FIRMWARE(BCM4330_NVRAM_NAME);
 MODULE_FIRMWARE(BCM4334_FIRMWARE_NAME);
 MODULE_FIRMWARE(BCM4334_NVRAM_NAME);
+MODULE_FIRMWARE(BCM43340_FIRMWARE_NAME);
+MODULE_FIRMWARE(BCM43340_NVRAM_NAME);
 MODULE_FIRMWARE(BCM4335_FIRMWARE_NAME);
 MODULE_FIRMWARE(BCM4335_NVRAM_NAME);
 MODULE_FIRMWARE(BCM43362_FIRMWARE_NAME);
@@ -660,6 +664,7 @@ static const struct brcmf_firmware_names brcmf_fwname_data[] = {
        { BRCM_CC_4329_CHIP_ID, 0xFFFFFFFF, BRCMF_FIRMWARE_NVRAM(BCM4329) },
        { BRCM_CC_4330_CHIP_ID, 0xFFFFFFFF, BRCMF_FIRMWARE_NVRAM(BCM4330) },
        { BRCM_CC_4334_CHIP_ID, 0xFFFFFFFF, BRCMF_FIRMWARE_NVRAM(BCM4334) },
+       { BRCM_CC_43340_CHIP_ID, 0xFFFFFFFF, BRCMF_FIRMWARE_NVRAM(BCM43340) },
        { BRCM_CC_4335_CHIP_ID, 0xFFFFFFFF, BRCMF_FIRMWARE_NVRAM(BCM4335) },
        { BRCM_CC_43362_CHIP_ID, 0xFFFFFFFE, BRCMF_FIRMWARE_NVRAM(BCM43362) },
        { BRCM_CC_4339_CHIP_ID, 0xFFFFFFFF, BRCMF_FIRMWARE_NVRAM(BCM4339) },
index 6996fcc144cfdfa874834481b180afd07c7e20ee..00215efbc13b2915176c63670e2dda624abf67d5 100644 (file)
@@ -34,6 +34,7 @@
 #define BRCM_CC_4329_CHIP_ID           0x4329
 #define BRCM_CC_4330_CHIP_ID           0x4330
 #define BRCM_CC_4334_CHIP_ID           0x4334
+#define BRCM_CC_43340_CHIP_ID          43340
 #define BRCM_CC_43362_CHIP_ID          43362
 #define BRCM_CC_4335_CHIP_ID           0x4335
 #define BRCM_CC_4339_CHIP_ID           0x4339
@@ -51,6 +52,8 @@
 #define BRCM_SDIO_4329_DEVICE_ID       BRCM_CC_4329_CHIP_ID
 #define BRCM_SDIO_4330_DEVICE_ID       BRCM_CC_4330_CHIP_ID
 #define BRCM_SDIO_4334_DEVICE_ID       BRCM_CC_4334_CHIP_ID
+#define BRCM_SDIO_43340_DEVICE_ID      BRCM_CC_43340_CHIP_ID
+#define BRCM_SDIO_43341_DEVICE_ID      43341
 #define BRCM_SDIO_43362_DEVICE_ID      BRCM_CC_43362_CHIP_ID
 #define BRCM_SDIO_4335_4339_DEVICE_ID  BRCM_CC_4335_CHIP_ID
 #define BRCM_SDIO_4354_DEVICE_ID       BRCM_CC_4354_CHIP_ID
index 0f01fe065424d0fcddd53acec02697d89d1ba3d7..996807963716770486d9733d34879273c2b4d77b 100644 (file)
  * Vendors and devices.  Sort key: vendor first, device next.
  */
 #define SDIO_VENDOR_ID_BROADCOM                        0x02d0
-#define SDIO_DEVICE_ID_BROADCOM_43143          43143
+#define SDIO_DEVICE_ID_BROADCOM_43143          0xa887
 #define SDIO_DEVICE_ID_BROADCOM_43241          0x4324
 #define SDIO_DEVICE_ID_BROADCOM_4329           0x4329
 #define SDIO_DEVICE_ID_BROADCOM_4330           0x4330
 #define SDIO_DEVICE_ID_BROADCOM_4334           0x4334
+#define SDIO_DEVICE_ID_BROADCOM_43340          0xa94c
+#define SDIO_DEVICE_ID_BROADCOM_43341          0xa94d
 #define SDIO_DEVICE_ID_BROADCOM_4335_4339      0x4335
-#define SDIO_DEVICE_ID_BROADCOM_43362          43362
+#define SDIO_DEVICE_ID_BROADCOM_43362          0xa962
 #define SDIO_DEVICE_ID_BROADCOM_4354           0x4354
 
 #define SDIO_VENDOR_ID_INTEL                   0x0089