xref: /linux/drivers/net/mdio/Kconfig (revision 91ec2035134982b98fab0609a9fd8480e8217dc1)
1a9770eacSAndrew Lunn# SPDX-License-Identifier: GPL-2.0-only
2a9770eacSAndrew Lunn#
3a9770eacSAndrew Lunn# MDIO Layer Configuration
4a9770eacSAndrew Lunn#
5a9770eacSAndrew Lunn
665f18208SMaxime Chevalliermenu "MDIO controller drivers"
765f18208SMaxime Chevallier	depends on PHYLIB
8a3e1c0adSHeiner Kallweit
9bc1bee3bSCalvin Johnsonconfig FWNODE_MDIO
10a3e1c0adSHeiner Kallweit	def_tristate (ACPI || OF) || COMPILE_TEST
11bc1bee3bSCalvin Johnson	help
12bc1bee3bSCalvin Johnson	  FWNODE MDIO bus (Ethernet PHY) accessors
13bc1bee3bSCalvin Johnson
1414b26b12SCalvin Johnsonconfig OF_MDIO
15a3e1c0adSHeiner Kallweit	def_tristate OF
1614b26b12SCalvin Johnson	select FIXED_PHY
1714b26b12SCalvin Johnson	help
1814b26b12SCalvin Johnson	  OpenFirmware MDIO bus (Ethernet PHY) accessors
1914b26b12SCalvin Johnson
20803ca24dSCalvin Johnsonconfig ACPI_MDIO
21a3e1c0adSHeiner Kallweit	def_tristate ACPI
22803ca24dSCalvin Johnson	help
23803ca24dSCalvin Johnson	  ACPI MDIO bus (Ethernet PHY) accessors
24803ca24dSCalvin Johnson
2567e3ba97SChristian Marangiconfig MDIO_AIROHA
2667e3ba97SChristian Marangi	tristate "Airoha AN7583 MDIO bus controller"
2767e3ba97SChristian Marangi	depends on ARCH_AIROHA || COMPILE_TEST
2867e3ba97SChristian Marangi	help
2967e3ba97SChristian Marangi	  This module provides a driver for the MDIO busses found in the
3067e3ba97SChristian Marangi	  Airoha AN7583 SoC's.
3167e3ba97SChristian Marangi
32a9770eacSAndrew Lunnconfig MDIO_SUN4I
33a9770eacSAndrew Lunn	tristate "Allwinner sun4i MDIO interface support"
34a9770eacSAndrew Lunn	depends on ARCH_SUNXI || COMPILE_TEST
35a9770eacSAndrew Lunn	help
36a9770eacSAndrew Lunn	  This driver supports the MDIO interface found in the network
37a9770eacSAndrew Lunn	  interface units of the Allwinner SoC that have an EMAC (A10,
38a9770eacSAndrew Lunn	  A12, A10s, etc.)
39a9770eacSAndrew Lunn
40a9770eacSAndrew Lunnconfig MDIO_XGENE
41a9770eacSAndrew Lunn	tristate "APM X-Gene SoC MDIO bus controller"
42a9770eacSAndrew Lunn	depends on ARCH_XGENE || COMPILE_TEST
43a9770eacSAndrew Lunn	help
44a9770eacSAndrew Lunn	  This module provides a driver for the MDIO busses found in the
45a9770eacSAndrew Lunn	  APM X-Gene SoC's.
46a9770eacSAndrew Lunn
47a9770eacSAndrew Lunnconfig MDIO_ASPEED
48a9770eacSAndrew Lunn	tristate "ASPEED MDIO bus controller"
49a9770eacSAndrew Lunn	depends on ARCH_ASPEED || COMPILE_TEST
50a9770eacSAndrew Lunn	depends on OF_MDIO && HAS_IOMEM
51a9770eacSAndrew Lunn	help
52a9770eacSAndrew Lunn	  This module provides a driver for the independent MDIO bus
53a9770eacSAndrew Lunn	  controllers found in the ASPEED AST2600 SoC. This is a driver for the
54a9770eacSAndrew Lunn	  third revision of the ASPEED MDIO register interface - the first two
55a9770eacSAndrew Lunn	  revisions are the "old" and "new" interfaces found in the AST2400 and
56a9770eacSAndrew Lunn	  AST2500, embedded in the MAC. For legacy reasons, FTGMAC100 driver
57a9770eacSAndrew Lunn	  continues to drive the embedded MDIO controller for the AST2400 and
58a9770eacSAndrew Lunn	  AST2500 SoCs, so say N if AST2600 support is not required.
59a9770eacSAndrew Lunn
60a9770eacSAndrew Lunnconfig MDIO_BITBANG
61a9770eacSAndrew Lunn	tristate "Bitbanged MDIO buses"
62a9770eacSAndrew Lunn	help
63a9770eacSAndrew Lunn	  This module implements the MDIO bus protocol in software,
64a9770eacSAndrew Lunn	  for use by low level drivers that export the ability to
65a9770eacSAndrew Lunn	  drive the relevant pins.
66a9770eacSAndrew Lunn
67a9770eacSAndrew Lunn	  If in doubt, say N.
68a9770eacSAndrew Lunn
69a9770eacSAndrew Lunnconfig MDIO_BCM_IPROC
70a9770eacSAndrew Lunn	tristate "Broadcom iProc MDIO bus controller"
71a9770eacSAndrew Lunn	depends on ARCH_BCM_IPROC || COMPILE_TEST
72a9770eacSAndrew Lunn	depends on HAS_IOMEM && OF_MDIO
73a9770eacSAndrew Lunn	default ARCH_BCM_IPROC
74a9770eacSAndrew Lunn	help
75a9770eacSAndrew Lunn	  This module provides a driver for the MDIO busses found in the
76a9770eacSAndrew Lunn	  Broadcom iProc SoC's.
77a9770eacSAndrew Lunn
78a9770eacSAndrew Lunnconfig MDIO_BCM_UNIMAC
79a9770eacSAndrew Lunn	tristate "Broadcom UniMAC MDIO bus controller"
80a9770eacSAndrew Lunn	depends on HAS_IOMEM
81a9770eacSAndrew Lunn	help
82a9770eacSAndrew Lunn	  This module provides a driver for the Broadcom UniMAC MDIO busses.
83a9770eacSAndrew Lunn	  This hardware can be found in the Broadcom GENET Ethernet MAC
84a9770eacSAndrew Lunn	  controllers as well as some Broadcom Ethernet switches such as the
85a9770eacSAndrew Lunn	  Starfighter 2 switches.
86a9770eacSAndrew Lunn
87a9770eacSAndrew Lunnconfig MDIO_CAVIUM
88a9770eacSAndrew Lunn	tristate
89a9770eacSAndrew Lunn
90a9770eacSAndrew Lunnconfig MDIO_GPIO
91a9770eacSAndrew Lunn	tristate "GPIO lib-based bitbanged MDIO buses"
92a9770eacSAndrew Lunn	depends on MDIO_BITBANG
93a9770eacSAndrew Lunn	depends on GPIOLIB || COMPILE_TEST
94a9770eacSAndrew Lunn	help
95a9770eacSAndrew Lunn	  Supports GPIO lib-based MDIO busses.
96a9770eacSAndrew Lunn
97a9770eacSAndrew Lunn	  To compile this driver as a module, choose M here: the module
98a9770eacSAndrew Lunn	  will be called mdio-gpio.
99a9770eacSAndrew Lunn
100a9770eacSAndrew Lunnconfig MDIO_HISI_FEMAC
101a9770eacSAndrew Lunn	tristate "Hisilicon FEMAC MDIO bus controller"
102a9770eacSAndrew Lunn	depends on HAS_IOMEM && OF_MDIO
103a9770eacSAndrew Lunn	help
104a9770eacSAndrew Lunn	  This module provides a driver for the MDIO busses found in the
105a9770eacSAndrew Lunn	  Hisilicon SoC that have an Fast Ethernet MAC.
106a9770eacSAndrew Lunn
107a9770eacSAndrew Lunnconfig MDIO_I2C
108a9770eacSAndrew Lunn	tristate
109a9770eacSAndrew Lunn	depends on I2C
110a9770eacSAndrew Lunn	help
111a9770eacSAndrew Lunn	  Support I2C based PHYs.  This provides a MDIO bus bridged
112a9770eacSAndrew Lunn	  to I2C to allow PHYs connected in I2C mode to be accessed
113a9770eacSAndrew Lunn	  using the existing infrastructure.
114a9770eacSAndrew Lunn
115a9770eacSAndrew Lunn	  This is library mode.
116a9770eacSAndrew Lunn
117a9770eacSAndrew Lunnconfig MDIO_MVUSB
118a9770eacSAndrew Lunn	tristate "Marvell USB to MDIO Adapter"
119a9770eacSAndrew Lunn	depends on USB
120a9770eacSAndrew Lunn	help
121a9770eacSAndrew Lunn	  A USB to MDIO converter present on development boards for
122a9770eacSAndrew Lunn	  Marvell's Link Street family of Ethernet switches.
123a9770eacSAndrew Lunn
124a9770eacSAndrew Lunnconfig MDIO_MSCC_MIIM
125a9770eacSAndrew Lunn	tristate "Microsemi MIIM interface support"
1261a3267a8SRosen Penev	depends on HAS_IOMEM
1271a3267a8SRosen Penev	select REGMAP_MMIO
128a9770eacSAndrew Lunn	help
129a9770eacSAndrew Lunn	  This driver supports the MIIM (MDIO) interface found in the network
130a9770eacSAndrew Lunn	  switches of the Microsemi SoCs; it is recommended to switch on
131a9770eacSAndrew Lunn	  CONFIG_HIGH_RES_TIMERS
132a9770eacSAndrew Lunn
133a9770eacSAndrew Lunnconfig MDIO_MOXART
134a9770eacSAndrew Lunn	tristate "MOXA ART MDIO interface support"
135a9770eacSAndrew Lunn	depends on ARCH_MOXART || COMPILE_TEST
136a9770eacSAndrew Lunn	help
137a9770eacSAndrew Lunn	  This driver supports the MDIO interface found in the network
138a9770eacSAndrew Lunn	  interface units of the MOXA ART SoC
139a9770eacSAndrew Lunn
140a9770eacSAndrew Lunnconfig MDIO_OCTEON
141a9770eacSAndrew Lunn	tristate "Octeon and some ThunderX SOCs MDIO buses"
142a9770eacSAndrew Lunn	depends on (64BIT && OF_MDIO) || COMPILE_TEST
143a9770eacSAndrew Lunn	depends on HAS_IOMEM
144a9770eacSAndrew Lunn	select MDIO_CAVIUM
145a9770eacSAndrew Lunn	help
146a9770eacSAndrew Lunn	  This module provides a driver for the Octeon and ThunderX MDIO
147a9770eacSAndrew Lunn	  buses. It is required by the Octeon and ThunderX ethernet device
148a9770eacSAndrew Lunn	  drivers on some systems.
149a9770eacSAndrew Lunn
150f76aef98SCharles Perryconfig MDIO_PIC64HPSC
151f76aef98SCharles Perry	tristate "PIC64-HPSC/HX MDIO interface support"
1521e9e7fd8SGeert Uytterhoeven	depends on ARCH_MICROCHIP || COMPILE_TEST
153f76aef98SCharles Perry	depends on HAS_IOMEM && OF_MDIO
154f76aef98SCharles Perry	help
155f76aef98SCharles Perry	  This driver supports the MDIO interface found on the PIC64-HPSC/HX
156f76aef98SCharles Perry	  SoCs.
157f76aef98SCharles Perry
158a9770eacSAndrew Lunnconfig MDIO_IPQ4019
159a9770eacSAndrew Lunn	tristate "Qualcomm IPQ4019 MDIO interface support"
160a9770eacSAndrew Lunn	depends on HAS_IOMEM && OF_MDIO
16123a890d4SLuo Jie	depends on COMMON_CLK
162a9770eacSAndrew Lunn	help
163a9770eacSAndrew Lunn	  This driver supports the MDIO interface found in Qualcomm
164c76ee263SLuo Jie	  IPQ40xx, IPQ60xx, IPQ807x and IPQ50xx series Soc-s.
165a9770eacSAndrew Lunn
166a9770eacSAndrew Lunnconfig MDIO_IPQ8064
167a9770eacSAndrew Lunn	tristate "Qualcomm IPQ8064 MDIO interface support"
168a9770eacSAndrew Lunn	depends on HAS_IOMEM && OF_MDIO
169a9770eacSAndrew Lunn	depends on MFD_SYSCON
170a9770eacSAndrew Lunn	help
171a9770eacSAndrew Lunn	  This driver supports the MDIO interface found in the network
172a9770eacSAndrew Lunn	  interface units of the IPQ8064 SoC
173a9770eacSAndrew Lunn
17424e31e47SChris Packhamconfig MDIO_REALTEK_RTL9300
17524e31e47SChris Packham	tristate "Realtek RTL9300 MDIO interface support"
17624e31e47SChris Packham	depends on MACH_REALTEK_RTL || COMPILE_TEST
17724e31e47SChris Packham	help
17824e31e47SChris Packham	  This driver supports the MDIO interface found in the Realtek
17924e31e47SChris Packham	  RTL9300 family of Ethernet switches with integrated SoC.
18024e31e47SChris Packham
181642af0f9SMaxime Chevallierconfig MDIO_REGMAP
182642af0f9SMaxime Chevallier	tristate
183642af0f9SMaxime Chevallier	help
184642af0f9SMaxime Chevallier	  This driver allows using MDIO devices that are not sitting on a
185642af0f9SMaxime Chevallier	  regular MDIO bus, but still exposes the standard 802.3 register
186642af0f9SMaxime Chevallier	  layout. It's regmap-based so that it can be used on integrated,
187642af0f9SMaxime Chevallier	  memory-mapped PHYs, SPI PHYs and so on. A new virtual MDIO bus is
188642af0f9SMaxime Chevallier	  created, and its read/write operations are mapped to the underlying
189642af0f9SMaxime Chevallier	  regmap. Users willing to use this driver must explicitly select
190642af0f9SMaxime Chevallier	  REGMAP.
191642af0f9SMaxime Chevallier
192a9770eacSAndrew Lunnconfig MDIO_THUNDER
193a9770eacSAndrew Lunn	tristate "ThunderX SOCs MDIO buses"
194a9770eacSAndrew Lunn	depends on 64BIT
195a9770eacSAndrew Lunn	depends on PCI
196a9770eacSAndrew Lunn	select MDIO_CAVIUM
197a9770eacSAndrew Lunn	help
198a9770eacSAndrew Lunn	  This driver supports the MDIO interfaces found on Cavium
199a9770eacSAndrew Lunn	  ThunderX SoCs when the MDIO bus device appears as a PCI
200a9770eacSAndrew Lunn	  device.
201a9770eacSAndrew Lunn
202*8a48eb84SMaxime Chevalliermenu "MDIO Multiplexers"
203a9770eacSAndrew Lunn
204a9770eacSAndrew Lunnconfig MDIO_BUS_MUX
205a9770eacSAndrew Lunn	tristate
206a9770eacSAndrew Lunn	depends on OF_MDIO
207a9770eacSAndrew Lunn	help
208a9770eacSAndrew Lunn	  This module provides a driver framework for MDIO bus
209a9770eacSAndrew Lunn	  multiplexers which connect one of several child MDIO busses
210a9770eacSAndrew Lunn	  to a parent bus.  Switching between child busses is done by
211a9770eacSAndrew Lunn	  device specific drivers.
212a9770eacSAndrew Lunn
213a9770eacSAndrew Lunnconfig MDIO_BUS_MUX_MESON_G12A
214a9770eacSAndrew Lunn	tristate "Amlogic G12a based MDIO bus multiplexer"
215a9770eacSAndrew Lunn	depends on ARCH_MESON || COMPILE_TEST
216a9770eacSAndrew Lunn	depends on OF_MDIO && HAS_IOMEM && COMMON_CLK
217a9770eacSAndrew Lunn	select MDIO_BUS_MUX
218a9770eacSAndrew Lunn	default m if ARCH_MESON
219a9770eacSAndrew Lunn	help
220a9770eacSAndrew Lunn	  This module provides a driver for the MDIO multiplexer/glue of
221a9770eacSAndrew Lunn	  the amlogic g12a SoC. The multiplexers connects either the external
222a9770eacSAndrew Lunn	  or the internal MDIO bus to the parent bus.
223a9770eacSAndrew Lunn
2249a24e1ffSJerome Brunetconfig MDIO_BUS_MUX_MESON_GXL
2259a24e1ffSJerome Brunet	tristate "Amlogic GXL based MDIO bus multiplexer"
2269a24e1ffSJerome Brunet	depends on ARCH_MESON || COMPILE_TEST
2279a24e1ffSJerome Brunet	depends on OF_MDIO && HAS_IOMEM && COMMON_CLK
2289a24e1ffSJerome Brunet	select MDIO_BUS_MUX
2299a24e1ffSJerome Brunet	default m if ARCH_MESON
2309a24e1ffSJerome Brunet	help
2319a24e1ffSJerome Brunet	  This module provides a driver for the MDIO multiplexer/glue of
2329a24e1ffSJerome Brunet	  the amlogic GXL SoC. The multiplexer connects either the external
2339a24e1ffSJerome Brunet	  or the internal MDIO bus to the parent bus.
2349a24e1ffSJerome Brunet
235e2397567SÁlvaro Fernández Rojasconfig MDIO_BUS_MUX_BCM6368
236e2397567SÁlvaro Fernández Rojas	tristate "Broadcom BCM6368 MDIO bus multiplexers"
237e2397567SÁlvaro Fernández Rojas	depends on OF && OF_MDIO && (BMIPS_GENERIC || COMPILE_TEST)
238e2397567SÁlvaro Fernández Rojas	select MDIO_BUS_MUX
239e2397567SÁlvaro Fernández Rojas	default BMIPS_GENERIC
240e2397567SÁlvaro Fernández Rojas	help
241e2397567SÁlvaro Fernández Rojas	  This module provides a driver for MDIO bus multiplexers found in
242e2397567SÁlvaro Fernández Rojas	  BCM6368 based Broadcom SoCs. This multiplexer connects one of several
243e2397567SÁlvaro Fernández Rojas	  child MDIO bus to a parent bus. Buses could be internal as well as
244e2397567SÁlvaro Fernández Rojas	  external and selection logic lies inside the same multiplexer.
245e2397567SÁlvaro Fernández Rojas
246a9770eacSAndrew Lunnconfig MDIO_BUS_MUX_BCM_IPROC
247a9770eacSAndrew Lunn	tristate "Broadcom iProc based MDIO bus multiplexers"
248a9770eacSAndrew Lunn	depends on OF && OF_MDIO && (ARCH_BCM_IPROC || COMPILE_TEST)
249a9770eacSAndrew Lunn	select MDIO_BUS_MUX
250a9770eacSAndrew Lunn	default ARCH_BCM_IPROC
251a9770eacSAndrew Lunn	help
252a9770eacSAndrew Lunn	  This module provides a driver for MDIO bus multiplexers found in
253a9770eacSAndrew Lunn	  iProc based Broadcom SoCs. This multiplexer connects one of several
254a9770eacSAndrew Lunn	  child MDIO bus to a parent bus. Buses could be internal as well as
255a9770eacSAndrew Lunn	  external and selection logic lies inside the same multiplexer.
256a9770eacSAndrew Lunn
257a9770eacSAndrew Lunnconfig MDIO_BUS_MUX_GPIO
258a9770eacSAndrew Lunn	tristate "GPIO controlled MDIO bus multiplexers"
259c1358187SBartosz Golaszewski	depends on OF_MDIO
260a9770eacSAndrew Lunn	select MDIO_BUS_MUX
261a9770eacSAndrew Lunn	help
262a9770eacSAndrew Lunn	  This module provides a driver for MDIO bus multiplexers that
263a9770eacSAndrew Lunn	  are controlled via GPIO lines.  The multiplexer connects one of
264a9770eacSAndrew Lunn	  several child MDIO busses to a parent bus.  Child bus
265a9770eacSAndrew Lunn	  selection is under the control of GPIO lines.
266a9770eacSAndrew Lunn
267a9770eacSAndrew Lunnconfig MDIO_BUS_MUX_MULTIPLEXER
268a9770eacSAndrew Lunn	tristate "MDIO bus multiplexer using kernel multiplexer subsystem"
269a9770eacSAndrew Lunn	depends on OF_MDIO
270a9770eacSAndrew Lunn	select MULTIPLEXER
271a9770eacSAndrew Lunn	select MDIO_BUS_MUX
272a9770eacSAndrew Lunn	help
273a9770eacSAndrew Lunn	  This module provides a driver for MDIO bus multiplexer
274a9770eacSAndrew Lunn	  that is controlled via the kernel multiplexer subsystem. The
275a9770eacSAndrew Lunn	  bus multiplexer connects one of several child MDIO busses to
276a9770eacSAndrew Lunn	  a parent bus.  Child bus selection is under the control of
277a9770eacSAndrew Lunn	  the kernel multiplexer subsystem.
278a9770eacSAndrew Lunn
279a9770eacSAndrew Lunnconfig MDIO_BUS_MUX_MMIOREG
280a9770eacSAndrew Lunn	tristate "MMIO device-controlled MDIO bus multiplexers"
281a9770eacSAndrew Lunn	depends on OF_MDIO && HAS_IOMEM
282a9770eacSAndrew Lunn	select MDIO_BUS_MUX
283a9770eacSAndrew Lunn	help
284a9770eacSAndrew Lunn	  This module provides a driver for MDIO bus multiplexers that
285a9770eacSAndrew Lunn	  are controlled via a simple memory-mapped device, like an FPGA.
286a9770eacSAndrew Lunn	  The multiplexer connects one of several child MDIO busses to a
287a9770eacSAndrew Lunn	  parent bus.  Child bus selection is under the control of one of
288a9770eacSAndrew Lunn	  the FPGA's registers.
289a9770eacSAndrew Lunn
290a9770eacSAndrew Lunn	  Currently, only 8/16/32 bits registers are supported.
291a9770eacSAndrew Lunn
29265f18208SMaxime Chevallierendmenu
293*8a48eb84SMaxime Chevallierendmenu
294