Linux Audio

Check our new training course

Linux kernel drivers training

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