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