162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci# 362306a36Sopenharmony_ci# QCOM Soc drivers 462306a36Sopenharmony_ci# 562306a36Sopenharmony_cimenu "Qualcomm SoC drivers" 662306a36Sopenharmony_ci 762306a36Sopenharmony_ciconfig QCOM_AOSS_QMP 862306a36Sopenharmony_ci tristate "Qualcomm AOSS Driver" 962306a36Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 1062306a36Sopenharmony_ci depends on MAILBOX 1162306a36Sopenharmony_ci depends on COMMON_CLK && PM 1262306a36Sopenharmony_ci select PM_GENERIC_DOMAINS 1362306a36Sopenharmony_ci help 1462306a36Sopenharmony_ci This driver provides the means of communicating with and controlling 1562306a36Sopenharmony_ci the low-power state for resources related to the remoteproc 1662306a36Sopenharmony_ci subsystems as well as controlling the debug clocks exposed by the Always On 1762306a36Sopenharmony_ci Subsystem (AOSS) using Qualcomm Messaging Protocol (QMP). 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ciconfig QCOM_COMMAND_DB 2062306a36Sopenharmony_ci tristate "Qualcomm Command DB" 2162306a36Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 2262306a36Sopenharmony_ci depends on OF_RESERVED_MEM 2362306a36Sopenharmony_ci help 2462306a36Sopenharmony_ci Command DB queries shared memory by key string for shared system 2562306a36Sopenharmony_ci resources. Platform drivers that require to set state of a shared 2662306a36Sopenharmony_ci resource on a RPM-hardened platform must use this database to get 2762306a36Sopenharmony_ci SoC specific identifier and information for the shared resources. 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ciconfig QCOM_CPR 3062306a36Sopenharmony_ci tristate "QCOM Core Power Reduction (CPR) support" 3162306a36Sopenharmony_ci depends on ARCH_QCOM && HAS_IOMEM 3262306a36Sopenharmony_ci select PM_OPP 3362306a36Sopenharmony_ci select REGMAP 3462306a36Sopenharmony_ci help 3562306a36Sopenharmony_ci Say Y here to enable support for the CPR hardware found on Qualcomm 3662306a36Sopenharmony_ci SoCs like QCS404. 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci This driver populates CPU OPPs tables and makes adjustments to the 3962306a36Sopenharmony_ci tables based on feedback from the CPR hardware. If you want to do 4062306a36Sopenharmony_ci CPUfrequency scaling say Y here. 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci To compile this driver as a module, choose M here: the module will 4362306a36Sopenharmony_ci be called qcom-cpr 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ciconfig QCOM_GENI_SE 4662306a36Sopenharmony_ci tristate "QCOM GENI Serial Engine Driver" 4762306a36Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 4862306a36Sopenharmony_ci help 4962306a36Sopenharmony_ci This driver is used to manage Generic Interface (GENI) firmware based 5062306a36Sopenharmony_ci Qualcomm Technologies, Inc. Universal Peripheral (QUP) Wrapper. This 5162306a36Sopenharmony_ci driver is also used to manage the common aspects of multiple Serial 5262306a36Sopenharmony_ci Engines present in the QUP. 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ciconfig QCOM_GSBI 5562306a36Sopenharmony_ci tristate "QCOM General Serial Bus Interface" 5662306a36Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 5762306a36Sopenharmony_ci select MFD_SYSCON 5862306a36Sopenharmony_ci help 5962306a36Sopenharmony_ci Say y here to enable GSBI support. The GSBI provides control 6062306a36Sopenharmony_ci functions for connecting the underlying serial UART, SPI, and I2C 6162306a36Sopenharmony_ci devices to the output pins. 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ciconfig QCOM_LLCC 6462306a36Sopenharmony_ci tristate "Qualcomm Technologies, Inc. LLCC driver" 6562306a36Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 6662306a36Sopenharmony_ci select REGMAP_MMIO 6762306a36Sopenharmony_ci help 6862306a36Sopenharmony_ci Qualcomm Technologies, Inc. platform specific 6962306a36Sopenharmony_ci Last Level Cache Controller(LLCC) driver for platforms such as, 7062306a36Sopenharmony_ci SDM845. This provides interfaces to clients that use the LLCC. 7162306a36Sopenharmony_ci Say yes here to enable LLCC slice driver. 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ciconfig QCOM_KRYO_L2_ACCESSORS 7462306a36Sopenharmony_ci bool 7562306a36Sopenharmony_ci depends on (ARCH_QCOM || COMPILE_TEST) && ARM64 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ciconfig QCOM_MDT_LOADER 7862306a36Sopenharmony_ci tristate 7962306a36Sopenharmony_ci select QCOM_SCM 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ciconfig QCOM_OCMEM 8262306a36Sopenharmony_ci tristate "Qualcomm On Chip Memory (OCMEM) driver" 8362306a36Sopenharmony_ci depends on ARCH_QCOM 8462306a36Sopenharmony_ci select QCOM_SCM 8562306a36Sopenharmony_ci help 8662306a36Sopenharmony_ci The On Chip Memory (OCMEM) allocator allows various clients to 8762306a36Sopenharmony_ci allocate memory from OCMEM based on performance, latency and power 8862306a36Sopenharmony_ci requirements. This is typically used by the GPU, camera/video, and 8962306a36Sopenharmony_ci audio components on some Snapdragon SoCs. 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ciconfig QCOM_PDR_HELPERS 9262306a36Sopenharmony_ci tristate 9362306a36Sopenharmony_ci select QCOM_QMI_HELPERS 9462306a36Sopenharmony_ci depends on NET 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ciconfig QCOM_PMIC_GLINK 9762306a36Sopenharmony_ci tristate "Qualcomm PMIC GLINK driver" 9862306a36Sopenharmony_ci depends on RPMSG 9962306a36Sopenharmony_ci depends on TYPEC 10062306a36Sopenharmony_ci depends on DRM 10162306a36Sopenharmony_ci depends on NET 10262306a36Sopenharmony_ci depends on OF 10362306a36Sopenharmony_ci select AUXILIARY_BUS 10462306a36Sopenharmony_ci select QCOM_PDR_HELPERS 10562306a36Sopenharmony_ci help 10662306a36Sopenharmony_ci The Qualcomm PMIC GLINK driver provides access, over GLINK, to the 10762306a36Sopenharmony_ci USB and battery firmware running on one of the coprocessors in 10862306a36Sopenharmony_ci several modern Qualcomm platforms. 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ci Say yes here to support USB-C and battery status on modern Qualcomm 11162306a36Sopenharmony_ci platforms. 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ciconfig QCOM_QMI_HELPERS 11462306a36Sopenharmony_ci tristate 11562306a36Sopenharmony_ci depends on NET 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ciconfig QCOM_RAMP_CTRL 11862306a36Sopenharmony_ci tristate "Qualcomm Ramp Controller driver" 11962306a36Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 12062306a36Sopenharmony_ci help 12162306a36Sopenharmony_ci The Ramp Controller is used to program the sequence ID for pulse 12262306a36Sopenharmony_ci swallowing, enable sequence and link sequence IDs for the CPU 12362306a36Sopenharmony_ci cores on some Qualcomm SoCs. 12462306a36Sopenharmony_ci Say y here to enable support for the ramp controller. 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_ciconfig QCOM_RMTFS_MEM 12762306a36Sopenharmony_ci tristate "Qualcomm Remote Filesystem memory driver" 12862306a36Sopenharmony_ci depends on ARCH_QCOM 12962306a36Sopenharmony_ci select QCOM_SCM 13062306a36Sopenharmony_ci help 13162306a36Sopenharmony_ci The Qualcomm remote filesystem memory driver is used for allocating 13262306a36Sopenharmony_ci and exposing regions of shared memory with remote processors for the 13362306a36Sopenharmony_ci purpose of exchanging sector-data between the remote filesystem 13462306a36Sopenharmony_ci service and its clients. 13562306a36Sopenharmony_ci 13662306a36Sopenharmony_ci Say y here if you intend to boot the modem remoteproc. 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_ciconfig QCOM_RPM_MASTER_STATS 13962306a36Sopenharmony_ci tristate "Qualcomm RPM Master stats" 14062306a36Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 14162306a36Sopenharmony_ci help 14262306a36Sopenharmony_ci The RPM Master sleep stats driver provides detailed per-subsystem 14362306a36Sopenharmony_ci sleep/wake data, read from the RPM message RAM. It can be used to 14462306a36Sopenharmony_ci assess whether all the low-power modes available are entered as 14562306a36Sopenharmony_ci expected or to check which part of the SoC prevents it from sleeping. 14662306a36Sopenharmony_ci 14762306a36Sopenharmony_ci Say y here if you intend to debug or monitor platform sleep. 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ciconfig QCOM_RPMH 15062306a36Sopenharmony_ci tristate "Qualcomm RPM-Hardened (RPMH) Communication" 15162306a36Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 15262306a36Sopenharmony_ci depends on (QCOM_COMMAND_DB || !QCOM_COMMAND_DB) 15362306a36Sopenharmony_ci help 15462306a36Sopenharmony_ci Support for communication with the hardened-RPM blocks in 15562306a36Sopenharmony_ci Qualcomm Technologies Inc (QTI) SoCs. RPMH communication uses an 15662306a36Sopenharmony_ci internal bus to transmit state requests for shared resources. A set 15762306a36Sopenharmony_ci of hardware components aggregate requests for these resources and 15862306a36Sopenharmony_ci help apply the aggregated state on the resource. 15962306a36Sopenharmony_ci 16062306a36Sopenharmony_ciconfig QCOM_RPMHPD 16162306a36Sopenharmony_ci tristate "Qualcomm RPMh Power domain driver" 16262306a36Sopenharmony_ci depends on QCOM_RPMH && QCOM_COMMAND_DB 16362306a36Sopenharmony_ci help 16462306a36Sopenharmony_ci QCOM RPMh Power domain driver to support power-domains with 16562306a36Sopenharmony_ci performance states. The driver communicates a performance state 16662306a36Sopenharmony_ci value to RPMh which then translates it into corresponding voltage 16762306a36Sopenharmony_ci for the voltage rail. 16862306a36Sopenharmony_ci 16962306a36Sopenharmony_ciconfig QCOM_RPMPD 17062306a36Sopenharmony_ci tristate "Qualcomm RPM Power domain driver" 17162306a36Sopenharmony_ci depends on PM && OF 17262306a36Sopenharmony_ci depends on QCOM_SMD_RPM 17362306a36Sopenharmony_ci select PM_GENERIC_DOMAINS 17462306a36Sopenharmony_ci select PM_GENERIC_DOMAINS_OF 17562306a36Sopenharmony_ci help 17662306a36Sopenharmony_ci QCOM RPM Power domain driver to support power-domains with 17762306a36Sopenharmony_ci performance states. The driver communicates a performance state 17862306a36Sopenharmony_ci value to RPM which then translates it into corresponding voltage 17962306a36Sopenharmony_ci for the voltage rail. 18062306a36Sopenharmony_ci 18162306a36Sopenharmony_ciconfig QCOM_SMEM 18262306a36Sopenharmony_ci tristate "Qualcomm Shared Memory Manager (SMEM)" 18362306a36Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 18462306a36Sopenharmony_ci depends on HWSPINLOCK 18562306a36Sopenharmony_ci help 18662306a36Sopenharmony_ci Say y here to enable support for the Qualcomm Shared Memory Manager. 18762306a36Sopenharmony_ci The driver provides an interface to items in a heap shared among all 18862306a36Sopenharmony_ci processors in a Qualcomm platform. 18962306a36Sopenharmony_ci 19062306a36Sopenharmony_ciconfig QCOM_SMD_RPM 19162306a36Sopenharmony_ci tristate "Qualcomm Resource Power Manager (RPM) over SMD" 19262306a36Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 19362306a36Sopenharmony_ci depends on RPMSG 19462306a36Sopenharmony_ci depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n 19562306a36Sopenharmony_ci help 19662306a36Sopenharmony_ci If you say yes to this option, support will be included for the 19762306a36Sopenharmony_ci Resource Power Manager system found in the Qualcomm 8974 based 19862306a36Sopenharmony_ci devices. 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_ci This is required to access many regulators, clocks and bus 20162306a36Sopenharmony_ci frequencies controlled by the RPM on these devices. 20262306a36Sopenharmony_ci 20362306a36Sopenharmony_ci Say M here if you want to include support for the Qualcomm RPM as a 20462306a36Sopenharmony_ci module. This will build a module called "qcom-smd-rpm". 20562306a36Sopenharmony_ci 20662306a36Sopenharmony_ciconfig QCOM_SMEM_STATE 20762306a36Sopenharmony_ci bool 20862306a36Sopenharmony_ci 20962306a36Sopenharmony_ciconfig QCOM_SMP2P 21062306a36Sopenharmony_ci tristate "Qualcomm Shared Memory Point to Point support" 21162306a36Sopenharmony_ci depends on MAILBOX 21262306a36Sopenharmony_ci depends on QCOM_SMEM 21362306a36Sopenharmony_ci select QCOM_SMEM_STATE 21462306a36Sopenharmony_ci select IRQ_DOMAIN 21562306a36Sopenharmony_ci help 21662306a36Sopenharmony_ci Say yes here to support the Qualcomm Shared Memory Point to Point 21762306a36Sopenharmony_ci protocol. 21862306a36Sopenharmony_ci 21962306a36Sopenharmony_ciconfig QCOM_SMSM 22062306a36Sopenharmony_ci tristate "Qualcomm Shared Memory State Machine" 22162306a36Sopenharmony_ci depends on QCOM_SMEM 22262306a36Sopenharmony_ci select QCOM_SMEM_STATE 22362306a36Sopenharmony_ci select IRQ_DOMAIN 22462306a36Sopenharmony_ci help 22562306a36Sopenharmony_ci Say yes here to support the Qualcomm Shared Memory State Machine. 22662306a36Sopenharmony_ci The state machine is represented by bits in shared memory. 22762306a36Sopenharmony_ci 22862306a36Sopenharmony_ciconfig QCOM_SOCINFO 22962306a36Sopenharmony_ci tristate "Qualcomm socinfo driver" 23062306a36Sopenharmony_ci depends on QCOM_SMEM 23162306a36Sopenharmony_ci select SOC_BUS 23262306a36Sopenharmony_ci help 23362306a36Sopenharmony_ci Say yes here to support the Qualcomm socinfo driver, providing 23462306a36Sopenharmony_ci information about the SoC to user space. 23562306a36Sopenharmony_ci 23662306a36Sopenharmony_ciconfig QCOM_SPM 23762306a36Sopenharmony_ci tristate "Qualcomm Subsystem Power Manager (SPM)" 23862306a36Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 23962306a36Sopenharmony_ci select QCOM_SCM 24062306a36Sopenharmony_ci help 24162306a36Sopenharmony_ci Enable the support for the Qualcomm Subsystem Power Manager, used 24262306a36Sopenharmony_ci to manage cores, L2 low power modes and to configure the internal 24362306a36Sopenharmony_ci Adaptive Voltage Scaler parameters, where supported. 24462306a36Sopenharmony_ci 24562306a36Sopenharmony_ciconfig QCOM_STATS 24662306a36Sopenharmony_ci tristate "Qualcomm Technologies, Inc. (QTI) Sleep stats driver" 24762306a36Sopenharmony_ci depends on (ARCH_QCOM && DEBUG_FS) || COMPILE_TEST 24862306a36Sopenharmony_ci depends on QCOM_SMEM 24962306a36Sopenharmony_ci help 25062306a36Sopenharmony_ci Qualcomm Technologies, Inc. (QTI) Sleep stats driver to read 25162306a36Sopenharmony_ci the shared memory exported by the remote processor related to 25262306a36Sopenharmony_ci various SoC level low power modes statistics and export to debugfs 25362306a36Sopenharmony_ci interface. 25462306a36Sopenharmony_ci 25562306a36Sopenharmony_ciconfig QCOM_WCNSS_CTRL 25662306a36Sopenharmony_ci tristate "Qualcomm WCNSS control driver" 25762306a36Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 25862306a36Sopenharmony_ci depends on RPMSG 25962306a36Sopenharmony_ci help 26062306a36Sopenharmony_ci Client driver for the WCNSS_CTRL SMD channel, used to download nv 26162306a36Sopenharmony_ci firmware to a newly booted WCNSS chip. 26262306a36Sopenharmony_ci 26362306a36Sopenharmony_ciconfig QCOM_APR 26462306a36Sopenharmony_ci tristate "Qualcomm APR/GPR Bus (Asynchronous/Generic Packet Router)" 26562306a36Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 26662306a36Sopenharmony_ci depends on RPMSG 26762306a36Sopenharmony_ci depends on NET 26862306a36Sopenharmony_ci select QCOM_PDR_HELPERS 26962306a36Sopenharmony_ci help 27062306a36Sopenharmony_ci Enable APR IPC protocol support between 27162306a36Sopenharmony_ci application processor and QDSP6. APR is 27262306a36Sopenharmony_ci used by audio driver to configure QDSP6 27362306a36Sopenharmony_ci ASM, ADM and AFE modules. 27462306a36Sopenharmony_ci 27562306a36Sopenharmony_ciconfig QCOM_ICC_BWMON 27662306a36Sopenharmony_ci tristate "QCOM Interconnect Bandwidth Monitor driver" 27762306a36Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 27862306a36Sopenharmony_ci select PM_OPP 27962306a36Sopenharmony_ci select REGMAP_MMIO 28062306a36Sopenharmony_ci help 28162306a36Sopenharmony_ci Sets up driver monitoring bandwidth on various interconnects and 28262306a36Sopenharmony_ci based on that voting for interconnect bandwidth, adjusting their 28362306a36Sopenharmony_ci speed to current demand. 28462306a36Sopenharmony_ci Current implementation brings support for BWMON v4, used for example 28562306a36Sopenharmony_ci on SDM845 to measure bandwidth between CPU (gladiator_noc) and Last 28662306a36Sopenharmony_ci Level Cache (memnoc). Usage of this BWMON allows to remove some of 28762306a36Sopenharmony_ci the fixed bandwidth votes from cpufreq (CPU nodes) thus achieve high 28862306a36Sopenharmony_ci memory throughput even with lower CPU frequencies. 28962306a36Sopenharmony_ci 29062306a36Sopenharmony_ciconfig QCOM_INLINE_CRYPTO_ENGINE 29162306a36Sopenharmony_ci tristate 29262306a36Sopenharmony_ci select QCOM_SCM 29362306a36Sopenharmony_ci 29462306a36Sopenharmony_ciendmenu 295