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