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