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