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