# SPDX-License-Identifier: GPL-2.0-only
config INTERCONNECT_QCOM
	tristate "Qualcomm Technologies, Inc. Network-on-Chip interconnect drivers"
	depends on ARCH_QCOM
	help
	  Support for Qualcomm's Network-on-Chip interconnect hardware.

config INTERCONNECT_QCOM_BCM_VOTER
	tristate

config INTERCONNECT_QCOM_MSM8916
	tristate "Qualcomm MSM8916 interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on QCOM_SMD_RPM
	select INTERCONNECT_QCOM_SMD_RPM
	help
	  This is a driver for the Qualcomm Network-on-Chip on msm8916-based
	  platforms.

config INTERCONNECT_QCOM_MSM8974
	tristate "Qualcomm MSM8974 interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on QCOM_SMD_RPM
	select INTERCONNECT_QCOM_SMD_RPM
	help
	 This is a driver for the Qualcomm Network-on-Chip on msm8974-based
	 platforms.

config INTERCONNECT_QCOM_OSM_L3
	tristate "Qualcomm OSM L3 interconnect driver"
	depends on INTERCONNECT_QCOM || COMPILE_TEST
	help
	  Say y here to support the Operating State Manager (OSM) interconnect
	  driver which controls the scaling of L3 caches on Qualcomm SoCs.

config INTERCONNECT_QCOM_HOLI
	tristate "Qualcomm HOLI interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on MSM_RPM_SMD
	select INTERCONNECT_QCOM_RPM
	select INTERCONNECT_QCOM_QOS
	help
	  This is a driver for the Qualcomm Technologies, Inc. Network-on-Chip
	  on holi-based platforms. The interconnect provider collects and
	  aggreagates the cosumer bandwidth requests to satisfy constraints
	  placed on Network-on-Chip performance states.

config INTERCONNECT_QCOM_QCS404
	tristate "Qualcomm QCS404 interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on QCOM_SMD_RPM
	select INTERCONNECT_QCOM_SMD_RPM
	help
	  This is a driver for the Qualcomm Network-on-Chip on qcs404-based
	  platforms.

config INTERCONNECT_QCOM_RPMH_POSSIBLE
	tristate
	default INTERCONNECT_QCOM
	depends on QCOM_RPMH || (COMPILE_TEST && !QCOM_RPMH)
	depends on QCOM_COMMAND_DB || (COMPILE_TEST && !QCOM_COMMAND_DB)
	depends on OF || COMPILE_TEST
	help
	  Compile-testing RPMH drivers is possible on other platforms,
	  but in order to avoid link failures, drivers must not be built-in
	  when QCOM_RPMH or QCOM_COMMAND_DB are loadable modules

config INTERCONNECT_QCOM_RPMH
	tristate

config INTERCONNECT_QCOM_SC7180
	tristate "Qualcomm SC7180 interconnect driver"
	depends on INTERCONNECT_QCOM_RPMH_POSSIBLE
	select INTERCONNECT_QCOM_RPMH
	select INTERCONNECT_QCOM_BCM_VOTER
	help
	  This is a driver for the Qualcomm Network-on-Chip on sc7180-based
	  platforms.

config INTERCONNECT_QCOM_SDM845
	tristate "Qualcomm SDM845 interconnect driver"
	depends on INTERCONNECT_QCOM_RPMH_POSSIBLE
	select INTERCONNECT_QCOM_RPMH
	select INTERCONNECT_QCOM_BCM_VOTER
	help
	  This is a driver for the Qualcomm Network-on-Chip on sdm845-based
	  platforms.

config INTERCONNECT_QCOM_ANORAK
	tristate "ANORAK interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on QCOM_RPMH && QCOM_COMMAND_DB && OF
	select INTERCONNECT_QCOM_BCM_VOTER
	select INTERCONNECT_QCOM_RPMH
	select INTERCONNECT_QCOM_QOS
	help
	  This is a driver for the Qualcomm Technologies, Inc. Network-on-Chip
	  on Anorak-based platforms. Interconnect driver provides interfaces
	  for setting bandwidth between two endpoints (path). It also used to
	  configure NOC QoS settings (Quality of Service).

config INTERCONNECT_QCOM_LAHAINA
	tristate "LAHAINA interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on QCOM_RPMH && QCOM_COMMAND_DB && OF
	select INTERCONNECT_QCOM_BCM_VOTER
	select INTERCONNECT_QCOM_RPMH
	select INTERCONNECT_QCOM_QOS
	help
	  This is a driver for the Qualcomm Technologies, Inc. Network-on-Chip
	  on lahaina-based platforms.

config INTERCONNECT_QCOM_NEO
	tristate "NEO interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on QCOM_RPMH && QCOM_COMMAND_DB && OF
	select INTERCONNECT_QCOM_BCM_VOTER
	select INTERCONNECT_QCOM_RPMH
	select INTERCONNECT_QCOM_QOS
	help
	  This is a driver for the Qualcomm Technologies, Inc. Network-on-Chip
	  on Neo-based platforms. Interconnect driver provides interfaces
	  for setting bandwidth between two endpoints (path). It also used to
	  configure NOC QoS settings (Quality of Service).

config INTERCONNECT_QCOM_PARROT
	tristate "PARROT interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on QCOM_RPMH && QCOM_COMMAND_DB && OF
	select INTERCONNECT_QCOM_BCM_VOTER
	select INTERCONNECT_QCOM_RPMH
	select INTERCONNECT_QCOM_QOS
	help
	  This is a driver for the Qualcomm Technologies, Inc. Network-on-Chip
	  on Parrot-based platforms. Interconnect driver provides interfaces
	  for setting bandwidth between two endpoints (path). It also used to
	  configure NOC QoS settings (Quality of Service).

config INTERCONNECT_QCOM_RAVELIN
	tristate "RAVELIN interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on QCOM_RPMH && QCOM_COMMAND_DB && OF
	select INTERCONNECT_QCOM_BCM_VOTER
	select INTERCONNECT_QCOM_RPMH
	select INTERCONNECT_QCOM_QOS
	help
	  This is a driver for the Qualcomm Technologies, Inc. Network-on-Chip
	  on Ravelin-based platforms. Interconnect driver provides interfaces
	  for setting bandwidth between two endpoints (path). It also used to
	  configure NOC QoS settings (Quality of Service).

config INTERCONNECT_QCOM_SHIMA
	tristate "SHIMA interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on QCOM_RPMH && QCOM_COMMAND_DB && OF
	select INTERCONNECT_QCOM_BCM_VOTER
	select INTERCONNECT_QCOM_RPMH
	select INTERCONNECT_QCOM_QOS
	help
	  This is a driver for the Qualcomm Technologies, Inc. Network-on-Chip
	  on shima-based platforms. The interconnect provider collects and
	  aggreagates the cosumer bandwidth requests to satisfy constraints
	  placed on Network-on-Chip performance states.

config INTERCONNECT_QCOM_EPSS_L3
	tristate "LAHAINA EPSS L3 driver"
	depends on INTERCONNECT_QCOM
	help
	  This is a driver for the Qualcomm Technologies, Inc. EPSS
	  L3 control found on lahaina-based platforms. The EPSS L3 provider
	  collects and aggregates consumer requests to satisfy constraints
	  placed on L3 performance states.

config INTERCONNECT_QCOM_WAIPIO
	tristate "WAIPIO interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on QCOM_RPMH && QCOM_COMMAND_DB && OF
	select INTERCONNECT_QCOM_BCM_VOTER
	select INTERCONNECT_QCOM_RPMH
	select INTERCONNECT_QCOM_QOS
	help
	  This is a driver for the Qualcomm Technologies, Inc. Network-on-Chip
	  on Waipio-based platforms. Interconnect driver provides interfaces
	  for setting bandwidth between two endpoints (path). It also used to
	  configure NOC QoS settings (Quality of Service).

config INTERCONNECT_QCOM_DIWALI
	tristate "DIWALI interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on QCOM_RPMH && QCOM_COMMAND_DB && OF
	select INTERCONNECT_QCOM_BCM_VOTER
	select INTERCONNECT_QCOM_RPMH
	select INTERCONNECT_QCOM_QOS
	help
	  This is a driver for the Qualcomm Technologies, Inc. Network-on-Chip
	  on Diwali-based platforms. Interconnect driver provides interfaces
	  for setting bandwidth between two endpoints (path). It also used to
	  configure NOC QoS settings (Quality of Service).

config INTERCONNECT_QCOM_SM8150
	tristate "Qualcomm SM8150 interconnect driver"
	depends on INTERCONNECT_QCOM_RPMH_POSSIBLE
	select INTERCONNECT_QCOM_RPMH
	select INTERCONNECT_QCOM_BCM_VOTER
	help
	  This is a driver for the Qualcomm Network-on-Chip on sm8150-based
	  platforms.

config INTERCONNECT_QCOM_SM8250
	tristate "Qualcomm SM8250 interconnect driver"
	depends on INTERCONNECT_QCOM_RPMH_POSSIBLE
	select INTERCONNECT_QCOM_RPMH
	select INTERCONNECT_QCOM_BCM_VOTER
	help
	  This is a driver for the Qualcomm Network-on-Chip on sm8250-based
	  platforms.

config INTERCONNECT_QCOM_CPUCP_L3
	tristate "HOLI CPUCP L3 driver"
	depends on INTERCONNECT_QCOM
	help
	  This is a driver for the Qualcomm Technologies, Inc. CPUCP
	  L3 control found on Holi-based platforms. The CPUCP L3 provider
	  collects and aggregates consumer requests to satisfy constraints
	  placed on L3 performance states.

config INTERCONNECT_QCOM_SMD_RPM
	tristate

config INTERCONNECT_QCOM_SDXLEMUR
	tristate "SDXLEMUR interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on QCOM_RPMH && QCOM_COMMAND_DB && OF
	select INTERCONNECT_QCOM_BCM_VOTER
	select INTERCONNECT_QCOM_RPMH
	select INTERCONNECT_QCOM_QOS
	help
	  This is a driver for the Qualcomm Technologies, Inc. Network-on-Chip
	  on sdxlemur-based platforms.

config INTERCONNECT_QCOM_QOS
	tristate

config INTERCONNECT_QCOM_DEBUG
	tristate "QCOM-specific interconnect debug features"
	depends on INTERCONNECT_QCOM
	help
          This driver provides QCOM-specific interconnect debug features. These
          features include optionally printing all enabled interconnect votes
          when entering suspend.
