Received: from IRVEXCHSMTP3.corp.ad.broadcom.com (10.9.207.53) by
 SJEXCHCAS05.corp.ad.broadcom.com (10.16.203.12) with Microsoft SMTP Server
 (TLS) id 14.3.174.1; Thu, 11 Sep 2014 06:23:34 -0700
Received: from mail-sj1-12.sj.broadcom.com (10.10.10.20) by
 IRVEXCHSMTP3.corp.ad.broadcom.com (10.9.207.53) with Microsoft SMTP Server id
 14.3.174.1; Thu, 11 Sep 2014 06:23:31 -0700
Received: from lb-bun-235.bun.broadcom.com (lb-bun-235.bun.broadcom.com
 [10.176.8.235])	by mail-sj1-12.sj.broadcom.com (Postfix) with ESMTP id
 AB7A627A81;	Thu, 11 Sep 2014 06:23:30 -0700 (PDT)
Received: from arend by lb-bun-235.bun.broadcom.com with local (Exim 4.82)
	(envelope-from <arend@broadcom.com>)	id 1XS4LR-0004PO-Hw; Thu, 11 Sep 2014
 15:23:29 +0200
From: Arend van Spriel <arend@broadcom.com>
To: <sameo@linux.intel.com>
CC: <aspriel@gmail.com>, Arend van Spriel <arend@broadcom.com>
Subject: [PATCH] brcmfmac: add support for bcm43340 wireless chipset
Date: Thu, 11 Sep 2014 15:23:25 +0200
Message-ID: <1410441805-16912-1-git-send-email-arend@broadcom.com>
X-Mailer: git-send-email 1.9.1
Content-Type: text/plain
Return-Path: arend@broadcom.com
X-MS-Exchange-Organization-AVStamp-Mailbox: SYMANTEC;522846336;0;info
X-MS-Exchange-Organization-SCL: -1
X-MS-Exchange-Organization-AuthSource: Irvexchsmtp3.corp.ad.broadcom.com
X-MS-Exchange-Organization-AuthAs: Anonymous
MIME-Version: 1.0

This patch adds support for the bcm43340 wireless chip. This device
is based on the bcm4334 and as such can use the same firmware.

Signed-off-by: Arend van Spriel <arend@broadcom.com>
---
Hi Samuel,

This could do the trick. From the information I found the statement
above about the firmware should be true. So you can try the
brcmfmac4334-sdio.bin from the linux firmware repository. If Murata
provided firmware and nvram file, could you sent me the nvram file
and make hexdump of the firmware using:

$ hexdump -C firmware.bin | tail -20

Regards,
Arend
---
 drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c     | 1 +
 drivers/net/wireless/brcm80211/brcmfmac/chip.c       | 1 +
 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c   | 3 ++-
 drivers/net/wireless/brcm80211/include/brcm_hw_ids.h | 1 +
 include/linux/mmc/sdio_ids.h                         | 1 +
 5 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c
index 8dbd5db..b8755d5 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c
@@ -1005,6 +1005,7 @@ 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_43362_DEVICE_ID),
 	BRCMF_SDIO_DEVICE(BRCM_SDIO_4335_4339_DEVICE_ID),
 	BRCMF_SDIO_DEVICE(BRCM_SDIO_4354_DEVICE_ID),
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/chip.c b/drivers/net/wireless/brcm80211/brcmfmac/chip.c
index 95efde8..6904ed0 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/chip.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/chip.c
@@ -495,6 +495,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:
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
index f55f625..1ec5bb8 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
@@ -660,6 +660,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(BCM4334) },
 	{ 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) },
@@ -4075,7 +4076,7 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
 
 	/* platform specific configuration:
 	 *   alignments must be at least 4 bytes for ADMA
-         */
+	 */
 	bus->head_align = ALIGNMENT;
 	bus->sgentry_align = ALIGNMENT;
 	if (sdiodev->pdata) {
diff --git a/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h b/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h
index af26e0d..13fdc6c 100644
--- a/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h
+++ b/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h
@@ -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
diff --git a/include/linux/mmc/sdio_ids.h b/include/linux/mmc/sdio_ids.h
index 0f01fe0..8cc8210 100644
--- a/include/linux/mmc/sdio_ids.h
+++ b/include/linux/mmc/sdio_ids.h
@@ -29,6 +29,7 @@
 #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		43340
 #define SDIO_DEVICE_ID_BROADCOM_4335_4339	0x4335
 #define SDIO_DEVICE_ID_BROADCOM_43362		43362
 #define SDIO_DEVICE_ID_BROADCOM_4354		0x4354
-- 
1.9.1

