xref: /linux-6.15/include/linux/marvell_phy.h (revision ecc2ae61)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
22f495c39SBenjamin Herrenschmidt #ifndef _MARVELL_PHY_H
32f495c39SBenjamin Herrenschmidt #define _MARVELL_PHY_H
42f495c39SBenjamin Herrenschmidt 
52f495c39SBenjamin Herrenschmidt /* Mask used for ID comparisons */
62f495c39SBenjamin Herrenschmidt #define MARVELL_PHY_ID_MASK		0xfffffff0
72f495c39SBenjamin Herrenschmidt 
82f495c39SBenjamin Herrenschmidt /* Known PHY IDs */
92f495c39SBenjamin Herrenschmidt #define MARVELL_PHY_ID_88E1101		0x01410c60
10ada9841eSPawel Dembicki #define MARVELL_PHY_ID_88E3082		0x01410c80
112f495c39SBenjamin Herrenschmidt #define MARVELL_PHY_ID_88E1112		0x01410c90
122f495c39SBenjamin Herrenschmidt #define MARVELL_PHY_ID_88E1111		0x01410cc0
132f495c39SBenjamin Herrenschmidt #define MARVELL_PHY_ID_88E1118		0x01410e10
142f495c39SBenjamin Herrenschmidt #define MARVELL_PHY_ID_88E1121R		0x01410cb0
152f495c39SBenjamin Herrenschmidt #define MARVELL_PHY_ID_88E1145		0x01410cd0
1690600732SDavid Daney #define MARVELL_PHY_ID_88E1149R		0x01410e50
172f495c39SBenjamin Herrenschmidt #define MARVELL_PHY_ID_88E1240		0x01410e30
18337ac9d5SCyril Chemparathy #define MARVELL_PHY_ID_88E1318S		0x01410e90
19a602ea86SMaxim Kochetkov #define MARVELL_PHY_ID_88E1340S		0x01410dc0
203da09a51SMichal Simek #define MARVELL_PHY_ID_88E1116R		0x01410e40
2110e24caaSMichal Simek #define MARVELL_PHY_ID_88E1510		0x01410dd0
22819ec8e1SAndrew Lunn #define MARVELL_PHY_ID_88E1540		0x01410eb0
2360f06fdeSAndrew Lunn #define MARVELL_PHY_ID_88E1545		0x01410ea0
24f59babf9SMaxim Kochetkov #define MARVELL_PHY_ID_88E1548P		0x01410ec0
256b358aedSSebastian Hesselbarth #define MARVELL_PHY_ID_88E3016		0x01410e60
26a5de4be0SMarek Behún #define MARVELL_PHY_ID_88X3310		0x002b09a0
2762d01535SMaxime Chevallier #define MARVELL_PHY_ID_88E2110		0x002b09b0
286e3bac3eSIvan Bornyakov #define MARVELL_PHY_ID_88X2222		0x01410f10
2900f11ac7SStefan Eichenberger #define MARVELL_PHY_ID_88Q2110		0x002b0980
30e57e4c7fSDimitri Fedrau #define MARVELL_PHY_ID_88Q2220		0x002b0b20
312f495c39SBenjamin Herrenschmidt 
321887023aSRobert Hancock /* Marvel 88E1111 in Finisar SFP module with modified PHY ID */
331887023aSRobert Hancock #define MARVELL_PHY_ID_88E1111_FINISAR	0x01ff0cc0
341887023aSRobert Hancock 
35*ecc2ae61SMatthias Schiffer /* ID from 88E6020, assumed to be the same for the whole 6250 family */
36*ecc2ae61SMatthias Schiffer #define MARVELL_PHY_ID_88E6250_FAMILY	0x01410db0
371fe976d3SPali Rohár /* These Ethernet switch families contain embedded PHYs, but they do
38e4cf8a38SAndrew Lunn  * not have a model ID. So the switch driver traps reads to the ID2
39e4cf8a38SAndrew Lunn  * register and returns the switch family ID
40e4cf8a38SAndrew Lunn  */
411fe976d3SPali Rohár #define MARVELL_PHY_ID_88E6341_FAMILY	0x01410f41
421fe976d3SPali Rohár #define MARVELL_PHY_ID_88E6390_FAMILY	0x01410f90
43a978f7c4SMarek Behún #define MARVELL_PHY_ID_88E6393_FAMILY	0x002b0b9b
44e4cf8a38SAndrew Lunn 
4507777246SWang Dongsheng #define MARVELL_PHY_FAMILY_ID(id)	((id) >> 4)
4607777246SWang Dongsheng 
472f495c39SBenjamin Herrenschmidt /* struct phy_device dev_flags definitions */
482f495c39SBenjamin Herrenschmidt #define MARVELL_PHY_M1145_FLAGS_RESISTANCE	0x00000001
492f495c39SBenjamin Herrenschmidt #define MARVELL_PHY_M1118_DNS323_LEDS		0x00000002
50a93f7fe1SJian Shen #define MARVELL_PHY_LED0_LINK_LED1_ACTIVE	0x00000004
512f495c39SBenjamin Herrenschmidt 
522f495c39SBenjamin Herrenschmidt #endif /* _MARVELL_PHY_H */
53