xref: /openbmc/linux/drivers/net/mdio/Kconfig (revision 37f9b2a6)
1a9770eacSAndrew Lunn# SPDX-License-Identifier: GPL-2.0-only
2a9770eacSAndrew Lunn#
3a9770eacSAndrew Lunn# MDIO Layer Configuration
4a9770eacSAndrew Lunn#
5a9770eacSAndrew Lunn
6a9770eacSAndrew Lunnmenuconfig MDIO_DEVICE
7a9770eacSAndrew Lunn	tristate "MDIO bus device drivers"
8a9770eacSAndrew Lunn	help
9a9770eacSAndrew Lunn	  MDIO devices and driver infrastructure code.
10a9770eacSAndrew Lunn
11a9770eacSAndrew Lunnif MDIO_DEVICE
12a9770eacSAndrew Lunn
13a9770eacSAndrew Lunnconfig MDIO_BUS
14a9770eacSAndrew Lunn	tristate
15a9770eacSAndrew Lunn	default m if PHYLIB=m
16a9770eacSAndrew Lunn	default MDIO_DEVICE
17a9770eacSAndrew Lunn	help
18a9770eacSAndrew Lunn	  This internal symbol is used for link time dependencies and it
19a9770eacSAndrew Lunn	  reflects whether the mdio_bus/mdio_device code is built as a
20a9770eacSAndrew Lunn	  loadable module or built-in.
21a9770eacSAndrew Lunn
22bc1bee3bSCalvin Johnsonconfig FWNODE_MDIO
23bc1bee3bSCalvin Johnson	def_tristate PHYLIB
24bc1bee3bSCalvin Johnson	depends on (ACPI || OF) || COMPILE_TEST
25bc1bee3bSCalvin Johnson	select FIXED_PHY
26bc1bee3bSCalvin Johnson	help
27bc1bee3bSCalvin Johnson	  FWNODE MDIO bus (Ethernet PHY) accessors
28bc1bee3bSCalvin Johnson
2914b26b12SCalvin Johnsonconfig OF_MDIO
3014b26b12SCalvin Johnson	def_tristate PHYLIB
3114b26b12SCalvin Johnson	depends on OF
3214b26b12SCalvin Johnson	depends on PHYLIB
3314b26b12SCalvin Johnson	select FIXED_PHY
3414b26b12SCalvin Johnson	help
3514b26b12SCalvin Johnson	  OpenFirmware MDIO bus (Ethernet PHY) accessors
3614b26b12SCalvin Johnson
37803ca24dSCalvin Johnsonconfig ACPI_MDIO
38803ca24dSCalvin Johnson	def_tristate PHYLIB
39803ca24dSCalvin Johnson	depends on ACPI
40803ca24dSCalvin Johnson	depends on PHYLIB
41803ca24dSCalvin Johnson	help
42803ca24dSCalvin Johnson	  ACPI MDIO bus (Ethernet PHY) accessors
43803ca24dSCalvin Johnson
44a9770eacSAndrew Lunnif MDIO_BUS
45a9770eacSAndrew Lunn
46a9770eacSAndrew Lunnconfig MDIO_DEVRES
47a9770eacSAndrew Lunn	tristate
48a9770eacSAndrew Lunn
49a9770eacSAndrew Lunnconfig MDIO_SUN4I
50a9770eacSAndrew Lunn	tristate "Allwinner sun4i MDIO interface support"
51a9770eacSAndrew Lunn	depends on ARCH_SUNXI || COMPILE_TEST
52a9770eacSAndrew Lunn	help
53a9770eacSAndrew Lunn	  This driver supports the MDIO interface found in the network
54a9770eacSAndrew Lunn	  interface units of the Allwinner SoC that have an EMAC (A10,
55a9770eacSAndrew Lunn	  A12, A10s, etc.)
56a9770eacSAndrew Lunn
57a9770eacSAndrew Lunnconfig MDIO_XGENE
58a9770eacSAndrew Lunn	tristate "APM X-Gene SoC MDIO bus controller"
59a9770eacSAndrew Lunn	depends on ARCH_XGENE || COMPILE_TEST
60a9770eacSAndrew Lunn	help
61a9770eacSAndrew Lunn	  This module provides a driver for the MDIO busses found in the
62a9770eacSAndrew Lunn	  APM X-Gene SoC's.
63a9770eacSAndrew Lunn
64a9770eacSAndrew Lunnconfig MDIO_ASPEED
65a9770eacSAndrew Lunn	tristate "ASPEED MDIO bus controller"
66a9770eacSAndrew Lunn	depends on ARCH_ASPEED || COMPILE_TEST
67a9770eacSAndrew Lunn	depends on OF_MDIO && HAS_IOMEM
68*37f9b2a6SAndrew Lunn	depends on MDIO_DEVRES
69a9770eacSAndrew Lunn	help
70a9770eacSAndrew Lunn	  This module provides a driver for the independent MDIO bus
71a9770eacSAndrew Lunn	  controllers found in the ASPEED AST2600 SoC. This is a driver for the
72a9770eacSAndrew Lunn	  third revision of the ASPEED MDIO register interface - the first two
73a9770eacSAndrew Lunn	  revisions are the "old" and "new" interfaces found in the AST2400 and
74a9770eacSAndrew Lunn	  AST2500, embedded in the MAC. For legacy reasons, FTGMAC100 driver
75a9770eacSAndrew Lunn	  continues to drive the embedded MDIO controller for the AST2400 and
76a9770eacSAndrew Lunn	  AST2500 SoCs, so say N if AST2600 support is not required.
77a9770eacSAndrew Lunn
78a9770eacSAndrew Lunnconfig MDIO_BITBANG
79a9770eacSAndrew Lunn	tristate "Bitbanged MDIO buses"
80a9770eacSAndrew Lunn	help
81a9770eacSAndrew Lunn	  This module implements the MDIO bus protocol in software,
82a9770eacSAndrew Lunn	  for use by low level drivers that export the ability to
83a9770eacSAndrew Lunn	  drive the relevant pins.
84a9770eacSAndrew Lunn
85a9770eacSAndrew Lunn	  If in doubt, say N.
86a9770eacSAndrew Lunn
87a9770eacSAndrew Lunnconfig MDIO_BCM_IPROC
88a9770eacSAndrew Lunn	tristate "Broadcom iProc MDIO bus controller"
89a9770eacSAndrew Lunn	depends on ARCH_BCM_IPROC || COMPILE_TEST
90a9770eacSAndrew Lunn	depends on HAS_IOMEM && OF_MDIO
91a9770eacSAndrew Lunn	default ARCH_BCM_IPROC
92a9770eacSAndrew Lunn	help
93a9770eacSAndrew Lunn	  This module provides a driver for the MDIO busses found in the
94a9770eacSAndrew Lunn	  Broadcom iProc SoC's.
95a9770eacSAndrew Lunn
96a9770eacSAndrew Lunnconfig MDIO_BCM_UNIMAC
97a9770eacSAndrew Lunn	tristate "Broadcom UniMAC MDIO bus controller"
98a9770eacSAndrew Lunn	depends on HAS_IOMEM
99a9770eacSAndrew Lunn	help
100a9770eacSAndrew Lunn	  This module provides a driver for the Broadcom UniMAC MDIO busses.
101a9770eacSAndrew Lunn	  This hardware can be found in the Broadcom GENET Ethernet MAC
102a9770eacSAndrew Lunn	  controllers as well as some Broadcom Ethernet switches such as the
103a9770eacSAndrew Lunn	  Starfighter 2 switches.
104a9770eacSAndrew Lunn
105a9770eacSAndrew Lunnconfig MDIO_CAVIUM
106a9770eacSAndrew Lunn	tristate
107a9770eacSAndrew Lunn
108a9770eacSAndrew Lunnconfig MDIO_GPIO
109a9770eacSAndrew Lunn	tristate "GPIO lib-based bitbanged MDIO buses"
110a9770eacSAndrew Lunn	depends on MDIO_BITBANG
111a9770eacSAndrew Lunn	depends on GPIOLIB || COMPILE_TEST
112a9770eacSAndrew Lunn	help
113a9770eacSAndrew Lunn	  Supports GPIO lib-based MDIO busses.
114a9770eacSAndrew Lunn
115a9770eacSAndrew Lunn	  To compile this driver as a module, choose M here: the module
116a9770eacSAndrew Lunn	  will be called mdio-gpio.
117a9770eacSAndrew Lunn
118a9770eacSAndrew Lunnconfig MDIO_HISI_FEMAC
119a9770eacSAndrew Lunn	tristate "Hisilicon FEMAC MDIO bus controller"
120a9770eacSAndrew Lunn	depends on HAS_IOMEM && OF_MDIO
121a9770eacSAndrew Lunn	help
122a9770eacSAndrew Lunn	  This module provides a driver for the MDIO busses found in the
123a9770eacSAndrew Lunn	  Hisilicon SoC that have an Fast Ethernet MAC.
124a9770eacSAndrew Lunn
125a9770eacSAndrew Lunnconfig MDIO_I2C
126a9770eacSAndrew Lunn	tristate
127a9770eacSAndrew Lunn	depends on I2C
128a9770eacSAndrew Lunn	help
129a9770eacSAndrew Lunn	  Support I2C based PHYs.  This provides a MDIO bus bridged
130a9770eacSAndrew Lunn	  to I2C to allow PHYs connected in I2C mode to be accessed
131a9770eacSAndrew Lunn	  using the existing infrastructure.
132a9770eacSAndrew Lunn
133a9770eacSAndrew Lunn	  This is library mode.
134a9770eacSAndrew Lunn
135a9770eacSAndrew Lunnconfig MDIO_MVUSB
136a9770eacSAndrew Lunn	tristate "Marvell USB to MDIO Adapter"
137a9770eacSAndrew Lunn	depends on USB
138a9770eacSAndrew Lunn	select MDIO_DEVRES
139a9770eacSAndrew Lunn	help
140a9770eacSAndrew Lunn	  A USB to MDIO converter present on development boards for
141a9770eacSAndrew Lunn	  Marvell's Link Street family of Ethernet switches.
142a9770eacSAndrew Lunn
143a9770eacSAndrew Lunnconfig MDIO_MSCC_MIIM
144a9770eacSAndrew Lunn	tristate "Microsemi MIIM interface support"
1458057cbb8STianchen Ding	depends on HAS_IOMEM && REGMAP_MMIO
146a9770eacSAndrew Lunn	select MDIO_DEVRES
147a9770eacSAndrew Lunn	help
148a9770eacSAndrew Lunn	  This driver supports the MIIM (MDIO) interface found in the network
149a9770eacSAndrew Lunn	  switches of the Microsemi SoCs; it is recommended to switch on
150a9770eacSAndrew Lunn	  CONFIG_HIGH_RES_TIMERS
151a9770eacSAndrew Lunn
152a9770eacSAndrew Lunnconfig MDIO_MOXART
153a9770eacSAndrew Lunn	tristate "MOXA ART MDIO interface support"
154a9770eacSAndrew Lunn	depends on ARCH_MOXART || COMPILE_TEST
155a9770eacSAndrew Lunn	help
156a9770eacSAndrew Lunn	  This driver supports the MDIO interface found in the network
157a9770eacSAndrew Lunn	  interface units of the MOXA ART SoC
158a9770eacSAndrew Lunn
159a9770eacSAndrew Lunnconfig MDIO_OCTEON
160a9770eacSAndrew Lunn	tristate "Octeon and some ThunderX SOCs MDIO buses"
161a9770eacSAndrew Lunn	depends on (64BIT && OF_MDIO) || COMPILE_TEST
162a9770eacSAndrew Lunn	depends on HAS_IOMEM
163a9770eacSAndrew Lunn	select MDIO_CAVIUM
164529d1fdfSAndrew Lunn	select MDIO_DEVRES
165a9770eacSAndrew Lunn	help
166a9770eacSAndrew Lunn	  This module provides a driver for the Octeon and ThunderX MDIO
167a9770eacSAndrew Lunn	  buses. It is required by the Octeon and ThunderX ethernet device
168a9770eacSAndrew Lunn	  drivers on some systems.
169a9770eacSAndrew Lunn
170a9770eacSAndrew Lunnconfig MDIO_IPQ4019
171a9770eacSAndrew Lunn	tristate "Qualcomm IPQ4019 MDIO interface support"
172a9770eacSAndrew Lunn	depends on HAS_IOMEM && OF_MDIO
17323a890d4SLuo Jie	depends on COMMON_CLK
174*37f9b2a6SAndrew Lunn	depends on MDIO_DEVRES
175a9770eacSAndrew Lunn	help
176a9770eacSAndrew Lunn	  This driver supports the MDIO interface found in Qualcomm
177c76ee263SLuo Jie	  IPQ40xx, IPQ60xx, IPQ807x and IPQ50xx series Soc-s.
178a9770eacSAndrew Lunn
179a9770eacSAndrew Lunnconfig MDIO_IPQ8064
180a9770eacSAndrew Lunn	tristate "Qualcomm IPQ8064 MDIO interface support"
181a9770eacSAndrew Lunn	depends on HAS_IOMEM && OF_MDIO
182a9770eacSAndrew Lunn	depends on MFD_SYSCON
183*37f9b2a6SAndrew Lunn	depends on MDIO_DEVRES
184a9770eacSAndrew Lunn	help
185a9770eacSAndrew Lunn	  This driver supports the MDIO interface found in the network
186a9770eacSAndrew Lunn	  interface units of the IPQ8064 SoC
187a9770eacSAndrew Lunn
188a9770eacSAndrew Lunnconfig MDIO_THUNDER
189a9770eacSAndrew Lunn	tristate "ThunderX SOCs MDIO buses"
190a9770eacSAndrew Lunn	depends on 64BIT
191a9770eacSAndrew Lunn	depends on PCI
192a9770eacSAndrew Lunn	select MDIO_CAVIUM
1938b0308feSDavid S. Miller	select MDIO_DEVRES
194a9770eacSAndrew Lunn	help
195a9770eacSAndrew Lunn	  This driver supports the MDIO interfaces found on Cavium
196a9770eacSAndrew Lunn	  ThunderX SoCs when the MDIO bus device appears as a PCI
197a9770eacSAndrew Lunn	  device.
198a9770eacSAndrew Lunn
199a9770eacSAndrew Lunncomment "MDIO Multiplexers"
200a9770eacSAndrew Lunn
201a9770eacSAndrew Lunnconfig MDIO_BUS_MUX
202a9770eacSAndrew Lunn	tristate
203a9770eacSAndrew Lunn	depends on OF_MDIO
204a9770eacSAndrew Lunn	help
205a9770eacSAndrew Lunn	  This module provides a driver framework for MDIO bus
206a9770eacSAndrew Lunn	  multiplexers which connect one of several child MDIO busses
207a9770eacSAndrew Lunn	  to a parent bus.  Switching between child busses is done by
208a9770eacSAndrew Lunn	  device specific drivers.
209a9770eacSAndrew Lunn
210a9770eacSAndrew Lunnconfig MDIO_BUS_MUX_MESON_G12A
211a9770eacSAndrew Lunn	tristate "Amlogic G12a based MDIO bus multiplexer"
212a9770eacSAndrew Lunn	depends on ARCH_MESON || COMPILE_TEST
213a9770eacSAndrew Lunn	depends on OF_MDIO && HAS_IOMEM && COMMON_CLK
214a9770eacSAndrew Lunn	select MDIO_BUS_MUX
215a9770eacSAndrew Lunn	default m if ARCH_MESON
216a9770eacSAndrew Lunn	help
217a9770eacSAndrew Lunn	  This module provides a driver for the MDIO multiplexer/glue of
218a9770eacSAndrew Lunn	  the amlogic g12a SoC. The multiplexers connects either the external
219a9770eacSAndrew Lunn	  or the internal MDIO bus to the parent bus.
220a9770eacSAndrew Lunn
2219a24e1ffSJerome Brunetconfig MDIO_BUS_MUX_MESON_GXL
2229a24e1ffSJerome Brunet	tristate "Amlogic GXL based MDIO bus multiplexer"
2239a24e1ffSJerome Brunet	depends on ARCH_MESON || COMPILE_TEST
2249a24e1ffSJerome Brunet	depends on OF_MDIO && HAS_IOMEM && COMMON_CLK
2259a24e1ffSJerome Brunet	select MDIO_BUS_MUX
2269a24e1ffSJerome Brunet	default m if ARCH_MESON
2279a24e1ffSJerome Brunet	help
2289a24e1ffSJerome Brunet	  This module provides a driver for the MDIO multiplexer/glue of
2299a24e1ffSJerome Brunet	  the amlogic GXL SoC. The multiplexer connects either the external
2309a24e1ffSJerome Brunet	  or the internal MDIO bus to the parent bus.
2319a24e1ffSJerome Brunet
232e2397567SÁlvaro Fernández Rojasconfig MDIO_BUS_MUX_BCM6368
233e2397567SÁlvaro Fernández Rojas	tristate "Broadcom BCM6368 MDIO bus multiplexers"
234e2397567SÁlvaro Fernández Rojas	depends on OF && OF_MDIO && (BMIPS_GENERIC || COMPILE_TEST)
235e2397567SÁlvaro Fernández Rojas	select MDIO_BUS_MUX
236e2397567SÁlvaro Fernández Rojas	default BMIPS_GENERIC
237e2397567SÁlvaro Fernández Rojas	help
238e2397567SÁlvaro Fernández Rojas	  This module provides a driver for MDIO bus multiplexers found in
239e2397567SÁlvaro Fernández Rojas	  BCM6368 based Broadcom SoCs. This multiplexer connects one of several
240e2397567SÁlvaro Fernández Rojas	  child MDIO bus to a parent bus. Buses could be internal as well as
241e2397567SÁlvaro Fernández Rojas	  external and selection logic lies inside the same multiplexer.
242e2397567SÁlvaro Fernández Rojas
243a9770eacSAndrew Lunnconfig MDIO_BUS_MUX_BCM_IPROC
244a9770eacSAndrew Lunn	tristate "Broadcom iProc based MDIO bus multiplexers"
245a9770eacSAndrew Lunn	depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST)
246a9770eacSAndrew Lunn	select MDIO_BUS_MUX
247a9770eacSAndrew Lunn	default ARCH_BCM_IPROC
248a9770eacSAndrew Lunn	help
249a9770eacSAndrew Lunn	  This module provides a driver for MDIO bus multiplexers found in
250a9770eacSAndrew Lunn	  iProc based Broadcom SoCs. This multiplexer connects one of several
251a9770eacSAndrew Lunn	  child MDIO bus to a parent bus. Buses could be internal as well as
252a9770eacSAndrew Lunn	  external and selection logic lies inside the same multiplexer.
253a9770eacSAndrew Lunn
254a9770eacSAndrew Lunnconfig MDIO_BUS_MUX_GPIO
255a9770eacSAndrew Lunn	tristate "GPIO controlled MDIO bus multiplexers"
256a9770eacSAndrew Lunn	depends on OF_GPIO && OF_MDIO
257a9770eacSAndrew Lunn	select MDIO_BUS_MUX
258a9770eacSAndrew Lunn	help
259a9770eacSAndrew Lunn	  This module provides a driver for MDIO bus multiplexers that
260a9770eacSAndrew Lunn	  are controlled via GPIO lines.  The multiplexer connects one of
261a9770eacSAndrew Lunn	  several child MDIO busses to a parent bus.  Child bus
262a9770eacSAndrew Lunn	  selection is under the control of GPIO lines.
263a9770eacSAndrew Lunn
264a9770eacSAndrew Lunnconfig MDIO_BUS_MUX_MULTIPLEXER
265a9770eacSAndrew Lunn	tristate "MDIO bus multiplexer using kernel multiplexer subsystem"
266a9770eacSAndrew Lunn	depends on OF_MDIO
267a9770eacSAndrew Lunn	select MULTIPLEXER
268a9770eacSAndrew Lunn	select MDIO_BUS_MUX
269a9770eacSAndrew Lunn	help
270a9770eacSAndrew Lunn	  This module provides a driver for MDIO bus multiplexer
271a9770eacSAndrew Lunn	  that is controlled via the kernel multiplexer subsystem. The
272a9770eacSAndrew Lunn	  bus multiplexer connects one of several child MDIO busses to
273a9770eacSAndrew Lunn	  a parent bus.  Child bus selection is under the control of
274a9770eacSAndrew Lunn	  the kernel multiplexer subsystem.
275a9770eacSAndrew Lunn
276a9770eacSAndrew Lunnconfig MDIO_BUS_MUX_MMIOREG
277a9770eacSAndrew Lunn	tristate "MMIO device-controlled MDIO bus multiplexers"
278a9770eacSAndrew Lunn	depends on OF_MDIO && HAS_IOMEM
279a9770eacSAndrew Lunn	select MDIO_BUS_MUX
280a9770eacSAndrew Lunn	help
281a9770eacSAndrew Lunn	  This module provides a driver for MDIO bus multiplexers that
282a9770eacSAndrew Lunn	  are controlled via a simple memory-mapped device, like an FPGA.
283a9770eacSAndrew Lunn	  The multiplexer connects one of several child MDIO busses to a
284a9770eacSAndrew Lunn	  parent bus.  Child bus selection is under the control of one of
285a9770eacSAndrew Lunn	  the FPGA's registers.
286a9770eacSAndrew Lunn
287a9770eacSAndrew Lunn	  Currently, only 8/16/32 bits registers are supported.
288a9770eacSAndrew Lunn
289a9770eacSAndrew Lunn
290a9770eacSAndrew Lunnendif
291a9770eacSAndrew Lunnendif
292