brcmfmac: Add 43143 SDIO support.
authorHante Meuleman <meuleman@broadcom.com>
Thu, 11 Apr 2013 11:28:54 +0000 (13:28 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 12 Apr 2013 18:27:55 +0000 (14:27 -0400)
Added sdio device id to list of supported devices. 43143 is a new
802.11n single stream device.

Reviewed-by: Arend Van Spriel <arend@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Piotr Haber <phaber@broadcom.com>
Signed-off-by: Hante Meuleman <meuleman@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c
drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c
drivers/net/wireless/brcm80211/include/brcm_hw_ids.h

index c273ae6b1dec388f62387a6c9958dd03daf0b0d7..b1ea1036e82576f437cf0b119350c4ba80f27264 100644 (file)
@@ -40,6 +40,7 @@
 
 #define DMA_ALIGN_MASK 0x03
 
+#define SDIO_DEVICE_ID_BROADCOM_43143  43143
 #define SDIO_DEVICE_ID_BROADCOM_43241  0x4324
 #define SDIO_DEVICE_ID_BROADCOM_4329   0x4329
 #define SDIO_DEVICE_ID_BROADCOM_4330   0x4330
@@ -51,6 +52,7 @@
 
 /* devices we support, null terminated */
 static const struct sdio_device_id brcmf_sdmmc_ids[] = {
+       {SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_43143)},
        {SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_43241)},
        {SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_4329)},
        {SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_4330)},
index 07eb24fb6d56d2ff8f657ef20d9e0aa29986612e..fd697ce3683c58ee32bceee56c18e30582c5acfd 100644 (file)
@@ -3550,6 +3550,8 @@ static bool brcmf_sdbrcm_bus_watchdog(struct brcmf_sdio *bus)
 
 static bool brcmf_sdbrcm_chipmatch(u16 chipid)
 {
+       if (chipid == BCM43143_CHIP_ID)
+               return true;
        if (chipid == BCM43241_CHIP_ID)
                return true;
        if (chipid == BCM4329_CHIP_ID)
index 3975b5aa1d395a235f29f7c2732e825a97c514f5..0ac048deb835b626d4e79f9c177be06cdccce2c8 100644 (file)
 #define BCM4329_CORE_ARM_BASE          0x18002000
 #define BCM4329_RAMSIZE                        0x48000
 
+/* bcm43143 */
+/* SDIO device core */
+#define BCM43143_CORE_BUS_BASE         0x18002000
+/* internal memory core */
+#define BCM43143_CORE_SOCRAM_BASE      0x18004000
+/* ARM Cortex M3 core, ID 0x82a */
+#define BCM43143_CORE_ARM_BASE         0x18003000
+#define BCM43143_RAMSIZE               0x70000
+
 #define        SBCOREREV(sbidh) \
        ((((sbidh) & SSB_IDHIGH_RCHI) >> SSB_IDHIGH_RCHI_SHIFT) | \
          ((sbidh) & SSB_IDHIGH_RCLO))
@@ -433,6 +442,23 @@ static int brcmf_sdio_chip_recognition(struct brcmf_sdio_dev *sdiodev,
 
        /* Address of cores for new chips should be added here */
        switch (ci->chip) {
+       case BCM43143_CHIP_ID:
+               ci->c_inf[0].wrapbase = ci->c_inf[0].base + 0x00100000;
+               ci->c_inf[0].cib = 0x2b000000;
+               ci->c_inf[1].id = BCMA_CORE_SDIO_DEV;
+               ci->c_inf[1].base = BCM43143_CORE_BUS_BASE;
+               ci->c_inf[1].wrapbase = ci->c_inf[1].base + 0x00100000;
+               ci->c_inf[1].cib = 0x18000000;
+               ci->c_inf[2].id = BCMA_CORE_INTERNAL_MEM;
+               ci->c_inf[2].base = BCM43143_CORE_SOCRAM_BASE;
+               ci->c_inf[2].wrapbase = ci->c_inf[2].base + 0x00100000;
+               ci->c_inf[2].cib = 0x14000000;
+               ci->c_inf[3].id = BCMA_CORE_ARM_CM3;
+               ci->c_inf[3].base = BCM43143_CORE_ARM_BASE;
+               ci->c_inf[3].wrapbase = ci->c_inf[3].base + 0x00100000;
+               ci->c_inf[3].cib = 0x07000000;
+               ci->ramsize = BCM43143_RAMSIZE;
+               break;
        case BCM43241_CHIP_ID:
                ci->c_inf[0].wrapbase = 0x18100000;
                ci->c_inf[0].cib = 0x2a084411;
index 12c49560be2e9bfa6c7e4e6d27b08cf4096a9107..c1fe245bb07ee18aba557892b274435a3ad40fcb 100644 (file)
@@ -29,6 +29,7 @@
 
 /* Chipcommon Core Chip IDs */
 #define BCM4313_CHIP_ID                0x4313
+#define BCM43143_CHIP_ID       43143
 #define BCM43224_CHIP_ID       43224
 #define BCM43225_CHIP_ID       43225
 #define BCM43235_CHIP_ID       43235