diff --git a/target/linux/generic/patches-3.10/025-bcma_backport.patch b/target/linux/generic/patches-3.10/025-bcma_backport.patch
index a6ae0cb2a28534269086c342a56fc7b7bb3df7de..2b3f4ae7e04a8dcf814cb3be1f58b5e1e8c26439 100644
--- a/target/linux/generic/patches-3.10/025-bcma_backport.patch
+++ b/target/linux/generic/patches-3.10/025-bcma_backport.patch
@@ -284,10 +284,11 @@
  	bcma_pmu_resources_init(cc);
  	bcma_pmu_workarounds(cc);
  }
-@@ -480,6 +603,7 @@ void bcma_pmu_spuravoid_pllupdate(struct
+@@ -480,6 +603,8 @@ void bcma_pmu_spuravoid_pllupdate(struct
  		tmp = BCMA_CC_PMU_CTL_PLL_UPD | BCMA_CC_PMU_CTL_NOILPONW;
  		break;
  
++	case BCMA_CHIP_ID_BCM43131:
 +	case BCMA_CHIP_ID_BCM43217:
  	case BCMA_CHIP_ID_BCM43227:
  	case BCMA_CHIP_ID_BCM43228:
@@ -880,7 +881,7 @@
  }
  
  #ifdef CONFIG_PM_SLEEP
-@@ -267,14 +269,17 @@ static SIMPLE_DEV_PM_OPS(bcma_pm_ops, bc
+@@ -267,14 +269,18 @@ static SIMPLE_DEV_PM_OPS(bcma_pm_ops, bc
  
  #endif /* CONFIG_PM_SLEEP */
  
@@ -896,6 +897,7 @@
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4359) },
 +	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4365) },
 +	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x43a9) },
++	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x43aa) },
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4727) },
  	{ 0, },
  };
@@ -1233,7 +1235,7 @@
  
  	SPEX(leddc_on_time, SSB_SPROM8_LEDDC, SSB_SPROM8_LEDDC_ON,
  	     SSB_SPROM8_LEDDC_ON_SHIFT);
-@@ -502,12 +528,13 @@ static bool bcma_sprom_onchip_available(
+@@ -502,12 +528,14 @@ static bool bcma_sprom_onchip_available(
  	case BCMA_CHIP_ID_BCM4331:
  		present = chip_status & BCMA_CC_CHIPST_4331_OTP_PRESENT;
  		break;
@@ -1244,11 +1246,12 @@
  		/* for these chips OTP is always available */
  		present = true;
  		break;
++	case BCMA_CHIP_ID_BCM43131:
 +	case BCMA_CHIP_ID_BCM43217:
  	case BCMA_CHIP_ID_BCM43227:
  	case BCMA_CHIP_ID_BCM43228:
  	case BCMA_CHIP_ID_BCM43428:
-@@ -550,7 +577,9 @@ int bcma_sprom_get(struct bcma_bus *bus)
+@@ -550,7 +578,9 @@ int bcma_sprom_get(struct bcma_bus *bus)
  {
  	u16 offset = BCMA_CC_SPROM;
  	u16 *sprom;
@@ -1259,7 +1262,7 @@
  
  	if (!bus->drv_cc.core)
  		return -EOPNOTSUPP;
-@@ -579,32 +608,37 @@ int bcma_sprom_get(struct bcma_bus *bus)
+@@ -579,32 +609,37 @@ int bcma_sprom_get(struct bcma_bus *bus)
  		}
  	}
  
@@ -1340,17 +1343,18 @@
  #define BCMA_CORE_4706_MAC_GBIT		0x52D
  #define BCMA_CORE_AMEMC			0x52E	/* DDR1/2 memory controller core */
  #define BCMA_CORE_ALTA			0x534	/* I2S core */
-@@ -144,6 +157,9 @@ struct bcma_host_ops {
+@@ -144,6 +157,10 @@ struct bcma_host_ops {
  
  /* Chip IDs of PCIe devices */
  #define BCMA_CHIP_ID_BCM4313	0x4313
 +#define BCMA_CHIP_ID_BCM43142	43142
++#define BCMA_CHIP_ID_BCM43131	43131
 +#define BCMA_CHIP_ID_BCM43217	43217
 +#define BCMA_CHIP_ID_BCM43222	43222
  #define BCMA_CHIP_ID_BCM43224	43224
  #define  BCMA_PKG_ID_BCM43224_FAB_CSM	0x8
  #define  BCMA_PKG_ID_BCM43224_FAB_SMIC	0xa
-@@ -176,6 +192,11 @@ struct bcma_host_ops {
+@@ -176,6 +193,11 @@ struct bcma_host_ops {
  #define  BCMA_PKG_ID_BCM5357	11
  #define BCMA_CHIP_ID_BCM53572	53572
  #define  BCMA_PKG_ID_BCM47188	9
@@ -1362,7 +1366,7 @@
  
  /* Board types (on PCI usually equals to the subsystem dev id) */
  /* BCM4313 */
-@@ -315,6 +336,7 @@ struct bcma_bus {
+@@ -315,6 +337,7 @@ struct bcma_bus {
  
  	struct bcma_drv_cc drv_cc;
  	struct bcma_drv_pci drv_pci[2];
@@ -1370,7 +1374,7 @@
  	struct bcma_drv_mips drv_mips;
  	struct bcma_drv_gmac_cmn drv_gmac_cmn;
  
-@@ -400,7 +422,14 @@ static inline void bcma_maskset16(struct
+@@ -400,7 +423,14 @@ static inline void bcma_maskset16(struct
  	bcma_write16(cc, offset, (bcma_read16(cc, offset) & mask) | set);
  }
  
diff --git a/target/linux/generic/patches-3.13/025-bcma_backport.patch b/target/linux/generic/patches-3.13/025-bcma_backport.patch
index 301a97c55832c72ad4d0d896249dbd7174d0aafb..e5c7e75296afe4c1c62c4b41add0f0ca04bd2646 100644
--- a/target/linux/generic/patches-3.13/025-bcma_backport.patch
+++ b/target/linux/generic/patches-3.13/025-bcma_backport.patch
@@ -31,10 +31,11 @@
  int bcma_bus_scan(struct bcma_bus *bus);
 --- a/drivers/bcma/driver_chipcommon_pmu.c
 +++ b/drivers/bcma/driver_chipcommon_pmu.c
-@@ -603,6 +603,7 @@ void bcma_pmu_spuravoid_pllupdate(struct
+@@ -603,6 +603,8 @@ void bcma_pmu_spuravoid_pllupdate(struct
  		tmp = BCMA_CC_PMU_CTL_PLL_UPD | BCMA_CC_PMU_CTL_NOILPONW;
  		break;
  
++	case BCMA_CHIP_ID_BCM43131:
 +	case BCMA_CHIP_ID_BCM43217:
  	case BCMA_CHIP_ID_BCM43227:
  	case BCMA_CHIP_ID_BCM43228:
@@ -458,11 +459,12 @@
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x0576) },
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4313) },
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 43224) },
-@@ -280,6 +279,7 @@ static DEFINE_PCI_DEVICE_TABLE(bcma_pci_
+@@ -280,6 +279,8 @@ static DEFINE_PCI_DEVICE_TABLE(bcma_pci_
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4358) },
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4359) },
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4365) },
 +	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x43a9) },
++	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x43aa) },
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4727) },
  	{ 0, },
  };
@@ -582,10 +584,11 @@
  
  	SPEX(leddc_on_time, SSB_SPROM8_LEDDC, SSB_SPROM8_LEDDC_ON,
  	     SSB_SPROM8_LEDDC_ON_SHIFT);
-@@ -509,6 +534,7 @@ static bool bcma_sprom_onchip_available(
+@@ -509,6 +534,8 @@ static bool bcma_sprom_onchip_available(
  		/* for these chips OTP is always available */
  		present = true;
  		break;
++	case BCMA_CHIP_ID_BCM43131:
 +	case BCMA_CHIP_ID_BCM43217:
  	case BCMA_CHIP_ID_BCM43227:
  	case BCMA_CHIP_ID_BCM43228:
@@ -600,16 +603,17 @@
  #include <linux/bcma/bcma_driver_mips.h>
  #include <linux/bcma/bcma_driver_gmac_cmn.h>
  #include <linux/ssb/ssb.h> /* SPROM sharing */
-@@ -157,6 +158,8 @@ struct bcma_host_ops {
+@@ -157,6 +158,9 @@ struct bcma_host_ops {
  /* Chip IDs of PCIe devices */
  #define BCMA_CHIP_ID_BCM4313	0x4313
  #define BCMA_CHIP_ID_BCM43142	43142
++#define BCMA_CHIP_ID_BCM43131	43131
 +#define BCMA_CHIP_ID_BCM43217	43217
 +#define BCMA_CHIP_ID_BCM43222	43222
  #define BCMA_CHIP_ID_BCM43224	43224
  #define  BCMA_PKG_ID_BCM43224_FAB_CSM	0x8
  #define  BCMA_PKG_ID_BCM43224_FAB_SMIC	0xa
-@@ -333,6 +336,7 @@ struct bcma_bus {
+@@ -333,6 +337,7 @@ struct bcma_bus {
  
  	struct bcma_drv_cc drv_cc;
  	struct bcma_drv_pci drv_pci[2];
@@ -617,7 +621,7 @@
  	struct bcma_drv_mips drv_mips;
  	struct bcma_drv_gmac_cmn drv_gmac_cmn;
  
-@@ -418,7 +422,14 @@ static inline void bcma_maskset16(struct
+@@ -418,7 +423,14 @@ static inline void bcma_maskset16(struct
  	bcma_write16(cc, offset, (bcma_read16(cc, offset) & mask) | set);
  }
  
diff --git a/target/linux/generic/patches-3.14/025-bcma_backport.patch b/target/linux/generic/patches-3.14/025-bcma_backport.patch
index 0dad07422110e47cb393cd751c9c8a49bed8aa5e..1c4495f7e1177c0cbda78e47c334009200572e55 100644
--- a/target/linux/generic/patches-3.14/025-bcma_backport.patch
+++ b/target/linux/generic/patches-3.14/025-bcma_backport.patch
@@ -10,10 +10,11 @@
  bcma-$(CONFIG_BCMA_DRIVER_GMAC_CMN)	+= driver_gmac_cmn.o
 --- a/drivers/bcma/driver_chipcommon_pmu.c
 +++ b/drivers/bcma/driver_chipcommon_pmu.c
-@@ -603,6 +603,7 @@ void bcma_pmu_spuravoid_pllupdate(struct
+@@ -603,6 +603,8 @@ void bcma_pmu_spuravoid_pllupdate(struct
  		tmp = BCMA_CC_PMU_CTL_PLL_UPD | BCMA_CC_PMU_CTL_NOILPONW;
  		break;
  
++	case BCMA_CHIP_ID_BCM43131:
 +	case BCMA_CHIP_ID_BCM43217:
  	case BCMA_CHIP_ID_BCM43227:
  	case BCMA_CHIP_ID_BCM43228:
@@ -217,11 +218,12 @@
 +}
 --- a/drivers/bcma/host_pci.c
 +++ b/drivers/bcma/host_pci.c
-@@ -279,6 +279,7 @@ static const struct pci_device_id bcma_p
+@@ -279,6 +279,8 @@ static const struct pci_device_id bcma_p
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4358) },
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4359) },
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4365) },
 +	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x43a9) },
++	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x43aa) },
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4727) },
  	{ 0, },
  };
@@ -306,10 +308,11 @@
  
  	SPEX(leddc_on_time, SSB_SPROM8_LEDDC, SSB_SPROM8_LEDDC_ON,
  	     SSB_SPROM8_LEDDC_ON_SHIFT);
-@@ -509,6 +534,7 @@ static bool bcma_sprom_onchip_available(
+@@ -509,6 +534,8 @@ static bool bcma_sprom_onchip_available(
  		/* for these chips OTP is always available */
  		present = true;
  		break;
++	case BCMA_CHIP_ID_BCM43131:
 +	case BCMA_CHIP_ID_BCM43217:
  	case BCMA_CHIP_ID_BCM43227:
  	case BCMA_CHIP_ID_BCM43228:
@@ -324,16 +327,17 @@
  #include <linux/bcma/bcma_driver_mips.h>
  #include <linux/bcma/bcma_driver_gmac_cmn.h>
  #include <linux/ssb/ssb.h> /* SPROM sharing */
-@@ -157,6 +158,8 @@ struct bcma_host_ops {
+@@ -157,6 +158,9 @@ struct bcma_host_ops {
  /* Chip IDs of PCIe devices */
  #define BCMA_CHIP_ID_BCM4313	0x4313
  #define BCMA_CHIP_ID_BCM43142	43142
++#define BCMA_CHIP_ID_BCM43131	43131
 +#define BCMA_CHIP_ID_BCM43217	43217
 +#define BCMA_CHIP_ID_BCM43222	43222
  #define BCMA_CHIP_ID_BCM43224	43224
  #define  BCMA_PKG_ID_BCM43224_FAB_CSM	0x8
  #define  BCMA_PKG_ID_BCM43224_FAB_SMIC	0xa
-@@ -333,6 +336,7 @@ struct bcma_bus {
+@@ -333,6 +337,7 @@ struct bcma_bus {
  
  	struct bcma_drv_cc drv_cc;
  	struct bcma_drv_pci drv_pci[2];
diff --git a/target/linux/generic/patches-3.3/025-bcma_backport.patch b/target/linux/generic/patches-3.3/025-bcma_backport.patch
index 79f0b590213e298e3bbc3ccd55d8802e0c63851b..df80ec435beb9264696bf3e63fef827185de9f84 100644
--- a/target/linux/generic/patches-3.3/025-bcma_backport.patch
+++ b/target/linux/generic/patches-3.3/025-bcma_backport.patch
@@ -4717,7 +4717,7 @@
  #define BCMA_CORE_INVALID		0x700
  #define BCMA_CORE_CHIPCOMMON		0x800
  #define BCMA_CORE_ILINE20		0x801
-@@ -121,10 +146,109 @@ struct bcma_host_ops {
+@@ -121,10 +146,112 @@ struct bcma_host_ops {
  #define BCMA_CORE_I2S			0x834
  #define BCMA_CORE_SDR_DDR1_MEM_CTL	0x835	/* SDR/DDR1 memory controller core */
  #define BCMA_CORE_SHIM			0x837	/* SHIM component in ubus/6362 */
@@ -4732,6 +4732,9 @@
 +/* Chip IDs of PCIe devices */
 +#define BCMA_CHIP_ID_BCM4313	0x4313
 +#define BCMA_CHIP_ID_BCM43142	43142
++#define BCMA_CHIP_ID_BCM43131  43131
++#define BCMA_CHIP_ID_BCM43217  43217
++#define BCMA_CHIP_ID_BCM43222  43222
 +#define BCMA_CHIP_ID_BCM43224	43224
 +#define  BCMA_PKG_ID_BCM43224_FAB_CSM	0x8
 +#define  BCMA_PKG_ID_BCM43224_FAB_SMIC	0xa
@@ -4827,7 +4830,7 @@
  struct bcma_device {
  	struct bcma_bus *bus;
  	struct bcma_device_id id;
-@@ -136,8 +260,10 @@ struct bcma_device {
+@@ -136,8 +263,10 @@ struct bcma_device {
  	bool dev_registered;
  
  	u8 core_index;
@@ -4838,7 +4841,7 @@
  	u32 wrap;
  
  	void __iomem *io_addr;
-@@ -175,6 +301,12 @@ int __bcma_driver_register(struct bcma_d
+@@ -175,6 +304,12 @@ int __bcma_driver_register(struct bcma_d
  
  extern void bcma_driver_unregister(struct bcma_driver *drv);
  
@@ -4851,7 +4854,7 @@
  struct bcma_bus {
  	/* The MMIO area. */
  	void __iomem *mmio;
-@@ -191,14 +323,18 @@ struct bcma_bus {
+@@ -191,14 +326,18 @@ struct bcma_bus {
  
  	struct bcma_chipinfo chipinfo;
  
@@ -4871,7 +4874,7 @@
  
  	/* We decided to share SPROM struct with SSB as long as we do not need
  	 * any hacks for BCMA. This simplifies drivers code. */
-@@ -282,6 +418,7 @@ static inline void bcma_maskset16(struct
+@@ -282,6 +421,7 @@ static inline void bcma_maskset16(struct
  	bcma_write16(cc, offset, (bcma_read16(cc, offset) & mask) | set);
  }
  
@@ -4879,7 +4882,7 @@
  extern bool bcma_core_is_enabled(struct bcma_device *core);
  extern void bcma_core_disable(struct bcma_device *core, u32 flags);
  extern int bcma_core_enable(struct bcma_device *core, u32 flags);
-@@ -289,6 +426,7 @@ extern void bcma_core_set_clockmode(stru
+@@ -289,6 +429,7 @@ extern void bcma_core_set_clockmode(stru
  				    enum bcma_clkmode clkmode);
  extern void bcma_core_pll_ctl(struct bcma_device *core, u32 req, u32 status,
  			      bool on);
diff --git a/target/linux/generic/patches-3.8/025-bcma_backport.patch b/target/linux/generic/patches-3.8/025-bcma_backport.patch
index 6558454c1a5e1833fa7795f5cd63ed3c241a0c13..21cffb1e54f7d131c0873b78882a5d3f7153577f 100644
--- a/target/linux/generic/patches-3.8/025-bcma_backport.patch
+++ b/target/linux/generic/patches-3.8/025-bcma_backport.patch
@@ -1476,7 +1476,7 @@
  #define BCMA_CORE_4706_MAC_GBIT		0x52D
  #define BCMA_CORE_AMEMC			0x52E	/* DDR1/2 memory controller core */
  #define BCMA_CORE_ALTA			0x534	/* I2S core */
-@@ -134,12 +146,17 @@ struct bcma_host_ops {
+@@ -134,12 +146,20 @@ struct bcma_host_ops {
  #define BCMA_CORE_I2S			0x834
  #define BCMA_CORE_SDR_DDR1_MEM_CTL	0x835	/* SDR/DDR1 memory controller core */
  #define BCMA_CORE_SHIM			0x837	/* SHIM component in ubus/6362 */
@@ -1491,10 +1491,13 @@
  /* Chip IDs of PCIe devices */
  #define BCMA_CHIP_ID_BCM4313	0x4313
 +#define BCMA_CHIP_ID_BCM43142	43142
++#define BCMA_CHIP_ID_BCM43131  43131
++#define BCMA_CHIP_ID_BCM43217  43217
++#define BCMA_CHIP_ID_BCM43222  43222
  #define BCMA_CHIP_ID_BCM43224	43224
  #define  BCMA_PKG_ID_BCM43224_FAB_CSM	0x8
  #define  BCMA_PKG_ID_BCM43224_FAB_SMIC	0xa
-@@ -172,6 +189,65 @@ struct bcma_host_ops {
+@@ -172,6 +192,65 @@ struct bcma_host_ops {
  #define  BCMA_PKG_ID_BCM5357	11
  #define BCMA_CHIP_ID_BCM53572	53572
  #define  BCMA_PKG_ID_BCM47188	9
diff --git a/target/linux/generic/patches-3.9/025-bcma_backport.patch b/target/linux/generic/patches-3.9/025-bcma_backport.patch
index 92b1a328e62404dd704d2392f77d21cd7984c72e..9a40d6ec84909246967ce307d3c3d710d4b6ea70 100644
--- a/target/linux/generic/patches-3.9/025-bcma_backport.patch
+++ b/target/linux/generic/patches-3.9/025-bcma_backport.patch
@@ -843,7 +843,7 @@
  #define BCMA_CORE_4706_MAC_GBIT		0x52D
  #define BCMA_CORE_AMEMC			0x52E	/* DDR1/2 memory controller core */
  #define BCMA_CORE_ALTA			0x534	/* I2S core */
-@@ -134,12 +146,17 @@ struct bcma_host_ops {
+@@ -134,12 +146,20 @@ struct bcma_host_ops {
  #define BCMA_CORE_I2S			0x834
  #define BCMA_CORE_SDR_DDR1_MEM_CTL	0x835	/* SDR/DDR1 memory controller core */
  #define BCMA_CORE_SHIM			0x837	/* SHIM component in ubus/6362 */
@@ -858,10 +858,13 @@
  /* Chip IDs of PCIe devices */
  #define BCMA_CHIP_ID_BCM4313	0x4313
 +#define BCMA_CHIP_ID_BCM43142	43142
++#define BCMA_CHIP_ID_BCM43131  43131
++#define BCMA_CHIP_ID_BCM43217  43217
++#define BCMA_CHIP_ID_BCM43222  43222
  #define BCMA_CHIP_ID_BCM43224	43224
  #define  BCMA_PKG_ID_BCM43224_FAB_CSM	0x8
  #define  BCMA_PKG_ID_BCM43224_FAB_SMIC	0xa
-@@ -172,6 +189,65 @@ struct bcma_host_ops {
+@@ -172,6 +192,65 @@ struct bcma_host_ops {
  #define  BCMA_PKG_ID_BCM5357	11
  #define BCMA_CHIP_ID_BCM53572	53572
  #define  BCMA_PKG_ID_BCM47188	9