1*d8c838a5SMaxime Chevallier /* SPDX-License-Identifier: GPL-2.0-or-later */ 2*d8c838a5SMaxime Chevallier /* 3*d8c838a5SMaxime Chevallier * link caps internal header, for link modes <-> capabilities <-> interfaces 4*d8c838a5SMaxime Chevallier * conversions. 5*d8c838a5SMaxime Chevallier */ 6*d8c838a5SMaxime Chevallier 7*d8c838a5SMaxime Chevallier #ifndef __PHY_CAPS_H 8*d8c838a5SMaxime Chevallier #define __PHY_CAPS_H 9*d8c838a5SMaxime Chevallier 10*d8c838a5SMaxime Chevallier #include <linux/ethtool.h> 11*d8c838a5SMaxime Chevallier 12*d8c838a5SMaxime Chevallier enum { 13*d8c838a5SMaxime Chevallier LINK_CAPA_10HD = 0, 14*d8c838a5SMaxime Chevallier LINK_CAPA_10FD, 15*d8c838a5SMaxime Chevallier LINK_CAPA_100HD, 16*d8c838a5SMaxime Chevallier LINK_CAPA_100FD, 17*d8c838a5SMaxime Chevallier LINK_CAPA_1000HD, 18*d8c838a5SMaxime Chevallier LINK_CAPA_1000FD, 19*d8c838a5SMaxime Chevallier LINK_CAPA_2500FD, 20*d8c838a5SMaxime Chevallier LINK_CAPA_5000FD, 21*d8c838a5SMaxime Chevallier LINK_CAPA_10000FD, 22*d8c838a5SMaxime Chevallier LINK_CAPA_20000FD, 23*d8c838a5SMaxime Chevallier LINK_CAPA_25000FD, 24*d8c838a5SMaxime Chevallier LINK_CAPA_40000FD, 25*d8c838a5SMaxime Chevallier LINK_CAPA_50000FD, 26*d8c838a5SMaxime Chevallier LINK_CAPA_56000FD, 27*d8c838a5SMaxime Chevallier LINK_CAPA_100000FD, 28*d8c838a5SMaxime Chevallier LINK_CAPA_200000FD, 29*d8c838a5SMaxime Chevallier LINK_CAPA_400000FD, 30*d8c838a5SMaxime Chevallier LINK_CAPA_800000FD, 31*d8c838a5SMaxime Chevallier 32*d8c838a5SMaxime Chevallier __LINK_CAPA_MAX, 33*d8c838a5SMaxime Chevallier }; 34*d8c838a5SMaxime Chevallier 35*d8c838a5SMaxime Chevallier struct link_capabilities { 36*d8c838a5SMaxime Chevallier int speed; 37*d8c838a5SMaxime Chevallier unsigned int duplex; 38*d8c838a5SMaxime Chevallier __ETHTOOL_DECLARE_LINK_MODE_MASK(linkmodes); 39*d8c838a5SMaxime Chevallier }; 40*d8c838a5SMaxime Chevallier 41*d8c838a5SMaxime Chevallier int phy_caps_init(void); 42*d8c838a5SMaxime Chevallier 43*d8c838a5SMaxime Chevallier #endif /* __PHY_CAPS_H */ 44