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 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
30if MDIO_BUS
31
32config MDIO_DEVRES
33 tristate
34
35config 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
43config 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
50config 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
63config 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
72config 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
81config 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
90config MDIO_CAVIUM
91 tristate
92
93config 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
103config 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
110config 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
120config 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
128config 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
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 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
155config 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
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_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
181comment "MDIO Multiplexers"
182
183config 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
192config 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
203config 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
214config 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
224config 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
236config 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
250endif
251endif