# 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_QOS_RPM
	tristate

config INTERCONNECT_QCOM_MONACO
	tristate "MONACO interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on MSM_RPM_SMD
	select INTERCONNECT_QCOM_RPM
	select INTERCONNECT_QCOM_QOS_RPM
	help
	  This is a driver for the Qualcomm Technologies, Inc. Network-on-Chip
	  on monaco-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_TRINKET
	tristate "TRINKET interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on MSM_RPM_SMD
	select INTERCONNECT_QCOM_RPM
	select INTERCONNECT_QCOM_QOS_RPM
	help
	  This is a driver for the Qualcomm Technologies, Inc. Network-on-Chip
	  on trinket-based platforms. The interconnect provider collects and
	  aggregates the consumer bandwidth requests to satisfy constraints
	  placed on Network-on-Chip performance states.

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_MSM8939
	tristate "Qualcomm MSM8939 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 msm8939-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_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_QCS405
	tristate "QCS405 interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on MSM_RPM_SMD
	select INTERCONNECT_QCOM_RPM
	select INTERCONNECT_QCOM_QOS_RPM
	help
	  This is a driver for the Qualcomm Technologies, Inc. Network-on-Chip
	  on qcs405-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_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_CINDER
	tristate "CINDER 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 Cinder-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_EPSS_L3
	tristate "EPSS L3 interconnect driver"
	depends on INTERCONNECT_QCOM
	help
	  This is a driver for the Qualcomm Technologies, Inc. EPSS L3 control.
	  The EPSS L3 provider collects and aggregates consumer requests to
	  satisfy constraints placed on L3 performance states of the
	  CPU subsystem.

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_SC7280
	tristate "Qualcomm SC7280 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 sc7280-based
	  platforms.

config INTERCONNECT_QCOM_SC8180X
	tristate "Qualcomm SC8180X 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 sc8180x-based
	  platforms.

config INTERCONNECT_QCOM_SDM660
	tristate "Qualcomm SDM660 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 sdm660-based
	  platforms.

config INTERCONNECT_QCOM_SDM670
	tristate "SDM670 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 sdm670-based platforms. The interconnect provider collects and
	  aggregates the consumer bandwidth requests to satisfy constraints
	  placed on Network-on-Chip performance states.

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_SDX55
	tristate "Qualcomm SDX55 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 sdx55-based
	  platforms.

config INTERCONNECT_QCOM_SM8150
	tristate "SM8150 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 sm8150-based platforms. The interconnect provider collects and
	  aggregates the cosumer bandwidth requests to satisfy constraints
	  placed on Network-on-Chip performance states.

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_SM8350
	tristate "Qualcomm SM8350 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 SM8350-based
	  platforms.

config INTERCONNECT_QCOM_SCUBA
	tristate "SCUBA interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on MSM_RPM_SMD
	select INTERCONNECT_QCOM_RPM
	select INTERCONNECT_QCOM_QOS_RPM
	help
	  This is a driver for the Qualcomm Technologies, Inc. Network-on-Chip
	  on scuba-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_SDXPINN
	tristate "SDXPINN 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 SDXPINN-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_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_RPM
	tristate

config INTERCONNECT_QCOM_SMD_RPM
	tristate

config INTERCONNECT_QCOM_QOS
	tristate

config INTERCONNECT_QCOM_KALAMA
	tristate "KALAMA interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on 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 Kalama-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_CROW
	tristate "CROW interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on 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 Crow-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_SDXBAAGHA
	tristate "SDXBAAGHA interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on 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 SDXBAAGHA-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_BENGAL
	tristate "BENGAL interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on MSM_RPM_SMD
	select INTERCONNECT_QCOM_RPM
	select INTERCONNECT_QCOM_QOS_RPM
	help
	  This is a driver for the Qualcomm Technologies, Inc. Network-on-Chip
	  on bengal-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_KONA
	tristate "KONA 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 kona-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_SA410M
	tristate "SA410M interconnect driver"
	depends on INTERCONNECT_QCOM
	help
	  This is a driver for the Qualcomm Technologies, Inc. Network-on-Chip
	  on sa410m-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_DEBUG
	tristate "QCOM-specific interconnect debug features"
	depends on INTERCONNECT_QCOM
	depends on DEBUG_FS
	help
          This driver provides QCOM-specific interconnect debug features. These
          features include optionally printing all enabled interconnect votes
          when entering suspend.

config INTERCONNECT_QCOM_LEMANS
	tristate "LEMANS 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 lemans-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_MONACO_AUTO
	tristate "MONACO_AUTO 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 monaco_auto-based platforms. The interconnect provider collects and
	  aggreagates the cosumer bandwidth requests to satisfy constraints
	  placed on Network-on-Chip performance states.
