xref: /linux/drivers/net/mdio/Kconfig (revision ab93e0dd72c37d378dd936f031ffb83ff2bd87ce)
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
290