]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: brcmfmac: add Cypress 43439 SDIO ids
authorMarek Vasut <marex@denx.de>
Fri, 7 Apr 2023 20:37:52 +0000 (22:37 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 30 Apr 2023 23:29:23 +0000 (08:29 +0900)
commit cc4cffc3c142d57df48c07851862444e1d33bdaa upstream.

Add SDIO ids for use with the muRata 1YN (Cypress CYW43439).
The odd thing about this is that the previous 1YN populated
on M.2 card for evaluation purposes had BRCM SDIO vendor ID,
while the chip populated on real hardware has a Cypress one.
The device ID also differs between the two devices. But they
are both 43439 otherwise, so add the IDs for both.

On-device 1YN (43439), the new one, chip label reads "1YN":
```
/sys/.../mmc_host/mmc2/mmc2:0001 # cat vendor device
0x04b4
0xbd3d
```

EA M.2 evaluation board 1YN (43439), the old one, chip label reads "1YN ES1.4":
```
/sys/.../mmc_host/mmc0/mmc0:0001/# cat vendor device
0x02d0
0xa9a6
```

Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20230407203752.128539-1-marex@denx.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
include/linux/mmc/sdio_ids.h

index 65d4799a5658404cfad861367d7ba69559db7635..ff710b0b5071a19b60e8f5d3a7fe1e22cd7b75a9 100644 (file)
@@ -965,6 +965,12 @@ out:
                .driver_data = BRCMF_FWVENDOR_ ## fw_vend \
        }
 
+#define CYW_SDIO_DEVICE(dev_id, fw_vend) \
+       { \
+               SDIO_DEVICE(SDIO_VENDOR_ID_CYPRESS, dev_id), \
+               .driver_data = BRCMF_FWVENDOR_ ## fw_vend \
+       }
+
 /* devices we support, null terminated */
 static const struct sdio_device_id brcmf_sdmmc_ids[] = {
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43143, WCC),
@@ -979,6 +985,7 @@ static const struct sdio_device_id brcmf_sdmmc_ids[] = {
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4335_4339, WCC),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4339, WCC),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43430, WCC),
+       BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43439, WCC),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4345, WCC),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43455, WCC),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4354, WCC),
@@ -986,9 +993,9 @@ static const struct sdio_device_id brcmf_sdmmc_ids[] = {
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4359, WCC),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_4373, CYW),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_43012, CYW),
-       BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_43439, CYW),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_43752, CYW),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_89359, CYW),
+       CYW_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_43439, CYW),
        { /* end: all zeroes */ }
 };
 MODULE_DEVICE_TABLE(sdio, brcmf_sdmmc_ids);
index 74f9d9a6d33076dc6c000b32b123355c745896ab..f0cf9c5d6502a86ccb1eb9c8c2719263e43089cf 100644 (file)
 #define SDIO_DEVICE_ID_BROADCOM_43362          0xa962
 #define SDIO_DEVICE_ID_BROADCOM_43364          0xa9a4
 #define SDIO_DEVICE_ID_BROADCOM_43430          0xa9a6
-#define SDIO_DEVICE_ID_BROADCOM_CYPRESS_43439  0xa9af
+#define SDIO_DEVICE_ID_BROADCOM_43439          0xa9af
 #define SDIO_DEVICE_ID_BROADCOM_43455          0xa9bf
 #define SDIO_DEVICE_ID_BROADCOM_CYPRESS_43752  0xaae8
 
+#define SDIO_VENDOR_ID_CYPRESS                 0x04b4
+#define SDIO_DEVICE_ID_BROADCOM_CYPRESS_43439  0xbd3d
+
 #define SDIO_VENDOR_ID_MARVELL                 0x02df
 #define SDIO_DEVICE_ID_MARVELL_LIBERTAS                0x9103
 #define SDIO_DEVICE_ID_MARVELL_8688_WLAN       0x9104