Lines Matching refs:bgmac

14 #include "bgmac.h"
36 static u16 bcma_mdio_phy_read(struct bgmac *bgmac, u8 phyaddr, u8 reg)
55 if (bgmac->bcma.core->id.id == BCMA_CORE_4706_MAC_GBIT) {
56 core = bgmac->bcma.core->bus->drv_gmac_cmn.core;
60 core = bgmac->bcma.core;
86 static int bcma_mdio_phy_write(struct bgmac *bgmac, u8 phyaddr, u8 reg,
94 if (bgmac->bcma.core->id.id == BCMA_CORE_4706_MAC_GBIT) {
95 core = bgmac->bcma.core->bus->drv_gmac_cmn.core;
99 core = bgmac->bcma.core;
109 bcma_write32(bgmac->bcma.core, BGMAC_INT_STATUS, BGMAC_IS_MDIO);
110 if (bcma_read32(bgmac->bcma.core, BGMAC_INT_STATUS) & BGMAC_IS_MDIO)
131 static void bcma_mdio_phy_init(struct bgmac *bgmac)
133 struct bcma_chipinfo *ci = &bgmac->bcma.core->bus->chipinfo;
142 bcma_mdio_phy_write(bgmac, i, 0x1f, 0x008b);
143 bcma_mdio_phy_write(bgmac, i, 0x15, 0x0100);
144 bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000f);
145 bcma_mdio_phy_write(bgmac, i, 0x12, 0x2aaa);
146 bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000b);
153 struct bcma_drv_cc *cc = &bgmac->bcma.core->bus->drv_cc;
158 bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000f);
159 bcma_mdio_phy_write(bgmac, i, 0x16, 0x5284);
160 bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000b);
161 bcma_mdio_phy_write(bgmac, i, 0x17, 0x0010);
162 bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000f);
163 bcma_mdio_phy_write(bgmac, i, 0x16, 0x5296);
164 bcma_mdio_phy_write(bgmac, i, 0x17, 0x1073);
165 bcma_mdio_phy_write(bgmac, i, 0x17, 0x9073);
166 bcma_mdio_phy_write(bgmac, i, 0x16, 0x52b6);
167 bcma_mdio_phy_write(bgmac, i, 0x17, 0x9273);
168 bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000b);
174 if (bgmac->net_dev && bgmac->net_dev->phydev)
175 phy_init_hw(bgmac->net_dev->phydev);
181 struct bgmac *bgmac = bus->priv;
182 u8 phyaddr = bgmac->phyaddr;
187 bcma_mdio_phy_write(bgmac, phyaddr, MII_BMCR, BMCR_RESET);
189 if (bcma_mdio_phy_read(bgmac, phyaddr, MII_BMCR) & BMCR_RESET)
190 dev_err(bgmac->dev, "PHY reset failed\n");
191 bcma_mdio_phy_init(bgmac);
211 struct mii_bus *bcma_mdio_mii_register(struct bgmac *bgmac)
213 struct bcma_device *core = bgmac->bcma.core;
227 mii_bus->priv = bgmac;
232 mii_bus->phy_mask = ~(1 << bgmac->phyaddr);