# SPDX-License-Identifier: GPL-2.0-only 
 | 
# 
 | 
# QCOM Soc drivers 
 | 
# 
 | 
menu "Qualcomm SoC drivers" 
 | 
  
 | 
config QCOM_AOSS_QMP 
 | 
    tristate "Qualcomm AOSS Driver" 
 | 
    depends on ARCH_QCOM || COMPILE_TEST 
 | 
    depends on MAILBOX 
 | 
    depends on COMMON_CLK && PM 
 | 
    select PM_GENERIC_DOMAINS 
 | 
    help 
 | 
      This driver provides the means of communicating with and controlling 
 | 
      the low-power state for resources related to the remoteproc 
 | 
      subsystems as well as controlling the debug clocks exposed by the Always On 
 | 
      Subsystem (AOSS) using Qualcomm Messaging Protocol (QMP). 
 | 
  
 | 
config QCOM_COMMAND_DB 
 | 
    tristate "Qualcomm Command DB" 
 | 
    depends on ARCH_QCOM || COMPILE_TEST 
 | 
    depends on OF_RESERVED_MEM 
 | 
    help 
 | 
      Command DB queries shared memory by key string for shared system 
 | 
      resources. Platform drivers that require to set state of a shared 
 | 
      resource on a RPM-hardened platform must use this database to get 
 | 
      SoC specific identifier and information for the shared resources. 
 | 
  
 | 
config QCOM_CPR 
 | 
    tristate "QCOM Core Power Reduction (CPR) support" 
 | 
    depends on ARCH_QCOM && HAS_IOMEM 
 | 
    select PM_OPP 
 | 
    select REGMAP 
 | 
    help 
 | 
      Say Y here to enable support for the CPR hardware found on Qualcomm 
 | 
      SoCs like QCS404. 
 | 
  
 | 
      This driver populates CPU OPPs tables and makes adjustments to the 
 | 
      tables based on feedback from the CPR hardware. If you want to do 
 | 
      CPUfrequency scaling say Y here. 
 | 
  
 | 
      To compile this driver as a module, choose M here: the module will 
 | 
      be called qcom-cpr 
 | 
  
 | 
config QCOM_GENI_SE 
 | 
    tristate "QCOM GENI Serial Engine Driver" 
 | 
    depends on ARCH_QCOM || COMPILE_TEST 
 | 
    help 
 | 
      This driver is used to manage Generic Interface (GENI) firmware based 
 | 
      Qualcomm Technologies, Inc. Universal Peripheral (QUP) Wrapper. This 
 | 
      driver is also used to manage the common aspects of multiple Serial 
 | 
      Engines present in the QUP. 
 | 
  
 | 
config QCOM_GSBI 
 | 
    tristate "QCOM General Serial Bus Interface" 
 | 
    depends on ARCH_QCOM || COMPILE_TEST 
 | 
    select MFD_SYSCON 
 | 
    help 
 | 
      Say y here to enable GSBI support.  The GSBI provides control 
 | 
      functions for connecting the underlying serial UART, SPI, and I2C 
 | 
      devices to the output pins. 
 | 
  
 | 
config QCOM_LLCC 
 | 
    tristate "Qualcomm Technologies, Inc. LLCC driver" 
 | 
    depends on ARCH_QCOM || COMPILE_TEST 
 | 
    select REGMAP_MMIO 
 | 
    help 
 | 
      Qualcomm Technologies, Inc. platform specific 
 | 
      Last Level Cache Controller(LLCC) driver for platforms such as, 
 | 
      SDM845. This provides interfaces to clients that use the LLCC. 
 | 
      Say yes here to enable LLCC slice driver. 
 | 
  
 | 
config QCOM_KRYO_L2_ACCESSORS 
 | 
    bool 
 | 
    depends on ARCH_QCOM && ARM64 || COMPILE_TEST 
 | 
  
 | 
config QCOM_MDT_LOADER 
 | 
    tristate 
 | 
    select QCOM_SCM 
 | 
  
 | 
config QCOM_OCMEM 
 | 
    tristate "Qualcomm On Chip Memory (OCMEM) driver" 
 | 
    depends on ARCH_QCOM 
 | 
    select QCOM_SCM 
 | 
    help 
 | 
      The On Chip Memory (OCMEM) allocator allows various clients to 
 | 
      allocate memory from OCMEM based on performance, latency and power 
 | 
      requirements. This is typically used by the GPU, camera/video, and 
 | 
      audio components on some Snapdragon SoCs. 
 | 
  
 | 
config QCOM_PDR_HELPERS 
 | 
    tristate 
 | 
    select QCOM_QMI_HELPERS 
 | 
  
 | 
config QCOM_QMI_HELPERS 
 | 
    tristate 
 | 
    depends on NET 
 | 
  
 | 
config QCOM_RMTFS_MEM 
 | 
    tristate "Qualcomm Remote Filesystem memory driver" 
 | 
    depends on ARCH_QCOM 
 | 
    select QCOM_SCM 
 | 
    help 
 | 
      The Qualcomm remote filesystem memory driver is used for allocating 
 | 
      and exposing regions of shared memory with remote processors for the 
 | 
      purpose of exchanging sector-data between the remote filesystem 
 | 
      service and its clients. 
 | 
  
 | 
      Say y here if you intend to boot the modem remoteproc. 
 | 
  
 | 
config QCOM_RPMH 
 | 
    tristate "Qualcomm RPM-Hardened (RPMH) Communication" 
 | 
    depends on ARCH_QCOM || COMPILE_TEST 
 | 
    depends on (QCOM_COMMAND_DB || !QCOM_COMMAND_DB) 
 | 
    help 
 | 
      Support for communication with the hardened-RPM blocks in 
 | 
      Qualcomm Technologies Inc (QTI) SoCs. RPMH communication uses an 
 | 
      internal bus to transmit state requests for shared resources. A set 
 | 
      of hardware components aggregate requests for these resources and 
 | 
      help apply the aggregated state on the resource. 
 | 
  
 | 
config QCOM_RPMHPD 
 | 
    tristate "Qualcomm RPMh Power domain driver" 
 | 
    depends on QCOM_RPMH && QCOM_COMMAND_DB 
 | 
    help 
 | 
      QCOM RPMh Power domain driver to support power-domains with 
 | 
      performance states. The driver communicates a performance state 
 | 
      value to RPMh which then translates it into corresponding voltage 
 | 
      for the voltage rail. 
 | 
  
 | 
config QCOM_RPMPD 
 | 
    tristate "Qualcomm RPM Power domain driver" 
 | 
    depends on PM 
 | 
    depends on QCOM_SMD_RPM 
 | 
    help 
 | 
      QCOM RPM Power domain driver to support power-domains with 
 | 
      performance states. The driver communicates a performance state 
 | 
      value to RPM which then translates it into corresponding voltage 
 | 
      for the voltage rail. 
 | 
  
 | 
config QCOM_SMEM 
 | 
    tristate "Qualcomm Shared Memory Manager (SMEM)" 
 | 
    depends on ARCH_QCOM || COMPILE_TEST 
 | 
    depends on HWSPINLOCK 
 | 
    help 
 | 
      Say y here to enable support for the Qualcomm Shared Memory Manager. 
 | 
      The driver provides an interface to items in a heap shared among all 
 | 
      processors in a Qualcomm platform. 
 | 
  
 | 
config QCOM_SMD_RPM 
 | 
    tristate "Qualcomm Resource Power Manager (RPM) over SMD" 
 | 
    depends on ARCH_QCOM || COMPILE_TEST 
 | 
    depends on RPMSG 
 | 
    help 
 | 
      If you say yes to this option, support will be included for the 
 | 
      Resource Power Manager system found in the Qualcomm 8974 based 
 | 
      devices. 
 | 
  
 | 
      This is required to access many regulators, clocks and bus 
 | 
      frequencies controlled by the RPM on these devices. 
 | 
  
 | 
      Say M here if you want to include support for the Qualcomm RPM as a 
 | 
      module. This will build a module called "qcom-smd-rpm". 
 | 
  
 | 
config QCOM_SMEM_STATE 
 | 
    bool 
 | 
  
 | 
config QCOM_SMP2P 
 | 
    tristate "Qualcomm Shared Memory Point to Point support" 
 | 
    depends on MAILBOX 
 | 
    depends on QCOM_SMEM 
 | 
    select QCOM_SMEM_STATE 
 | 
    select IRQ_DOMAIN 
 | 
    help 
 | 
      Say yes here to support the Qualcomm Shared Memory Point to Point 
 | 
      protocol. 
 | 
  
 | 
config QCOM_SMSM 
 | 
    tristate "Qualcomm Shared Memory State Machine" 
 | 
    depends on QCOM_SMEM 
 | 
    select QCOM_SMEM_STATE 
 | 
    select IRQ_DOMAIN 
 | 
    help 
 | 
      Say yes here to support the Qualcomm Shared Memory State Machine. 
 | 
      The state machine is represented by bits in shared memory. 
 | 
  
 | 
config QCOM_SOCINFO 
 | 
    tristate "Qualcomm socinfo driver" 
 | 
    depends on QCOM_SMEM 
 | 
    select SOC_BUS 
 | 
    help 
 | 
     Say yes here to support the Qualcomm socinfo driver, providing 
 | 
     information about the SoC to user space. 
 | 
  
 | 
config QCOM_WCNSS_CTRL 
 | 
    tristate "Qualcomm WCNSS control driver" 
 | 
    depends on ARCH_QCOM || COMPILE_TEST 
 | 
    depends on RPMSG 
 | 
    help 
 | 
      Client driver for the WCNSS_CTRL SMD channel, used to download nv 
 | 
      firmware to a newly booted WCNSS chip. 
 | 
  
 | 
config QCOM_APR 
 | 
    tristate "Qualcomm APR Bus (Asynchronous Packet Router)" 
 | 
    depends on ARCH_QCOM || COMPILE_TEST 
 | 
    depends on RPMSG 
 | 
    depends on NET 
 | 
    select QCOM_PDR_HELPERS 
 | 
    help 
 | 
      Enable APR IPC protocol support between 
 | 
      application processor and QDSP6. APR is 
 | 
      used by audio driver to configure QDSP6 
 | 
      ASM, ADM and AFE modules. 
 | 
endmenu 
 |