net: add MDIO_MUX DM class
[platform/kernel/u-boot.git] / drivers / net / Kconfig
1 source "drivers/net/phy/Kconfig"
2 source "drivers/net/pfe_eth/Kconfig"
3
4 config DM_ETH
5         bool "Enable Driver Model for Ethernet drivers"
6         depends on DM
7         help
8           Enable driver model for Ethernet.
9
10           The eth_*() interface will be implemented by the UCLASS_ETH class
11           This is currently implemented in net/eth-uclass.c
12           Look in include/net.h for details.
13
14 config DM_MDIO
15         bool "Enable Driver Model for MDIO devices"
16         depends on DM_ETH && PHYLIB
17         help
18           Enable driver model for MDIO devices
19
20           Adds UCLASS_MDIO DM class supporting MDIO buses that are probed as
21           stand-alone devices.  Useful in particular for systems that support
22           DM_ETH and have a stand-alone MDIO hardware block shared by multiple
23           Ethernet interfaces.
24           This is currently implemented in net/mdio-uclass.c
25           Look in include/miiphy.h for details.
26
27 config DM_MDIO_MUX
28         bool "Enable Driver Model for MDIO MUX devices"
29         depends on DM_MDIO
30         help
31           Enable driver model for MDIO MUX devices
32
33           Adds UCLASS_MDIO_MUX DM class supporting MDIO MUXes.  Useful for
34           systems that support DM_MDIO and integrate one or multiple muxes on
35           the MDIO bus.
36           This is currently implemented in net/mdio-mux-uclass.c
37           Look in include/miiphy.h for details.
38
39 config MDIO_SANDBOX
40         depends on DM_MDIO && SANDBOX
41         default y
42         bool "Sandbox: Mocked MDIO driver"
43         help
44           This driver implements dummy read/write/reset MDIO functions mimicking
45           a bus with a single PHY.
46
47           This driver is used in for testing in test/dm/mdio.c
48
49 menuconfig NETDEVICES
50         bool "Network device support"
51         depends on NET
52         default y if DM_ETH
53         help
54           You must select Y to enable any network device support
55           Generally if you have any networking support this is a given
56
57           If unsure, say Y
58
59 if NETDEVICES
60
61 config PHY_GIGE
62         bool "Enable GbE PHY status parsing and configuration"
63         help
64           Enables support for parsing the status output and for
65           configuring GbE PHYs (affects the inner workings of some
66           commands and miiphyutil.c).
67
68 config AG7XXX
69         bool "Atheros AG7xxx Ethernet MAC support"
70         depends on DM_ETH && ARCH_ATH79
71         select PHYLIB
72         help
73           This driver supports the Atheros AG7xxx Ethernet MAC. This MAC is
74           present in the Atheros AR7xxx, AR9xxx and QCA9xxx MIPS chips.
75
76
77 config ALTERA_TSE
78         bool "Altera Triple-Speed Ethernet MAC support"
79         depends on DM_ETH
80         select PHYLIB
81         help
82           This driver supports the Altera Triple-Speed (TSE) Ethernet MAC.
83           Please find details on the "Triple-Speed Ethernet MegaCore Function
84           Resource Center" of Altera.
85
86 config BCM_SF2_ETH
87         bool "Broadcom SF2 (Starfighter2) Ethernet support"
88         select PHYLIB
89         help
90           This is an abstract framework which provides a generic interface
91           to MAC and DMA management for multiple Broadcom SoCs such as
92           Cygnus, NSP and bcm28155_ap platforms.
93
94 config BCM_SF2_ETH_DEFAULT_PORT
95         int "Broadcom SF2 (Starfighter2) Ethernet default port number"
96         depends on BCM_SF2_ETH
97         default 0
98         help
99           Default port number for the Starfighter2 ethernet driver.
100
101 config BCM_SF2_ETH_GMAC
102         bool "Broadcom SF2 (Starfighter2) GMAC Ethernet support"
103         depends on BCM_SF2_ETH
104         help
105           This flag enables the ethernet support for Broadcom platforms with
106           GMAC such as Cygnus. This driver is based on the framework provided
107           by the BCM_SF2_ETH driver.
108           Say Y to any bcmcygnus based platforms.
109
110 config BCM6348_ETH
111         bool "BCM6348 EMAC support"
112         depends on DM_ETH && ARCH_BMIPS
113         select DMA
114         select DMA_CHANNELS
115         select MII
116         select PHYLIB
117         help
118           This driver supports the BCM6348 Ethernet MAC.
119
120 config BCM6368_ETH
121         bool "BCM6368 EMAC support"
122         depends on DM_ETH && ARCH_BMIPS
123         select DMA
124         select MII
125         help
126           This driver supports the BCM6368 Ethernet MAC.
127
128 config DWC_ETH_QOS
129         bool "Synopsys DWC Ethernet QOS device support"
130         depends on DM_ETH
131         select PHYLIB
132         help
133           This driver supports the Synopsys Designware Ethernet QOS (Quality
134           Of Service) IP block. The IP supports many options for bus type,
135           clocking/reset structure, and feature list. This driver currently
136           supports the specific configuration used in NVIDIA's Tegra186 chip,
137           but should be extensible to other combinations quite easily.
138
139 config E1000
140         bool "Intel PRO/1000 Gigabit Ethernet support"
141         help
142           This driver supports Intel(R) PRO/1000 gigabit ethernet family of
143           adapters.  For more information on how to identify your adapter, go
144           to the Adapter & Driver ID Guide at:
145
146           <http://support.intel.com/support/network/adapter/pro100/21397.htm>
147
148 config E1000_SPI_GENERIC
149         bool "Allow access to the Intel 8257x SPI bus"
150         depends on E1000
151         help
152           Allow generic access to the SPI bus on the Intel 8257x, for
153           example with the "sspi" command.
154
155 config E1000_SPI
156         bool "Enable SPI bus utility code"
157         depends on E1000
158         help
159           Utility code for direct access to the SPI bus on Intel 8257x.
160           This does not do anything useful unless you set at least one
161           of CONFIG_CMD_E1000 or CONFIG_E1000_SPI_GENERIC.
162
163 config CMD_E1000
164         bool "Enable the e1000 command"
165         depends on E1000
166         help
167           This enables the 'e1000' management command for E1000 devices. When
168           used on devices with SPI support you can reprogram the EEPROM from
169           U-Boot.
170
171 config ETH_SANDBOX
172         depends on DM_ETH && SANDBOX
173         default y
174         bool "Sandbox: Mocked Ethernet driver"
175         help
176           This driver simply responds with fake ARP replies and ping
177           replies that are used to verify network stack functionality
178
179           This driver is particularly useful in the test/dm/eth.c tests
180
181 config ETH_SANDBOX_RAW
182         depends on DM_ETH && SANDBOX
183         default y
184         bool "Sandbox: Bridge to Linux Raw Sockets"
185         help
186           This driver is a bridge from the bottom of the network stack
187           in U-Boot to the RAW AF_PACKET API in Linux. This allows real
188           network traffic to be tested from within sandbox. See
189           board/sandbox/README.sandbox for more details.
190
191 config ETH_DESIGNWARE
192         bool "Synopsys Designware Ethernet MAC"
193         select PHYLIB
194         imply ETH_DESIGNWARE_SOCFPGA if ARCH_SOCFPGA
195         help
196           This MAC is present in SoCs from various vendors. It supports
197           100Mbit and 1 Gbit operation. You must enable CONFIG_PHYLIB to
198           provide the PHY (physical media interface).
199
200 config ETH_DESIGNWARE_SOCFPGA
201         select REGMAP
202         select SYSCON
203         bool "Altera SoCFPGA extras for Synopsys Designware Ethernet MAC"
204         depends on DM_ETH && ETH_DESIGNWARE
205         help
206           The Altera SoCFPGA requires additional configuration of the
207           Altera system manager to correctly interface with the PHY.
208           This code handles those SoC specifics.
209
210 config ETHOC
211         bool "OpenCores 10/100 Mbps Ethernet MAC"
212         help
213           This MAC is present in OpenRISC and Xtensa XTFPGA boards.
214
215 config FEC_MXC_SHARE_MDIO
216         bool "Share the MDIO bus for FEC controller"
217         depends on FEC_MXC
218
219 config FEC_MXC_MDIO_BASE
220         hex "MDIO base address for the FEC controller"
221         depends on FEC_MXC_SHARE_MDIO
222         help
223           This specifies the MDIO registers base address. It is used when
224           two FEC controllers share MDIO bus.
225
226 config FEC_MXC
227         bool "FEC Ethernet controller"
228         depends on MX5 || MX6 || MX7 || IMX8 || VF610
229         help
230           This driver supports the 10/100 Fast Ethernet controller for
231           NXP i.MX processors.
232
233 config FMAN_ENET
234         bool "Freescale FMan ethernet support"
235         depends on ARM || PPC
236         help
237           This driver support the Freescale FMan Ethernet controller
238
239 config FTMAC100
240         bool "Ftmac100 Ethernet Support"
241         help
242           This MAC is present in Andestech SoCs.
243
244 config FTGMAC100
245         bool "Ftgmac100 Ethernet Support"
246         depends on DM_ETH
247         select PHYLIB
248         help
249           This driver supports the Faraday's FTGMAC100 Gigabit SoC
250           Ethernet controller that can be found on Aspeed SoCs (which
251           include NCSI).
252
253           It is fully compliant with IEEE 802.3 specification for
254           10/100 Mbps Ethernet and IEEE 802.3z specification for 1000
255           Mbps Ethernet and includes Reduced Media Independent
256           Interface (RMII) and Reduced Gigabit Media Independent
257           Interface (RGMII) interfaces. It adopts an AHB bus interface
258           and integrates a link list DMA engine with direct M-Bus
259           accesses for transmitting and receiving packets. It has
260           independent TX/RX fifos, supports half and full duplex (1000
261           Mbps mode only supports full duplex), flow control for full
262           duplex and backpressure for half duplex.
263
264           The FTGMAC100 also implements IP, TCP, UDP checksum offloads
265           and supports IEEE 802.1Q VLAN tag insertion and removal. It
266           offers high-priority transmit queue for QoS and CoS
267           applications.
268
269
270 config MVGBE
271         bool "Marvell Orion5x/Kirkwood network interface support"
272         depends on KIRKWOOD || ORION5X
273         select PHYLIB if DM_ETH
274         help
275           This driver supports the network interface units in the
276           Marvell Orion5x and Kirkwood SoCs
277
278 config MVNETA
279         bool "Marvell Armada XP/385/3700 network interface support"
280         depends on ARMADA_XP || ARMADA_38X || ARMADA_3700
281         select PHYLIB
282         help
283           This driver supports the network interface units in the
284           Marvell ARMADA XP, ARMADA 38X and ARMADA 3700 SoCs
285
286 config MVPP2
287         bool "Marvell Armada 375/7K/8K network interface support"
288         depends on ARMADA_375 || ARMADA_8K
289         select PHYLIB
290         help
291           This driver supports the network interface units in the
292           Marvell ARMADA 375, 7K and 8K SoCs.
293
294 config MACB
295         bool "Cadence MACB/GEM Ethernet Interface"
296         depends on DM_ETH
297         select PHYLIB
298         help
299           The Cadence MACB ethernet interface is found on many Atmel
300           AT91 and SAMA5 parts.  This driver also supports the Cadence
301           GEM (Gigabit Ethernet MAC) found in some ARM SoC devices.
302           Say Y to include support for the MACB/GEM chip.
303
304 config MACB_ZYNQ
305         bool "Cadence MACB/GEM Ethernet Interface for Xilinx Zynq"
306         depends on MACB
307         help
308           The Cadence MACB ethernet interface was used on Zynq platform.
309           Say Y to enable support for the MACB/GEM in Zynq chip.
310
311 config MT7628_ETH
312         bool "MediaTek MT7628 Ethernet Interface"
313         depends on SOC_MT7628
314         help
315           The MediaTek MT7628 ethernet interface is used on MT7628 and
316           MT7688 based boards.
317
318 config PCH_GBE
319         bool "Intel Platform Controller Hub EG20T GMAC driver"
320         depends on DM_ETH && DM_PCI
321         select PHYLIB
322         help
323           This MAC is present in Intel Platform Controller Hub EG20T. It
324           supports 10/100/1000 Mbps operation.
325
326 config RGMII
327         bool "Enable RGMII"
328         help
329           Enable the support of the Reduced Gigabit Media-Independent
330           Interface (RGMII).
331
332 config MII
333         bool "Enable MII"
334         help
335           Enable support of the Media-Independent Interface (MII)
336
337 config RTL8139
338         bool "Realtek 8139 series Ethernet controller driver"
339         help
340           This driver supports Realtek 8139 series fast ethernet family of
341           PCI chipsets/adapters.
342
343 config RTL8169
344         bool "Realtek 8169 series Ethernet controller driver"
345         help
346           This driver supports Realtek 8169 series gigabit ethernet family of
347           PCI/PCIe chipsets/adapters.
348
349 config SMC911X
350         bool "SMSC LAN911x and LAN921x controller driver"
351
352 if SMC911X
353
354 config SMC911X_BASE
355         hex "SMC911X Base Address"
356         help
357           Define this to hold the physical address
358           of the device (I/O space)
359
360 choice
361         prompt "SMC911X bus width"
362         default SMC911X_16_BIT
363
364 config SMC911X_32_BIT
365         bool "Enable 32-bit interface"
366
367 config SMC911X_16_BIT
368         bool "Enable 16-bit interface"
369         help
370           Define this if data bus is 16 bits. If your processor
371           automatically converts one 32 bit word to two 16 bit
372           words you may also try CONFIG_SMC911X_32_BIT.
373
374 endchoice
375 endif #SMC911X
376
377 config SUN7I_GMAC
378         bool "Enable Allwinner GMAC Ethernet support"
379         help
380           Enable the support for Sun7i GMAC Ethernet controller
381
382 config SUN7I_GMAC_FORCE_TXERR
383         bool "Force PA17 as gmac function"
384         depends on SUN7I_GMAC
385         help
386           Some ethernet phys needs TXERR control. Since the GMAC
387           doesn't have such signal, setting PA17 as GMAC function
388           makes the pin output low, which enables data transmission.
389
390 config SUN4I_EMAC
391         bool "Allwinner Sun4i Ethernet MAC support"
392         depends on DM_ETH
393         select PHYLIB
394         help
395           This driver supports the Allwinner based SUN4I Ethernet MAC.
396
397 config SUN8I_EMAC
398         bool "Allwinner Sun8i Ethernet MAC support"
399         depends on DM_ETH
400         select PHYLIB
401         select PHY_GIGE
402         help
403           This driver supports the  Allwinner based SUN8I/SUN50I Ethernet MAC.
404           It can be found in H3/A64/A83T based SoCs and compatible with both
405           External and Internal PHYs.
406
407 config SH_ETHER
408         bool "Renesas SH Ethernet MAC"
409         select PHYLIB
410         help
411           This driver supports the Ethernet for Renesas SH and ARM SoCs.
412
413 source "drivers/net/ti/Kconfig"
414
415 config XILINX_AXIEMAC
416         depends on DM_ETH && (MICROBLAZE || ARCH_ZYNQ || ARCH_ZYNQMP)
417         select PHYLIB
418         select MII
419         bool "Xilinx AXI Ethernet"
420         help
421           This MAC is present in Xilinx Microblaze, Zynq and ZynqMP SoCs.
422
423 config XILINX_EMACLITE
424         depends on DM_ETH && (MICROBLAZE || ARCH_ZYNQ || ARCH_ZYNQMP || MIPS)
425         select PHYLIB
426         select MII
427         bool "Xilinx Ethernetlite"
428         help
429           This MAC is present in Xilinx Microblaze, Zynq and ZynqMP SoCs.
430
431 config ZYNQ_GEM
432         depends on DM_ETH && (ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL)
433         select PHYLIB
434         bool "Xilinx Ethernet GEM"
435         help
436           This MAC is present in Xilinx Zynq and ZynqMP SoCs.
437
438 config PIC32_ETH
439         bool "Microchip PIC32 Ethernet Support"
440         depends on DM_ETH && MACH_PIC32
441         select PHYLIB
442         help
443           This driver implements 10/100 Mbps Ethernet and MAC layer for
444           Microchip PIC32 microcontrollers.
445
446 config GMAC_ROCKCHIP
447         bool "Rockchip Synopsys Designware Ethernet MAC"
448         depends on DM_ETH && ETH_DESIGNWARE
449         help
450           This driver provides Rockchip SoCs network support based on the
451           Synopsys Designware driver.
452
453 config RENESAS_RAVB
454         bool "Renesas Ethernet AVB MAC"
455         depends on DM_ETH && RCAR_GEN3
456         select PHYLIB
457         help
458           This driver implements support for the Ethernet AVB block in
459           Renesas M3 and H3 SoCs.
460
461 config MPC8XX_FEC
462         bool "Fast Ethernet Controller on MPC8XX"
463         depends on MPC8xx
464         select MII
465         help
466           This driver implements support for the Fast Ethernet Controller
467           on MPC8XX
468
469 config SNI_AVE
470         bool "Socionext AVE Ethernet support"
471         depends on DM_ETH && ARCH_UNIPHIER
472         select PHYLIB
473         select SYSCON
474         select REGMAP
475         help
476           This driver implements support for the Socionext AVE Ethernet
477           controller, as found on the Socionext UniPhier family.
478
479 source "drivers/net/mscc_eswitch/Kconfig"
480
481 config ETHER_ON_FEC1
482         bool "FEC1"
483         depends on MPC8XX_FEC
484         default y
485
486 config FEC1_PHY
487         int "FEC1 PHY"
488         depends on ETHER_ON_FEC1
489         default -1
490         help
491           Define to the hardcoded PHY address which corresponds
492           to the given FEC; i. e.
493                 #define CONFIG_FEC1_PHY 4
494           means that the PHY with address 4 is connected to FEC1
495
496           When set to -1, means to probe for first available.
497
498 config PHY_NORXERR
499         bool "PHY_NORXERR"
500         depends on ETHER_ON_FEC1
501         default n
502         help
503           The PHY does not have a RXERR line (RMII only).
504           (so program the FEC to ignore it).
505
506 config ETHER_ON_FEC2
507         bool "FEC2"
508         depends on MPC8XX_FEC && MPC885
509         default y
510
511 config FEC2_PHY
512         int "FEC2 PHY"
513         depends on ETHER_ON_FEC2
514         default -1
515         help
516           Define to the hardcoded PHY address which corresponds
517           to the given FEC; i. e.
518                 #define CONFIG_FEC1_PHY 4
519           means that the PHY with address 4 is connected to FEC1
520
521           When set to -1, means to probe for first available.
522
523 config FEC2_PHY_NORXERR
524         bool "PHY_NORXERR"
525         depends on ETHER_ON_FEC2
526         default n
527         help
528           The PHY does not have a RXERR line (RMII only).
529           (so program the FEC to ignore it).
530
531 config SYS_DPAA_QBMAN
532         bool "Device tree fixup for QBMan on freescale SOCs"
533         depends on (ARM || PPC) && !SPL_BUILD
534         default y if ARCH_B4860 || \
535                      ARCH_B4420 || \
536                      ARCH_P1023 || \
537                      ARCH_P2041 || \
538                      ARCH_T1023 || \
539                      ARCH_T1024 || \
540                      ARCH_T1040 || \
541                      ARCH_T1042 || \
542                      ARCH_T2080 || \
543                      ARCH_T2081 || \
544                      ARCH_T4240 || \
545                      ARCH_T4160 || \
546                      ARCH_P4080 || \
547                      ARCH_P3041 || \
548                      ARCH_P5040 || \
549                      ARCH_P5020 || \
550                      ARCH_LS1043A || \
551                      ARCH_LS1046A
552         help
553           QBman fixups to allow deep sleep in DPAA 1 SOCs
554
555 config TSEC_ENET
556         select PHYLIB
557         bool "Enable Three-Speed Ethernet Controller"
558         help
559           This driver implements support for the (Enhanced) Three-Speed
560           Ethernet Controller found on Freescale SoCs.
561
562 config MEDIATEK_ETH
563         bool "MediaTek Ethernet GMAC Driver"
564         depends on DM_ETH
565         select PHYLIB
566         select DM_GPIO
567         select DM_RESET
568         help
569           This Driver support MediaTek Ethernet GMAC
570           Say Y to enable support for the MediaTek Ethernet GMAC.
571
572 config HIGMACV300_ETH
573         bool "HiSilicon Gigabit Ethernet Controller"
574         depends on DM_ETH
575         select DM_RESET
576         select PHYLIB
577         help
578           This driver supports HIGMACV300 Ethernet controller found on
579           HiSilicon SoCs.
580
581 endif # NETDEVICES