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