xref: /openbmc/linux/drivers/net/phy/Kconfig (revision b8265621)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# PHY Layer Configuration
4#
5
6menuconfig MDIO_DEVICE
7	tristate "MDIO bus device drivers"
8	help
9	  MDIO devices and driver infrastructure code.
10
11if MDIO_DEVICE
12
13config MDIO_BUS
14	tristate
15	default m if PHYLIB=m
16	default MDIO_DEVICE
17	help
18	  This internal symbol is used for link time dependencies and it
19	  reflects whether the mdio_bus/mdio_device code is built as a
20	  loadable module or built-in.
21
22if MDIO_BUS
23
24config MDIO_DEVRES
25	tristate
26
27config MDIO_ASPEED
28	tristate "ASPEED MDIO bus controller"
29	depends on ARCH_ASPEED || COMPILE_TEST
30	depends on OF_MDIO && HAS_IOMEM
31	help
32	  This module provides a driver for the independent MDIO bus
33	  controllers found in the ASPEED AST2600 SoC. This is a driver for the
34	  third revision of the ASPEED MDIO register interface - the first two
35	  revisions are the "old" and "new" interfaces found in the AST2400 and
36	  AST2500, embedded in the MAC. For legacy reasons, FTGMAC100 driver
37	  continues to drive the embedded MDIO controller for the AST2400 and
38	  AST2500 SoCs, so say N if AST2600 support is not required.
39
40config MDIO_BCM_IPROC
41	tristate "Broadcom iProc MDIO bus controller"
42	depends on ARCH_BCM_IPROC || COMPILE_TEST
43	depends on HAS_IOMEM && OF_MDIO
44	default ARCH_BCM_IPROC
45	help
46	  This module provides a driver for the MDIO busses found in the
47	  Broadcom iProc SoC's.
48
49config MDIO_BCM_UNIMAC
50	tristate "Broadcom UniMAC MDIO bus controller"
51	depends on HAS_IOMEM
52	help
53	  This module provides a driver for the Broadcom UniMAC MDIO busses.
54	  This hardware can be found in the Broadcom GENET Ethernet MAC
55	  controllers as well as some Broadcom Ethernet switches such as the
56	  Starfighter 2 switches.
57
58config MDIO_BITBANG
59	tristate "Bitbanged MDIO buses"
60	help
61	  This module implements the MDIO bus protocol in software,
62	  for use by low level drivers that export the ability to
63	  drive the relevant pins.
64
65	  If in doubt, say N.
66
67config MDIO_BUS_MUX
68	tristate
69	depends on OF_MDIO
70	help
71	  This module provides a driver framework for MDIO bus
72	  multiplexers which connect one of several child MDIO busses
73	  to a parent bus.  Switching between child busses is done by
74	  device specific drivers.
75
76config MDIO_BUS_MUX_BCM_IPROC
77	tristate "Broadcom iProc based MDIO bus multiplexers"
78	depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST)
79	select MDIO_BUS_MUX
80	default ARCH_BCM_IPROC
81	help
82	  This module provides a driver for MDIO bus multiplexers found in
83	  iProc based Broadcom SoCs. This multiplexer connects one of several
84	  child MDIO bus to a parent bus. Buses could be internal as well as
85	  external and selection logic lies inside the same multiplexer.
86
87config MDIO_BUS_MUX_GPIO
88	tristate "GPIO controlled MDIO bus multiplexers"
89	depends on OF_GPIO && OF_MDIO
90	select MDIO_BUS_MUX
91	help
92	  This module provides a driver for MDIO bus multiplexers that
93	  are controlled via GPIO lines.  The multiplexer connects one of
94	  several child MDIO busses to a parent bus.  Child bus
95	  selection is under the control of GPIO lines.
96
97config MDIO_BUS_MUX_MESON_G12A
98	tristate "Amlogic G12a based MDIO bus multiplexer"
99	depends on ARCH_MESON || COMPILE_TEST
100	depends on OF_MDIO && HAS_IOMEM && COMMON_CLK
101	select MDIO_BUS_MUX
102	default m if ARCH_MESON
103	help
104	  This module provides a driver for the MDIO multiplexer/glue of
105	  the amlogic g12a SoC. The multiplexers connects either the external
106	  or the internal MDIO bus to the parent bus.
107
108config MDIO_BUS_MUX_MMIOREG
109	tristate "MMIO device-controlled MDIO bus multiplexers"
110	depends on OF_MDIO && HAS_IOMEM
111	select MDIO_BUS_MUX
112	help
113	  This module provides a driver for MDIO bus multiplexers that
114	  are controlled via a simple memory-mapped device, like an FPGA.
115	  The multiplexer connects one of several child MDIO busses to a
116	  parent bus.  Child bus selection is under the control of one of
117	  the FPGA's registers.
118
119	  Currently, only 8/16/32 bits registers are supported.
120
121config MDIO_BUS_MUX_MULTIPLEXER
122	tristate "MDIO bus multiplexer using kernel multiplexer subsystem"
123	depends on OF_MDIO
124	select MULTIPLEXER
125	select MDIO_BUS_MUX
126	help
127	  This module provides a driver for MDIO bus multiplexer
128	  that is controlled via the kernel multiplexer subsystem. The
129	  bus multiplexer connects one of several child MDIO busses to
130	  a parent bus.  Child bus selection is under the control of
131	  the kernel multiplexer subsystem.
132
133config MDIO_CAVIUM
134	tristate
135
136config MDIO_GPIO
137	tristate "GPIO lib-based bitbanged MDIO buses"
138	depends on MDIO_BITBANG
139	depends on GPIOLIB || COMPILE_TEST
140	help
141	  Supports GPIO lib-based MDIO busses.
142
143	  To compile this driver as a module, choose M here: the module
144	  will be called mdio-gpio.
145
146config MDIO_HISI_FEMAC
147	tristate "Hisilicon FEMAC MDIO bus controller"
148	depends on HAS_IOMEM && OF_MDIO
149	help
150	  This module provides a driver for the MDIO busses found in the
151	  Hisilicon SoC that have an Fast Ethernet MAC.
152
153config MDIO_I2C
154	tristate
155	depends on I2C
156	help
157	  Support I2C based PHYs.  This provides a MDIO bus bridged
158	  to I2C to allow PHYs connected in I2C mode to be accessed
159	  using the existing infrastructure.
160
161	  This is library mode.
162
163config MDIO_IPQ4019
164	tristate "Qualcomm IPQ4019 MDIO interface support"
165	depends on HAS_IOMEM && OF_MDIO
166	help
167	  This driver supports the MDIO interface found in Qualcomm
168	  IPQ40xx series Soc-s.
169
170config MDIO_IPQ8064
171	tristate "Qualcomm IPQ8064 MDIO interface support"
172	depends on HAS_IOMEM && OF_MDIO
173	depends on MFD_SYSCON
174	help
175	  This driver supports the MDIO interface found in the network
176	  interface units of the IPQ8064 SoC
177
178config MDIO_MOXART
179	tristate "MOXA ART MDIO interface support"
180	depends on ARCH_MOXART || COMPILE_TEST
181	help
182	  This driver supports the MDIO interface found in the network
183	  interface units of the MOXA ART SoC
184
185config MDIO_MSCC_MIIM
186	tristate "Microsemi MIIM interface support"
187	depends on HAS_IOMEM
188	select MDIO_DEVRES
189	help
190	  This driver supports the MIIM (MDIO) interface found in the network
191	  switches of the Microsemi SoCs; it is recommended to switch on
192	  CONFIG_HIGH_RES_TIMERS
193
194config MDIO_MVUSB
195	tristate "Marvell USB to MDIO Adapter"
196	depends on USB
197	help
198	  A USB to MDIO converter present on development boards for
199	  Marvell's Link Street family of Ethernet switches.
200
201config MDIO_OCTEON
202	tristate "Octeon and some ThunderX SOCs MDIO buses"
203	depends on (64BIT && OF_MDIO) || COMPILE_TEST
204	depends on HAS_IOMEM
205	select MDIO_CAVIUM
206	help
207	  This module provides a driver for the Octeon and ThunderX MDIO
208	  buses. It is required by the Octeon and ThunderX ethernet device
209	  drivers on some systems.
210
211config MDIO_SUN4I
212	tristate "Allwinner sun4i MDIO interface support"
213	depends on ARCH_SUNXI || COMPILE_TEST
214	help
215	  This driver supports the MDIO interface found in the network
216	  interface units of the Allwinner SoC that have an EMAC (A10,
217	  A12, A10s, etc.)
218
219config MDIO_THUNDER
220	tristate "ThunderX SOCs MDIO buses"
221	depends on 64BIT
222	depends on PCI
223	select MDIO_CAVIUM
224	help
225	  This driver supports the MDIO interfaces found on Cavium
226	  ThunderX SoCs when the MDIO bus device appears as a PCI
227	  device.
228
229config MDIO_XGENE
230	tristate "APM X-Gene SoC MDIO bus controller"
231	depends on ARCH_XGENE || COMPILE_TEST
232	help
233	  This module provides a driver for the MDIO busses found in the
234	  APM X-Gene SoC's.
235
236config MDIO_XPCS
237	tristate "Synopsys DesignWare XPCS controller"
238	help
239	  This module provides helper functions for Synopsys DesignWare XPCS
240	  controllers.
241
242endif
243endif
244
245config PHYLINK
246	tristate
247	depends on NETDEVICES
248	select PHYLIB
249	select SWPHY
250	help
251	  PHYlink models the link between the PHY and MAC, allowing fixed
252	  configuration links, PHYs, and Serdes links with MAC level
253	  autonegotiation modes.
254
255menuconfig PHYLIB
256	tristate "PHY Device support and infrastructure"
257	depends on NETDEVICES
258	select MDIO_DEVICE
259	select MDIO_DEVRES
260	help
261	  Ethernet controllers are usually attached to PHY
262	  devices.  This option provides infrastructure for
263	  managing PHY devices.
264
265if PHYLIB
266
267config SWPHY
268	bool
269
270config LED_TRIGGER_PHY
271	bool "Support LED triggers for tracking link state"
272	depends on LEDS_TRIGGERS
273	help
274	  Adds support for a set of LED trigger events per-PHY.  Link
275	  state change will trigger the events, for consumption by an
276	  LED class driver.  There are triggers for each link speed currently
277	  supported by the PHY and also a one common "link" trigger as a
278	  logical-or of all the link speed ones.
279	  All these triggers are named according to the following pattern:
280	      <mii bus id>:<phy>:<speed>
281
282	  Where speed is in the form:
283		<Speed in megabits>Mbps OR <Speed in gigabits>Gbps OR link
284		for any speed known to the PHY.
285
286
287comment "MII PHY device drivers"
288
289config SFP
290	tristate "SFP cage support"
291	depends on I2C && PHYLINK
292	depends on HWMON || HWMON=n
293	select MDIO_I2C
294
295config ADIN_PHY
296	tristate "Analog Devices Industrial Ethernet PHYs"
297	help
298	  Adds support for the Analog Devices Industrial Ethernet PHYs.
299	  Currently supports the:
300	  - ADIN1200 - Robust,Industrial, Low Power 10/100 Ethernet PHY
301	  - ADIN1300 - Robust,Industrial, Low Latency 10/100/1000 Gigabit
302	    Ethernet PHY
303
304config AMD_PHY
305	tristate "AMD PHYs"
306	help
307	  Currently supports the am79c874
308
309config AQUANTIA_PHY
310	tristate "Aquantia PHYs"
311	help
312	  Currently supports the Aquantia AQ1202, AQ2104, AQR105, AQR405
313
314config AX88796B_PHY
315	tristate "Asix PHYs"
316	help
317	  Currently supports the Asix Electronics PHY found in the X-Surf 100
318	  AX88796B package.
319
320config BCM63XX_PHY
321	tristate "Broadcom 63xx SOCs internal PHY"
322	depends on BCM63XX || COMPILE_TEST
323	select BCM_NET_PHYLIB
324	help
325	  Currently supports the 6348 and 6358 PHYs.
326
327config BCM7XXX_PHY
328	tristate "Broadcom 7xxx SOCs internal PHYs"
329	select BCM_NET_PHYLIB
330	help
331	  Currently supports the BCM7366, BCM7439, BCM7445, and
332	  40nm and 65nm generation of BCM7xxx Set Top Box SoCs.
333
334config BCM87XX_PHY
335	tristate "Broadcom BCM8706 and BCM8727 PHYs"
336	help
337	  Currently supports the BCM8706 and BCM8727 10G Ethernet PHYs.
338
339config BCM_CYGNUS_PHY
340	tristate "Broadcom Cygnus/Omega SoC internal PHY"
341	depends on ARCH_BCM_IPROC || COMPILE_TEST
342	depends on MDIO_BCM_IPROC
343	select BCM_NET_PHYLIB
344	help
345	  This PHY driver is for the 1G internal PHYs of the Broadcom
346	  Cygnus and Omega Family SoC.
347
348	  Currently supports internal PHY's used in the BCM11300,
349	  BCM11320, BCM11350, BCM11360, BCM58300, BCM58302,
350	  BCM58303 & BCM58305 Broadcom Cygnus SoCs.
351
352config BCM_NET_PHYLIB
353	tristate
354
355config BROADCOM_PHY
356	tristate "Broadcom PHYs"
357	select BCM_NET_PHYLIB
358	help
359	  Currently supports the BCM5411, BCM5421, BCM5461, BCM54616S, BCM5464,
360	  BCM5481, BCM54810 and BCM5482 PHYs.
361
362config BCM54140_PHY
363	tristate "Broadcom BCM54140 PHY"
364	depends on PHYLIB
365	depends on HWMON || HWMON=n
366	select BCM_NET_PHYLIB
367	help
368	  Support the Broadcom BCM54140 Quad SGMII/QSGMII PHY.
369
370	  This driver also supports the hardware monitoring of this PHY and
371	  exposes voltage and temperature sensors.
372
373config BCM84881_PHY
374	tristate "Broadcom BCM84881 PHY"
375	depends on PHYLIB
376	help
377	  Support the Broadcom BCM84881 PHY.
378
379config CICADA_PHY
380	tristate "Cicada PHYs"
381	help
382	  Currently supports the cis8204
383
384config CORTINA_PHY
385	tristate "Cortina EDC CDR 10G Ethernet PHY"
386	help
387	  Currently supports the CS4340 phy.
388
389config DAVICOM_PHY
390	tristate "Davicom PHYs"
391	help
392	  Currently supports dm9161e and dm9131
393
394config DP83822_PHY
395	tristate "Texas Instruments DP83822/825/826 PHYs"
396	help
397	  Supports the DP83822, DP83825I, DP83825CM, DP83825CS, DP83825S,
398	  DP83826C and DP83826NC PHYs.
399
400config DP83TC811_PHY
401	tristate "Texas Instruments DP83TC811 PHY"
402	help
403	  Supports the DP83TC811 PHY.
404
405config DP83848_PHY
406	tristate "Texas Instruments DP83848 PHY"
407	help
408	  Supports the DP83848 PHY.
409
410config DP83867_PHY
411	tristate "Texas Instruments DP83867 Gigabit PHY"
412	help
413	  Currently supports the DP83867 PHY.
414
415config DP83869_PHY
416	tristate "Texas Instruments DP83869 Gigabit PHY"
417	help
418	  Currently supports the DP83869 PHY.  This PHY supports copper and
419	  fiber connections.
420
421config FIXED_PHY
422	tristate "MDIO Bus/PHY emulation with fixed speed/link PHYs"
423	depends on PHYLIB
424	select SWPHY
425	help
426	  Adds the platform "fixed" MDIO Bus to cover the boards that use
427	  PHYs that are not connected to the real MDIO bus.
428
429	  Currently tested with mpc866ads and mpc8349e-mitx.
430
431config ICPLUS_PHY
432	tristate "ICPlus PHYs"
433	help
434	  Currently supports the IP175C and IP1001 PHYs.
435
436config INTEL_XWAY_PHY
437	tristate "Intel XWAY PHYs"
438	help
439	  Supports the Intel XWAY (former Lantiq) 11G and 22E PHYs.
440	  These PHYs are marked as standalone chips under the names
441	  PEF 7061, PEF 7071 and PEF 7072 or integrated into the Intel
442	  SoCs xRX200, xRX300, xRX330, xRX350 and xRX550.
443
444config LSI_ET1011C_PHY
445	tristate "LSI ET1011C PHY"
446	help
447	  Supports the LSI ET1011C PHY.
448
449config LXT_PHY
450	tristate "Intel LXT PHYs"
451	help
452	  Currently supports the lxt970, lxt971
453
454config MARVELL_PHY
455	tristate "Marvell PHYs"
456	help
457	  Currently has a driver for the 88E1011S
458
459config MARVELL_10G_PHY
460	tristate "Marvell Alaska 10Gbit PHYs"
461	help
462	  Support for the Marvell Alaska MV88X3310 and compatible PHYs.
463
464config MESON_GXL_PHY
465	tristate "Amlogic Meson GXL Internal PHY"
466	depends on ARCH_MESON || COMPILE_TEST
467	help
468	  Currently has a driver for the Amlogic Meson GXL Internal PHY
469
470config MICREL_PHY
471	tristate "Micrel PHYs"
472	help
473	  Supports the KSZ9021, VSC8201, KS8001 PHYs.
474
475config MICROCHIP_PHY
476	tristate "Microchip PHYs"
477	help
478	  Supports the LAN88XX PHYs.
479
480config MICROCHIP_T1_PHY
481	tristate "Microchip T1 PHYs"
482	help
483	  Supports the LAN87XX PHYs.
484
485config MICROSEMI_PHY
486	tristate "Microsemi PHYs"
487	depends on MACSEC || MACSEC=n
488	select CRYPTO_LIB_AES if MACSEC
489	help
490	  Currently supports VSC8514, VSC8530, VSC8531, VSC8540 and VSC8541 PHYs
491
492config NATIONAL_PHY
493	tristate "National Semiconductor PHYs"
494	help
495	  Currently supports the DP83865 PHY.
496
497config NXP_TJA11XX_PHY
498	tristate "NXP TJA11xx PHYs support"
499	depends on HWMON
500	help
501	  Currently supports the NXP TJA1100 and TJA1101 PHY.
502
503config AT803X_PHY
504	tristate "Qualcomm Atheros AR803X PHYs"
505	depends on REGULATOR
506	help
507	  Currently supports the AR8030, AR8031, AR8033 and AR8035 model
508
509config QSEMI_PHY
510	tristate "Quality Semiconductor PHYs"
511	help
512	  Currently supports the qs6612
513
514config REALTEK_PHY
515	tristate "Realtek PHYs"
516	help
517	  Supports the Realtek 821x PHY.
518
519config RENESAS_PHY
520	tristate "Driver for Renesas PHYs"
521	help
522	  Supports the Renesas PHYs uPD60620 and uPD60620A.
523
524config ROCKCHIP_PHY
525	tristate "Driver for Rockchip Ethernet PHYs"
526	help
527	  Currently supports the integrated Ethernet PHY.
528
529config SMSC_PHY
530	tristate "SMSC PHYs"
531	help
532	  Currently supports the LAN83C185, LAN8187 and LAN8700 PHYs
533
534config STE10XP
535	tristate "STMicroelectronics STe10Xp PHYs"
536	help
537	  This is the driver for the STe100p and STe101p PHYs.
538
539config TERANETICS_PHY
540	tristate "Teranetics PHYs"
541	help
542	  Currently supports the Teranetics TN2020
543
544config VITESSE_PHY
545	tristate "Vitesse PHYs"
546	help
547	  Currently supports the vsc8244
548
549config XILINX_GMII2RGMII
550	tristate "Xilinx GMII2RGMII converter driver"
551	help
552	  This driver support xilinx GMII to RGMII IP core it provides
553	  the Reduced Gigabit Media Independent Interface(RGMII) between
554	  Ethernet physical media devices and the Gigabit Ethernet controller.
555
556endif # PHYLIB
557
558config MICREL_KS8995MA
559	tristate "Micrel KS8995MA 5-ports 10/100 managed Ethernet switch"
560	depends on SPI
561