xref: /linux/include/linux/device-id/mdio.h (revision d2c9a99135da931377240942d44f3dea104cedb8)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef LINUX_DEVICE_ID_MDIO_H
3 #define LINUX_DEVICE_ID_MDIO_H
4 
5 #ifdef __KERNEL__
6 #include <linux/types.h>
7 #endif
8 
9 #define MDIO_MODULE_PREFIX	"mdio:"
10 
11 #define MDIO_ID_FMT "%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u"
12 #define MDIO_ID_ARGS(_id) \
13 	((_id)>>31) & 1, ((_id)>>30) & 1, ((_id)>>29) & 1, ((_id)>>28) & 1, \
14 	((_id)>>27) & 1, ((_id)>>26) & 1, ((_id)>>25) & 1, ((_id)>>24) & 1, \
15 	((_id)>>23) & 1, ((_id)>>22) & 1, ((_id)>>21) & 1, ((_id)>>20) & 1, \
16 	((_id)>>19) & 1, ((_id)>>18) & 1, ((_id)>>17) & 1, ((_id)>>16) & 1, \
17 	((_id)>>15) & 1, ((_id)>>14) & 1, ((_id)>>13) & 1, ((_id)>>12) & 1, \
18 	((_id)>>11) & 1, ((_id)>>10) & 1, ((_id)>>9) & 1, ((_id)>>8) & 1, \
19 	((_id)>>7) & 1, ((_id)>>6) & 1, ((_id)>>5) & 1, ((_id)>>4) & 1, \
20 	((_id)>>3) & 1, ((_id)>>2) & 1, ((_id)>>1) & 1, (_id) & 1
21 
22 /**
23  * struct mdio_device_id - identifies PHY devices on an MDIO/MII bus
24  * @phy_id: The result of
25  *     (mdio_read(&MII_PHYSID1) << 16 | mdio_read(&MII_PHYSID2)) & @phy_id_mask
26  *     for this PHY type
27  * @phy_id_mask: Defines the significant bits of @phy_id.  A value of 0
28  *     is used to terminate an array of struct mdio_device_id.
29  */
30 struct mdio_device_id {
31 	__u32 phy_id;
32 	__u32 phy_id_mask;
33 };
34 
35 #endif /* ifndef LINUX_DEVICE_ID_MDIO_H */
36