1*e6b48dfdSryan_chen /* SPDX-License-Identifier: GPL-2.0+ */ 2*e6b48dfdSryan_chen /* 3*e6b48dfdSryan_chen * Copyright (C) 2018 Marvell International Ltd. 4*e6b48dfdSryan_chen * Author: Ken Ma<make@marvell.com> 5*e6b48dfdSryan_chen */ 6*e6b48dfdSryan_chen 7*e6b48dfdSryan_chen #ifndef _MDIO_H_ 8*e6b48dfdSryan_chen #define _MDIO_H_ 9*e6b48dfdSryan_chen 10*e6b48dfdSryan_chen #include <dm.h> 11*e6b48dfdSryan_chen #include <phy.h> 12*e6b48dfdSryan_chen 13*e6b48dfdSryan_chen /** 14*e6b48dfdSryan_chen * mdio_mii_bus_get() - Get mii bus from mdio udevice 15*e6b48dfdSryan_chen * 16*e6b48dfdSryan_chen * @mdio_dev: mdio udevice 17*e6b48dfdSryan_chen * @busp: returns mii bus 18*e6b48dfdSryan_chen * @returns 0 on success, error code otherwise. 19*e6b48dfdSryan_chen */ 20*e6b48dfdSryan_chen int mdio_mii_bus_get(struct udevice *mdio_dev, struct mii_dev **busp); 21*e6b48dfdSryan_chen 22*e6b48dfdSryan_chen /** 23*e6b48dfdSryan_chen * mdio_device_get_from_phy() - Get the mdio udevice which the phy belongs to 24*e6b48dfdSryan_chen * 25*e6b48dfdSryan_chen * @phy_node: phy node offset 26*e6b48dfdSryan_chen * @devp: returns mdio udevice 27*e6b48dfdSryan_chen * @returns 0 on success, error code otherwise. 28*e6b48dfdSryan_chen */ 29*e6b48dfdSryan_chen int mdio_device_get_from_phy(ofnode phy_node, struct udevice **devp); 30*e6b48dfdSryan_chen 31*e6b48dfdSryan_chen /** 32*e6b48dfdSryan_chen * mdio_mii_bus_get_from_phy() - Get the mii bus which the phy belongs to 33*e6b48dfdSryan_chen * 34*e6b48dfdSryan_chen * @phy_node: phy node offset 35*e6b48dfdSryan_chen * @busp: returns mii bus 36*e6b48dfdSryan_chen * @returns 0 on success, error code otherwise. 37*e6b48dfdSryan_chen */ 38*e6b48dfdSryan_chen int mdio_mii_bus_get_from_phy(ofnode phy_node, struct mii_dev **busp); 39*e6b48dfdSryan_chen 40*e6b48dfdSryan_chen /** 41*e6b48dfdSryan_chen * mdio_device_get_from_eth() - When there is a phy reference of "phy = <&...>" 42*e6b48dfdSryan_chen * under an ethernet udevice fdt node, this function can 43*e6b48dfdSryan_chen * get the mdio udevice which the phy belongs to 44*e6b48dfdSryan_chen * 45*e6b48dfdSryan_chen * @dev: the ethernet udevice which contains the phy reference 46*e6b48dfdSryan_chen * @devp: returns mdio udevice 47*e6b48dfdSryan_chen * @returns 0 on success, error code otherwise. 48*e6b48dfdSryan_chen */ 49*e6b48dfdSryan_chen int mdio_device_get_from_eth(struct udevice *eth, struct udevice **devp); 50*e6b48dfdSryan_chen 51*e6b48dfdSryan_chen /** 52*e6b48dfdSryan_chen * mdio_mii_bus_get_from_eth() - When there is a phy reference of 53*e6b48dfdSryan_chen * "phy = <&...>" under an ethernet udevice fdt node, this 54*e6b48dfdSryan_chen * function can get the mii bus which the phy belongs to 55*e6b48dfdSryan_chen * 56*e6b48dfdSryan_chen * @eth: the ethernet udevice which contains the phy reference 57*e6b48dfdSryan_chen * @busp: returns mii bus 58*e6b48dfdSryan_chen * @returns 0 on success, error code otherwise. 59*e6b48dfdSryan_chen */ 60*e6b48dfdSryan_chen int mdio_mii_bus_get_from_eth(struct udevice *eth, struct mii_dev **busp); 61*e6b48dfdSryan_chen 62*e6b48dfdSryan_chen #endif /* _MDIO_H_ */ 63*e6b48dfdSryan_chen 64*e6b48dfdSryan_chen 65