Lines Matching refs:bgmac

13 #include "bgmac.h"
35 static u16 bcma_mdio_phy_read(struct bgmac *bgmac, u8 phyaddr, u8 reg)
54 if (bgmac->bcma.core->id.id == BCMA_CORE_4706_MAC_GBIT) {
55 core = bgmac->bcma.core->bus->drv_gmac_cmn.core;
59 core = bgmac->bcma.core;
85 static int bcma_mdio_phy_write(struct bgmac *bgmac, u8 phyaddr, u8 reg,
93 if (bgmac->bcma.core->id.id == BCMA_CORE_4706_MAC_GBIT) {
94 core = bgmac->bcma.core->bus->drv_gmac_cmn.core;
98 core = bgmac->bcma.core;
108 bcma_write32(bgmac->bcma.core, BGMAC_INT_STATUS, BGMAC_IS_MDIO);
109 if (bcma_read32(bgmac->bcma.core, BGMAC_INT_STATUS) & BGMAC_IS_MDIO)
130 static void bcma_mdio_phy_init(struct bgmac *bgmac)
132 struct bcma_chipinfo *ci = &bgmac->bcma.core->bus->chipinfo;
141 bcma_mdio_phy_write(bgmac, i, 0x1f, 0x008b);
142 bcma_mdio_phy_write(bgmac, i, 0x15, 0x0100);
143 bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000f);
144 bcma_mdio_phy_write(bgmac, i, 0x12, 0x2aaa);
145 bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000b);
152 struct bcma_drv_cc *cc = &bgmac->bcma.core->bus->drv_cc;
157 bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000f);
158 bcma_mdio_phy_write(bgmac, i, 0x16, 0x5284);
159 bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000b);
160 bcma_mdio_phy_write(bgmac, i, 0x17, 0x0010);
161 bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000f);
162 bcma_mdio_phy_write(bgmac, i, 0x16, 0x5296);
163 bcma_mdio_phy_write(bgmac, i, 0x17, 0x1073);
164 bcma_mdio_phy_write(bgmac, i, 0x17, 0x9073);
165 bcma_mdio_phy_write(bgmac, i, 0x16, 0x52b6);
166 bcma_mdio_phy_write(bgmac, i, 0x17, 0x9273);
167 bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000b);
173 if (bgmac->net_dev && bgmac->net_dev->phydev)
174 phy_init_hw(bgmac->net_dev->phydev);
180 struct bgmac *bgmac = bus->priv;
181 u8 phyaddr = bgmac->phyaddr;
186 bcma_mdio_phy_write(bgmac, phyaddr, MII_BMCR, BMCR_RESET);
188 if (bcma_mdio_phy_read(bgmac, phyaddr, MII_BMCR) & BMCR_RESET)
189 dev_err(bgmac->dev, "PHY reset failed\n");
190 bcma_mdio_phy_init(bgmac);
210 struct mii_bus *bcma_mdio_mii_register(struct bgmac *bgmac)
212 struct bcma_device *core = bgmac->bcma.core;
225 mii_bus->priv = bgmac;
230 mii_bus->phy_mask = ~(1 << bgmac->phyaddr);