xref: /linux/drivers/net/ethernet/ti/Kconfig (revision 1e15510b71c99c6e49134d756df91069f7d18141)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# TI device configuration
4#
5
6config NET_VENDOR_TI
7	bool "Texas Instruments (TI) devices"
8	default y
9	depends on PCI || EISA || ARCH_DAVINCI || ARCH_OMAP2PLUS || ARCH_KEYSTONE || ARCH_K3
10	help
11	  If you have a network (Ethernet) card belonging to this class, say Y.
12
13	  Note that the answer to this question doesn't directly affect the
14	  kernel: saying N will just cause the configurator to skip all
15	  the questions about TI devices. If you say Y, you will be asked for
16	  your specific card in the following questions.
17
18if NET_VENDOR_TI
19
20config TI_DAVINCI_EMAC
21	tristate "TI DaVinci EMAC Support"
22	depends on ARM && ( ARCH_DAVINCI || ARCH_OMAP3 ) || COMPILE_TEST
23	select TI_DAVINCI_MDIO
24	select PHYLIB
25	select GENERIC_ALLOCATOR
26	help
27	  This driver supports TI's DaVinci Ethernet .
28
29	  To compile this driver as a module, choose M here: the module
30	  will be called davinci_emac_driver.  This is recommended.
31
32config TI_DAVINCI_MDIO
33	tristate "TI DaVinci MDIO Support"
34	depends on ARCH_DAVINCI || ARCH_OMAP2PLUS || ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
35	select PHYLIB
36	select MDIO_BITBANG
37	help
38	  This driver supports TI's DaVinci MDIO module.
39
40	  To compile this driver as a module, choose M here: the module
41	  will be called davinci_mdio.  This is recommended.
42
43config TI_CPSW_PHY_SEL
44	bool "TI CPSW Phy mode Selection (DEPRECATED)"
45	default n
46	help
47	  This driver supports configuring of the phy mode connected to
48	  the CPSW. DEPRECATED: use PHY_TI_GMII_SEL.
49
50config TI_CPSW
51	tristate "TI CPSW Switch Support"
52	depends on ARCH_DAVINCI || ARCH_OMAP2PLUS || COMPILE_TEST
53	depends on TI_CPTS || !TI_CPTS
54	select TI_DAVINCI_MDIO
55	select MFD_SYSCON
56	select PAGE_POOL
57	select REGMAP
58	imply PHY_TI_GMII_SEL
59	help
60	  This driver supports TI's CPSW Ethernet Switch.
61
62	  To compile this driver as a module, choose M here: the module
63	  will be called cpsw.
64
65config TI_CPSW_SWITCHDEV
66	tristate "TI CPSW Switch Support with switchdev"
67	depends on ARCH_DAVINCI || ARCH_OMAP2PLUS || COMPILE_TEST
68	depends on NET_SWITCHDEV
69	depends on TI_CPTS || !TI_CPTS
70	select PAGE_POOL
71	select TI_DAVINCI_MDIO
72	select MFD_SYSCON
73	select REGMAP
74	select NET_DEVLINK
75	imply PHY_TI_GMII_SEL
76	help
77	  This driver supports TI's CPSW Ethernet Switch.
78
79	  To compile this driver as a module, choose M here: the module
80	  will be called cpsw_new.
81
82config TI_CPTS
83	tristate "TI Common Platform Time Sync (CPTS) Support"
84	depends on ARCH_OMAP2PLUS || ARCH_KEYSTONE || COMPILE_TEST
85	depends on COMMON_CLK
86	depends on PTP_1588_CLOCK
87	help
88	  This driver supports the Common Platform Time Sync unit of
89	  the CPSW Ethernet Switch and Keystone 2 1g/10g Switch Subsystem.
90	  The unit can time stamp PTP UDP/IPv4 and Layer 2 packets, and the
91	  driver offers a PTP Hardware Clock.
92
93config TI_K3_CPPI_DESC_POOL
94	tristate
95
96config TI_K3_AM65_CPSW_NUSS
97	tristate "TI K3 AM654x/J721E CPSW Ethernet driver"
98	depends on ARCH_K3 && OF && TI_K3_UDMA_GLUE_LAYER
99	select NET_DEVLINK
100	select TI_DAVINCI_MDIO
101	select PHYLINK
102	select PAGE_POOL
103	select TI_K3_CPPI_DESC_POOL
104	imply PHY_TI_GMII_SEL
105	depends on TI_K3_AM65_CPTS || !TI_K3_AM65_CPTS
106	help
107	  This driver supports TI K3 AM654/J721E CPSW2G Ethernet SubSystem.
108	  The two-port Gigabit Ethernet MAC (MCU_CPSW0) subsystem provides
109	  Ethernet packet communication for the device: One Ethernet port
110	  (port 1) with selectable RGMII and RMII interfaces and an internal
111	  Communications Port Programming Interface (CPPI) port (port 0).
112
113	  To compile this driver as a module, choose M here: the module
114	  will be called ti-am65-cpsw-nuss.
115
116config TI_K3_AM65_CPSW_SWITCHDEV
117	bool "TI K3 AM654x/J721E CPSW Switch mode support"
118	depends on TI_K3_AM65_CPSW_NUSS
119	depends on NET_SWITCHDEV
120	help
121	 This enables switchdev support for TI K3 CPSWxG Ethernet
122	 Switch. Enable this driver to support hardware switch support for AM65
123	 CPSW NUSS driver.
124
125config TI_K3_AM65_CPTS
126	tristate "TI K3 AM65x CPTS"
127	depends on ARCH_K3 && OF
128	depends on PTP_1588_CLOCK
129	help
130	  Say y here to support the TI K3 AM65x CPTS with 1588 features such as
131	  PTP hardware clock for each CPTS device and network packets
132	  timestamping where applicable.
133	  Depending on integration CPTS blocks enable compliance with
134	  the IEEE 1588-2008 standard for a precision clock synchronization
135	  protocol, Ethernet Enhanced Scheduled Traffic Operations (CPTS_ESTFn)
136	  and PCIe Subsystem Precision Time Measurement (PTM).
137
138config TI_AM65_CPSW_QOS
139	bool "Enable QoS offload features in AM65 CPSW"
140	depends on TI_K3_AM65_CPSW_NUSS && NET_SCH_TAPRIO && TI_K3_AM65_CPTS
141	help
142	  This option enables QoS offload features in AM65 CPSW like
143	  Time Aware Shaper (TAS) / Enhanced Scheduled Traffic (EST),
144	  MQPRIO qdisc offload and Frame-Preemption MAC Merge / Interspersing
145	  Express Traffic (IET).
146	  The EST scheduler runs on CPTS and the TAS/EST schedule is
147	  updated in the Fetch RAM memory of the CPSW.
148
149config TI_KEYSTONE_NETCP
150	tristate "TI Keystone NETCP Core Support"
151	select TI_DAVINCI_MDIO
152	depends on OF
153	depends on KEYSTONE_NAVIGATOR_DMA && KEYSTONE_NAVIGATOR_QMSS
154	depends on TI_CPTS || !TI_CPTS
155	help
156	  This driver supports TI's Keystone NETCP Core.
157
158	  To compile this driver as a module, choose M here: the module
159	  will be called keystone_netcp.
160
161config TI_KEYSTONE_NETCP_ETHSS
162	depends on TI_KEYSTONE_NETCP
163	tristate "TI Keystone NETCP Ethernet subsystem Support"
164	help
165
166	  To compile this driver as a module, choose M here: the module
167	  will be called keystone_netcp_ethss.
168
169config TLAN
170	tristate "TI ThunderLAN support"
171	depends on (PCI || EISA) && HAS_IOPORT
172	help
173	  If you have a PCI Ethernet network card based on the ThunderLAN chip
174	  which is supported by this driver, say Y here.
175
176	  Devices currently supported by this driver are Compaq Netelligent,
177	  Compaq NetFlex and Olicom cards.  Please read the file
178	  <file:Documentation/networking/device_drivers/ethernet/ti/tlan.rst>
179	  for more details.
180
181	  To compile this driver as a module, choose M here. The module
182	  will be called tlan.
183
184	  Please email feedback to <torben.mathiasen@compaq.com>.
185
186config TI_ICSSG_PRUETH
187	tristate "TI Gigabit PRU Ethernet driver"
188	select PHYLIB
189	select TI_ICSS_IEP
190	select TI_K3_CPPI_DESC_POOL
191	depends on PRU_REMOTEPROC
192	depends on NET_SWITCHDEV
193	depends on ARCH_K3 && OF && TI_K3_UDMA_GLUE_LAYER
194	depends on PTP_1588_CLOCK_OPTIONAL
195	help
196	  Support dual Gigabit Ethernet ports over the ICSSG PRU Subsystem.
197	  This subsystem is available starting with the AM65 platform.
198
199	  This driver requires firmware binaries which will run on the PRUs
200	  to support the Ethernet operation. Currently, it supports Ethernet
201	  with 1G and 100M link speed.
202
203config TI_ICSSG_PRUETH_SR1
204	tristate "TI Gigabit PRU SR1.0 Ethernet driver"
205	select PHYLIB
206	select TI_ICSS_IEP
207	select TI_K3_CPPI_DESC_POOL
208	depends on PRU_REMOTEPROC
209	depends on NET_SWITCHDEV
210	depends on ARCH_K3 && OF && TI_K3_UDMA_GLUE_LAYER
211	help
212	  Support dual Gigabit Ethernet ports over the ICSSG PRU Subsystem.
213	  This subsystem is available on the AM65 SR1.0 platform.
214
215	  This driver requires firmware binaries which will run on the PRUs
216	  to support the Ethernet operation. Currently, it supports Ethernet
217	  with 1G, 100M and 10M link speed.
218
219config TI_ICSS_IEP
220	tristate "TI PRU ICSS IEP driver"
221	depends on PTP_1588_CLOCK_OPTIONAL
222	depends on TI_PRUSS
223	default TI_PRUSS
224	help
225	  This driver enables support for the PRU-ICSS Industrial Ethernet
226	  Peripheral within a PRU-ICSS subsystem present on various TI SoCs.
227
228	  To compile this driver as a module, choose M here. The module
229	  will be called icss_iep.
230
231endif # NET_VENDOR_TI
232