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