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