12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- --- a/drivers/net/ethernet/ti/cpmac.c
- +++ b/drivers/net/ethernet/ti/cpmac.c
- @@ -1124,6 +1124,8 @@ static int cpmac_probe(struct platform_d
- goto fail;
- }
-
- + ar7_device_reset(pdata->reset_bit);
- +
- dev->irq = platform_get_irq_byname(pdev, "irq");
-
- dev->netdev_ops = &cpmac_netdev_ops;
- @@ -1203,7 +1205,7 @@ int cpmac_init(void)
- cpmac_mii->write = cpmac_mdio_write;
- cpmac_mii->reset = cpmac_mdio_reset;
-
- - cpmac_mii->priv = ioremap(AR7_REGS_MDIO, 256);
- + cpmac_mii->priv = ioremap(ar7_is_titan() ? TITAN_REGS_MDIO : AR7_REGS_MDIO, 256);
-
- if (!cpmac_mii->priv) {
- pr_err("Can't ioremap mdio registers\n");
- @@ -1214,10 +1216,16 @@ int cpmac_init(void)
- /* FIXME: unhardcode gpio&reset bits */
- ar7_gpio_disable(26);
- ar7_gpio_disable(27);
- - ar7_device_reset(AR7_RESET_BIT_CPMAC_LO);
- - ar7_device_reset(AR7_RESET_BIT_CPMAC_HI);
- +
- + if (!ar7_is_titan()) {
- + ar7_device_reset(AR7_RESET_BIT_CPMAC_LO);
- + ar7_device_reset(AR7_RESET_BIT_CPMAC_HI);
- + }
- ar7_device_reset(AR7_RESET_BIT_EPHY);
-
- + if (ar7_is_titan())
- + ar7_device_reset(TITAN_RESET_BIT_EPHY1);
- +
- cpmac_mii->reset(cpmac_mii);
-
- for (i = 0; i < 300; i++) {
- @@ -1234,7 +1242,11 @@ int cpmac_init(void)
- mask = 0;
- }
-
- - cpmac_mii->phy_mask = ~(mask | 0x80000000);
- + if (ar7_is_titan())
- + cpmac_mii->phy_mask = ~(mask | 0x80000000 | 0x40000000);
- + else
- + cpmac_mii->phy_mask = ~(mask | 0x80000000);
- +
- snprintf(cpmac_mii->id, MII_BUS_ID_SIZE, "cpmac-1");
-
- res = mdiobus_register(cpmac_mii);
|