1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 25d144e36SAndy Gross# 35d144e36SAndy Gross# QCOM Soc drivers 45d144e36SAndy Gross# 52a464815SSrinivas Kandagatlamenu "Qualcomm SoC drivers" 62a464815SSrinivas Kandagatla 722094814SBjorn Anderssonconfig QCOM_AOSS_QMP 822094814SBjorn Andersson tristate "Qualcomm AOSS Driver" 922094814SBjorn Andersson depends on ARCH_QCOM || COMPILE_TEST 1022094814SBjorn Andersson depends on MAILBOX 116b9d226bSRandy Dunlap depends on COMMON_CLK && PM 1222094814SBjorn Andersson select PM_GENERIC_DOMAINS 1322094814SBjorn Andersson help 1422094814SBjorn Andersson This driver provides the means of communicating with and controlling 1522094814SBjorn Andersson the low-power state for resources related to the remoteproc 1622094814SBjorn Andersson subsystems as well as controlling the debug clocks exposed by the Always On 1722094814SBjorn Andersson Subsystem (AOSS) using Qualcomm Messaging Protocol (QMP). 1822094814SBjorn Andersson 19312416d9SMahesh Sivasubramanianconfig QCOM_COMMAND_DB 20778279f4SLina Iyer tristate "Qualcomm Command DB" 210ea3fa15SArnd Bergmann depends on ARCH_QCOM || COMPILE_TEST 220ea3fa15SArnd Bergmann depends on OF_RESERVED_MEM 23312416d9SMahesh Sivasubramanian help 24312416d9SMahesh Sivasubramanian Command DB queries shared memory by key string for shared system 25312416d9SMahesh Sivasubramanian resources. Platform drivers that require to set state of a shared 26312416d9SMahesh Sivasubramanian resource on a RPM-hardened platform must use this database to get 27312416d9SMahesh Sivasubramanian SoC specific identifier and information for the shared resources. 28312416d9SMahesh Sivasubramanian 29eddac5afSKarthikeyan Ramasubramanianconfig QCOM_GENI_SE 30eddac5afSKarthikeyan Ramasubramanian tristate "QCOM GENI Serial Engine Driver" 31eddac5afSKarthikeyan Ramasubramanian depends on ARCH_QCOM || COMPILE_TEST 32eddac5afSKarthikeyan Ramasubramanian help 33eddac5afSKarthikeyan Ramasubramanian This driver is used to manage Generic Interface (GENI) firmware based 34eddac5afSKarthikeyan Ramasubramanian Qualcomm Technologies, Inc. Universal Peripheral (QUP) Wrapper. This 35eddac5afSKarthikeyan Ramasubramanian driver is also used to manage the common aspects of multiple Serial 36eddac5afSKarthikeyan Ramasubramanian Engines present in the QUP. 37eddac5afSKarthikeyan Ramasubramanian 385d144e36SAndy Grossconfig QCOM_GSBI 395d144e36SAndy Gross tristate "QCOM General Serial Bus Interface" 40ccfb464cSNiklas Cassel depends on ARCH_QCOM || COMPILE_TEST 41e5fdad68SAndy Gross select MFD_SYSCON 425d144e36SAndy Gross help 435d144e36SAndy Gross Say y here to enable GSBI support. The GSBI provides control 445d144e36SAndy Gross functions for connecting the underlying serial UART, SPI, and I2C 455d144e36SAndy Gross devices to the output pins. 465d144e36SAndy Gross 47a3134fb0SRishabh Bhatnagarconfig QCOM_LLCC 48a3134fb0SRishabh Bhatnagar tristate "Qualcomm Technologies, Inc. LLCC driver" 49ccfb464cSNiklas Cassel depends on ARCH_QCOM || COMPILE_TEST 505d2fe2d7SManivannan Sadhasivam select REGMAP_MMIO 51a3134fb0SRishabh Bhatnagar help 52a3134fb0SRishabh Bhatnagar Qualcomm Technologies, Inc. platform specific 53a14b8203SVivek Gautam Last Level Cache Controller(LLCC) driver for platforms such as, 54a14b8203SVivek Gautam SDM845. This provides interfaces to clients that use the LLCC. 55a14b8203SVivek Gautam Say yes here to enable LLCC slice driver. 56a3134fb0SRishabh Bhatnagar 576d0efeb1SIlia Linconfig QCOM_KRYO_L2_ACCESSORS 586d0efeb1SIlia Lin bool 5934bb2c1cSKrzysztof Kozlowski depends on (ARCH_QCOM || COMPILE_TEST) && ARM64 606d0efeb1SIlia Lin 612aad40d9SBjorn Anderssonconfig QCOM_MDT_LOADER 622aad40d9SBjorn Andersson tristate 632aad40d9SBjorn Andersson select QCOM_SCM 642aad40d9SBjorn Andersson 6588c1e940SBrian Masneyconfig QCOM_OCMEM 6688c1e940SBrian Masney tristate "Qualcomm On Chip Memory (OCMEM) driver" 6788c1e940SBrian Masney depends on ARCH_QCOM 6888c1e940SBrian Masney select QCOM_SCM 6988c1e940SBrian Masney help 7088c1e940SBrian Masney The On Chip Memory (OCMEM) allocator allows various clients to 7188c1e940SBrian Masney allocate memory from OCMEM based on performance, latency and power 7288c1e940SBrian Masney requirements. This is typically used by the GPU, camera/video, and 7388c1e940SBrian Masney audio components on some Snapdragon SoCs. 7488c1e940SBrian Masney 751ebcde04SDmitry Baryshkovconfig QCOM_PD_MAPPER 761ebcde04SDmitry Baryshkov tristate "Qualcomm Protection Domain Mapper" 771ebcde04SDmitry Baryshkov select QCOM_QMI_HELPERS 78b89c5bc7SDmitry Baryshkov select QCOM_PDR_MSG 79b89c5bc7SDmitry Baryshkov select AUXILIARY_BUS 80e4ab5d7cSAndrew Halaney depends on NET && QRTR && (ARCH_QCOM || COMPILE_TEST) 811ebcde04SDmitry Baryshkov default QCOM_RPROC_COMMON 821ebcde04SDmitry Baryshkov help 831ebcde04SDmitry Baryshkov The Protection Domain Mapper maps registered services to the domains 841ebcde04SDmitry Baryshkov and instances handled by the remote DSPs. This is a kernel-space 851ebcde04SDmitry Baryshkov implementation of the service. It is a simpler alternative to the 861ebcde04SDmitry Baryshkov userspace daemon. 871ebcde04SDmitry Baryshkov 88fbe639b4SSibi Sankarconfig QCOM_PDR_HELPERS 89fbe639b4SSibi Sankar tristate 90fbe639b4SSibi Sankar select QCOM_QMI_HELPERS 910ac5c7d9SDmitry Baryshkov select QCOM_PDR_MSG 929049453aSArnd Bergmann depends on NET 93fbe639b4SSibi Sankar 940ac5c7d9SDmitry Baryshkovconfig QCOM_PDR_MSG 950ac5c7d9SDmitry Baryshkov tristate 960ac5c7d9SDmitry Baryshkov 97086fdb48SNeil Armstrongconfig QCOM_PMIC_PDCHARGER_ULOG 98086fdb48SNeil Armstrong tristate "Qualcomm PMIC PDCharger ULOG driver" 99086fdb48SNeil Armstrong depends on RPMSG 100086fdb48SNeil Armstrong depends on EVENT_TRACING 101086fdb48SNeil Armstrong help 102086fdb48SNeil Armstrong The Qualcomm PMIC PDCharger ULOG driver provides access to logs of 103086fdb48SNeil Armstrong the ADSP firmware PDCharger module in charge of Battery and Power 104086fdb48SNeil Armstrong Delivery on modern systems. 105086fdb48SNeil Armstrong 106086fdb48SNeil Armstrong Say yes here to support PDCharger ULOG event tracing on modern 107086fdb48SNeil Armstrong Qualcomm platforms. 108086fdb48SNeil Armstrong 10958ef4eceSBjorn Anderssonconfig QCOM_PMIC_GLINK 11058ef4eceSBjorn Andersson tristate "Qualcomm PMIC GLINK driver" 11158ef4eceSBjorn Andersson depends on RPMSG 11258ef4eceSBjorn Andersson depends on TYPEC 11358ef4eceSBjorn Andersson depends on DRM 1149049453aSArnd Bergmann depends on NET 1159049453aSArnd Bergmann depends on OF 11658ef4eceSBjorn Andersson select AUXILIARY_BUS 11758ef4eceSBjorn Andersson select QCOM_PDR_HELPERS 1182bcca96aSDmitry Baryshkov select DRM_AUX_HPD_BRIDGE 11958ef4eceSBjorn Andersson help 12058ef4eceSBjorn Andersson The Qualcomm PMIC GLINK driver provides access, over GLINK, to the 12158ef4eceSBjorn Andersson USB and battery firmware running on one of the coprocessors in 12258ef4eceSBjorn Andersson several modern Qualcomm platforms. 12358ef4eceSBjorn Andersson 12458ef4eceSBjorn Andersson Say yes here to support USB-C and battery status on modern Qualcomm 12558ef4eceSBjorn Andersson platforms. 12658ef4eceSBjorn Andersson 1279b8a11e8SBjorn Anderssonconfig QCOM_QMI_HELPERS 1289b8a11e8SBjorn Andersson tristate 129ccfb464cSNiklas Cassel depends on NET 1309b8a11e8SBjorn Andersson 131a723c95fSAngeloGioacchino Del Regnoconfig QCOM_RAMP_CTRL 132a723c95fSAngeloGioacchino Del Regno tristate "Qualcomm Ramp Controller driver" 133a723c95fSAngeloGioacchino Del Regno depends on ARCH_QCOM || COMPILE_TEST 134a723c95fSAngeloGioacchino Del Regno help 135a723c95fSAngeloGioacchino Del Regno The Ramp Controller is used to program the sequence ID for pulse 136a723c95fSAngeloGioacchino Del Regno swallowing, enable sequence and link sequence IDs for the CPU 137a723c95fSAngeloGioacchino Del Regno cores on some Qualcomm SoCs. 138a723c95fSAngeloGioacchino Del Regno Say y here to enable support for the ramp controller. 139a723c95fSAngeloGioacchino Del Regno 140d1de6d6cSBjorn Anderssonconfig QCOM_RMTFS_MEM 141d1de6d6cSBjorn Andersson tristate "Qualcomm Remote Filesystem memory driver" 142a9020afeSBartosz Golaszewski depends on ARCH_QCOM || COMPILE_TEST 143fa65f804SBjorn Andersson select QCOM_SCM 144d1de6d6cSBjorn Andersson help 145d1de6d6cSBjorn Andersson The Qualcomm remote filesystem memory driver is used for allocating 146d1de6d6cSBjorn Andersson and exposing regions of shared memory with remote processors for the 147d1de6d6cSBjorn Andersson purpose of exchanging sector-data between the remote filesystem 148d1de6d6cSBjorn Andersson service and its clients. 149d1de6d6cSBjorn Andersson 150d1de6d6cSBjorn Andersson Say y here if you intend to boot the modem remoteproc. 151d1de6d6cSBjorn Andersson 152a77b2a0bSKonrad Dybcioconfig QCOM_RPM_MASTER_STATS 153a77b2a0bSKonrad Dybcio tristate "Qualcomm RPM Master stats" 154a77b2a0bSKonrad Dybcio depends on ARCH_QCOM || COMPILE_TEST 155a77b2a0bSKonrad Dybcio help 156a77b2a0bSKonrad Dybcio The RPM Master sleep stats driver provides detailed per-subsystem 157a77b2a0bSKonrad Dybcio sleep/wake data, read from the RPM message RAM. It can be used to 158a77b2a0bSKonrad Dybcio assess whether all the low-power modes available are entered as 159a77b2a0bSKonrad Dybcio expected or to check which part of the SoC prevents it from sleeping. 160a77b2a0bSKonrad Dybcio 161a77b2a0bSKonrad Dybcio Say y here if you intend to debug or monitor platform sleep. 162a77b2a0bSKonrad Dybcio 163658628e7SLina Iyerconfig QCOM_RPMH 164cb365926SJohn Stultz tristate "Qualcomm RPM-Hardened (RPMH) Communication" 165681b0912SLina Iyer depends on ARCH_QCOM || COMPILE_TEST 166827b5e6eSLina Iyer depends on (QCOM_COMMAND_DB || !QCOM_COMMAND_DB) 167658628e7SLina Iyer help 168658628e7SLina Iyer Support for communication with the hardened-RPM blocks in 169658628e7SLina Iyer Qualcomm Technologies Inc (QTI) SoCs. RPMH communication uses an 170658628e7SLina Iyer internal bus to transmit state requests for shared resources. A set 171658628e7SLina Iyer of hardware components aggregate requests for these resources and 172658628e7SLina Iyer help apply the aggregated state on the resource. 173658628e7SLina Iyer 1747d0c8beeSStephen Boydconfig QCOM_SMEM 1757d0c8beeSStephen Boyd tristate "Qualcomm Shared Memory Manager (SMEM)" 176ccfb464cSNiklas Cassel depends on ARCH_QCOM || COMPILE_TEST 17773ebb854SArnd Bergmann depends on HWSPINLOCK 1787d0c8beeSStephen Boyd help 1797d0c8beeSStephen Boyd Say y here to enable support for the Qualcomm Shared Memory Manager. 1807d0c8beeSStephen Boyd The driver provides an interface to items in a heap shared among all 1817d0c8beeSStephen Boyd processors in a Qualcomm platform. 1827d0c8beeSStephen Boyd 183936f14cfSBjorn Anderssonconfig QCOM_SMD_RPM 184936f14cfSBjorn Andersson tristate "Qualcomm Resource Power Manager (RPM) over SMD" 185ccfb464cSNiklas Cassel depends on ARCH_QCOM || COMPILE_TEST 186a09b440aSNiklas Cassel depends on RPMSG 1878ddfa81dSStephan Gerhold depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n 188936f14cfSBjorn Andersson help 189936f14cfSBjorn Andersson If you say yes to this option, support will be included for the 190936f14cfSBjorn Andersson Resource Power Manager system found in the Qualcomm 8974 based 191936f14cfSBjorn Andersson devices. 192936f14cfSBjorn Andersson 193936f14cfSBjorn Andersson This is required to access many regulators, clocks and bus 194936f14cfSBjorn Andersson frequencies controlled by the RPM on these devices. 195936f14cfSBjorn Andersson 196936f14cfSBjorn Andersson Say M here if you want to include support for the Qualcomm RPM as a 197936f14cfSBjorn Andersson module. This will build a module called "qcom-smd-rpm". 1989460ae2fSBjorn Andersson 1999460ae2fSBjorn Anderssonconfig QCOM_SMEM_STATE 2009460ae2fSBjorn Andersson bool 201c97c4090SBjorn Andersson 20250e99641SBjorn Anderssonconfig QCOM_SMP2P 20310475d59SArnd Bergmann tristate "Qualcomm Shared Memory Point to Point support" 204e7180264SBjorn Andersson depends on MAILBOX 20550e99641SBjorn Andersson depends on QCOM_SMEM 20650e99641SBjorn Andersson select QCOM_SMEM_STATE 207810f11a9SNiklas Cassel select IRQ_DOMAIN 20850e99641SBjorn Andersson help 20950e99641SBjorn Andersson Say yes here to support the Qualcomm Shared Memory Point to Point 21050e99641SBjorn Andersson protocol. 21150e99641SBjorn Andersson 212c97c4090SBjorn Anderssonconfig QCOM_SMSM 21310475d59SArnd Bergmann tristate "Qualcomm Shared Memory State Machine" 21405a21e8bSLuca Weiss depends on MAILBOX 215c97c4090SBjorn Andersson depends on QCOM_SMEM 216c97c4090SBjorn Andersson select QCOM_SMEM_STATE 2170a5cdb41SNiklas Cassel select IRQ_DOMAIN 218c97c4090SBjorn Andersson help 219c97c4090SBjorn Andersson Say yes here to support the Qualcomm Shared Memory State Machine. 220c97c4090SBjorn Andersson The state machine is represented by bits in shared memory. 221ea7a1f27SBjorn Andersson 222efb448d0SImran Khanconfig QCOM_SOCINFO 223efb448d0SImran Khan tristate "Qualcomm socinfo driver" 224efb448d0SImran Khan depends on QCOM_SMEM 225efb448d0SImran Khan select SOC_BUS 226efb448d0SImran Khan help 227efb448d0SImran Khan Say yes here to support the Qualcomm socinfo driver, providing 228efb448d0SImran Khan information about the SoC to user space. 229efb448d0SImran Khan 23060f3692bSAngeloGioacchino Del Regnoconfig QCOM_SPM 23160f3692bSAngeloGioacchino Del Regno tristate "Qualcomm Subsystem Power Manager (SPM)" 2324f22aa45SArnd Bergmann depends on ARCH_QCOM || COMPILE_TEST 23360f3692bSAngeloGioacchino Del Regno select QCOM_SCM 23460f3692bSAngeloGioacchino Del Regno help 23560f3692bSAngeloGioacchino Del Regno Enable the support for the Qualcomm Subsystem Power Manager, used 23660f3692bSAngeloGioacchino Del Regno to manage cores, L2 low power modes and to configure the internal 23760f3692bSAngeloGioacchino Del Regno Adaptive Voltage Scaler parameters, where supported. 23860f3692bSAngeloGioacchino Del Regno 2391d772469SMahesh Sivasubramanianconfig QCOM_STATS 2401d772469SMahesh Sivasubramanian tristate "Qualcomm Technologies, Inc. (QTI) Sleep stats driver" 2411d772469SMahesh Sivasubramanian depends on (ARCH_QCOM && DEBUG_FS) || COMPILE_TEST 2421d772469SMahesh Sivasubramanian depends on QCOM_SMEM 24370b139a7SBjorn Andersson depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n 2441d772469SMahesh Sivasubramanian help 2451d772469SMahesh Sivasubramanian Qualcomm Technologies, Inc. (QTI) Sleep stats driver to read 2461d772469SMahesh Sivasubramanian the shared memory exported by the remote processor related to 2471d772469SMahesh Sivasubramanian various SoC level low power modes statistics and export to debugfs 2481d772469SMahesh Sivasubramanian interface. 2491d772469SMahesh Sivasubramanian 250ea7a1f27SBjorn Anderssonconfig QCOM_WCNSS_CTRL 251ea7a1f27SBjorn Andersson tristate "Qualcomm WCNSS control driver" 252ccfb464cSNiklas Cassel depends on ARCH_QCOM || COMPILE_TEST 2535052de8dSBjorn Andersson depends on RPMSG 254ea7a1f27SBjorn Andersson help 255ea7a1f27SBjorn Andersson Client driver for the WCNSS_CTRL SMD channel, used to download nv 256ea7a1f27SBjorn Andersson firmware to a newly booted WCNSS chip. 2572a464815SSrinivas Kandagatla 2586adba21eSSrinivas Kandagatlaconfig QCOM_APR 259ec1471a8SSrinivas Kandagatla tristate "Qualcomm APR/GPR Bus (Asynchronous/Generic Packet Router)" 260ccfb464cSNiklas Cassel depends on ARCH_QCOM || COMPILE_TEST 2616adba21eSSrinivas Kandagatla depends on RPMSG 262de722e41SBjorn Andersson depends on NET 26383473566SSibi Sankar select QCOM_PDR_HELPERS 2646adba21eSSrinivas Kandagatla help 2656adba21eSSrinivas Kandagatla Enable APR IPC protocol support between 2666adba21eSSrinivas Kandagatla application processor and QDSP6. APR is 2676adba21eSSrinivas Kandagatla used by audio driver to configure QDSP6 2686adba21eSSrinivas Kandagatla ASM, ADM and AFE modules. 269b9c2ae6cSKrzysztof Kozlowski 270b9c2ae6cSKrzysztof Kozlowskiconfig QCOM_ICC_BWMON 271b9c2ae6cSKrzysztof Kozlowski tristate "QCOM Interconnect Bandwidth Monitor driver" 272b9c2ae6cSKrzysztof Kozlowski depends on ARCH_QCOM || COMPILE_TEST 273b9c2ae6cSKrzysztof Kozlowski select PM_OPP 274a84160fbSManivannan Sadhasivam select REGMAP_MMIO 275b9c2ae6cSKrzysztof Kozlowski help 276b9c2ae6cSKrzysztof Kozlowski Sets up driver monitoring bandwidth on various interconnects and 277b9c2ae6cSKrzysztof Kozlowski based on that voting for interconnect bandwidth, adjusting their 278b9c2ae6cSKrzysztof Kozlowski speed to current demand. 279b9c2ae6cSKrzysztof Kozlowski Current implementation brings support for BWMON v4, used for example 280b9c2ae6cSKrzysztof Kozlowski on SDM845 to measure bandwidth between CPU (gladiator_noc) and Last 281b9c2ae6cSKrzysztof Kozlowski Level Cache (memnoc). Usage of this BWMON allows to remove some of 282b9c2ae6cSKrzysztof Kozlowski the fixed bandwidth votes from cpufreq (CPU nodes) thus achieve high 283b9c2ae6cSKrzysztof Kozlowski memory throughput even with lower CPU frequencies. 284b9c2ae6cSKrzysztof Kozlowski 2852afbf43aSAbel Vesaconfig QCOM_INLINE_CRYPTO_ENGINE 2862afbf43aSAbel Vesa tristate 2872afbf43aSAbel Vesa select QCOM_SCM 2882afbf43aSAbel Vesa 2895b2dd77bSAnjelique Melendezconfig QCOM_PBS 2905b2dd77bSAnjelique Melendez tristate "PBS trigger support for Qualcomm Technologies, Inc. PMICS" 2915b2dd77bSAnjelique Melendez depends on SPMI 2925b2dd77bSAnjelique Melendez help 2935b2dd77bSAnjelique Melendez This driver supports configuring software programmable boot sequencer (PBS) 2945b2dd77bSAnjelique Melendez trigger event through PBS RAM on Qualcomm Technologies, Inc. PMICs. 2955b2dd77bSAnjelique Melendez This module provides the APIs to the client drivers that wants to send the 2965b2dd77bSAnjelique Melendez PBS trigger event to the PBS RAM. 2975b2dd77bSAnjelique Melendez 2982a464815SSrinivas Kandagatlaendmenu 299*1924272bSKonrad Dybcio 300*1924272bSKonrad Dybcioconfig QCOM_UBWC_CONFIG 301*1924272bSKonrad Dybcio tristate 302*1924272bSKonrad Dybcio help 303*1924272bSKonrad Dybcio Most Qualcomm SoCs feature a number of Universal Bandwidth Compression 304*1924272bSKonrad Dybcio (UBWC) engines across various IP blocks, which need to be initialized 305*1924272bSKonrad Dybcio with coherent configuration data. This module functions as a single 306*1924272bSKonrad Dybcio source of truth for that information. 307