xref: /linux/drivers/net/ethernet/freescale/enetc/Kconfig (revision 0b226380d4cce2e6ee50800d861934d474a30121)
1# SPDX-License-Identifier: GPL-2.0
2config FSL_ENETC_CORE
3	tristate
4	help
5	  This module supports common functionality between the PF and VF
6	  drivers for the NXP ENETC controller.
7
8	  If compiled as module (M), the module name is fsl-enetc-core.
9
10config NXP_ENETC_PF_COMMON
11	tristate
12	help
13	  This module supports common functionality between drivers of
14	  different versions of NXP ENETC PF controllers.
15
16	  If compiled as module (M), the module name is nxp-enetc-pf-common.
17
18config NXP_NETC_LIB
19	tristate
20	help
21	  This module provides common functionalities for both ENETC and NETC
22	  Switch, such as NETC Table Management Protocol (NTMP) 2.0, common tc
23	  flower and debugfs interfaces and so on.
24
25config FSL_ENETC
26	tristate "ENETC PF driver"
27	depends on PCI_MSI
28	select FSL_ENETC_CORE
29	select FSL_ENETC_IERB
30	select FSL_ENETC_MDIO
31	select NXP_ENETC_PF_COMMON
32	select PHYLINK
33	select PCS_LYNX
34	select DIMLIB
35	help
36	  This driver supports NXP ENETC gigabit ethernet controller PCIe
37	  physical function (PF) devices, managing ENETC Ports at a privileged
38	  level.
39
40	  If compiled as module (M), the module name is fsl-enetc.
41
42config NXP_ENETC4
43	tristate "ENETC4 PF driver"
44	depends on PCI_MSI
45	select FSL_ENETC_CORE
46	select FSL_ENETC_MDIO
47	select NXP_ENETC_PF_COMMON
48	select NXP_NETC_LIB
49	select PHYLINK
50	select DIMLIB
51	help
52	  This driver supports NXP ENETC devices with major revision 4. ENETC is
53	  as the NIC functionality in NETC, it supports virtualization/isolation
54	  based on PCIe Single Root IO Virtualization (SR-IOV) and a full range
55	  of TSN standards and NIC offload capabilities.
56
57	  If compiled as module (M), the module name is nxp-enetc4.
58
59config FSL_ENETC_VF
60	tristate "ENETC VF driver"
61	depends on PCI_MSI
62	select FSL_ENETC_CORE
63	select FSL_ENETC_MDIO
64	select PHYLINK
65	select DIMLIB
66	help
67	  This driver supports NXP ENETC gigabit ethernet controller PCIe
68	  virtual function (VF) devices enabled by the ENETC PF driver.
69
70	  If compiled as module (M), the module name is fsl-enetc-vf.
71
72config FSL_ENETC_IERB
73	tristate "ENETC IERB driver"
74	help
75	  This driver configures the Integrated Endpoint Register Block on NXP
76	  LS1028A.
77
78	  If compiled as module (M), the module name is fsl-enetc-ierb.
79
80config FSL_ENETC_MDIO
81	tristate "ENETC MDIO driver"
82	depends on PCI && PHYLIB
83	help
84	  This driver supports NXP ENETC Central MDIO controller as a PCIe
85	  physical function (PF) device.
86
87	  If compiled as module (M), the module name is fsl-enetc-mdio.
88
89config FSL_ENETC_PTP_CLOCK
90	tristate "ENETC PTP clock driver"
91	depends on PTP_1588_CLOCK_QORIQ && (FSL_ENETC || FSL_ENETC_VF)
92	default y
93	help
94	  This driver adds support for using the ENETC 1588 timer
95	  as a PTP clock. This clock is only useful if your PTP
96	  programs are getting hardware time stamps on the PTP Ethernet
97	  packets using the SO_TIMESTAMPING API.
98
99	  If compiled as module (M), the module name is fsl-enetc-ptp.
100
101config FSL_ENETC_QOS
102	bool "ENETC hardware Time-sensitive Network support"
103	depends on (FSL_ENETC || FSL_ENETC_VF) && (NET_SCH_TAPRIO || NET_SCH_CBS)
104	help
105	  There are Time-Sensitive Network(TSN) capabilities(802.1Qbv/802.1Qci
106	  /802.1Qbu etc.) supported by ENETC. These TSN capabilities can be set
107	  enable/disable from user space via Qos commands(tc). In the kernel
108	  side, it can be loaded by Qos driver. Currently, it is only support
109	  taprio(802.1Qbv) and Credit Based Shaper(802.1Qbu).
110
111config NXP_NETC_BLK_CTRL
112	tristate "NETC blocks control driver"
113	help
114	  This driver configures Integrated Endpoint Register Block (IERB) and
115	  Privileged Register Block (PRB) of NETC. For i.MX platforms, it also
116	  includes the configuration of NETCMIX block.
117	  The IERB contains registers that are used for pre-boot initialization,
118	  debug, and non-customer configuration. The PRB controls global reset
119	  and global error handling for NETC. The NETCMIX block is mainly used
120	  to set MII protocol and PCS protocol of the links, it also contains
121	  settings for some other functions.
122
123	  If compiled as module (M), the module name is nxp-netc-blk-ctrl.
124