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