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