Lines Matching refs:phydev

157 static int kszphy_extended_write(struct phy_device *phydev,  in kszphy_extended_write()  argument
160 phy_write(phydev, MII_KSZPHY_EXTREG, KSZPHY_EXTREG_WRITE | regnum); in kszphy_extended_write()
161 return phy_write(phydev, MII_KSZPHY_EXTREG_WRITE, val); in kszphy_extended_write()
164 static int kszphy_extended_read(struct phy_device *phydev, in kszphy_extended_read() argument
167 phy_write(phydev, MII_KSZPHY_EXTREG, regnum); in kszphy_extended_read()
168 return phy_read(phydev, MII_KSZPHY_EXTREG_READ); in kszphy_extended_read()
171 static int kszphy_ack_interrupt(struct phy_device *phydev) in kszphy_ack_interrupt() argument
176 rc = phy_read(phydev, MII_KSZPHY_INTCS); in kszphy_ack_interrupt()
181 static int kszphy_config_intr(struct phy_device *phydev) in kszphy_config_intr() argument
183 const struct kszphy_type *type = phydev->drv->driver_data; in kszphy_config_intr()
193 temp = phy_read(phydev, MII_KSZPHY_CTRL); in kszphy_config_intr()
197 phy_write(phydev, MII_KSZPHY_CTRL, temp); in kszphy_config_intr()
200 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) { in kszphy_config_intr()
201 err = kszphy_ack_interrupt(phydev); in kszphy_config_intr()
206 err = phy_write(phydev, MII_KSZPHY_INTCS, temp); in kszphy_config_intr()
209 err = phy_write(phydev, MII_KSZPHY_INTCS, temp); in kszphy_config_intr()
213 err = kszphy_ack_interrupt(phydev); in kszphy_config_intr()
219 static irqreturn_t kszphy_handle_interrupt(struct phy_device *phydev) in kszphy_handle_interrupt() argument
223 irq_status = phy_read(phydev, MII_KSZPHY_INTCS); in kszphy_handle_interrupt()
225 phy_error(phydev); in kszphy_handle_interrupt()
232 phy_trigger_machine(phydev); in kszphy_handle_interrupt()
237 static int kszphy_rmii_clk_sel(struct phy_device *phydev, bool val) in kszphy_rmii_clk_sel() argument
241 ctrl = phy_read(phydev, MII_KSZPHY_CTRL); in kszphy_rmii_clk_sel()
250 return phy_write(phydev, MII_KSZPHY_CTRL, ctrl); in kszphy_rmii_clk_sel()
253 static int kszphy_setup_led(struct phy_device *phydev, u32 reg, int val) in kszphy_setup_led() argument
268 temp = phy_read(phydev, reg); in kszphy_setup_led()
276 rc = phy_write(phydev, reg, temp); in kszphy_setup_led()
279 phydev_err(phydev, "failed to set led mode\n"); in kszphy_setup_led()
287 static int kszphy_broadcast_disable(struct phy_device *phydev) in kszphy_broadcast_disable() argument
291 ret = phy_read(phydev, MII_KSZPHY_OMSO); in kszphy_broadcast_disable()
295 ret = phy_write(phydev, MII_KSZPHY_OMSO, ret | KSZPHY_OMSO_B_CAST_OFF); in kszphy_broadcast_disable()
298 phydev_err(phydev, "failed to disable broadcast address\n"); in kszphy_broadcast_disable()
303 static int kszphy_nand_tree_disable(struct phy_device *phydev) in kszphy_nand_tree_disable() argument
307 ret = phy_read(phydev, MII_KSZPHY_OMSO); in kszphy_nand_tree_disable()
314 ret = phy_write(phydev, MII_KSZPHY_OMSO, in kszphy_nand_tree_disable()
318 phydev_err(phydev, "failed to disable NAND tree mode\n"); in kszphy_nand_tree_disable()
324 static int kszphy_config_reset(struct phy_device *phydev) in kszphy_config_reset() argument
326 struct kszphy_priv *priv = phydev->priv; in kszphy_config_reset()
330 ret = kszphy_rmii_clk_sel(phydev, priv->rmii_ref_clk_sel_val); in kszphy_config_reset()
332 phydev_err(phydev, in kszphy_config_reset()
339 kszphy_setup_led(phydev, priv->type->led_mode_reg, priv->led_mode); in kszphy_config_reset()
344 static int kszphy_config_init(struct phy_device *phydev) in kszphy_config_init() argument
346 struct kszphy_priv *priv = phydev->priv; in kszphy_config_init()
355 kszphy_broadcast_disable(phydev); in kszphy_config_init()
358 kszphy_nand_tree_disable(phydev); in kszphy_config_init()
360 return kszphy_config_reset(phydev); in kszphy_config_init()
363 static int ksz8041_fiber_mode(struct phy_device *phydev) in ksz8041_fiber_mode() argument
365 struct device_node *of_node = phydev->mdio.dev.of_node; in ksz8041_fiber_mode()
370 static int ksz8041_config_init(struct phy_device *phydev) in ksz8041_config_init() argument
375 if (ksz8041_fiber_mode(phydev)) { in ksz8041_config_init()
376 phydev->dev_flags |= MICREL_PHY_FXEN; in ksz8041_config_init()
380 linkmode_and(phydev->supported, phydev->supported, mask); in ksz8041_config_init()
382 phydev->supported); in ksz8041_config_init()
383 linkmode_and(phydev->advertising, phydev->advertising, mask); in ksz8041_config_init()
385 phydev->advertising); in ksz8041_config_init()
386 phydev->autoneg = AUTONEG_DISABLE; in ksz8041_config_init()
389 return kszphy_config_init(phydev); in ksz8041_config_init()
392 static int ksz8041_config_aneg(struct phy_device *phydev) in ksz8041_config_aneg() argument
395 if (phydev->dev_flags & MICREL_PHY_FXEN) { in ksz8041_config_aneg()
396 phydev->speed = SPEED_100; in ksz8041_config_aneg()
400 return genphy_config_aneg(phydev); in ksz8041_config_aneg()
403 static int ksz8051_ksz8795_match_phy_device(struct phy_device *phydev, in ksz8051_ksz8795_match_phy_device() argument
408 if ((phydev->phy_id & MICREL_PHY_ID_MASK) != PHY_ID_KSZ8051) in ksz8051_ksz8795_match_phy_device()
411 ret = phy_read(phydev, MII_BMSR); in ksz8051_ksz8795_match_phy_device()
427 static int ksz8051_match_phy_device(struct phy_device *phydev) in ksz8051_match_phy_device() argument
429 return ksz8051_ksz8795_match_phy_device(phydev, true); in ksz8051_match_phy_device()
432 static int ksz8081_config_init(struct phy_device *phydev) in ksz8081_config_init() argument
439 phy_clear_bits(phydev, MII_KSZPHY_OMSO, KSZPHY_OMSO_FACTORY_TEST); in ksz8081_config_init()
441 return kszphy_config_init(phydev); in ksz8081_config_init()
444 static int ksz8081_config_mdix(struct phy_device *phydev, u8 ctrl) in ksz8081_config_mdix() argument
463 return phy_modify(phydev, MII_KSZPHY_CTRL_2, in ksz8081_config_mdix()
470 static int ksz8081_config_aneg(struct phy_device *phydev) in ksz8081_config_aneg() argument
474 ret = genphy_config_aneg(phydev); in ksz8081_config_aneg()
482 return ksz8081_config_mdix(phydev, phydev->mdix_ctrl); in ksz8081_config_aneg()
485 static int ksz8081_mdix_update(struct phy_device *phydev) in ksz8081_mdix_update() argument
489 ret = phy_read(phydev, MII_KSZPHY_CTRL_2); in ksz8081_mdix_update()
495 phydev->mdix_ctrl = ETH_TP_MDI_X; in ksz8081_mdix_update()
497 phydev->mdix_ctrl = ETH_TP_MDI; in ksz8081_mdix_update()
499 phydev->mdix_ctrl = ETH_TP_MDI_AUTO; in ksz8081_mdix_update()
502 ret = phy_read(phydev, MII_KSZPHY_CTRL_1); in ksz8081_mdix_update()
507 phydev->mdix = ETH_TP_MDI; in ksz8081_mdix_update()
509 phydev->mdix = ETH_TP_MDI_X; in ksz8081_mdix_update()
514 static int ksz8081_read_status(struct phy_device *phydev) in ksz8081_read_status() argument
518 ret = ksz8081_mdix_update(phydev); in ksz8081_read_status()
522 return genphy_read_status(phydev); in ksz8081_read_status()
525 static int ksz8061_config_init(struct phy_device *phydev) in ksz8061_config_init() argument
529 ret = phy_write_mmd(phydev, MDIO_MMD_PMAPMD, MDIO_DEVID1, 0xB61A); in ksz8061_config_init()
533 return kszphy_config_init(phydev); in ksz8061_config_init()
536 static int ksz8795_match_phy_device(struct phy_device *phydev) in ksz8795_match_phy_device() argument
538 return ksz8051_ksz8795_match_phy_device(phydev, false); in ksz8795_match_phy_device()
541 static int ksz9021_load_values_from_of(struct phy_device *phydev, in ksz9021_load_values_from_of() argument
570 newval = kszphy_extended_read(phydev, reg); in ksz9021_load_values_from_of()
586 return kszphy_extended_write(phydev, reg, newval); in ksz9021_load_values_from_of()
589 static int ksz9021_config_init(struct phy_device *phydev) in ksz9021_config_init() argument
598 dev_walker = &phydev->mdio.dev; in ksz9021_config_init()
606 ksz9021_load_values_from_of(phydev, of_node, in ksz9021_config_init()
610 ksz9021_load_values_from_of(phydev, of_node, in ksz9021_config_init()
614 ksz9021_load_values_from_of(phydev, of_node, in ksz9021_config_init()
680 static int ksz9031_of_load_skew_values(struct phy_device *phydev, in ksz9031_of_load_skew_values() argument
703 newval = phy_read_mmd(phydev, 2, reg); in ksz9031_of_load_skew_values()
717 return phy_write_mmd(phydev, 2, reg, newval); in ksz9031_of_load_skew_values()
721 static int ksz9031_center_flp_timing(struct phy_device *phydev) in ksz9031_center_flp_timing() argument
725 result = phy_write_mmd(phydev, 0, MII_KSZ9031RN_FLP_BURST_TX_HI, in ksz9031_center_flp_timing()
730 result = phy_write_mmd(phydev, 0, MII_KSZ9031RN_FLP_BURST_TX_LO, in ksz9031_center_flp_timing()
735 return genphy_restart_aneg(phydev); in ksz9031_center_flp_timing()
739 static int ksz9031_enable_edpd(struct phy_device *phydev) in ksz9031_enable_edpd() argument
743 reg = phy_read_mmd(phydev, 0x1C, MII_KSZ9031RN_EDPD); in ksz9031_enable_edpd()
746 return phy_write_mmd(phydev, 0x1C, MII_KSZ9031RN_EDPD, in ksz9031_enable_edpd()
750 static int ksz9031_config_rgmii_delay(struct phy_device *phydev) in ksz9031_config_rgmii_delay() argument
755 switch (phydev->interface) { in ksz9031_config_rgmii_delay()
784 ret = phy_write_mmd(phydev, 2, MII_KSZ9031RN_CONTROL_PAD_SKEW, in ksz9031_config_rgmii_delay()
790 ret = phy_write_mmd(phydev, 2, MII_KSZ9031RN_RX_DATA_PAD_SKEW, in ksz9031_config_rgmii_delay()
798 ret = phy_write_mmd(phydev, 2, MII_KSZ9031RN_TX_DATA_PAD_SKEW, in ksz9031_config_rgmii_delay()
806 return phy_write_mmd(phydev, 2, MII_KSZ9031RN_CLK_PAD_SKEW, in ksz9031_config_rgmii_delay()
811 static int ksz9031_config_init(struct phy_device *phydev) in ksz9031_config_init() argument
827 result = ksz9031_enable_edpd(phydev); in ksz9031_config_init()
835 dev_walker = &phydev->mdio.dev; in ksz9031_config_init()
844 if (phy_interface_is_rgmii(phydev)) { in ksz9031_config_init()
845 result = ksz9031_config_rgmii_delay(phydev); in ksz9031_config_init()
850 ksz9031_of_load_skew_values(phydev, of_node, in ksz9031_config_init()
854 ksz9031_of_load_skew_values(phydev, of_node, in ksz9031_config_init()
858 ksz9031_of_load_skew_values(phydev, of_node, in ksz9031_config_init()
862 ksz9031_of_load_skew_values(phydev, of_node, in ksz9031_config_init()
866 if (update && !phy_interface_is_rgmii(phydev)) in ksz9031_config_init()
867 phydev_warn(phydev, in ksz9031_config_init()
886 result = phy_read(phydev, MII_CTRL1000); in ksz9031_config_init()
892 result = phy_write(phydev, MII_CTRL1000, result); in ksz9031_config_init()
898 return ksz9031_center_flp_timing(phydev); in ksz9031_config_init()
901 phydev_err(phydev, "failed to force the phy to master mode\n"); in ksz9031_config_init()
910 static int ksz9131_of_load_skew_values(struct phy_device *phydev, in ksz9131_of_load_skew_values() argument
945 newval = phy_read_mmd(phydev, 2, reg); in ksz9131_of_load_skew_values()
959 return phy_write_mmd(phydev, 2, reg, newval); in ksz9131_of_load_skew_values()
969 static int ksz9131_config_rgmii_delay(struct phy_device *phydev) in ksz9131_config_rgmii_delay() argument
974 switch (phydev->interface) { in ksz9131_config_rgmii_delay()
995 ret = phy_modify_mmd(phydev, KSZ9131RN_MMD_COMMON_CTRL_REG, in ksz9131_config_rgmii_delay()
1001 return phy_modify_mmd(phydev, KSZ9131RN_MMD_COMMON_CTRL_REG, in ksz9131_config_rgmii_delay()
1012 static int ksz9131_led_errata(struct phy_device *phydev) in ksz9131_led_errata() argument
1016 reg = phy_read_mmd(phydev, 2, 0); in ksz9131_led_errata()
1023 return phy_set_bits(phydev, 0x1e, BIT(9)); in ksz9131_led_errata()
1026 static int ksz9131_config_init(struct phy_device *phydev) in ksz9131_config_init() argument
1042 dev_walker = &phydev->mdio.dev; in ksz9131_config_init()
1051 if (phy_interface_is_rgmii(phydev)) { in ksz9131_config_init()
1052 ret = ksz9131_config_rgmii_delay(phydev); in ksz9131_config_init()
1057 ret = ksz9131_of_load_skew_values(phydev, of_node, in ksz9131_config_init()
1063 ret = ksz9131_of_load_skew_values(phydev, of_node, in ksz9131_config_init()
1069 ret = ksz9131_of_load_skew_values(phydev, of_node, in ksz9131_config_init()
1075 ret = ksz9131_of_load_skew_values(phydev, of_node, in ksz9131_config_init()
1081 ret = ksz9131_led_errata(phydev); in ksz9131_config_init()
1091 static int ksz8873mll_read_status(struct phy_device *phydev) in ksz8873mll_read_status() argument
1096 regval = phy_read(phydev, KSZ8873MLL_GLOBAL_CONTROL_4); in ksz8873mll_read_status()
1098 regval = phy_read(phydev, KSZ8873MLL_GLOBAL_CONTROL_4); in ksz8873mll_read_status()
1101 phydev->duplex = DUPLEX_HALF; in ksz8873mll_read_status()
1103 phydev->duplex = DUPLEX_FULL; in ksz8873mll_read_status()
1106 phydev->speed = SPEED_10; in ksz8873mll_read_status()
1108 phydev->speed = SPEED_100; in ksz8873mll_read_status()
1110 phydev->link = 1; in ksz8873mll_read_status()
1111 phydev->pause = phydev->asym_pause = 0; in ksz8873mll_read_status()
1116 static int ksz9031_get_features(struct phy_device *phydev) in ksz9031_get_features() argument
1120 ret = genphy_read_abilities(phydev); in ksz9031_get_features()
1133 linkmode_clear_bit(ETHTOOL_LINK_MODE_Asym_Pause_BIT, phydev->supported); in ksz9031_get_features()
1138 linkmode_set_bit(ETHTOOL_LINK_MODE_Pause_BIT, phydev->supported); in ksz9031_get_features()
1143 static int ksz9031_read_status(struct phy_device *phydev) in ksz9031_read_status() argument
1148 err = genphy_read_status(phydev); in ksz9031_read_status()
1155 regval = phy_read(phydev, MII_STAT1000); in ksz9031_read_status()
1157 phy_init_hw(phydev); in ksz9031_read_status()
1158 phydev->link = 0; in ksz9031_read_status()
1159 if (phydev->drv->config_intr && phy_interrupt_is_valid(phydev)) in ksz9031_read_status()
1160 phydev->drv->config_intr(phydev); in ksz9031_read_status()
1161 return genphy_config_aneg(phydev); in ksz9031_read_status()
1167 static int ksz8873mll_config_aneg(struct phy_device *phydev) in ksz8873mll_config_aneg() argument
1172 static int ksz886x_config_mdix(struct phy_device *phydev, u8 ctrl) in ksz886x_config_mdix() argument
1196 return phy_modify(phydev, MII_BMCR, in ksz886x_config_mdix()
1202 static int ksz886x_config_aneg(struct phy_device *phydev) in ksz886x_config_aneg() argument
1206 ret = genphy_config_aneg(phydev); in ksz886x_config_aneg()
1214 return ksz886x_config_mdix(phydev, phydev->mdix_ctrl); in ksz886x_config_aneg()
1217 static int ksz886x_mdix_update(struct phy_device *phydev) in ksz886x_mdix_update() argument
1221 ret = phy_read(phydev, MII_BMCR); in ksz886x_mdix_update()
1227 phydev->mdix_ctrl = ETH_TP_MDI_X; in ksz886x_mdix_update()
1229 phydev->mdix_ctrl = ETH_TP_MDI; in ksz886x_mdix_update()
1231 phydev->mdix_ctrl = ETH_TP_MDI_AUTO; in ksz886x_mdix_update()
1234 ret = phy_read(phydev, MII_KSZPHY_CTRL); in ksz886x_mdix_update()
1240 phydev->mdix = ETH_TP_MDI_X; in ksz886x_mdix_update()
1242 phydev->mdix = ETH_TP_MDI; in ksz886x_mdix_update()
1247 static int ksz886x_read_status(struct phy_device *phydev) in ksz886x_read_status() argument
1251 ret = ksz886x_mdix_update(phydev); in ksz886x_read_status()
1255 return genphy_read_status(phydev); in ksz886x_read_status()
1258 static int kszphy_get_sset_count(struct phy_device *phydev) in kszphy_get_sset_count() argument
1263 static void kszphy_get_strings(struct phy_device *phydev, u8 *data) in kszphy_get_strings() argument
1273 static u64 kszphy_get_stat(struct phy_device *phydev, int i) in kszphy_get_stat() argument
1276 struct kszphy_priv *priv = phydev->priv; in kszphy_get_stat()
1280 val = phy_read(phydev, stat.reg); in kszphy_get_stat()
1292 static void kszphy_get_stats(struct phy_device *phydev, in kszphy_get_stats() argument
1298 data[i] = kszphy_get_stat(phydev, i); in kszphy_get_stats()
1301 static int kszphy_suspend(struct phy_device *phydev) in kszphy_suspend() argument
1304 if (phy_interrupt_is_valid(phydev)) { in kszphy_suspend()
1305 phydev->interrupts = PHY_INTERRUPT_DISABLED; in kszphy_suspend()
1306 if (phydev->drv->config_intr) in kszphy_suspend()
1307 phydev->drv->config_intr(phydev); in kszphy_suspend()
1310 return genphy_suspend(phydev); in kszphy_suspend()
1313 static int kszphy_resume(struct phy_device *phydev) in kszphy_resume() argument
1317 genphy_resume(phydev); in kszphy_resume()
1325 ret = kszphy_config_reset(phydev); in kszphy_resume()
1330 if (phy_interrupt_is_valid(phydev)) { in kszphy_resume()
1331 phydev->interrupts = PHY_INTERRUPT_ENABLED; in kszphy_resume()
1332 if (phydev->drv->config_intr) in kszphy_resume()
1333 phydev->drv->config_intr(phydev); in kszphy_resume()
1339 static int kszphy_probe(struct phy_device *phydev) in kszphy_probe() argument
1341 const struct kszphy_type *type = phydev->drv->driver_data; in kszphy_probe()
1342 const struct device_node *np = phydev->mdio.dev.of_node; in kszphy_probe()
1347 priv = devm_kzalloc(&phydev->mdio.dev, sizeof(*priv), GFP_KERNEL); in kszphy_probe()
1351 phydev->priv = priv; in kszphy_probe()
1362 phydev_err(phydev, "invalid led mode: 0x%02x\n", in kszphy_probe()
1370 clk = devm_clk_get(&phydev->mdio.dev, "rmii-ref"); in kszphy_probe()
1385 phydev_err(phydev, "Clock rate out of range: %ld\n", in kszphy_probe()
1391 if (ksz8041_fiber_mode(phydev)) in kszphy_probe()
1392 phydev->port = PORT_FIBRE; in kszphy_probe()
1395 if (phydev->dev_flags & MICREL_PHY_50MHZ_CLK) { in kszphy_probe()
1403 static int ksz886x_cable_test_start(struct phy_device *phydev) in ksz886x_cable_test_start() argument
1405 if (phydev->dev_flags & MICREL_KSZ8_P1_ERRATA) in ksz886x_cable_test_start()
1413 return phy_clear_bits(phydev, MII_BMCR, BMCR_ANENABLE | BMCR_SPEED100); in ksz886x_cable_test_start()
1461 static int ksz886x_cable_test_wait_for_completion(struct phy_device *phydev) in ksz886x_cable_test_wait_for_completion() argument
1465 ret = phy_read_poll_timeout(phydev, KSZ8081_LMD, val, in ksz886x_cable_test_wait_for_completion()
1472 static int ksz886x_cable_test_one_pair(struct phy_device *phydev, int pair) in ksz886x_cable_test_one_pair() argument
1488 switch (phydev->phy_id & MICREL_PHY_ID_MASK) { in ksz886x_cable_test_one_pair()
1490 ret = ksz8081_config_mdix(phydev, mdix); in ksz886x_cable_test_one_pair()
1493 ret = ksz886x_config_mdix(phydev, mdix); in ksz886x_cable_test_one_pair()
1505 ret = phy_write(phydev, KSZ8081_LMD, KSZ8081_LMD_ENABLE_TEST); in ksz886x_cable_test_one_pair()
1509 ret = ksz886x_cable_test_wait_for_completion(phydev); in ksz886x_cable_test_one_pair()
1513 val = phy_read(phydev, KSZ8081_LMD); in ksz886x_cable_test_one_pair()
1520 ret = ethnl_cable_test_result(phydev, ethtool_pair[pair], in ksz886x_cable_test_one_pair()
1528 return ethnl_cable_test_fault_length(phydev, ethtool_pair[pair], in ksz886x_cable_test_one_pair()
1532 static int ksz886x_cable_test_get_status(struct phy_device *phydev, in ksz886x_cable_test_get_status() argument
1544 ret = ksz886x_cable_test_one_pair(phydev, pair); in ksz886x_cable_test_get_status()
1574 static int lanphy_read_page_reg(struct phy_device *phydev, int page, u32 addr) in lanphy_read_page_reg() argument
1578 phy_write(phydev, LAN_EXT_PAGE_ACCESS_CONTROL, page); in lanphy_read_page_reg()
1579 phy_write(phydev, LAN_EXT_PAGE_ACCESS_ADDRESS_DATA, addr); in lanphy_read_page_reg()
1580 phy_write(phydev, LAN_EXT_PAGE_ACCESS_CONTROL, in lanphy_read_page_reg()
1582 data = phy_read(phydev, LAN_EXT_PAGE_ACCESS_ADDRESS_DATA); in lanphy_read_page_reg()
1587 static int lanphy_write_page_reg(struct phy_device *phydev, int page, u16 addr, in lanphy_write_page_reg() argument
1590 phy_write(phydev, LAN_EXT_PAGE_ACCESS_CONTROL, page); in lanphy_write_page_reg()
1591 phy_write(phydev, LAN_EXT_PAGE_ACCESS_ADDRESS_DATA, addr); in lanphy_write_page_reg()
1592 phy_write(phydev, LAN_EXT_PAGE_ACCESS_CONTROL, in lanphy_write_page_reg()
1595 val = phy_write(phydev, LAN_EXT_PAGE_ACCESS_ADDRESS_DATA, val); in lanphy_write_page_reg()
1597 phydev_err(phydev, "Error: phy_write has returned error %d\n", in lanphy_write_page_reg()
1604 static int lan8804_config_init(struct phy_device *phydev) in lan8804_config_init() argument
1609 val = lanphy_read_page_reg(phydev, 2, LAN8804_ALIGN_SWAP); in lan8804_config_init()
1612 lanphy_write_page_reg(phydev, 2, LAN8804_ALIGN_SWAP, val); in lan8804_config_init()
1617 lanphy_write_page_reg(phydev, 31, LAN8814_CLOCK_MANAGEMENT, 0x27e); in lan8804_config_init()
1618 lanphy_read_page_reg(phydev, 1, LAN8814_LINK_QUALITY); in lan8804_config_init()