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