1# SPDX-License-Identifier: GPL-2.0-only
2#
3# PHY Layer Configuration
4#
5
6config PHYLINK
7	tristate
8	depends on NETDEVICES
9	select PHYLIB
10	select SWPHY
11	help
12	  PHYlink models the link between the PHY and MAC, allowing fixed
13	  configuration links, PHYs, and Serdes links with MAC level
14	  autonegotiation modes.
15
16menuconfig PHYLIB
17	tristate "PHY Device support and infrastructure"
18	depends on NETDEVICES
19	select MDIO_DEVICE
20	select MDIO_DEVRES
21	help
22	  Ethernet controllers are usually attached to PHY
23	  devices.  This option provides infrastructure for
24	  managing PHY devices.
25
26if PHYLIB
27
28config SWPHY
29	bool
30
31config LED_TRIGGER_PHY
32	bool "Support LED triggers for tracking link state"
33	depends on LEDS_TRIGGERS
34	help
35	  Adds support for a set of LED trigger events per-PHY.  Link
36	  state change will trigger the events, for consumption by an
37	  LED class driver.  There are triggers for each link speed currently
38	  supported by the PHY and also a one common "link" trigger as a
39	  logical-or of all the link speed ones.
40	  All these triggers are named according to the following pattern:
41	      <mii bus id>:<phy>:<speed>
42
43	  Where speed is in the form:
44		<Speed in megabits>Mbps OR <Speed in gigabits>Gbps OR link
45		for any speed known to the PHY.
46
47config PHYLIB_LEDS
48	def_bool OF
49	depends on LEDS_CLASS=y || LEDS_CLASS=PHYLIB
50	help
51	  When LED class support is enabled, phylib can automatically
52	  probe LED setting from device tree.
53
54config FIXED_PHY
55	tristate "MDIO Bus/PHY emulation with fixed speed/link PHYs"
56	select SWPHY
57	help
58	  Adds the platform "fixed" MDIO Bus to cover the boards that use
59	  PHYs that are not connected to the real MDIO bus.
60
61	  Currently tested with mpc866ads and mpc8349e-mitx.
62
63config SFP
64	tristate "SFP cage support"
65	depends on I2C && PHYLINK
66	depends on HWMON || HWMON=n
67	select MDIO_I2C
68
69comment "MII PHY device drivers"
70
71config AMD_PHY
72	tristate "AMD PHYs"
73	help
74	  Currently supports the am79c874
75
76config MESON_GXL_PHY
77	tristate "Amlogic Meson GXL Internal PHY"
78	depends on ARCH_MESON || COMPILE_TEST
79	select SMSC_PHY
80	help
81	  Currently has a driver for the Amlogic Meson GXL Internal PHY
82
83config ADIN_PHY
84	tristate "Analog Devices Industrial Ethernet PHYs"
85	help
86	  Adds support for the Analog Devices Industrial Ethernet PHYs.
87	  Currently supports the:
88	  - ADIN1200 - Robust,Industrial, Low Power 10/100 Ethernet PHY
89	  - ADIN1300 - Robust,Industrial, Low Latency 10/100/1000 Gigabit
90	    Ethernet PHY
91
92config ADIN1100_PHY
93	tristate "Analog Devices Industrial Ethernet T1L PHYs"
94	help
95	  Adds support for the Analog Devices Industrial T1L Ethernet PHYs.
96	  Currently supports the:
97	  - ADIN1100 - Robust,Industrial, Low Power 10BASE-T1L Ethernet PHY
98
99config AQUANTIA_PHY
100	tristate "Aquantia PHYs"
101	help
102	  Currently supports the Aquantia AQ1202, AQ2104, AQR105, AQR405
103
104config AX88796B_PHY
105	tristate "Asix PHYs"
106	help
107	  Currently supports the Asix Electronics PHY found in the X-Surf 100
108	  AX88796B package.
109
110config BROADCOM_PHY
111	tristate "Broadcom 54XX PHYs"
112	select BCM_NET_PHYLIB
113	select BCM_NET_PHYPTP if NETWORK_PHY_TIMESTAMPING
114	depends on PTP_1588_CLOCK_OPTIONAL
115	help
116	  Currently supports the BCM5411, BCM5421, BCM5461, BCM54616S, BCM5464,
117	  BCM5481, BCM54810 and BCM5482 PHYs.
118
119config BCM54140_PHY
120	tristate "Broadcom BCM54140 PHY"
121	depends on HWMON || HWMON=n
122	select BCM_NET_PHYLIB
123	help
124	  Support the Broadcom BCM54140 Quad SGMII/QSGMII PHY.
125
126	  This driver also supports the hardware monitoring of this PHY and
127	  exposes voltage and temperature sensors.
128
129config BCM63XX_PHY
130	tristate "Broadcom 63xx SOCs internal PHY"
131	depends on BCM63XX || COMPILE_TEST
132	select BCM_NET_PHYLIB
133	help
134	  Currently supports the 6348 and 6358 PHYs.
135
136config BCM7XXX_PHY
137	tristate "Broadcom 7xxx SOCs internal PHYs"
138	select BCM_NET_PHYLIB
139	help
140	  Currently supports the BCM7366, BCM7439, BCM7445, and
141	  40nm and 65nm generation of BCM7xxx Set Top Box SoCs.
142
143config BCM84881_PHY
144	tristate "Broadcom BCM84881 PHY"
145	help
146	  Support the Broadcom BCM84881 PHY.
147
148config BCM87XX_PHY
149	tristate "Broadcom BCM8706 and BCM8727 PHYs"
150	help
151	  Currently supports the BCM8706 and BCM8727 10G Ethernet PHYs.
152
153config BCM_CYGNUS_PHY
154	tristate "Broadcom Cygnus/Omega SoC internal PHY"
155	depends on ARCH_BCM_IPROC || COMPILE_TEST
156	depends on MDIO_BCM_IPROC
157	select BCM_NET_PHYLIB
158	help
159	  This PHY driver is for the 1G internal PHYs of the Broadcom
160	  Cygnus and Omega Family SoC.
161
162	  Currently supports internal PHY's used in the BCM11300,
163	  BCM11320, BCM11350, BCM11360, BCM58300, BCM58302,
164	  BCM58303 & BCM58305 Broadcom Cygnus SoCs.
165
166config BCM_NET_PHYLIB
167	tristate
168
169config BCM_NET_PHYPTP
170	tristate
171
172config CICADA_PHY
173	tristate "Cicada PHYs"
174	help
175	  Currently supports the cis8204
176
177config CORTINA_PHY
178	tristate "Cortina EDC CDR 10G Ethernet PHY"
179	help
180	  Currently supports the CS4340 phy.
181
182config DAVICOM_PHY
183	tristate "Davicom PHYs"
184	help
185	  Currently supports dm9161e and dm9131
186
187config ICPLUS_PHY
188	tristate "ICPlus PHYs"
189	help
190	  Currently supports the IP175C and IP1001 PHYs.
191
192config LXT_PHY
193	tristate "Intel LXT PHYs"
194	help
195	  Currently supports the lxt970, lxt971
196
197config INTEL_XWAY_PHY
198	tristate "Intel XWAY PHYs"
199	help
200	  Supports the Intel XWAY (former Lantiq) 11G and 22E PHYs.
201	  These PHYs are marked as standalone chips under the names
202	  PEF 7061, PEF 7071 and PEF 7072 or integrated into the Intel
203	  SoCs xRX200, xRX300, xRX330, xRX350 and xRX550.
204
205config LSI_ET1011C_PHY
206	tristate "LSI ET1011C PHY"
207	help
208	  Supports the LSI ET1011C PHY.
209
210config MARVELL_PHY
211	tristate "Marvell Alaska PHYs"
212	help
213	  Currently has a driver for the 88E1XXX
214
215config MARVELL_10G_PHY
216	tristate "Marvell Alaska 10Gbit PHYs"
217	help
218	  Support for the Marvell Alaska MV88X3310 and compatible PHYs.
219
220config MARVELL_88Q2XXX_PHY
221	tristate "Marvell 88Q2XXX PHY"
222	help
223	  Support for the Marvell 88Q2XXX 100/1000BASE-T1 Automotive Ethernet
224	  PHYs.
225
226config MARVELL_88X2222_PHY
227	tristate "Marvell 88X2222 PHY"
228	help
229	  Support for the Marvell 88X2222 Dual-port Multi-speed Ethernet
230	  Transceiver.
231
232config MAXLINEAR_GPHY
233	tristate "Maxlinear Ethernet PHYs"
234	select POLYNOMIAL if HWMON
235	depends on HWMON || HWMON=n
236	help
237	  Support for the Maxlinear GPY115, GPY211, GPY212, GPY215,
238	  GPY241, GPY245 PHYs.
239
240config MEDIATEK_GE_PHY
241	tristate "MediaTek Gigabit Ethernet PHYs"
242	help
243	  Supports the MediaTek Gigabit Ethernet PHYs.
244
245config MEDIATEK_GE_SOC_PHY
246	tristate "MediaTek SoC Ethernet PHYs"
247	depends on (ARM64 && ARCH_MEDIATEK) || COMPILE_TEST
248	depends on NVMEM_MTK_EFUSE
249	help
250	  Supports MediaTek SoC built-in Gigabit Ethernet PHYs.
251
252	  Include support for built-in Ethernet PHYs which are present in
253	  the MT7981 and MT7988 SoCs. These PHYs need calibration data
254	  present in the SoCs efuse and will dynamically calibrate VCM
255	  (common-mode voltage) during startup.
256
257config MICREL_PHY
258	tristate "Micrel PHYs"
259	depends on PTP_1588_CLOCK_OPTIONAL
260	help
261	  Supports the KSZ9021, VSC8201, KS8001 PHYs.
262
263config MICROCHIP_T1S_PHY
264	tristate "Microchip 10BASE-T1S Ethernet PHYs"
265	help
266	  Currently supports the LAN8670/1/2 Rev.B1 and LAN8650/1 Rev.B0 Internal
267	  PHYs.
268
269config MICROCHIP_PHY
270	tristate "Microchip PHYs"
271	help
272	  Supports the LAN88XX PHYs.
273
274config MICROCHIP_T1_PHY
275	tristate "Microchip T1 PHYs"
276	help
277	  Supports the LAN87XX PHYs.
278
279config MICROSEMI_PHY
280	tristate "Microsemi PHYs"
281	depends on MACSEC || MACSEC=n
282	depends on PTP_1588_CLOCK_OPTIONAL || !NETWORK_PHY_TIMESTAMPING
283	select CRYPTO_LIB_AES if MACSEC
284	help
285	  Currently supports VSC8514, VSC8530, VSC8531, VSC8540 and VSC8541 PHYs
286
287config MOTORCOMM_PHY
288	tristate "Motorcomm PHYs"
289	help
290	  Enables support for Motorcomm network PHYs.
291	  Currently supports YT85xx Gigabit Ethernet PHYs.
292
293config NATIONAL_PHY
294	tristate "National Semiconductor PHYs"
295	help
296	  Currently supports the DP83865 PHY.
297
298config NXP_CBTX_PHY
299	tristate "NXP 100BASE-TX PHYs"
300	help
301	  Support the 100BASE-TX PHY integrated on the SJA1110 automotive
302	  switch family.
303
304config NXP_C45_TJA11XX_PHY
305	tristate "NXP C45 TJA11XX PHYs"
306	depends on PTP_1588_CLOCK_OPTIONAL
307	help
308	  Enable support for NXP C45 TJA11XX PHYs.
309	  Currently supports the TJA1103 and TJA1120 PHYs.
310
311config NXP_TJA11XX_PHY
312	tristate "NXP TJA11xx PHYs support"
313	depends on HWMON
314	help
315	  Currently supports the NXP TJA1100 and TJA1101 PHY.
316
317config NCN26000_PHY
318	tristate "Onsemi 10BASE-T1S Ethernet PHY"
319	help
320	  Adds support for the onsemi 10BASE-T1S Ethernet PHY.
321	  Currently supports the NCN26000 10BASE-T1S Industrial PHY
322	  with MII interface.
323
324config AT803X_PHY
325	tristate "Qualcomm Atheros AR803X PHYs and QCA833x PHYs"
326	depends on REGULATOR
327	help
328	  Currently supports the AR8030, AR8031, AR8033, AR8035 and internal
329	  QCA8337(Internal qca8k PHY) model
330
331config QSEMI_PHY
332	tristate "Quality Semiconductor PHYs"
333	help
334	  Currently supports the qs6612
335
336config REALTEK_PHY
337	tristate "Realtek PHYs"
338	help
339	  Supports the Realtek 821x PHY.
340
341config RENESAS_PHY
342	tristate "Renesas PHYs"
343	help
344	  Supports the Renesas PHYs uPD60620 and uPD60620A.
345
346config ROCKCHIP_PHY
347	tristate "Rockchip Ethernet PHYs"
348	help
349	  Currently supports the integrated Ethernet PHY.
350
351config SMSC_PHY
352	tristate "SMSC PHYs"
353	select CRC16
354	help
355	  Currently supports the LAN83C185, LAN8187 and LAN8700 PHYs
356
357config STE10XP
358	tristate "STMicroelectronics STe10Xp PHYs"
359	help
360	  This is the driver for the STe100p and STe101p PHYs.
361
362config TERANETICS_PHY
363	tristate "Teranetics PHYs"
364	help
365	  Currently supports the Teranetics TN2020
366
367config DP83822_PHY
368	tristate "Texas Instruments DP83822/825/826 PHYs"
369	help
370	  Supports the DP83822, DP83825I, DP83825CM, DP83825CS, DP83825S,
371	  DP83826C and DP83826NC PHYs.
372
373config DP83TC811_PHY
374	tristate "Texas Instruments DP83TC811 PHY"
375	help
376	  Supports the DP83TC811 PHY.
377
378config DP83848_PHY
379	tristate "Texas Instruments DP83848 PHY"
380	help
381	  Supports the DP83848 PHY.
382
383config DP83867_PHY
384	tristate "Texas Instruments DP83867 Gigabit PHY"
385	help
386	  Currently supports the DP83867 PHY.
387
388config DP83869_PHY
389	tristate "Texas Instruments DP83869 Gigabit PHY"
390	help
391	  Currently supports the DP83869 PHY.  This PHY supports copper and
392	  fiber connections.
393
394config DP83TD510_PHY
395	tristate "Texas Instruments DP83TD510 Ethernet 10Base-T1L PHY"
396	help
397	  Support for the DP83TD510 Ethernet 10Base-T1L PHY. This PHY supports
398	  a 10M single pair Ethernet connection for up to 1000 meter cable.
399
400config VITESSE_PHY
401	tristate "Vitesse PHYs"
402	help
403	  Currently supports the vsc8244
404
405config XILINX_GMII2RGMII
406	tristate "Xilinx GMII2RGMII converter driver"
407	help
408	  This driver support xilinx GMII to RGMII IP core it provides
409	  the Reduced Gigabit Media Independent Interface(RGMII) between
410	  Ethernet physical media devices and the Gigabit Ethernet controller.
411
412endif # PHYLIB
413
414config MICREL_KS8995MA
415	tristate "Micrel KS8995MA 5-ports 10/100 managed Ethernet switch"
416	depends on SPI
417