1# SPDX-License-Identifier: GPL-2.0
2config FSL_ENETC
3	tristate "ENETC PF driver"
4	depends on PCI && PCI_MSI && (ARCH_LAYERSCAPE || COMPILE_TEST)
5	select FSL_ENETC_MDIO
6	select PHYLIB
7	help
8	  This driver supports NXP ENETC gigabit ethernet controller PCIe
9	  physical function (PF) devices, managing ENETC Ports at a privileged
10	  level.
11
12	  If compiled as module (M), the module name is fsl-enetc.
13
14config FSL_ENETC_VF
15	tristate "ENETC VF driver"
16	depends on PCI && PCI_MSI && (ARCH_LAYERSCAPE || COMPILE_TEST)
17	select PHYLIB
18	help
19	  This driver supports NXP ENETC gigabit ethernet controller PCIe
20	  virtual function (VF) devices enabled by the ENETC PF driver.
21
22	  If compiled as module (M), the module name is fsl-enetc-vf.
23
24config FSL_ENETC_MDIO
25	tristate "ENETC MDIO driver"
26	depends on PCI && (ARCH_LAYERSCAPE || COMPILE_TEST)
27	help
28	  This driver supports NXP ENETC Central MDIO controller as a PCIe
29	  physical function (PF) device.
30
31	  If compiled as module (M), the module name is fsl-enetc-mdio.
32
33config FSL_ENETC_PTP_CLOCK
34	tristate "ENETC PTP clock driver"
35	depends on PTP_1588_CLOCK_QORIQ && (FSL_ENETC || FSL_ENETC_VF)
36	default y
37	help
38	  This driver adds support for using the ENETC 1588 timer
39	  as a PTP clock. This clock is only useful if your PTP
40	  programs are getting hardware time stamps on the PTP Ethernet
41	  packets using the SO_TIMESTAMPING API.
42
43	  If compiled as module (M), the module name is fsl-enetc-ptp.
44
45config FSL_ENETC_HW_TIMESTAMPING
46	bool "ENETC hardware timestamping support"
47	depends on FSL_ENETC || FSL_ENETC_VF
48	help
49	  Enable hardware timestamping support on the Ethernet packets
50	  using the SO_TIMESTAMPING API. Because the RX BD ring dynamic
51	  allocation has not been supported and it is too expensive to use
52	  extended RX BDs if timestamping is not used, this option enables
53	  extended RX BDs in order to support hardware timestamping.
54
55config FSL_ENETC_QOS
56	bool "ENETC hardware Time-sensitive Network support"
57	depends on (FSL_ENETC || FSL_ENETC_VF) && (NET_SCH_TAPRIO || NET_SCH_CBS)
58	help
59	  There are Time-Sensitive Network(TSN) capabilities(802.1Qbv/802.1Qci
60	  /802.1Qbu etc.) supported by ENETC. These TSN capabilities can be set
61	  enable/disable from user space via Qos commands(tc). In the kernel
62	  side, it can be loaded by Qos driver. Currently, it is only support
63	  taprio(802.1Qbv) and Credit Based Shaper(802.1Qbu).
64