xref: /linux/drivers/net/phy/Kconfig (revision 8be4d31cb8aaeea27bde4b7ddb26e28a89062ebf)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# PHY Layer Configuration
4#
5
6config PHYLINK
7	tristate
8	select PHYLIB
9	select SWPHY
10	help
11	  PHYlink models the link between the PHY and MAC, allowing fixed
12	  configuration links, PHYs, and Serdes links with MAC level
13	  autonegotiation modes.
14
15menuconfig PHYLIB
16	tristate "PHY Device support and infrastructure"
17	select MDIO_BUS
18	help
19	  Ethernet controllers are usually attached to PHY
20	  devices.  This option provides infrastructure for
21	  managing PHY devices.
22
23if PHYLIB
24
25config SWPHY
26	bool
27
28config PHY_PACKAGE
29	 tristate
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 OPEN_ALLIANCE_HELPERS
48	bool
49
50config PHYLIB_LEDS
51	def_bool OF
52	depends on LEDS_CLASS=y || LEDS_CLASS=PHYLIB
53	help
54	  When LED class support is enabled, phylib can automatically
55	  probe LED setting from device tree.
56
57config FIXED_PHY
58	tristate "MDIO Bus/PHY emulation with fixed speed/link PHYs"
59	select SWPHY
60	help
61	  Adds the platform "fixed" MDIO Bus to cover the boards that use
62	  PHYs that are not connected to the real MDIO bus.
63
64	  Currently tested with mpc866ads and mpc8349e-mitx.
65
66config RUST_PHYLIB_ABSTRACTIONS
67        bool "Rust PHYLIB abstractions support"
68        depends on RUST
69        depends on PHYLIB=y
70        help
71          Adds support needed for PHY drivers written in Rust. It provides
72          a wrapper around the C phylib core.
73
74config SFP
75	tristate "SFP cage support"
76	depends on I2C && PHYLINK
77	depends on HWMON || HWMON=n
78	select MDIO_I2C
79
80comment "MII PHY device drivers"
81
82config AS21XXX_PHY
83	tristate "Aeonsemi AS21xxx PHYs"
84	help
85	  Currently supports the Aeonsemi AS21xxx PHY.
86
87	  These are C45 PHYs 10G that require all a generic firmware.
88
89	  Supported PHYs AS21011JB1, AS21011PB1, AS21010JB1, AS21010PB1,
90	  AS21511JB1, AS21511PB1, AS21510JB1, AS21510PB1, AS21210JB1,
91	  AS21210PB1 that all register with the PHY ID 0x7500 0x7500
92	  before the firmware is loaded.
93
94config AIR_EN8811H_PHY
95	tristate "Airoha EN8811H 2.5 Gigabit PHY"
96	help
97	  Currently supports the Airoha EN8811H PHY.
98
99config AMD_PHY
100	tristate "AMD and Altima PHYs"
101	help
102	  Currently supports the AMD am79c874 and Altima AC101L.
103
104config MESON_GXL_PHY
105	tristate "Amlogic Meson GXL Internal PHY"
106	depends on ARCH_MESON || COMPILE_TEST
107	select SMSC_PHY
108	help
109	  Currently has a driver for the Amlogic Meson GXL Internal PHY
110
111config ADIN_PHY
112	tristate "Analog Devices Industrial Ethernet PHYs"
113	help
114	  Adds support for the Analog Devices Industrial Ethernet PHYs.
115	  Currently supports the:
116	  - ADIN1200 - Robust,Industrial, Low Power 10/100 Ethernet PHY
117	  - ADIN1300 - Robust,Industrial, Low Latency 10/100/1000 Gigabit
118	    Ethernet PHY
119
120config ADIN1100_PHY
121	tristate "Analog Devices Industrial Ethernet T1L PHYs"
122	help
123	  Adds support for the Analog Devices Industrial T1L Ethernet PHYs.
124	  Currently supports the:
125	  - ADIN1100 - Robust,Industrial, Low Power 10BASE-T1L Ethernet PHY
126
127config AMCC_QT2025_PHY
128	tristate "AMCC QT2025 PHY"
129	depends on RUST_PHYLIB_ABSTRACTIONS
130	depends on RUST_FW_LOADER_ABSTRACTIONS
131	help
132	  Adds support for the Applied Micro Circuits Corporation QT2025 PHY.
133
134source "drivers/net/phy/aquantia/Kconfig"
135
136config AX88796B_PHY
137	tristate "Asix PHYs"
138	help
139	  Currently supports the Asix Electronics PHY found in the X-Surf 100
140	  AX88796B package.
141
142config AX88796B_RUST_PHY
143	bool "Rust reference driver for Asix PHYs"
144	depends on RUST_PHYLIB_ABSTRACTIONS && AX88796B_PHY
145	help
146	  Uses the Rust reference driver for Asix PHYs (ax88796b_rust.ko).
147	  The features are equivalent. It supports the Asix Electronics PHY
148	  found in the X-Surf 100 AX88796B package.
149
150config BROADCOM_PHY
151	tristate "Broadcom 54XX PHYs"
152	select BCM_NET_PHYLIB
153	select BCM_NET_PHYPTP if NETWORK_PHY_TIMESTAMPING
154	depends on PTP_1588_CLOCK_OPTIONAL
155	help
156	  Currently supports the BCM5411, BCM5421, BCM5461, BCM54616S, BCM5464,
157	  BCM5481, BCM54810 and BCM5482 PHYs.
158
159config BCM54140_PHY
160	tristate "Broadcom BCM54140 PHY"
161	depends on HWMON || HWMON=n
162	select BCM_NET_PHYLIB
163	select PHY_PACKAGE
164	help
165	  Support the Broadcom BCM54140 Quad SGMII/QSGMII PHY.
166
167	  This driver also supports the hardware monitoring of this PHY and
168	  exposes voltage and temperature sensors.
169
170config BCM63XX_PHY
171	tristate "Broadcom 63xx SOCs internal PHY"
172	depends on BCM63XX || COMPILE_TEST
173	select BCM_NET_PHYLIB
174	help
175	  Currently supports the 6348 and 6358 PHYs.
176
177config BCM7XXX_PHY
178	tristate "Broadcom 7xxx SOCs internal PHYs"
179	select BCM_NET_PHYLIB
180	help
181	  Currently supports the BCM7366, BCM7439, BCM7445, and
182	  40nm and 65nm generation of BCM7xxx Set Top Box SoCs.
183
184config BCM84881_PHY
185	tristate "Broadcom BCM84881 PHY"
186	help
187	  Support the Broadcom BCM84881 PHY.
188
189config BCM87XX_PHY
190	tristate "Broadcom BCM8706 and BCM8727 PHYs"
191	help
192	  Currently supports the BCM8706 and BCM8727 10G Ethernet PHYs.
193
194config BCM_CYGNUS_PHY
195	tristate "Broadcom Cygnus/Omega SoC internal PHY"
196	depends on ARCH_BCM_IPROC || COMPILE_TEST
197	depends on MDIO_BCM_IPROC
198	select BCM_NET_PHYLIB
199	help
200	  This PHY driver is for the 1G internal PHYs of the Broadcom
201	  Cygnus and Omega Family SoC.
202
203	  Currently supports internal PHY's used in the BCM11300,
204	  BCM11320, BCM11350, BCM11360, BCM58300, BCM58302,
205	  BCM58303 & BCM58305 Broadcom Cygnus SoCs.
206
207config BCM_NET_PHYLIB
208	tristate
209
210config BCM_NET_PHYPTP
211	tristate
212
213config CICADA_PHY
214	tristate "Cicada PHYs"
215	help
216	  Currently supports the cis8204
217
218config CORTINA_PHY
219	tristate "Cortina EDC CDR 10G Ethernet PHY"
220	help
221	  Currently supports the CS4340 phy.
222
223config DAVICOM_PHY
224	tristate "Davicom PHYs"
225	help
226	  Currently supports dm9161e and dm9131
227
228config ICPLUS_PHY
229	tristate "ICPlus PHYs"
230	help
231	  Currently supports the IP175C and IP1001 PHYs.
232
233config LXT_PHY
234	tristate "Intel LXT PHYs"
235	help
236	  Currently supports the lxt970, lxt971
237
238config INTEL_XWAY_PHY
239	tristate "Intel XWAY PHYs"
240	help
241	  Supports the Intel XWAY (former Lantiq) 11G and 22E PHYs.
242	  These PHYs are marked as standalone chips under the names
243	  PEF 7061, PEF 7071 and PEF 7072 or integrated into the Intel
244	  SoCs xRX200, xRX300, xRX330, xRX350 and xRX550.
245
246config LSI_ET1011C_PHY
247	tristate "LSI ET1011C PHY"
248	help
249	  Supports the LSI ET1011C PHY.
250
251config MARVELL_PHY
252	tristate "Marvell Alaska PHYs"
253	help
254	  Currently has a driver for the 88E1XXX
255
256config MARVELL_10G_PHY
257	tristate "Marvell Alaska 10Gbit PHYs"
258	help
259	  Support for the Marvell Alaska MV88X3310 and compatible PHYs.
260
261config MARVELL_88Q2XXX_PHY
262	tristate "Marvell 88Q2XXX PHY"
263	depends on HWMON || HWMON=n
264	help
265	  Support for the Marvell 88Q2XXX 100/1000BASE-T1 Automotive Ethernet
266	  PHYs.
267
268config MARVELL_88X2222_PHY
269	tristate "Marvell 88X2222 PHY"
270	help
271	  Support for the Marvell 88X2222 Dual-port Multi-speed Ethernet
272	  Transceiver.
273
274config MAXLINEAR_GPHY
275	tristate "Maxlinear Ethernet PHYs"
276	select POLYNOMIAL if HWMON
277	depends on HWMON || HWMON=n
278	help
279	  Support for the Maxlinear GPY115, GPY211, GPY212, GPY215,
280	  GPY241, GPY245 PHYs.
281
282config MAXLINEAR_86110_PHY
283	tristate "MaxLinear MXL86110 PHY support"
284	help
285	 Support for the MaxLinear MXL86110 Gigabit Ethernet
286	 Physical Layer transceiver.
287	 The MXL86110 is commonly used in networking equipment such as
288	 routers, switches, and embedded systems, providing the
289	 physical interface for 10/100/1000 Mbps Ethernet connections
290	 over copper media.
291	 If you are using a board with the MXL86110 PHY connected to your
292	 Ethernet MAC, you should enable this option.
293
294source "drivers/net/phy/mediatek/Kconfig"
295
296config MICREL_PHY
297	tristate "Micrel PHYs"
298	depends on PTP_1588_CLOCK_OPTIONAL
299	select PHY_PACKAGE
300	help
301	  Supports the KSZ9021, VSC8201, KS8001 PHYs.
302
303config MICROCHIP_T1S_PHY
304	tristate "Microchip 10BASE-T1S Ethernet PHYs"
305	help
306	  Currently supports the LAN8670/1/2 Rev.B1/C1/C2 and
307	  LAN8650/1 Rev.B0/B1 Internal PHYs.
308
309config MICROCHIP_PHY
310	tristate "Microchip PHYs"
311	help
312	  Supports the LAN88XX PHYs.
313
314config MICROCHIP_T1_PHY
315	tristate "Microchip T1 PHYs"
316	select MICROCHIP_PHY_RDS_PTP if NETWORK_PHY_TIMESTAMPING
317	depends on PTP_1588_CLOCK_OPTIONAL
318	help
319	  Supports the LAN8XXX PHYs.
320
321config MICROCHIP_PHY_RDS_PTP
322	tristate
323	help
324	  Currently supports LAN887X T1 PHY
325
326config MICROSEMI_PHY
327	tristate "Microsemi PHYs"
328	depends on MACSEC || MACSEC=n
329	depends on PTP_1588_CLOCK_OPTIONAL || !NETWORK_PHY_TIMESTAMPING
330	select CRYPTO_LIB_AES if MACSEC
331	select PHY_PACKAGE
332	help
333	  Currently supports VSC8514, VSC8530, VSC8531, VSC8540 and VSC8541 PHYs
334
335config MOTORCOMM_PHY
336	tristate "Motorcomm PHYs"
337	help
338	  Enables support for Motorcomm network PHYs.
339	  Currently supports YT85xx Gigabit Ethernet PHYs.
340
341config NATIONAL_PHY
342	tristate "National Semiconductor PHYs"
343	help
344	  Currently supports the DP83865 PHY.
345
346config NXP_CBTX_PHY
347	tristate "NXP 100BASE-TX PHYs"
348	help
349	  Support the 100BASE-TX PHY integrated on the SJA1110 automotive
350	  switch family.
351
352config NXP_C45_TJA11XX_PHY
353	tristate "NXP C45 TJA11XX PHYs"
354	depends on PTP_1588_CLOCK_OPTIONAL
355	depends on MACSEC || !MACSEC
356	help
357	  Enable support for NXP C45 TJA11XX PHYs.
358	  Currently supports the TJA1103, TJA1104, TJA1120 and TJA1121 PHYs.
359
360config NXP_TJA11XX_PHY
361	tristate "NXP TJA11xx PHYs support"
362	depends on HWMON
363	help
364	  Currently supports the NXP TJA1100 and TJA1101 PHY.
365
366config NCN26000_PHY
367	tristate "Onsemi 10BASE-T1S Ethernet PHY"
368	help
369	  Adds support for the onsemi 10BASE-T1S Ethernet PHY.
370	  Currently supports the NCN26000 10BASE-T1S Industrial PHY
371	  with MII interface.
372
373source "drivers/net/phy/qcom/Kconfig"
374
375config QSEMI_PHY
376	tristate "Quality Semiconductor PHYs"
377	help
378	  Currently supports the qs6612
379
380source "drivers/net/phy/realtek/Kconfig"
381
382config RENESAS_PHY
383	tristate "Renesas PHYs"
384	help
385	  Supports the Renesas PHYs uPD60620 and uPD60620A.
386
387config ROCKCHIP_PHY
388	tristate "Rockchip Ethernet PHYs"
389	help
390	  Currently supports the integrated Ethernet PHY.
391
392config SMSC_PHY
393	tristate "SMSC PHYs"
394	select CRC16
395	help
396	  Currently supports the LAN83C185, LAN8187 and LAN8700 PHYs
397
398config STE10XP
399	tristate "STMicroelectronics STe10Xp PHYs"
400	help
401	  This is the driver for the STe100p and STe101p PHYs.
402
403config TERANETICS_PHY
404	tristate "Teranetics PHYs"
405	help
406	  Currently supports the Teranetics TN2020
407
408config DP83822_PHY
409	tristate "Texas Instruments DP83822/825/826 PHYs"
410	help
411	  Supports the DP83822, DP83825I, DP83825CM, DP83825CS, DP83825S,
412	  DP83826C and DP83826NC PHYs.
413
414config DP83TC811_PHY
415	tristate "Texas Instruments DP83TC811 PHY"
416	help
417	  Supports the DP83TC811 PHY.
418
419config DP83848_PHY
420	tristate "Texas Instruments DP83848 PHY"
421	help
422	  Supports the DP83848 PHY.
423
424config DP83867_PHY
425	tristate "Texas Instruments DP83867 Gigabit PHY"
426	help
427	  Currently supports the DP83867 PHY.
428
429config DP83869_PHY
430	tristate "Texas Instruments DP83869 Gigabit PHY"
431	help
432	  Currently supports the DP83869 PHY.  This PHY supports copper and
433	  fiber connections.
434
435config DP83TD510_PHY
436	tristate "Texas Instruments DP83TD510 Ethernet 10Base-T1L PHY"
437	help
438	  Support for the DP83TD510 Ethernet 10Base-T1L PHY. This PHY supports
439	  a 10M single pair Ethernet connection for up to 1000 meter cable.
440
441config DP83TG720_PHY
442	tristate "Texas Instruments DP83TG720 Ethernet 1000Base-T1 PHY"
443	select OPEN_ALLIANCE_HELPERS
444	help
445	  The DP83TG720S-Q1 is an automotive Ethernet physical layer
446	  transceiver compliant with IEEE 802.3bp and Open Alliance
447	  standards. It supports key functions necessary for
448	  transmitting and receiving data over both unshielded and
449	  shielded single twisted-pair cables. This device offers
450	  flexible xMII interface options, including support for both
451	  RGMII and SGMII MAC interfaces. It's suitable for applications
452	  requiring high-speed data transmission in automotive
453	  networking environments.
454
455config VITESSE_PHY
456	tristate "Vitesse PHYs"
457	help
458	  Currently supports the vsc8244
459
460config XILINX_GMII2RGMII
461	tristate "Xilinx GMII2RGMII converter driver"
462	help
463	  This driver support xilinx GMII to RGMII IP core it provides
464	  the Reduced Gigabit Media Independent Interface(RGMII) between
465	  Ethernet physical media devices and the Gigabit Ethernet controller.
466
467endif # PHYLIB
468
469config MICREL_KS8995MA
470	tristate "Micrel KS8995MA 5-ports 10/100 managed Ethernet switch"
471	depends on SPI
472