aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/brcm80211
diff options
context:
space:
mode:
authorHante Meuleman <meuleman@broadcom.com>2013-04-11 07:28:54 -0400
committerJohn W. Linville <linville@tuxdriver.com>2013-04-12 14:27:55 -0400
commit369508c5656db290f09b32d213effeea6c1431b8 (patch)
tree0c9559a442de3e3e4e5a321f558c22b231fcf7f9 /drivers/net/wireless/brcm80211
parent6a1c74834c0b1412c6ba34de347ee7a038f2ecd2 (diff)
brcmfmac: Add 43143 SDIO support.
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>
Diffstat (limited to 'drivers/net/wireless/brcm80211')
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c2
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c2
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c26
-rw-r--r--drivers/net/wireless/brcm80211/include/brcm_hw_ids.h1
4 files changed, 31 insertions, 0 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c
index c273ae6b1dec..b1ea1036e825 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c
@@ -40,6 +40,7 @@
40 40
41#define DMA_ALIGN_MASK 0x03 41#define DMA_ALIGN_MASK 0x03
42 42
43#define SDIO_DEVICE_ID_BROADCOM_43143 43143
43#define SDIO_DEVICE_ID_BROADCOM_43241 0x4324 44#define SDIO_DEVICE_ID_BROADCOM_43241 0x4324
44#define SDIO_DEVICE_ID_BROADCOM_4329 0x4329 45#define SDIO_DEVICE_ID_BROADCOM_4329 0x4329
45#define SDIO_DEVICE_ID_BROADCOM_4330 0x4330 46#define SDIO_DEVICE_ID_BROADCOM_4330 0x4330
@@ -51,6 +52,7 @@
51 52
52/* devices we support, null terminated */ 53/* devices we support, null terminated */
53static const struct sdio_device_id brcmf_sdmmc_ids[] = { 54static const struct sdio_device_id brcmf_sdmmc_ids[] = {
55 {SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_43143)},
54 {SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_43241)}, 56 {SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_43241)},
55 {SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_4329)}, 57 {SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_4329)},
56 {SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_4330)}, 58 {SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_4330)},
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
index 07eb24fb6d56..fd697ce3683c 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
@@ -3550,6 +3550,8 @@ static bool brcmf_sdbrcm_bus_watchdog(struct brcmf_sdio *bus)
3550 3550
3551static bool brcmf_sdbrcm_chipmatch(u16 chipid) 3551static bool brcmf_sdbrcm_chipmatch(u16 chipid)
3552{ 3552{
3553 if (chipid == BCM43143_CHIP_ID)
3554 return true;
3553 if (chipid == BCM43241_CHIP_ID) 3555 if (chipid == BCM43241_CHIP_ID)
3554 return true; 3556 return true;
3555 if (chipid == BCM4329_CHIP_ID) 3557 if (chipid == BCM4329_CHIP_ID)
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c b/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c
index 3975b5aa1d39..0ac048deb835 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c
@@ -40,6 +40,15 @@
40#define BCM4329_CORE_ARM_BASE 0x18002000 40#define BCM4329_CORE_ARM_BASE 0x18002000
41#define BCM4329_RAMSIZE 0x48000 41#define BCM4329_RAMSIZE 0x48000
42 42
43/* bcm43143 */
44/* SDIO device core */
45#define BCM43143_CORE_BUS_BASE 0x18002000
46/* internal memory core */
47#define BCM43143_CORE_SOCRAM_BASE 0x18004000
48/* ARM Cortex M3 core, ID 0x82a */
49#define BCM43143_CORE_ARM_BASE 0x18003000
50#define BCM43143_RAMSIZE 0x70000
51
43#define SBCOREREV(sbidh) \ 52#define SBCOREREV(sbidh) \
44 ((((sbidh) & SSB_IDHIGH_RCHI) >> SSB_IDHIGH_RCHI_SHIFT) | \ 53 ((((sbidh) & SSB_IDHIGH_RCHI) >> SSB_IDHIGH_RCHI_SHIFT) | \
45 ((sbidh) & SSB_IDHIGH_RCLO)) 54 ((sbidh) & SSB_IDHIGH_RCLO))
@@ -433,6 +442,23 @@ static int brcmf_sdio_chip_recognition(struct brcmf_sdio_dev *sdiodev,
433 442
434 /* Address of cores for new chips should be added here */ 443 /* Address of cores for new chips should be added here */
435 switch (ci->chip) { 444 switch (ci->chip) {
445 case BCM43143_CHIP_ID:
446 ci->c_inf[0].wrapbase = ci->c_inf[0].base + 0x00100000;
447 ci->c_inf[0].cib = 0x2b000000;
448 ci->c_inf[1].id = BCMA_CORE_SDIO_DEV;
449 ci->c_inf[1].base = BCM43143_CORE_BUS_BASE;
450 ci->c_inf[1].wrapbase = ci->c_inf[1].base + 0x00100000;
451 ci->c_inf[1].cib = 0x18000000;
452 ci->c_inf[2].id = BCMA_CORE_INTERNAL_MEM;
453 ci->c_inf[2].base = BCM43143_CORE_SOCRAM_BASE;
454 ci->c_inf[2].wrapbase = ci->c_inf[2].base + 0x00100000;
455 ci->c_inf[2].cib = 0x14000000;
456 ci->c_inf[3].id = BCMA_CORE_ARM_CM3;
457 ci->c_inf[3].base = BCM43143_CORE_ARM_BASE;
458 ci->c_inf[3].wrapbase = ci->c_inf[3].base + 0x00100000;
459 ci->c_inf[3].cib = 0x07000000;
460 ci->ramsize = BCM43143_RAMSIZE;
461 break;
436 case BCM43241_CHIP_ID: 462 case BCM43241_CHIP_ID:
437 ci->c_inf[0].wrapbase = 0x18100000; 463 ci->c_inf[0].wrapbase = 0x18100000;
438 ci->c_inf[0].cib = 0x2a084411; 464 ci->c_inf[0].cib = 0x2a084411;
diff --git a/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h b/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h
index 12c49560be2e..c1fe245bb07e 100644
--- a/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h
+++ b/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h
@@ -29,6 +29,7 @@
29 29
30/* Chipcommon Core Chip IDs */ 30/* Chipcommon Core Chip IDs */
31#define BCM4313_CHIP_ID 0x4313 31#define BCM4313_CHIP_ID 0x4313
32#define BCM43143_CHIP_ID 43143
32#define BCM43224_CHIP_ID 43224 33#define BCM43224_CHIP_ID 43224
33#define BCM43225_CHIP_ID 43225 34#define BCM43225_CHIP_ID 43225
34#define BCM43235_CHIP_ID 43235 35#define BCM43235_CHIP_ID 43235