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