xref: /openbmc/u-boot/include/net/mdio.h (revision 9da3b6f065502fa6d990d48c0bc4c478c9ba7598)
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