diff options
Diffstat (limited to 'target')
| -rw-r--r-- | target/linux/ar71xx/files/arch/mips/ar71xx/devices.c | 39 | 
1 files changed, 38 insertions, 1 deletions
| diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/devices.c b/target/linux/ar71xx/files/arch/mips/ar71xx/devices.c index 0759142ec..86b615ea8 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/devices.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/devices.c @@ -194,8 +194,16 @@ void __init ar71xx_add_device_mdio(unsigned int id, u32 phy_mask)  {  	struct platform_device *mdio_dev;  	struct ag71xx_mdio_platform_data *mdio_data; +	unsigned int max_id; -	if (id > 0) { +	if (ar71xx_soc == AR71XX_SOC_AR9341 || +	    ar71xx_soc == AR71XX_SOC_AR9342 || +	    ar71xx_soc == AR71XX_SOC_AR9344) +		max_id = 1; +	else +		max_id = 0; + +	if (id > max_id) {  		printk(KERN_ERR "ar71xx: invalid MDIO id %u\n", id);  		return;  	} @@ -208,6 +216,18 @@ void __init ar71xx_add_device_mdio(unsigned int id, u32 phy_mask)  		mdio_data = &ar71xx_mdio1_data;  		break; +	case AR71XX_SOC_AR9341: +	case AR71XX_SOC_AR9342: +	case AR71XX_SOC_AR9344: +		if (id == 0) { +			mdio_dev = &ar71xx_mdio0_device; +			mdio_data = &ar71xx_mdio0_data; +		} else { +			mdio_dev = &ar71xx_mdio1_device; +			mdio_data = &ar71xx_mdio1_data; +		} +		break; +  	case AR71XX_SOC_AR7242:  		ar71xx_set_pll(AR71XX_PLL_REG_SEC_CONFIG,  			       AR7242_PLL_REG_ETH0_INT_CLOCK, 0x62000000, @@ -228,6 +248,14 @@ void __init ar71xx_add_device_mdio(unsigned int id, u32 phy_mask)  	case AR71XX_SOC_AR9331:  		mdio_data->is_ar7240 = 1;  		break; + +	case AR71XX_SOC_AR9341: +	case AR71XX_SOC_AR9342: +	case AR71XX_SOC_AR9344: +		if (id == 1) +			mdio_data->is_ar7240 = 1; +		break; +  	default:  		break;  	} @@ -755,6 +783,15 @@ void __init ar71xx_add_device_eth(unsigned int id)  	if (pdata->mii_bus_dev == NULL) {  		switch (ar71xx_soc) { +		case AR71XX_SOC_AR9341: +		case AR71XX_SOC_AR9342: +		case AR71XX_SOC_AR9344: +			if (id == 0) +				pdata->mii_bus_dev = &ar71xx_mdio0_device.dev; +			else +				pdata->mii_bus_dev = &ar71xx_mdio1_device.dev; +			break; +  		case AR71XX_SOC_AR7241:  		case AR71XX_SOC_AR9330:  		case AR71XX_SOC_AR9331: | 
