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