GNU Linux-libre 6.8.7-gnu
[releases.git] / drivers / net / ethernet / freescale / enetc / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2 config 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
10 config FSL_ENETC
11         tristate "ENETC PF driver"
12         depends on PCI_MSI
13         select MDIO_DEVRES
14         select FSL_ENETC_CORE
15         select FSL_ENETC_IERB
16         select FSL_ENETC_MDIO
17         select PHYLINK
18         select PCS_LYNX
19         select DIMLIB
20         help
21           This driver supports NXP ENETC gigabit ethernet controller PCIe
22           physical function (PF) devices, managing ENETC Ports at a privileged
23           level.
24
25           If compiled as module (M), the module name is fsl-enetc.
26
27 config FSL_ENETC_VF
28         tristate "ENETC VF driver"
29         depends on PCI_MSI
30         select FSL_ENETC_CORE
31         select FSL_ENETC_MDIO
32         select PHYLINK
33         select DIMLIB
34         help
35           This driver supports NXP ENETC gigabit ethernet controller PCIe
36           virtual function (VF) devices enabled by the ENETC PF driver.
37
38           If compiled as module (M), the module name is fsl-enetc-vf.
39
40 config FSL_ENETC_IERB
41         tristate "ENETC IERB driver"
42         help
43           This driver configures the Integrated Endpoint Register Block on NXP
44           LS1028A.
45
46           If compiled as module (M), the module name is fsl-enetc-ierb.
47
48 config FSL_ENETC_MDIO
49         tristate "ENETC MDIO driver"
50         depends on PCI && MDIO_DEVRES && MDIO_BUS
51         help
52           This driver supports NXP ENETC Central MDIO controller as a PCIe
53           physical function (PF) device.
54
55           If compiled as module (M), the module name is fsl-enetc-mdio.
56
57 config FSL_ENETC_PTP_CLOCK
58         tristate "ENETC PTP clock driver"
59         depends on PTP_1588_CLOCK_QORIQ && (FSL_ENETC || FSL_ENETC_VF)
60         default y
61         help
62           This driver adds support for using the ENETC 1588 timer
63           as a PTP clock. This clock is only useful if your PTP
64           programs are getting hardware time stamps on the PTP Ethernet
65           packets using the SO_TIMESTAMPING API.
66
67           If compiled as module (M), the module name is fsl-enetc-ptp.
68
69 config FSL_ENETC_QOS
70         bool "ENETC hardware Time-sensitive Network support"
71         depends on (FSL_ENETC || FSL_ENETC_VF) && (NET_SCH_TAPRIO || NET_SCH_CBS)
72         help
73           There are Time-Sensitive Network(TSN) capabilities(802.1Qbv/802.1Qci
74           /802.1Qbu etc.) supported by ENETC. These TSN capabilities can be set
75           enable/disable from user space via Qos commands(tc). In the kernel
76           side, it can be loaded by Qos driver. Currently, it is only support
77           taprio(802.1Qbv) and Credit Based Shaper(802.1Qbu).