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