| # 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 || COMPILE_TEST) && ARM64 |
| |
| 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 |
| depends on NET |
| |
| config QCOM_PMIC_GLINK |
| tristate "Qualcomm PMIC GLINK driver" |
| depends on RPMSG |
| depends on TYPEC |
| depends on DRM |
| depends on NET |
| depends on OF |
| select AUXILIARY_BUS |
| select QCOM_PDR_HELPERS |
| help |
| The Qualcomm PMIC GLINK driver provides access, over GLINK, to the |
| USB and battery firmware running on one of the coprocessors in |
| several modern Qualcomm platforms. |
| |
| Say yes here to support USB-C and battery status on modern Qualcomm |
| platforms. |
| |
| config QCOM_QMI_HELPERS |
| tristate |
| depends on NET |
| |
| config QCOM_RAMP_CTRL |
| tristate "Qualcomm Ramp Controller driver" |
| depends on ARCH_QCOM || COMPILE_TEST |
| help |
| The Ramp Controller is used to program the sequence ID for pulse |
| swallowing, enable sequence and link sequence IDs for the CPU |
| cores on some Qualcomm SoCs. |
| Say y here to enable support for the ramp controller. |
| |
| 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_RPM_MASTER_STATS |
| tristate "Qualcomm RPM Master stats" |
| depends on ARCH_QCOM || COMPILE_TEST |
| help |
| The RPM Master sleep stats driver provides detailed per-subsystem |
| sleep/wake data, read from the RPM message RAM. It can be used to |
| assess whether all the low-power modes available are entered as |
| expected or to check which part of the SoC prevents it from sleeping. |
| |
| Say y here if you intend to debug or monitor platform sleep. |
| |
| 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 && OF |
| depends on QCOM_SMD_RPM |
| select PM_GENERIC_DOMAINS |
| select PM_GENERIC_DOMAINS_OF |
| 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 |
| depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n |
| 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_SPM |
| tristate "Qualcomm Subsystem Power Manager (SPM)" |
| depends on ARCH_QCOM || COMPILE_TEST |
| select QCOM_SCM |
| help |
| Enable the support for the Qualcomm Subsystem Power Manager, used |
| to manage cores, L2 low power modes and to configure the internal |
| Adaptive Voltage Scaler parameters, where supported. |
| |
| config QCOM_STATS |
| tristate "Qualcomm Technologies, Inc. (QTI) Sleep stats driver" |
| depends on (ARCH_QCOM && DEBUG_FS) || COMPILE_TEST |
| depends on QCOM_SMEM |
| help |
| Qualcomm Technologies, Inc. (QTI) Sleep stats driver to read |
| the shared memory exported by the remote processor related to |
| various SoC level low power modes statistics and export to debugfs |
| interface. |
| |
| 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/GPR Bus (Asynchronous/Generic 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. |
| |
| config QCOM_ICC_BWMON |
| tristate "QCOM Interconnect Bandwidth Monitor driver" |
| depends on ARCH_QCOM || COMPILE_TEST |
| select PM_OPP |
| select REGMAP_MMIO |
| help |
| Sets up driver monitoring bandwidth on various interconnects and |
| based on that voting for interconnect bandwidth, adjusting their |
| speed to current demand. |
| Current implementation brings support for BWMON v4, used for example |
| on SDM845 to measure bandwidth between CPU (gladiator_noc) and Last |
| Level Cache (memnoc). Usage of this BWMON allows to remove some of |
| the fixed bandwidth votes from cpufreq (CPU nodes) thus achieve high |
| memory throughput even with lower CPU frequencies. |
| |
| config QCOM_INLINE_CRYPTO_ENGINE |
| tristate |
| select QCOM_SCM |
| |
| endmenu |