Lines Matching refs:mdio_dev
145 static int mdio_sc_cfg_reg_write(struct hns_mdio_device *mdio_dev, in mdio_sc_cfg_reg_write() argument
153 regmap_write(mdio_dev->subctrl_vbase, cfg_reg, set_val); in mdio_sc_cfg_reg_write()
156 ret = regmap_read(mdio_dev->subctrl_vbase, st_reg, ®_value); in mdio_sc_cfg_reg_write()
173 struct hns_mdio_device *mdio_dev = bus->priv; in hns_mdio_wait_ready() local
180 cmd_reg_value = MDIO_GET_REG_BIT(mdio_dev, in hns_mdio_wait_ready()
192 static void hns_mdio_cmd_write(struct hns_mdio_device *mdio_dev, in hns_mdio_cmd_write() argument
205 MDIO_WRITE_REG(mdio_dev, MDIO_COMMAND_REG, cmd_reg_value); in hns_mdio_cmd_write()
220 struct hns_mdio_device *mdio_dev = bus->priv; in hns_mdio_write_c22() local
227 bus->id, mdio_dev->vbase); in hns_mdio_write_c22()
241 MDIO_SET_REG_FIELD(mdio_dev, MDIO_WDATA_REG, MDIO_WDATA_DATA_M, in hns_mdio_write_c22()
244 hns_mdio_cmd_write(mdio_dev, false, op, phy_id, cmd_reg_cfg); in hns_mdio_write_c22()
262 struct hns_mdio_device *mdio_dev = bus->priv; in hns_mdio_write_c45() local
269 bus->id, mdio_dev->vbase); in hns_mdio_write_c45()
281 MDIO_SET_REG_FIELD(mdio_dev, MDIO_ADDR_REG, MDIO_ADDR_DATA_M, in hns_mdio_write_c45()
284 hns_mdio_cmd_write(mdio_dev, true, MDIO_C45_WRITE_ADDR, phy_id, devad); in hns_mdio_write_c45()
297 MDIO_SET_REG_FIELD(mdio_dev, MDIO_WDATA_REG, MDIO_WDATA_DATA_M, in hns_mdio_write_c45()
300 hns_mdio_cmd_write(mdio_dev, true, op, phy_id, cmd_reg_cfg); in hns_mdio_write_c45()
315 struct hns_mdio_device *mdio_dev = bus->priv; in hns_mdio_read_c22() local
321 bus->id, mdio_dev->vbase); in hns_mdio_read_c22()
331 hns_mdio_cmd_write(mdio_dev, false, MDIO_C22_READ, phy_id, reg); in hns_mdio_read_c22()
341 reg_val = MDIO_GET_REG_BIT(mdio_dev, MDIO_STA_REG, MDIO_STATE_STA_B); in hns_mdio_read_c22()
348 reg_val = (u16)MDIO_GET_REG_FIELD(mdio_dev, MDIO_RDATA_REG, in hns_mdio_read_c22()
366 struct hns_mdio_device *mdio_dev = bus->priv; in hns_mdio_read_c45() local
372 bus->id, mdio_dev->vbase); in hns_mdio_read_c45()
383 MDIO_SET_REG_FIELD(mdio_dev, MDIO_ADDR_REG, MDIO_ADDR_DATA_M, in hns_mdio_read_c45()
387 hns_mdio_cmd_write(mdio_dev, true, MDIO_C45_WRITE_ADDR, phy_id, devad); in hns_mdio_read_c45()
396 hns_mdio_cmd_write(mdio_dev, true, MDIO_C45_READ, phy_id, devad); in hns_mdio_read_c45()
406 reg_val = MDIO_GET_REG_BIT(mdio_dev, MDIO_STA_REG, MDIO_STATE_STA_B); in hns_mdio_read_c45()
413 reg_val = (u16)MDIO_GET_REG_FIELD(mdio_dev, MDIO_RDATA_REG, in hns_mdio_read_c45()
427 struct hns_mdio_device *mdio_dev = bus->priv; in hns_mdio_reset() local
432 if (!mdio_dev->subctrl_vbase) { in hns_mdio_reset()
437 sc_reg = &mdio_dev->sc_reg; in hns_mdio_reset()
439 ret = mdio_sc_cfg_reg_write(mdio_dev, sc_reg->mdio_reset_req, in hns_mdio_reset()
448 ret = mdio_sc_cfg_reg_write(mdio_dev, sc_reg->mdio_clk_dis, in hns_mdio_reset()
457 ret = mdio_sc_cfg_reg_write(mdio_dev, sc_reg->mdio_reset_dreq, in hns_mdio_reset()
466 ret = mdio_sc_cfg_reg_write(mdio_dev, sc_reg->mdio_clk_en, in hns_mdio_reset()
497 struct hns_mdio_device *mdio_dev; in hns_mdio_probe() local
506 mdio_dev = devm_kzalloc(&pdev->dev, sizeof(*mdio_dev), GFP_KERNEL); in hns_mdio_probe()
507 if (!mdio_dev) in hns_mdio_probe()
522 new_bus->priv = mdio_dev; in hns_mdio_probe()
525 mdio_dev->vbase = devm_platform_ioremap_resource(pdev, 0); in hns_mdio_probe()
526 if (IS_ERR(mdio_dev->vbase)) { in hns_mdio_probe()
527 ret = PTR_ERR(mdio_dev->vbase); in hns_mdio_probe()
543 mdio_dev->subctrl_vbase = in hns_mdio_probe()
545 if (IS_ERR(mdio_dev->subctrl_vbase)) { in hns_mdio_probe()
547 mdio_dev->subctrl_vbase = NULL; in hns_mdio_probe()
550 mdio_dev->sc_reg.mdio_clk_en = in hns_mdio_probe()
552 mdio_dev->sc_reg.mdio_clk_dis = in hns_mdio_probe()
554 mdio_dev->sc_reg.mdio_reset_req = in hns_mdio_probe()
556 mdio_dev->sc_reg.mdio_reset_dreq = in hns_mdio_probe()
558 mdio_dev->sc_reg.mdio_clk_st = in hns_mdio_probe()
560 mdio_dev->sc_reg.mdio_reset_st = in hns_mdio_probe()
564 mdio_dev->sc_reg.mdio_clk_en = in hns_mdio_probe()
566 mdio_dev->sc_reg.mdio_clk_dis = in hns_mdio_probe()
568 mdio_dev->sc_reg.mdio_reset_req = in hns_mdio_probe()
570 mdio_dev->sc_reg.mdio_reset_dreq = in hns_mdio_probe()
572 mdio_dev->sc_reg.mdio_clk_st = in hns_mdio_probe()
574 mdio_dev->sc_reg.mdio_reset_st = in hns_mdio_probe()
581 mdio_dev->subctrl_vbase = NULL; in hns_mdio_probe()