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