1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# QCOM Soc drivers 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyunmenu "Qualcomm SoC drivers" 6*4882a593Smuzhiyun 7*4882a593Smuzhiyunconfig QCOM_AOSS_QMP 8*4882a593Smuzhiyun tristate "Qualcomm AOSS Driver" 9*4882a593Smuzhiyun depends on ARCH_QCOM || COMPILE_TEST 10*4882a593Smuzhiyun depends on MAILBOX 11*4882a593Smuzhiyun depends on COMMON_CLK && PM 12*4882a593Smuzhiyun select PM_GENERIC_DOMAINS 13*4882a593Smuzhiyun help 14*4882a593Smuzhiyun This driver provides the means of communicating with and controlling 15*4882a593Smuzhiyun the low-power state for resources related to the remoteproc 16*4882a593Smuzhiyun subsystems as well as controlling the debug clocks exposed by the Always On 17*4882a593Smuzhiyun Subsystem (AOSS) using Qualcomm Messaging Protocol (QMP). 18*4882a593Smuzhiyun 19*4882a593Smuzhiyunconfig QCOM_COMMAND_DB 20*4882a593Smuzhiyun tristate "Qualcomm Command DB" 21*4882a593Smuzhiyun depends on ARCH_QCOM || COMPILE_TEST 22*4882a593Smuzhiyun depends on OF_RESERVED_MEM 23*4882a593Smuzhiyun help 24*4882a593Smuzhiyun Command DB queries shared memory by key string for shared system 25*4882a593Smuzhiyun resources. Platform drivers that require to set state of a shared 26*4882a593Smuzhiyun resource on a RPM-hardened platform must use this database to get 27*4882a593Smuzhiyun SoC specific identifier and information for the shared resources. 28*4882a593Smuzhiyun 29*4882a593Smuzhiyunconfig QCOM_CPR 30*4882a593Smuzhiyun tristate "QCOM Core Power Reduction (CPR) support" 31*4882a593Smuzhiyun depends on ARCH_QCOM && HAS_IOMEM 32*4882a593Smuzhiyun select PM_OPP 33*4882a593Smuzhiyun select REGMAP 34*4882a593Smuzhiyun help 35*4882a593Smuzhiyun Say Y here to enable support for the CPR hardware found on Qualcomm 36*4882a593Smuzhiyun SoCs like QCS404. 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun This driver populates CPU OPPs tables and makes adjustments to the 39*4882a593Smuzhiyun tables based on feedback from the CPR hardware. If you want to do 40*4882a593Smuzhiyun CPUfrequency scaling say Y here. 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module will 43*4882a593Smuzhiyun be called qcom-cpr 44*4882a593Smuzhiyun 45*4882a593Smuzhiyunconfig QCOM_GENI_SE 46*4882a593Smuzhiyun tristate "QCOM GENI Serial Engine Driver" 47*4882a593Smuzhiyun depends on ARCH_QCOM || COMPILE_TEST 48*4882a593Smuzhiyun help 49*4882a593Smuzhiyun This driver is used to manage Generic Interface (GENI) firmware based 50*4882a593Smuzhiyun Qualcomm Technologies, Inc. Universal Peripheral (QUP) Wrapper. This 51*4882a593Smuzhiyun driver is also used to manage the common aspects of multiple Serial 52*4882a593Smuzhiyun Engines present in the QUP. 53*4882a593Smuzhiyun 54*4882a593Smuzhiyunconfig QCOM_GSBI 55*4882a593Smuzhiyun tristate "QCOM General Serial Bus Interface" 56*4882a593Smuzhiyun depends on ARCH_QCOM || COMPILE_TEST 57*4882a593Smuzhiyun select MFD_SYSCON 58*4882a593Smuzhiyun help 59*4882a593Smuzhiyun Say y here to enable GSBI support. The GSBI provides control 60*4882a593Smuzhiyun functions for connecting the underlying serial UART, SPI, and I2C 61*4882a593Smuzhiyun devices to the output pins. 62*4882a593Smuzhiyun 63*4882a593Smuzhiyunconfig QCOM_LLCC 64*4882a593Smuzhiyun tristate "Qualcomm Technologies, Inc. LLCC driver" 65*4882a593Smuzhiyun depends on ARCH_QCOM || COMPILE_TEST 66*4882a593Smuzhiyun help 67*4882a593Smuzhiyun Qualcomm Technologies, Inc. platform specific 68*4882a593Smuzhiyun Last Level Cache Controller(LLCC) driver for platforms such as, 69*4882a593Smuzhiyun SDM845. This provides interfaces to clients that use the LLCC. 70*4882a593Smuzhiyun Say yes here to enable LLCC slice driver. 71*4882a593Smuzhiyun 72*4882a593Smuzhiyunconfig QCOM_KRYO_L2_ACCESSORS 73*4882a593Smuzhiyun bool 74*4882a593Smuzhiyun depends on ARCH_QCOM && ARM64 || COMPILE_TEST 75*4882a593Smuzhiyun 76*4882a593Smuzhiyunconfig QCOM_MDT_LOADER 77*4882a593Smuzhiyun tristate 78*4882a593Smuzhiyun select QCOM_SCM 79*4882a593Smuzhiyun 80*4882a593Smuzhiyunconfig QCOM_OCMEM 81*4882a593Smuzhiyun tristate "Qualcomm On Chip Memory (OCMEM) driver" 82*4882a593Smuzhiyun depends on ARCH_QCOM 83*4882a593Smuzhiyun select QCOM_SCM 84*4882a593Smuzhiyun help 85*4882a593Smuzhiyun The On Chip Memory (OCMEM) allocator allows various clients to 86*4882a593Smuzhiyun allocate memory from OCMEM based on performance, latency and power 87*4882a593Smuzhiyun requirements. This is typically used by the GPU, camera/video, and 88*4882a593Smuzhiyun audio components on some Snapdragon SoCs. 89*4882a593Smuzhiyun 90*4882a593Smuzhiyunconfig QCOM_PDR_HELPERS 91*4882a593Smuzhiyun tristate 92*4882a593Smuzhiyun select QCOM_QMI_HELPERS 93*4882a593Smuzhiyun 94*4882a593Smuzhiyunconfig QCOM_QMI_HELPERS 95*4882a593Smuzhiyun tristate 96*4882a593Smuzhiyun depends on NET 97*4882a593Smuzhiyun 98*4882a593Smuzhiyunconfig QCOM_RMTFS_MEM 99*4882a593Smuzhiyun tristate "Qualcomm Remote Filesystem memory driver" 100*4882a593Smuzhiyun depends on ARCH_QCOM 101*4882a593Smuzhiyun select QCOM_SCM 102*4882a593Smuzhiyun help 103*4882a593Smuzhiyun The Qualcomm remote filesystem memory driver is used for allocating 104*4882a593Smuzhiyun and exposing regions of shared memory with remote processors for the 105*4882a593Smuzhiyun purpose of exchanging sector-data between the remote filesystem 106*4882a593Smuzhiyun service and its clients. 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun Say y here if you intend to boot the modem remoteproc. 109*4882a593Smuzhiyun 110*4882a593Smuzhiyunconfig QCOM_RPMH 111*4882a593Smuzhiyun tristate "Qualcomm RPM-Hardened (RPMH) Communication" 112*4882a593Smuzhiyun depends on ARCH_QCOM || COMPILE_TEST 113*4882a593Smuzhiyun depends on (QCOM_COMMAND_DB || !QCOM_COMMAND_DB) 114*4882a593Smuzhiyun help 115*4882a593Smuzhiyun Support for communication with the hardened-RPM blocks in 116*4882a593Smuzhiyun Qualcomm Technologies Inc (QTI) SoCs. RPMH communication uses an 117*4882a593Smuzhiyun internal bus to transmit state requests for shared resources. A set 118*4882a593Smuzhiyun of hardware components aggregate requests for these resources and 119*4882a593Smuzhiyun help apply the aggregated state on the resource. 120*4882a593Smuzhiyun 121*4882a593Smuzhiyunconfig QCOM_RPMHPD 122*4882a593Smuzhiyun tristate "Qualcomm RPMh Power domain driver" 123*4882a593Smuzhiyun depends on QCOM_RPMH && QCOM_COMMAND_DB 124*4882a593Smuzhiyun help 125*4882a593Smuzhiyun QCOM RPMh Power domain driver to support power-domains with 126*4882a593Smuzhiyun performance states. The driver communicates a performance state 127*4882a593Smuzhiyun value to RPMh which then translates it into corresponding voltage 128*4882a593Smuzhiyun for the voltage rail. 129*4882a593Smuzhiyun 130*4882a593Smuzhiyunconfig QCOM_RPMPD 131*4882a593Smuzhiyun tristate "Qualcomm RPM Power domain driver" 132*4882a593Smuzhiyun depends on PM 133*4882a593Smuzhiyun depends on QCOM_SMD_RPM 134*4882a593Smuzhiyun help 135*4882a593Smuzhiyun QCOM RPM Power domain driver to support power-domains with 136*4882a593Smuzhiyun performance states. The driver communicates a performance state 137*4882a593Smuzhiyun value to RPM which then translates it into corresponding voltage 138*4882a593Smuzhiyun for the voltage rail. 139*4882a593Smuzhiyun 140*4882a593Smuzhiyunconfig QCOM_SMEM 141*4882a593Smuzhiyun tristate "Qualcomm Shared Memory Manager (SMEM)" 142*4882a593Smuzhiyun depends on ARCH_QCOM || COMPILE_TEST 143*4882a593Smuzhiyun depends on HWSPINLOCK 144*4882a593Smuzhiyun help 145*4882a593Smuzhiyun Say y here to enable support for the Qualcomm Shared Memory Manager. 146*4882a593Smuzhiyun The driver provides an interface to items in a heap shared among all 147*4882a593Smuzhiyun processors in a Qualcomm platform. 148*4882a593Smuzhiyun 149*4882a593Smuzhiyunconfig QCOM_SMD_RPM 150*4882a593Smuzhiyun tristate "Qualcomm Resource Power Manager (RPM) over SMD" 151*4882a593Smuzhiyun depends on ARCH_QCOM || COMPILE_TEST 152*4882a593Smuzhiyun depends on RPMSG 153*4882a593Smuzhiyun help 154*4882a593Smuzhiyun If you say yes to this option, support will be included for the 155*4882a593Smuzhiyun Resource Power Manager system found in the Qualcomm 8974 based 156*4882a593Smuzhiyun devices. 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun This is required to access many regulators, clocks and bus 159*4882a593Smuzhiyun frequencies controlled by the RPM on these devices. 160*4882a593Smuzhiyun 161*4882a593Smuzhiyun Say M here if you want to include support for the Qualcomm RPM as a 162*4882a593Smuzhiyun module. This will build a module called "qcom-smd-rpm". 163*4882a593Smuzhiyun 164*4882a593Smuzhiyunconfig QCOM_SMEM_STATE 165*4882a593Smuzhiyun bool 166*4882a593Smuzhiyun 167*4882a593Smuzhiyunconfig QCOM_SMP2P 168*4882a593Smuzhiyun tristate "Qualcomm Shared Memory Point to Point support" 169*4882a593Smuzhiyun depends on MAILBOX 170*4882a593Smuzhiyun depends on QCOM_SMEM 171*4882a593Smuzhiyun select QCOM_SMEM_STATE 172*4882a593Smuzhiyun select IRQ_DOMAIN 173*4882a593Smuzhiyun help 174*4882a593Smuzhiyun Say yes here to support the Qualcomm Shared Memory Point to Point 175*4882a593Smuzhiyun protocol. 176*4882a593Smuzhiyun 177*4882a593Smuzhiyunconfig QCOM_SMSM 178*4882a593Smuzhiyun tristate "Qualcomm Shared Memory State Machine" 179*4882a593Smuzhiyun depends on QCOM_SMEM 180*4882a593Smuzhiyun select QCOM_SMEM_STATE 181*4882a593Smuzhiyun select IRQ_DOMAIN 182*4882a593Smuzhiyun help 183*4882a593Smuzhiyun Say yes here to support the Qualcomm Shared Memory State Machine. 184*4882a593Smuzhiyun The state machine is represented by bits in shared memory. 185*4882a593Smuzhiyun 186*4882a593Smuzhiyunconfig QCOM_SOCINFO 187*4882a593Smuzhiyun tristate "Qualcomm socinfo driver" 188*4882a593Smuzhiyun depends on QCOM_SMEM 189*4882a593Smuzhiyun select SOC_BUS 190*4882a593Smuzhiyun help 191*4882a593Smuzhiyun Say yes here to support the Qualcomm socinfo driver, providing 192*4882a593Smuzhiyun information about the SoC to user space. 193*4882a593Smuzhiyun 194*4882a593Smuzhiyunconfig QCOM_WCNSS_CTRL 195*4882a593Smuzhiyun tristate "Qualcomm WCNSS control driver" 196*4882a593Smuzhiyun depends on ARCH_QCOM || COMPILE_TEST 197*4882a593Smuzhiyun depends on RPMSG 198*4882a593Smuzhiyun help 199*4882a593Smuzhiyun Client driver for the WCNSS_CTRL SMD channel, used to download nv 200*4882a593Smuzhiyun firmware to a newly booted WCNSS chip. 201*4882a593Smuzhiyun 202*4882a593Smuzhiyunconfig QCOM_APR 203*4882a593Smuzhiyun tristate "Qualcomm APR Bus (Asynchronous Packet Router)" 204*4882a593Smuzhiyun depends on ARCH_QCOM || COMPILE_TEST 205*4882a593Smuzhiyun depends on RPMSG 206*4882a593Smuzhiyun depends on NET 207*4882a593Smuzhiyun select QCOM_PDR_HELPERS 208*4882a593Smuzhiyun help 209*4882a593Smuzhiyun Enable APR IPC protocol support between 210*4882a593Smuzhiyun application processor and QDSP6. APR is 211*4882a593Smuzhiyun used by audio driver to configure QDSP6 212*4882a593Smuzhiyun ASM, ADM and AFE modules. 213*4882a593Smuzhiyunendmenu 214