xref: /linux/drivers/net/phy/Kconfig (revision 550ee90ac61c1f0cd987c68a9ac6c4c9833925d7)
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 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 AIR_EN8811H_PHY
83	tristate "Airoha EN8811H 2.5 Gigabit PHY"
84	help
85	  Currently supports the Airoha EN8811H PHY.
86
87config AMD_PHY
88	tristate "AMD and Altima PHYs"
89	help
90	  Currently supports the AMD am79c874 and Altima AC101L.
91
92config MESON_GXL_PHY
93	tristate "Amlogic Meson GXL Internal PHY"
94	depends on ARCH_MESON || COMPILE_TEST
95	select SMSC_PHY
96	help
97	  Currently has a driver for the Amlogic Meson GXL Internal PHY
98
99config ADIN_PHY
100	tristate "Analog Devices Industrial Ethernet PHYs"
101	help
102	  Adds support for the Analog Devices Industrial Ethernet PHYs.
103	  Currently supports the:
104	  - ADIN1200 - Robust,Industrial, Low Power 10/100 Ethernet PHY
105	  - ADIN1300 - Robust,Industrial, Low Latency 10/100/1000 Gigabit
106	    Ethernet PHY
107
108config ADIN1100_PHY
109	tristate "Analog Devices Industrial Ethernet T1L PHYs"
110	help
111	  Adds support for the Analog Devices Industrial T1L Ethernet PHYs.
112	  Currently supports the:
113	  - ADIN1100 - Robust,Industrial, Low Power 10BASE-T1L Ethernet PHY
114
115source "drivers/net/phy/aquantia/Kconfig"
116
117config AX88796B_PHY
118	tristate "Asix PHYs"
119	help
120	  Currently supports the Asix Electronics PHY found in the X-Surf 100
121	  AX88796B package.
122
123config AX88796B_RUST_PHY
124	bool "Rust reference driver for Asix PHYs"
125	depends on RUST_PHYLIB_ABSTRACTIONS && AX88796B_PHY
126	help
127	  Uses the Rust reference driver for Asix PHYs (ax88796b_rust.ko).
128	  The features are equivalent. It supports the Asix Electronics PHY
129	  found in the X-Surf 100 AX88796B package.
130
131config BROADCOM_PHY
132	tristate "Broadcom 54XX PHYs"
133	select BCM_NET_PHYLIB
134	select BCM_NET_PHYPTP if NETWORK_PHY_TIMESTAMPING
135	depends on PTP_1588_CLOCK_OPTIONAL
136	help
137	  Currently supports the BCM5411, BCM5421, BCM5461, BCM54616S, BCM5464,
138	  BCM5481, BCM54810 and BCM5482 PHYs.
139
140config BCM54140_PHY
141	tristate "Broadcom BCM54140 PHY"
142	depends on HWMON || HWMON=n
143	select BCM_NET_PHYLIB
144	help
145	  Support the Broadcom BCM54140 Quad SGMII/QSGMII PHY.
146
147	  This driver also supports the hardware monitoring of this PHY and
148	  exposes voltage and temperature sensors.
149
150config BCM63XX_PHY
151	tristate "Broadcom 63xx SOCs internal PHY"
152	depends on BCM63XX || COMPILE_TEST
153	select BCM_NET_PHYLIB
154	help
155	  Currently supports the 6348 and 6358 PHYs.
156
157config BCM7XXX_PHY
158	tristate "Broadcom 7xxx SOCs internal PHYs"
159	select BCM_NET_PHYLIB
160	help
161	  Currently supports the BCM7366, BCM7439, BCM7445, and
162	  40nm and 65nm generation of BCM7xxx Set Top Box SoCs.
163
164config BCM84881_PHY
165	tristate "Broadcom BCM84881 PHY"
166	help
167	  Support the Broadcom BCM84881 PHY.
168
169config BCM87XX_PHY
170	tristate "Broadcom BCM8706 and BCM8727 PHYs"
171	help
172	  Currently supports the BCM8706 and BCM8727 10G Ethernet PHYs.
173
174config BCM_CYGNUS_PHY
175	tristate "Broadcom Cygnus/Omega SoC internal PHY"
176	depends on ARCH_BCM_IPROC || COMPILE_TEST
177	depends on MDIO_BCM_IPROC
178	select BCM_NET_PHYLIB
179	help
180	  This PHY driver is for the 1G internal PHYs of the Broadcom
181	  Cygnus and Omega Family SoC.
182
183	  Currently supports internal PHY's used in the BCM11300,
184	  BCM11320, BCM11350, BCM11360, BCM58300, BCM58302,
185	  BCM58303 & BCM58305 Broadcom Cygnus SoCs.
186
187config BCM_NET_PHYLIB
188	tristate
189
190config BCM_NET_PHYPTP
191	tristate
192
193config CICADA_PHY
194	tristate "Cicada PHYs"
195	help
196	  Currently supports the cis8204
197
198config CORTINA_PHY
199	tristate "Cortina EDC CDR 10G Ethernet PHY"
200	help
201	  Currently supports the CS4340 phy.
202
203config DAVICOM_PHY
204	tristate "Davicom PHYs"
205	help
206	  Currently supports dm9161e and dm9131
207
208config ICPLUS_PHY
209	tristate "ICPlus PHYs"
210	help
211	  Currently supports the IP175C and IP1001 PHYs.
212
213config LXT_PHY
214	tristate "Intel LXT PHYs"
215	help
216	  Currently supports the lxt970, lxt971
217
218config INTEL_XWAY_PHY
219	tristate "Intel XWAY PHYs"
220	help
221	  Supports the Intel XWAY (former Lantiq) 11G and 22E PHYs.
222	  These PHYs are marked as standalone chips under the names
223	  PEF 7061, PEF 7071 and PEF 7072 or integrated into the Intel
224	  SoCs xRX200, xRX300, xRX330, xRX350 and xRX550.
225
226config LSI_ET1011C_PHY
227	tristate "LSI ET1011C PHY"
228	help
229	  Supports the LSI ET1011C PHY.
230
231config MARVELL_PHY
232	tristate "Marvell Alaska PHYs"
233	help
234	  Currently has a driver for the 88E1XXX
235
236config MARVELL_10G_PHY
237	tristate "Marvell Alaska 10Gbit PHYs"
238	help
239	  Support for the Marvell Alaska MV88X3310 and compatible PHYs.
240
241config MARVELL_88Q2XXX_PHY
242	tristate "Marvell 88Q2XXX PHY"
243	depends on HWMON || HWMON=n
244	help
245	  Support for the Marvell 88Q2XXX 100/1000BASE-T1 Automotive Ethernet
246	  PHYs.
247
248config MARVELL_88X2222_PHY
249	tristate "Marvell 88X2222 PHY"
250	help
251	  Support for the Marvell 88X2222 Dual-port Multi-speed Ethernet
252	  Transceiver.
253
254config MAXLINEAR_GPHY
255	tristate "Maxlinear Ethernet PHYs"
256	select POLYNOMIAL if HWMON
257	depends on HWMON || HWMON=n
258	help
259	  Support for the Maxlinear GPY115, GPY211, GPY212, GPY215,
260	  GPY241, GPY245 PHYs.
261
262config MEDIATEK_GE_PHY
263	tristate "MediaTek Gigabit Ethernet PHYs"
264	help
265	  Supports the MediaTek Gigabit Ethernet PHYs.
266
267config MEDIATEK_GE_SOC_PHY
268	tristate "MediaTek SoC Ethernet PHYs"
269	depends on (ARM64 && ARCH_MEDIATEK) || COMPILE_TEST
270	depends on NVMEM_MTK_EFUSE
271	help
272	  Supports MediaTek SoC built-in Gigabit Ethernet PHYs.
273
274	  Include support for built-in Ethernet PHYs which are present in
275	  the MT7981 and MT7988 SoCs. These PHYs need calibration data
276	  present in the SoCs efuse and will dynamically calibrate VCM
277	  (common-mode voltage) during startup.
278
279config MICREL_PHY
280	tristate "Micrel PHYs"
281	depends on PTP_1588_CLOCK_OPTIONAL
282	help
283	  Supports the KSZ9021, VSC8201, KS8001 PHYs.
284
285config MICROCHIP_T1S_PHY
286	tristate "Microchip 10BASE-T1S Ethernet PHYs"
287	help
288	  Currently supports the LAN8670/1/2 Rev.B1 and LAN8650/1 Rev.B0 Internal
289	  PHYs.
290
291config MICROCHIP_PHY
292	tristate "Microchip PHYs"
293	help
294	  Supports the LAN88XX PHYs.
295
296config MICROCHIP_T1_PHY
297	tristate "Microchip T1 PHYs"
298	help
299	  Supports the LAN87XX PHYs.
300
301config MICROSEMI_PHY
302	tristate "Microsemi PHYs"
303	depends on MACSEC || MACSEC=n
304	depends on PTP_1588_CLOCK_OPTIONAL || !NETWORK_PHY_TIMESTAMPING
305	select CRYPTO_LIB_AES if MACSEC
306	help
307	  Currently supports VSC8514, VSC8530, VSC8531, VSC8540 and VSC8541 PHYs
308
309config MOTORCOMM_PHY
310	tristate "Motorcomm PHYs"
311	help
312	  Enables support for Motorcomm network PHYs.
313	  Currently supports YT85xx Gigabit Ethernet PHYs.
314
315config NATIONAL_PHY
316	tristate "National Semiconductor PHYs"
317	help
318	  Currently supports the DP83865 PHY.
319
320config NXP_CBTX_PHY
321	tristate "NXP 100BASE-TX PHYs"
322	help
323	  Support the 100BASE-TX PHY integrated on the SJA1110 automotive
324	  switch family.
325
326config NXP_C45_TJA11XX_PHY
327	tristate "NXP C45 TJA11XX PHYs"
328	depends on PTP_1588_CLOCK_OPTIONAL
329	depends on MACSEC || !MACSEC
330	help
331	  Enable support for NXP C45 TJA11XX PHYs.
332	  Currently supports the TJA1103, TJA1104 and TJA1120 PHYs.
333
334config NXP_TJA11XX_PHY
335	tristate "NXP TJA11xx PHYs support"
336	depends on HWMON
337	help
338	  Currently supports the NXP TJA1100 and TJA1101 PHY.
339
340config NCN26000_PHY
341	tristate "Onsemi 10BASE-T1S Ethernet PHY"
342	help
343	  Adds support for the onsemi 10BASE-T1S Ethernet PHY.
344	  Currently supports the NCN26000 10BASE-T1S Industrial PHY
345	  with MII interface.
346
347source "drivers/net/phy/qcom/Kconfig"
348
349config QSEMI_PHY
350	tristate "Quality Semiconductor PHYs"
351	help
352	  Currently supports the qs6612
353
354config REALTEK_PHY
355	tristate "Realtek PHYs"
356	help
357	  Supports the Realtek 821x PHY.
358
359config RENESAS_PHY
360	tristate "Renesas PHYs"
361	help
362	  Supports the Renesas PHYs uPD60620 and uPD60620A.
363
364config ROCKCHIP_PHY
365	tristate "Rockchip Ethernet PHYs"
366	help
367	  Currently supports the integrated Ethernet PHY.
368
369config SMSC_PHY
370	tristate "SMSC PHYs"
371	select CRC16
372	help
373	  Currently supports the LAN83C185, LAN8187 and LAN8700 PHYs
374
375config STE10XP
376	tristate "STMicroelectronics STe10Xp PHYs"
377	help
378	  This is the driver for the STe100p and STe101p PHYs.
379
380config TERANETICS_PHY
381	tristate "Teranetics PHYs"
382	help
383	  Currently supports the Teranetics TN2020
384
385config DP83822_PHY
386	tristate "Texas Instruments DP83822/825/826 PHYs"
387	help
388	  Supports the DP83822, DP83825I, DP83825CM, DP83825CS, DP83825S,
389	  DP83826C and DP83826NC PHYs.
390
391config DP83TC811_PHY
392	tristate "Texas Instruments DP83TC811 PHY"
393	help
394	  Supports the DP83TC811 PHY.
395
396config DP83848_PHY
397	tristate "Texas Instruments DP83848 PHY"
398	help
399	  Supports the DP83848 PHY.
400
401config DP83867_PHY
402	tristate "Texas Instruments DP83867 Gigabit PHY"
403	help
404	  Currently supports the DP83867 PHY.
405
406config DP83869_PHY
407	tristate "Texas Instruments DP83869 Gigabit PHY"
408	help
409	  Currently supports the DP83869 PHY.  This PHY supports copper and
410	  fiber connections.
411
412config DP83TD510_PHY
413	tristate "Texas Instruments DP83TD510 Ethernet 10Base-T1L PHY"
414	help
415	  Support for the DP83TD510 Ethernet 10Base-T1L PHY. This PHY supports
416	  a 10M single pair Ethernet connection for up to 1000 meter cable.
417
418config DP83TG720_PHY
419	tristate "Texas Instruments DP83TG720 Ethernet 1000Base-T1 PHY"
420	select OPEN_ALLIANCE_HELPERS
421	help
422	  The DP83TG720S-Q1 is an automotive Ethernet physical layer
423	  transceiver compliant with IEEE 802.3bp and Open Alliance
424	  standards. It supports key functions necessary for
425	  transmitting and receiving data over both unshielded and
426	  shielded single twisted-pair cables. This device offers
427	  flexible xMII interface options, including support for both
428	  RGMII and SGMII MAC interfaces. It's suitable for applications
429	  requiring high-speed data transmission in automotive
430	  networking environments.
431
432config VITESSE_PHY
433	tristate "Vitesse PHYs"
434	help
435	  Currently supports the vsc8244
436
437config XILINX_GMII2RGMII
438	tristate "Xilinx GMII2RGMII converter driver"
439	help
440	  This driver support xilinx GMII to RGMII IP core it provides
441	  the Reduced Gigabit Media Independent Interface(RGMII) between
442	  Ethernet physical media devices and the Gigabit Ethernet controller.
443
444endif # PHYLIB
445
446config MICREL_KS8995MA
447	tristate "Micrel KS8995MA 5-ports 10/100 managed Ethernet switch"
448	depends on SPI
449