Loading...
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 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
78config 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
87config 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
96config 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
105config MDIO_CAVIUM
106 tristate
107
108config 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
118config 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
125config 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
135config 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
143config 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
152config 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
159config 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
170config 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
179config 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
188config 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
199config 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
210comment "MDIO Multiplexers"
211
212config 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
221config 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
232config 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
243config 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
254config 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
265config 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
275config 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
287config 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
301endif
302endif
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 && REGMAP_MMIO
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 depends on COMMON_CLK
173 help
174 This driver supports the MDIO interface found in Qualcomm
175 IPQ40xx, IPQ60xx, IPQ807x and IPQ50xx series Soc-s.
176
177config MDIO_IPQ8064
178 tristate "Qualcomm IPQ8064 MDIO interface support"
179 depends on HAS_IOMEM && OF_MDIO
180 depends on MFD_SYSCON
181 help
182 This driver supports the MDIO interface found in the network
183 interface units of the IPQ8064 SoC
184
185config MDIO_THUNDER
186 tristate "ThunderX SOCs MDIO buses"
187 depends on 64BIT
188 depends on PCI
189 select MDIO_CAVIUM
190 select MDIO_DEVRES
191 help
192 This driver supports the MDIO interfaces found on Cavium
193 ThunderX SoCs when the MDIO bus device appears as a PCI
194 device.
195
196comment "MDIO Multiplexers"
197
198config MDIO_BUS_MUX
199 tristate
200 depends on OF_MDIO
201 help
202 This module provides a driver framework for MDIO bus
203 multiplexers which connect one of several child MDIO busses
204 to a parent bus. Switching between child busses is done by
205 device specific drivers.
206
207config MDIO_BUS_MUX_MESON_G12A
208 tristate "Amlogic G12a based MDIO bus multiplexer"
209 depends on ARCH_MESON || COMPILE_TEST
210 depends on OF_MDIO && HAS_IOMEM && COMMON_CLK
211 select MDIO_BUS_MUX
212 default m if ARCH_MESON
213 help
214 This module provides a driver for the MDIO multiplexer/glue of
215 the amlogic g12a SoC. The multiplexers connects either the external
216 or the internal MDIO bus to the parent bus.
217
218config MDIO_BUS_MUX_BCM6368
219 tristate "Broadcom BCM6368 MDIO bus multiplexers"
220 depends on OF && OF_MDIO && (BMIPS_GENERIC || COMPILE_TEST)
221 select MDIO_BUS_MUX
222 default BMIPS_GENERIC
223 help
224 This module provides a driver for MDIO bus multiplexers found in
225 BCM6368 based Broadcom SoCs. This multiplexer connects one of several
226 child MDIO bus to a parent bus. Buses could be internal as well as
227 external and selection logic lies inside the same multiplexer.
228
229config MDIO_BUS_MUX_BCM_IPROC
230 tristate "Broadcom iProc based MDIO bus multiplexers"
231 depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST)
232 select MDIO_BUS_MUX
233 default ARCH_BCM_IPROC
234 help
235 This module provides a driver for MDIO bus multiplexers found in
236 iProc based Broadcom SoCs. This multiplexer connects one of several
237 child MDIO bus to a parent bus. Buses could be internal as well as
238 external and selection logic lies inside the same multiplexer.
239
240config MDIO_BUS_MUX_GPIO
241 tristate "GPIO controlled MDIO bus multiplexers"
242 depends on OF_GPIO && OF_MDIO
243 select MDIO_BUS_MUX
244 help
245 This module provides a driver for MDIO bus multiplexers that
246 are controlled via GPIO lines. The multiplexer connects one of
247 several child MDIO busses to a parent bus. Child bus
248 selection is under the control of GPIO lines.
249
250config MDIO_BUS_MUX_MULTIPLEXER
251 tristate "MDIO bus multiplexer using kernel multiplexer subsystem"
252 depends on OF_MDIO
253 select MULTIPLEXER
254 select MDIO_BUS_MUX
255 help
256 This module provides a driver for MDIO bus multiplexer
257 that is controlled via the kernel multiplexer subsystem. The
258 bus multiplexer connects one of several child MDIO busses to
259 a parent bus. Child bus selection is under the control of
260 the kernel multiplexer subsystem.
261
262config MDIO_BUS_MUX_MMIOREG
263 tristate "MMIO device-controlled MDIO bus multiplexers"
264 depends on OF_MDIO && HAS_IOMEM
265 select MDIO_BUS_MUX
266 help
267 This module provides a driver for MDIO bus multiplexers that
268 are controlled via a simple memory-mapped device, like an FPGA.
269 The multiplexer connects one of several child MDIO busses to a
270 parent bus. Child bus selection is under the control of one of
271 the FPGA's registers.
272
273 Currently, only 8/16/32 bits registers are supported.
274
275
276endif
277endif