Merge tag 'jfs-6.5' of github.com:kleikamp/linux-shaggy
[linux-2.6-microblaze.git] / drivers / net / mdio / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # MDIO Layer Configuration
4 #
5
6 menuconfig MDIO_DEVICE
7         tristate "MDIO bus device drivers"
8         help
9           MDIO devices and driver infrastructure code.
10
11 if MDIO_DEVICE
12
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.
21
22 config FWNODE_MDIO
23         def_tristate PHYLIB
24         depends on (ACPI || OF) || COMPILE_TEST
25         select FIXED_PHY
26         help
27           FWNODE MDIO bus (Ethernet PHY) accessors
28
29 config OF_MDIO
30         def_tristate PHYLIB
31         depends on OF
32         depends on PHYLIB
33         select FIXED_PHY
34         help
35           OpenFirmware MDIO bus (Ethernet PHY) accessors
36
37 config ACPI_MDIO
38         def_tristate PHYLIB
39         depends on ACPI
40         depends on PHYLIB
41         help
42           ACPI MDIO bus (Ethernet PHY) accessors
43
44 if MDIO_BUS
45
46 config MDIO_DEVRES
47         tristate
48
49 config MDIO_SUN4I
50         tristate "Allwinner sun4i MDIO interface support"
51         depends on ARCH_SUNXI || COMPILE_TEST
52         help
53           This driver supports the MDIO interface found in the network
54           interface units of the Allwinner SoC that have an EMAC (A10,
55           A12, A10s, etc.)
56
57 config MDIO_XGENE
58         tristate "APM X-Gene SoC MDIO bus controller"
59         depends on ARCH_XGENE || COMPILE_TEST
60         help
61           This module provides a driver for the MDIO busses found in the
62           APM X-Gene SoC's.
63
64 config MDIO_ASPEED
65         tristate "ASPEED MDIO bus controller"
66         depends on ARCH_ASPEED || COMPILE_TEST
67         depends on OF_MDIO && HAS_IOMEM
68         depends on MDIO_DEVRES
69         help
70           This module provides a driver for the independent MDIO bus
71           controllers found in the ASPEED AST2600 SoC. This is a driver for the
72           third revision of the ASPEED MDIO register interface - the first two
73           revisions are the "old" and "new" interfaces found in the AST2400 and
74           AST2500, embedded in the MAC. For legacy reasons, FTGMAC100 driver
75           continues to drive the embedded MDIO controller for the AST2400 and
76           AST2500 SoCs, so say N if AST2600 support is not required.
77
78 config MDIO_BITBANG
79         tristate "Bitbanged MDIO buses"
80         help
81           This module implements the MDIO bus protocol in software,
82           for use by low level drivers that export the ability to
83           drive the relevant pins.
84
85           If in doubt, say N.
86
87 config MDIO_BCM_IPROC
88         tristate "Broadcom iProc MDIO bus controller"
89         depends on ARCH_BCM_IPROC || COMPILE_TEST
90         depends on HAS_IOMEM && OF_MDIO
91         default ARCH_BCM_IPROC
92         help
93           This module provides a driver for the MDIO busses found in the
94           Broadcom iProc SoC's.
95
96 config MDIO_BCM_UNIMAC
97         tristate "Broadcom UniMAC MDIO bus controller"
98         depends on HAS_IOMEM
99         help
100           This module provides a driver for the Broadcom UniMAC MDIO busses.
101           This hardware can be found in the Broadcom GENET Ethernet MAC
102           controllers as well as some Broadcom Ethernet switches such as the
103           Starfighter 2 switches.
104
105 config MDIO_CAVIUM
106         tristate
107
108 config MDIO_GPIO
109         tristate "GPIO lib-based bitbanged MDIO buses"
110         depends on MDIO_BITBANG
111         depends on GPIOLIB || COMPILE_TEST
112         help
113           Supports GPIO lib-based MDIO busses.
114
115           To compile this driver as a module, choose M here: the module
116           will be called mdio-gpio.
117
118 config MDIO_HISI_FEMAC
119         tristate "Hisilicon FEMAC MDIO bus controller"
120         depends on HAS_IOMEM && OF_MDIO
121         help
122           This module provides a driver for the MDIO busses found in the
123           Hisilicon SoC that have an Fast Ethernet MAC.
124
125 config MDIO_I2C
126         tristate
127         depends on I2C
128         help
129           Support I2C based PHYs.  This provides a MDIO bus bridged
130           to I2C to allow PHYs connected in I2C mode to be accessed
131           using the existing infrastructure.
132
133           This is library mode.
134
135 config MDIO_MVUSB
136         tristate "Marvell USB to MDIO Adapter"
137         depends on USB
138         select MDIO_DEVRES
139         help
140           A USB to MDIO converter present on development boards for
141           Marvell's Link Street family of Ethernet switches.
142
143 config MDIO_MSCC_MIIM
144         tristate "Microsemi MIIM interface support"
145         depends on HAS_IOMEM && REGMAP_MMIO
146         select MDIO_DEVRES
147         help
148           This driver supports the MIIM (MDIO) interface found in the network
149           switches of the Microsemi SoCs; it is recommended to switch on
150           CONFIG_HIGH_RES_TIMERS
151
152 config MDIO_MOXART
153         tristate "MOXA ART MDIO interface support"
154         depends on ARCH_MOXART || COMPILE_TEST
155         help
156           This driver supports the MDIO interface found in the network
157           interface units of the MOXA ART SoC
158
159 config MDIO_OCTEON
160         tristate "Octeon and some ThunderX SOCs MDIO buses"
161         depends on (64BIT && OF_MDIO) || COMPILE_TEST
162         depends on HAS_IOMEM
163         select MDIO_CAVIUM
164         select MDIO_DEVRES
165         help
166           This module provides a driver for the Octeon and ThunderX MDIO
167           buses. It is required by the Octeon and ThunderX ethernet device
168           drivers on some systems.
169
170 config MDIO_IPQ4019
171         tristate "Qualcomm IPQ4019 MDIO interface support"
172         depends on HAS_IOMEM && OF_MDIO
173         depends on COMMON_CLK
174         depends on MDIO_DEVRES
175         help
176           This driver supports the MDIO interface found in Qualcomm
177           IPQ40xx, IPQ60xx, IPQ807x and IPQ50xx series Soc-s.
178
179 config MDIO_IPQ8064
180         tristate "Qualcomm IPQ8064 MDIO interface support"
181         depends on HAS_IOMEM && OF_MDIO
182         depends on MFD_SYSCON
183         depends on MDIO_DEVRES
184         help
185           This driver supports the MDIO interface found in the network
186           interface units of the IPQ8064 SoC
187
188 config MDIO_REGMAP
189         tristate
190         help
191           This driver allows using MDIO devices that are not sitting on a
192           regular MDIO bus, but still exposes the standard 802.3 register
193           layout. It's regmap-based so that it can be used on integrated,
194           memory-mapped PHYs, SPI PHYs and so on. A new virtual MDIO bus is
195           created, and its read/write operations are mapped to the underlying
196           regmap. Users willing to use this driver must explicitly select
197           REGMAP.
198
199 config MDIO_THUNDER
200         tristate "ThunderX SOCs MDIO buses"
201         depends on 64BIT
202         depends on PCI
203         select MDIO_CAVIUM
204         select MDIO_DEVRES
205         help
206           This driver supports the MDIO interfaces found on Cavium
207           ThunderX SoCs when the MDIO bus device appears as a PCI
208           device.
209
210 comment "MDIO Multiplexers"
211
212 config MDIO_BUS_MUX
213         tristate
214         depends on OF_MDIO
215         help
216           This module provides a driver framework for MDIO bus
217           multiplexers which connect one of several child MDIO busses
218           to a parent bus.  Switching between child busses is done by
219           device specific drivers.
220
221 config MDIO_BUS_MUX_MESON_G12A
222         tristate "Amlogic G12a based MDIO bus multiplexer"
223         depends on ARCH_MESON || COMPILE_TEST
224         depends on OF_MDIO && HAS_IOMEM && COMMON_CLK
225         select MDIO_BUS_MUX
226         default m if ARCH_MESON
227         help
228           This module provides a driver for the MDIO multiplexer/glue of
229           the amlogic g12a SoC. The multiplexers connects either the external
230           or the internal MDIO bus to the parent bus.
231
232 config MDIO_BUS_MUX_MESON_GXL
233         tristate "Amlogic GXL based MDIO bus multiplexer"
234         depends on ARCH_MESON || COMPILE_TEST
235         depends on OF_MDIO && HAS_IOMEM && COMMON_CLK
236         select MDIO_BUS_MUX
237         default m if ARCH_MESON
238         help
239           This module provides a driver for the MDIO multiplexer/glue of
240           the amlogic GXL SoC. The multiplexer connects either the external
241           or the internal MDIO bus to the parent bus.
242
243 config MDIO_BUS_MUX_BCM6368
244         tristate "Broadcom BCM6368 MDIO bus multiplexers"
245         depends on OF && OF_MDIO && (BMIPS_GENERIC || COMPILE_TEST)
246         select MDIO_BUS_MUX
247         default BMIPS_GENERIC
248         help
249           This module provides a driver for MDIO bus multiplexers found in
250           BCM6368 based Broadcom SoCs. This multiplexer connects one of several
251           child MDIO bus to a parent bus. Buses could be internal as well as
252           external and selection logic lies inside the same multiplexer.
253
254 config MDIO_BUS_MUX_BCM_IPROC
255         tristate "Broadcom iProc based MDIO bus multiplexers"
256         depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST)
257         select MDIO_BUS_MUX
258         default ARCH_BCM_IPROC
259         help
260           This module provides a driver for MDIO bus multiplexers found in
261           iProc based Broadcom SoCs. This multiplexer connects one of several
262           child MDIO bus to a parent bus. Buses could be internal as well as
263           external and selection logic lies inside the same multiplexer.
264
265 config MDIO_BUS_MUX_GPIO
266         tristate "GPIO controlled MDIO bus multiplexers"
267         depends on OF_GPIO && OF_MDIO
268         select MDIO_BUS_MUX
269         help
270           This module provides a driver for MDIO bus multiplexers that
271           are controlled via GPIO lines.  The multiplexer connects one of
272           several child MDIO busses to a parent bus.  Child bus
273           selection is under the control of GPIO lines.
274
275 config MDIO_BUS_MUX_MULTIPLEXER
276         tristate "MDIO bus multiplexer using kernel multiplexer subsystem"
277         depends on OF_MDIO
278         select MULTIPLEXER
279         select MDIO_BUS_MUX
280         help
281           This module provides a driver for MDIO bus multiplexer
282           that is controlled via the kernel multiplexer subsystem. The
283           bus multiplexer connects one of several child MDIO busses to
284           a parent bus.  Child bus selection is under the control of
285           the kernel multiplexer subsystem.
286
287 config MDIO_BUS_MUX_MMIOREG
288         tristate "MMIO device-controlled MDIO bus multiplexers"
289         depends on OF_MDIO && HAS_IOMEM
290         select MDIO_BUS_MUX
291         help
292           This module provides a driver for MDIO bus multiplexers that
293           are controlled via a simple memory-mapped device, like an FPGA.
294           The multiplexer connects one of several child MDIO busses to a
295           parent bus.  Child bus selection is under the control of one of
296           the FPGA's registers.
297
298           Currently, only 8/16/32 bits registers are supported.
299
300
301 endif
302 endif