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