Lines Matching full:mac

10 #define HBG_MAC_GET_PRIV(mac) ((struct hbg_priv *)(mac)->mdio_bus->priv)  argument
11 #define HBG_MII_BUS_GET_MAC(bus) (&((struct hbg_priv *)(bus)->priv)->mac)
20 static void hbg_mdio_set_command(struct hbg_mac *mac, u32 cmd) in hbg_mdio_set_command() argument
22 hbg_reg_write(HBG_MAC_GET_PRIV(mac), HBG_REG_MDIO_COMMAND_ADDR, cmd); in hbg_mdio_set_command()
25 static void hbg_mdio_get_command(struct hbg_mac *mac, u32 *cmd) in hbg_mdio_get_command() argument
27 *cmd = hbg_reg_read(HBG_MAC_GET_PRIV(mac), HBG_REG_MDIO_COMMAND_ADDR); in hbg_mdio_get_command()
30 static void hbg_mdio_set_wdata_reg(struct hbg_mac *mac, u16 wdata_value) in hbg_mdio_set_wdata_reg() argument
32 hbg_reg_write_field(HBG_MAC_GET_PRIV(mac), HBG_REG_MDIO_WDATA_ADDR, in hbg_mdio_set_wdata_reg()
36 static u32 hbg_mdio_get_rdata_reg(struct hbg_mac *mac) in hbg_mdio_get_rdata_reg() argument
38 return hbg_reg_read_field(HBG_MAC_GET_PRIV(mac), in hbg_mdio_get_rdata_reg()
43 static int hbg_mdio_wait_ready(struct hbg_mac *mac) in hbg_mdio_wait_ready() argument
45 struct hbg_priv *priv = HBG_MAC_GET_PRIV(mac); in hbg_mdio_wait_ready()
57 static int hbg_mdio_cmd_send(struct hbg_mac *mac, u32 prt_addr, u32 dev_addr, in hbg_mdio_cmd_send() argument
62 hbg_mdio_get_command(mac, &cmd); in hbg_mdio_cmd_send()
71 hbg_mdio_set_command(mac, cmd); in hbg_mdio_cmd_send()
74 return hbg_mdio_wait_ready(mac); in hbg_mdio_cmd_send()
79 struct hbg_mac *mac = HBG_MII_BUS_GET_MAC(bus); in hbg_mdio_read22() local
82 ret = hbg_mdio_cmd_send(mac, phy_addr, regnum, HBG_MDIO_C22_MODE, in hbg_mdio_read22()
87 return hbg_mdio_get_rdata_reg(mac); in hbg_mdio_read22()
93 struct hbg_mac *mac = HBG_MII_BUS_GET_MAC(bus); in hbg_mdio_write22() local
95 hbg_mdio_set_wdata_reg(mac, val); in hbg_mdio_write22()
96 return hbg_mdio_cmd_send(mac, phy_addr, regnum, HBG_MDIO_C22_MODE, in hbg_mdio_write22()
103 struct hbg_mac *mac = &priv->mac; in hbg_mdio_init_hw() local
114 hbg_mdio_set_command(mac, cmd); in hbg_mdio_init_hw()
119 struct phy_device *phydev = priv->mac.phydev; in hbg_flowctrl_cfg()
123 if (!priv->mac.pause_autoneg) in hbg_flowctrl_cfg()
136 if (phydev->link != priv->mac.link_status) { in hbg_phy_adjust_link()
152 priv->mac.speed = speed; in hbg_phy_adjust_link()
153 priv->mac.duplex = phydev->duplex; in hbg_phy_adjust_link()
154 priv->mac.autoneg = phydev->autoneg; in hbg_phy_adjust_link()
159 priv->mac.link_status = phydev->link; in hbg_phy_adjust_link()
171 struct phy_device *phydev = priv->mac.phydev; in hbg_phy_connect()
193 phy_start(priv->mac.phydev); in hbg_phy_start()
198 phy_stop(priv->mac.phydev); in hbg_phy_stop()
204 struct hbg_mac *mac = &priv->mac; in hbg_mdio_init() local
209 mac->phy_addr = priv->dev_specs.phy_addr; in hbg_mdio_init()
217 mdio_bus->phy_mask = ~(1 << mac->phy_addr); in hbg_mdio_init()
219 mac->mdio_bus = mdio_bus; in hbg_mdio_init()
229 phydev = mdiobus_get_phy(mdio_bus, mac->phy_addr); in hbg_mdio_init()
234 mac->phydev = phydev; in hbg_mdio_init()