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