162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# HISILICON device configuration
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciconfig NET_VENDOR_HISILICON
762306a36Sopenharmony_ci	bool "Hisilicon devices"
862306a36Sopenharmony_ci	default y
962306a36Sopenharmony_ci	depends on OF || ACPI
1062306a36Sopenharmony_ci	depends on ARM || ARM64 || COMPILE_TEST
1162306a36Sopenharmony_ci	help
1262306a36Sopenharmony_ci	  If you have a network (Ethernet) card belonging to this class, say Y.
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci	  Note that the answer to this question doesn't directly affect the
1562306a36Sopenharmony_ci	  kernel: saying N will just cause the configurator to skip all
1662306a36Sopenharmony_ci	  the questions about Hisilicon devices. If you say Y, you will be asked
1762306a36Sopenharmony_ci	  for your specific card in the following questions.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ciif NET_VENDOR_HISILICON
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ciconfig HIX5HD2_GMAC
2262306a36Sopenharmony_ci	tristate "Hisilicon HIX5HD2 Family Network Device Support"
2362306a36Sopenharmony_ci	select PHYLIB
2462306a36Sopenharmony_ci	help
2562306a36Sopenharmony_ci	  This selects the hix5hd2 mac family network device.
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ciconfig HISI_FEMAC
2862306a36Sopenharmony_ci	tristate "Hisilicon Fast Ethernet MAC device support"
2962306a36Sopenharmony_ci	depends on HAS_IOMEM
3062306a36Sopenharmony_ci	select PHYLIB
3162306a36Sopenharmony_ci	select RESET_CONTROLLER
3262306a36Sopenharmony_ci	help
3362306a36Sopenharmony_ci	  This selects the Hisilicon Fast Ethernet MAC device(FEMAC).
3462306a36Sopenharmony_ci	  The FEMAC receives and transmits data over Ethernet
3562306a36Sopenharmony_ci	  ports at 10/100 Mbps in full-duplex or half-duplex mode.
3662306a36Sopenharmony_ci	  The FEMAC exchanges data with the CPU, and supports
3762306a36Sopenharmony_ci	  the energy efficient Ethernet (EEE).
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ciconfig HIP04_ETH
4062306a36Sopenharmony_ci	tristate "HISILICON P04 Ethernet support"
4162306a36Sopenharmony_ci	depends on HAS_IOMEM	# For MFD_SYSCON
4262306a36Sopenharmony_ci	select MARVELL_PHY
4362306a36Sopenharmony_ci	select MFD_SYSCON
4462306a36Sopenharmony_ci	select HNS_MDIO
4562306a36Sopenharmony_ci	help
4662306a36Sopenharmony_ci	  If you wish to compile a kernel for a hardware with hisilicon p04 SoC and
4762306a36Sopenharmony_ci	  want to use the internal ethernet then you should answer Y to this.
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciconfig HI13X1_GMAC
5062306a36Sopenharmony_ci	bool "Hisilicon HI13X1 Network Device Support"
5162306a36Sopenharmony_ci	depends on HIP04_ETH
5262306a36Sopenharmony_ci	help
5362306a36Sopenharmony_ci	  If you wish to compile a kernel for a hardware with hisilicon hi13x1_gamc
5462306a36Sopenharmony_ci	  then you should answer Y to this. This makes this driver suitable for use
5562306a36Sopenharmony_ci	  on certain boards such as the HI13X1.
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci	  If you are unsure, say N.
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ciconfig HNS_MDIO
6062306a36Sopenharmony_ci	tristate
6162306a36Sopenharmony_ci	select PHYLIB
6262306a36Sopenharmony_ci	help
6362306a36Sopenharmony_ci	  This selects the HNS MDIO support. It is needed by HNS_DSAF to access
6462306a36Sopenharmony_ci	  the PHY
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ciconfig HNS
6762306a36Sopenharmony_ci	tristate
6862306a36Sopenharmony_ci	help
6962306a36Sopenharmony_ci	  This selects the framework support for Hisilicon Network Subsystem. It
7062306a36Sopenharmony_ci	  is needed by any driver which provides HNS acceleration engine or make
7162306a36Sopenharmony_ci	  use of the engine
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ciconfig HNS_DSAF
7462306a36Sopenharmony_ci	tristate "Hisilicon HNS DSAF device Support"
7562306a36Sopenharmony_ci	select HNS
7662306a36Sopenharmony_ci	select HNS_MDIO
7762306a36Sopenharmony_ci	help
7862306a36Sopenharmony_ci	  This selects the DSAF (Distributed System Area Frabric) network
7962306a36Sopenharmony_ci	  acceleration engine support. The engine is used in Hisilicon hip05,
8062306a36Sopenharmony_ci	  Hi1610 and further ICT SoC
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ciconfig HNS_ENET
8362306a36Sopenharmony_ci	tristate "Hisilicon HNS Ethernet Device Support"
8462306a36Sopenharmony_ci	select PHYLIB
8562306a36Sopenharmony_ci	select HNS
8662306a36Sopenharmony_ci	help
8762306a36Sopenharmony_ci	  This selects the general ethernet driver for HNS.  This module make
8862306a36Sopenharmony_ci	  use of any HNS AE driver, such as HNS_DSAF
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ciconfig HNS3
9162306a36Sopenharmony_ci	tristate "Hisilicon Network Subsystem Support HNS3 (Framework)"
9262306a36Sopenharmony_ci	depends on PCI
9362306a36Sopenharmony_ci	select NET_DEVLINK
9462306a36Sopenharmony_ci	select PAGE_POOL
9562306a36Sopenharmony_ci	help
9662306a36Sopenharmony_ci	  This selects the framework support for Hisilicon Network Subsystem 3.
9762306a36Sopenharmony_ci	  This layer facilitates clients like ENET, RoCE and user-space ethernet
9862306a36Sopenharmony_ci	  drivers(like ODP)to register with HNAE devices and their associated
9962306a36Sopenharmony_ci	  operations.
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ciif HNS3
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ciconfig HNS3_HCLGE
10462306a36Sopenharmony_ci	tristate "Hisilicon HNS3 HCLGE Acceleration Engine & Compatibility Layer Support"
10562306a36Sopenharmony_ci	default m
10662306a36Sopenharmony_ci	depends on PCI_MSI
10762306a36Sopenharmony_ci	depends on PTP_1588_CLOCK_OPTIONAL
10862306a36Sopenharmony_ci	help
10962306a36Sopenharmony_ci	  This selects the HNS3_HCLGE network acceleration engine & its hardware
11062306a36Sopenharmony_ci	  compatibility layer. The engine would be used in Hisilicon hip08 family of
11162306a36Sopenharmony_ci	  SoCs and further upcoming SoCs.
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ciconfig HNS3_DCB
11462306a36Sopenharmony_ci	bool "Hisilicon HNS3 Data Center Bridge Support"
11562306a36Sopenharmony_ci	default n
11662306a36Sopenharmony_ci	depends on HNS3_HCLGE && DCB
11762306a36Sopenharmony_ci	help
11862306a36Sopenharmony_ci	  Say Y here if you want to use Data Center Bridging (DCB) in the HNS3 driver.
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci	  If unsure, say N.
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ciconfig HNS3_HCLGEVF
12362306a36Sopenharmony_ci	tristate "Hisilicon HNS3VF Acceleration Engine & Compatibility Layer Support"
12462306a36Sopenharmony_ci	depends on PCI_MSI
12562306a36Sopenharmony_ci	depends on HNS3_HCLGE
12662306a36Sopenharmony_ci	help
12762306a36Sopenharmony_ci	  This selects the HNS3 VF drivers network acceleration engine & its hardware
12862306a36Sopenharmony_ci	  compatibility layer. The engine would be used in Hisilicon hip08 family of
12962306a36Sopenharmony_ci	  SoCs and further upcoming SoCs.
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ciconfig HNS3_ENET
13262306a36Sopenharmony_ci	tristate "Hisilicon HNS3 Ethernet Device Support"
13362306a36Sopenharmony_ci	default m
13462306a36Sopenharmony_ci	depends on 64BIT && PCI
13562306a36Sopenharmony_ci	depends on INET
13662306a36Sopenharmony_ci	select DIMLIB
13762306a36Sopenharmony_ci	help
13862306a36Sopenharmony_ci	  This selects the Ethernet Driver for Hisilicon Network Subsystem 3 for hip08
13962306a36Sopenharmony_ci	  family of SoCs. This module depends upon HNAE3 driver to access the HNAE3
14062306a36Sopenharmony_ci	  devices and their associated operations.
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_ciendif #HNS3
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ciendif # NET_VENDOR_HISILICON
145