xref: /openbmc/linux/drivers/net/phy/Kconfig (revision 4eb5928d)
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	select MDIO_DEVRES
198	help
199	  A USB to MDIO converter present on development boards for
200	  Marvell's Link Street family of Ethernet switches.
201
202config MDIO_OCTEON
203	tristate "Octeon and some ThunderX SOCs MDIO buses"
204	depends on (64BIT && OF_MDIO) || COMPILE_TEST
205	depends on HAS_IOMEM
206	select MDIO_CAVIUM
207	help
208	  This module provides a driver for the Octeon and ThunderX MDIO
209	  buses. It is required by the Octeon and ThunderX ethernet device
210	  drivers on some systems.
211
212config MDIO_SUN4I
213	tristate "Allwinner sun4i MDIO interface support"
214	depends on ARCH_SUNXI || COMPILE_TEST
215	help
216	  This driver supports the MDIO interface found in the network
217	  interface units of the Allwinner SoC that have an EMAC (A10,
218	  A12, A10s, etc.)
219
220config MDIO_THUNDER
221	tristate "ThunderX SOCs MDIO buses"
222	depends on 64BIT
223	depends on PCI
224	select MDIO_CAVIUM
225	help
226	  This driver supports the MDIO interfaces found on Cavium
227	  ThunderX SoCs when the MDIO bus device appears as a PCI
228	  device.
229
230config MDIO_XGENE
231	tristate "APM X-Gene SoC MDIO bus controller"
232	depends on ARCH_XGENE || COMPILE_TEST
233	help
234	  This module provides a driver for the MDIO busses found in the
235	  APM X-Gene SoC's.
236
237config MDIO_XPCS
238	tristate "Synopsys DesignWare XPCS controller"
239	help
240	  This module provides helper functions for Synopsys DesignWare XPCS
241	  controllers.
242
243endif
244endif
245
246config PHYLINK
247	tristate
248	depends on NETDEVICES
249	select PHYLIB
250	select SWPHY
251	help
252	  PHYlink models the link between the PHY and MAC, allowing fixed
253	  configuration links, PHYs, and Serdes links with MAC level
254	  autonegotiation modes.
255
256menuconfig PHYLIB
257	tristate "PHY Device support and infrastructure"
258	depends on NETDEVICES
259	select MDIO_DEVICE
260	select MDIO_DEVRES
261	help
262	  Ethernet controllers are usually attached to PHY
263	  devices.  This option provides infrastructure for
264	  managing PHY devices.
265
266if PHYLIB
267
268config SWPHY
269	bool
270
271config LED_TRIGGER_PHY
272	bool "Support LED triggers for tracking link state"
273	depends on LEDS_TRIGGERS
274	help
275	  Adds support for a set of LED trigger events per-PHY.  Link
276	  state change will trigger the events, for consumption by an
277	  LED class driver.  There are triggers for each link speed currently
278	  supported by the PHY and also a one common "link" trigger as a
279	  logical-or of all the link speed ones.
280	  All these triggers are named according to the following pattern:
281	      <mii bus id>:<phy>:<speed>
282
283	  Where speed is in the form:
284		<Speed in megabits>Mbps OR <Speed in gigabits>Gbps OR link
285		for any speed known to the PHY.
286
287
288comment "MII PHY device drivers"
289
290config SFP
291	tristate "SFP cage support"
292	depends on I2C && PHYLINK
293	depends on HWMON || HWMON=n
294	select MDIO_I2C
295
296config ADIN_PHY
297	tristate "Analog Devices Industrial Ethernet PHYs"
298	help
299	  Adds support for the Analog Devices Industrial Ethernet PHYs.
300	  Currently supports the:
301	  - ADIN1200 - Robust,Industrial, Low Power 10/100 Ethernet PHY
302	  - ADIN1300 - Robust,Industrial, Low Latency 10/100/1000 Gigabit
303	    Ethernet PHY
304
305config AMD_PHY
306	tristate "AMD PHYs"
307	help
308	  Currently supports the am79c874
309
310config AQUANTIA_PHY
311	tristate "Aquantia PHYs"
312	help
313	  Currently supports the Aquantia AQ1202, AQ2104, AQR105, AQR405
314
315config AX88796B_PHY
316	tristate "Asix PHYs"
317	help
318	  Currently supports the Asix Electronics PHY found in the X-Surf 100
319	  AX88796B package.
320
321config BCM63XX_PHY
322	tristate "Broadcom 63xx SOCs internal PHY"
323	depends on BCM63XX || COMPILE_TEST
324	select BCM_NET_PHYLIB
325	help
326	  Currently supports the 6348 and 6358 PHYs.
327
328config BCM7XXX_PHY
329	tristate "Broadcom 7xxx SOCs internal PHYs"
330	select BCM_NET_PHYLIB
331	help
332	  Currently supports the BCM7366, BCM7439, BCM7445, and
333	  40nm and 65nm generation of BCM7xxx Set Top Box SoCs.
334
335config BCM87XX_PHY
336	tristate "Broadcom BCM8706 and BCM8727 PHYs"
337	help
338	  Currently supports the BCM8706 and BCM8727 10G Ethernet PHYs.
339
340config BCM_CYGNUS_PHY
341	tristate "Broadcom Cygnus/Omega SoC internal PHY"
342	depends on ARCH_BCM_IPROC || COMPILE_TEST
343	depends on MDIO_BCM_IPROC
344	select BCM_NET_PHYLIB
345	help
346	  This PHY driver is for the 1G internal PHYs of the Broadcom
347	  Cygnus and Omega Family SoC.
348
349	  Currently supports internal PHY's used in the BCM11300,
350	  BCM11320, BCM11350, BCM11360, BCM58300, BCM58302,
351	  BCM58303 & BCM58305 Broadcom Cygnus SoCs.
352
353config BCM_NET_PHYLIB
354	tristate
355
356config BROADCOM_PHY
357	tristate "Broadcom PHYs"
358	select BCM_NET_PHYLIB
359	help
360	  Currently supports the BCM5411, BCM5421, BCM5461, BCM54616S, BCM5464,
361	  BCM5481, BCM54810 and BCM5482 PHYs.
362
363config BCM54140_PHY
364	tristate "Broadcom BCM54140 PHY"
365	depends on PHYLIB
366	depends on HWMON || HWMON=n
367	select BCM_NET_PHYLIB
368	help
369	  Support the Broadcom BCM54140 Quad SGMII/QSGMII PHY.
370
371	  This driver also supports the hardware monitoring of this PHY and
372	  exposes voltage and temperature sensors.
373
374config BCM84881_PHY
375	tristate "Broadcom BCM84881 PHY"
376	depends on PHYLIB
377	help
378	  Support the Broadcom BCM84881 PHY.
379
380config CICADA_PHY
381	tristate "Cicada PHYs"
382	help
383	  Currently supports the cis8204
384
385config CORTINA_PHY
386	tristate "Cortina EDC CDR 10G Ethernet PHY"
387	help
388	  Currently supports the CS4340 phy.
389
390config DAVICOM_PHY
391	tristate "Davicom PHYs"
392	help
393	  Currently supports dm9161e and dm9131
394
395config DP83822_PHY
396	tristate "Texas Instruments DP83822/825/826 PHYs"
397	help
398	  Supports the DP83822, DP83825I, DP83825CM, DP83825CS, DP83825S,
399	  DP83826C and DP83826NC PHYs.
400
401config DP83TC811_PHY
402	tristate "Texas Instruments DP83TC811 PHY"
403	help
404	  Supports the DP83TC811 PHY.
405
406config DP83848_PHY
407	tristate "Texas Instruments DP83848 PHY"
408	help
409	  Supports the DP83848 PHY.
410
411config DP83867_PHY
412	tristate "Texas Instruments DP83867 Gigabit PHY"
413	help
414	  Currently supports the DP83867 PHY.
415
416config DP83869_PHY
417	tristate "Texas Instruments DP83869 Gigabit PHY"
418	help
419	  Currently supports the DP83869 PHY.  This PHY supports copper and
420	  fiber connections.
421
422config FIXED_PHY
423	tristate "MDIO Bus/PHY emulation with fixed speed/link PHYs"
424	depends on PHYLIB
425	select SWPHY
426	help
427	  Adds the platform "fixed" MDIO Bus to cover the boards that use
428	  PHYs that are not connected to the real MDIO bus.
429
430	  Currently tested with mpc866ads and mpc8349e-mitx.
431
432config ICPLUS_PHY
433	tristate "ICPlus PHYs"
434	help
435	  Currently supports the IP175C and IP1001 PHYs.
436
437config INTEL_XWAY_PHY
438	tristate "Intel XWAY PHYs"
439	help
440	  Supports the Intel XWAY (former Lantiq) 11G and 22E PHYs.
441	  These PHYs are marked as standalone chips under the names
442	  PEF 7061, PEF 7071 and PEF 7072 or integrated into the Intel
443	  SoCs xRX200, xRX300, xRX330, xRX350 and xRX550.
444
445config LSI_ET1011C_PHY
446	tristate "LSI ET1011C PHY"
447	help
448	  Supports the LSI ET1011C PHY.
449
450config LXT_PHY
451	tristate "Intel LXT PHYs"
452	help
453	  Currently supports the lxt970, lxt971
454
455config MARVELL_PHY
456	tristate "Marvell PHYs"
457	help
458	  Currently has a driver for the 88E1011S
459
460config MARVELL_10G_PHY
461	tristate "Marvell Alaska 10Gbit PHYs"
462	help
463	  Support for the Marvell Alaska MV88X3310 and compatible PHYs.
464
465config MESON_GXL_PHY
466	tristate "Amlogic Meson GXL Internal PHY"
467	depends on ARCH_MESON || COMPILE_TEST
468	help
469	  Currently has a driver for the Amlogic Meson GXL Internal PHY
470
471config MICREL_PHY
472	tristate "Micrel PHYs"
473	help
474	  Supports the KSZ9021, VSC8201, KS8001 PHYs.
475
476config MICROCHIP_PHY
477	tristate "Microchip PHYs"
478	help
479	  Supports the LAN88XX PHYs.
480
481config MICROCHIP_T1_PHY
482	tristate "Microchip T1 PHYs"
483	help
484	  Supports the LAN87XX PHYs.
485
486config MICROSEMI_PHY
487	tristate "Microsemi PHYs"
488	depends on MACSEC || MACSEC=n
489	select CRYPTO_LIB_AES if MACSEC
490	help
491	  Currently supports VSC8514, VSC8530, VSC8531, VSC8540 and VSC8541 PHYs
492
493config NATIONAL_PHY
494	tristate "National Semiconductor PHYs"
495	help
496	  Currently supports the DP83865 PHY.
497
498config NXP_TJA11XX_PHY
499	tristate "NXP TJA11xx PHYs support"
500	depends on HWMON
501	help
502	  Currently supports the NXP TJA1100 and TJA1101 PHY.
503
504config AT803X_PHY
505	tristate "Qualcomm Atheros AR803X PHYs"
506	depends on REGULATOR
507	help
508	  Currently supports the AR8030, AR8031, AR8033 and AR8035 model
509
510config QSEMI_PHY
511	tristate "Quality Semiconductor PHYs"
512	help
513	  Currently supports the qs6612
514
515config REALTEK_PHY
516	tristate "Realtek PHYs"
517	help
518	  Supports the Realtek 821x PHY.
519
520config RENESAS_PHY
521	tristate "Driver for Renesas PHYs"
522	help
523	  Supports the Renesas PHYs uPD60620 and uPD60620A.
524
525config ROCKCHIP_PHY
526	tristate "Driver for Rockchip Ethernet PHYs"
527	help
528	  Currently supports the integrated Ethernet PHY.
529
530config SMSC_PHY
531	tristate "SMSC PHYs"
532	help
533	  Currently supports the LAN83C185, LAN8187 and LAN8700 PHYs
534
535config STE10XP
536	tristate "STMicroelectronics STe10Xp PHYs"
537	help
538	  This is the driver for the STe100p and STe101p PHYs.
539
540config TERANETICS_PHY
541	tristate "Teranetics PHYs"
542	help
543	  Currently supports the Teranetics TN2020
544
545config VITESSE_PHY
546	tristate "Vitesse PHYs"
547	help
548	  Currently supports the vsc8244
549
550config XILINX_GMII2RGMII
551	tristate "Xilinx GMII2RGMII converter driver"
552	help
553	  This driver support xilinx GMII to RGMII IP core it provides
554	  the Reduced Gigabit Media Independent Interface(RGMII) between
555	  Ethernet physical media devices and the Gigabit Ethernet controller.
556
557endif # PHYLIB
558
559config MICREL_KS8995MA
560	tristate "Micrel KS8995MA 5-ports 10/100 managed Ethernet switch"
561	depends on SPI
562