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