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_BUS 77 select MDIO_DEVRES 78 help 79 This driver supports NXP ENETC Central MDIO controller as a PCIe 80 physical function (PF) device. 81 82 If compiled as module (M), the module name is fsl-enetc-mdio. 83 84config FSL_ENETC_PTP_CLOCK 85 tristate "ENETC PTP clock driver" 86 depends on PTP_1588_CLOCK_QORIQ && (FSL_ENETC || FSL_ENETC_VF) 87 default y 88 help 89 This driver adds support for using the ENETC 1588 timer 90 as a PTP clock. This clock is only useful if your PTP 91 programs are getting hardware time stamps on the PTP Ethernet 92 packets using the SO_TIMESTAMPING API. 93 94 If compiled as module (M), the module name is fsl-enetc-ptp. 95 96config FSL_ENETC_QOS 97 bool "ENETC hardware Time-sensitive Network support" 98 depends on (FSL_ENETC || FSL_ENETC_VF) && (NET_SCH_TAPRIO || NET_SCH_CBS) 99 help 100 There are Time-Sensitive Network(TSN) capabilities(802.1Qbv/802.1Qci 101 /802.1Qbu etc.) supported by ENETC. These TSN capabilities can be set 102 enable/disable from user space via Qos commands(tc). In the kernel 103 side, it can be loaded by Qos driver. Currently, it is only support 104 taprio(802.1Qbv) and Credit Based Shaper(802.1Qbu). 105 106config NXP_NETC_BLK_CTRL 107 tristate "NETC blocks control driver" 108 help 109 This driver configures Integrated Endpoint Register Block (IERB) and 110 Privileged Register Block (PRB) of NETC. For i.MX platforms, it also 111 includes the configuration of NETCMIX block. 112 The IERB contains registers that are used for pre-boot initialization, 113 debug, and non-customer configuration. The PRB controls global reset 114 and global error handling for NETC. The NETCMIX block is mainly used 115 to set MII protocol and PCS protocol of the links, it also contains 116 settings for some other functions. 117 118 If compiled as module (M), the module name is nxp-netc-blk-ctrl. 119