| # SPDX-License-Identifier: GPL-2.0-only | |
| # | |
| # QCOM Soc drivers | |
| # | |
| menuconfig QCOM_SOC | |
| bool "Qualcomm SoC drivers" | |
| depends on ARCH_QCOM || COMPILE_TEST | |
| default ARCH_QCOM | |
| help | |
| This collection of drivers is specific to Qualcomm System-on-Chips | |
| and most of them are necessary for a fully functional boot of the | |
| Linux kernel (plus a few debugging drivers). | |
| Drivers can be skipped when building Linux kernel not intended to run | |
| said processors. | |
| if QCOM_SOC | |
| config QCOM_AOSS_QMP | |
| tristate "Qualcomm AOSS Driver" | |
| depends on MAILBOX | |
| depends on COMMON_CLK && PM | |
| select PM_GENERIC_DOMAINS | |
| default ARCH_QCOM | |
| 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 OF_RESERVED_MEM | |
| default ARCH_QCOM | |
| 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_GENI_SE | |
| tristate "Qualcomm GENI Serial Engine Driver" | |
| depends on ARM64 || COMPILE_TEST | |
| default ARCH_QCOM | |
| 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 "Qualcomm General Serial Bus Interface" | |
| depends on ARM || COMPILE_TEST | |
| default ARCH_QCOM | |
| 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 LLCC driver" | |
| select REGMAP_MMIO | |
| default m if ARCH_QCOM | |
| 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_OCMEM | |
| tristate "Qualcomm On Chip Memory (OCMEM) driver" | |
| select QCOM_SCM | |
| default m if ARCH_QCOM | |
| 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_PD_MAPPER | |
| tristate "Qualcomm Protection Domain Mapper" | |
| select QCOM_QMI_HELPERS | |
| select QCOM_PDR_MSG | |
| select AUXILIARY_BUS | |
| depends on NET && QRTR | |
| default QCOM_RPROC_COMMON | |
| help | |
| The Protection Domain Mapper maps registered services to the domains | |
| and instances handled by the remote DSPs. This is a kernel-space | |
| implementation of the service. It is a simpler alternative to the | |
| userspace daemon. | |
| config QCOM_PMIC_PDCHARGER_ULOG | |
| tristate "Qualcomm PMIC PDCharger ULOG driver" | |
| depends on RPMSG | |
| depends on EVENT_TRACING | |
| help | |
| The Qualcomm PMIC PDCharger ULOG driver provides access to logs of | |
| the ADSP firmware PDCharger module in charge of Battery and Power | |
| Delivery on modern systems. | |
| Say yes here to support PDCharger ULOG event tracing on modern | |
| Qualcomm platforms. | |
| config QCOM_PMIC_GLINK | |
| tristate "Qualcomm PMIC GLINK driver" | |
| depends on RPMSG | |
| depends on TYPEC | |
| depends on DRM | |
| depends on NET | |
| depends on OF | |
| depends on ARM64 || COMPILE_TEST | |
| select AUXILIARY_BUS | |
| select QCOM_PDR_HELPERS | |
| select DRM_AUX_HPD_BRIDGE | |
| default m if ARCH_QCOM | |
| 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_RAMP_CTRL | |
| tristate "Qualcomm Ramp Controller driver" | |
| 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" | |
| select QCOM_SCM | |
| default m if ARCH_QCOM | |
| 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" | |
| 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 (QCOM_COMMAND_DB || !QCOM_COMMAND_DB) | |
| default ARCH_QCOM | |
| 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_SMEM | |
| tristate "Qualcomm Shared Memory Manager (SMEM)" | |
| depends on HWSPINLOCK | |
| default ARCH_QCOM | |
| 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 RPMSG | |
| depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n | |
| default ARCH_QCOM | |
| 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 | |
| default ARCH_QCOM | |
| 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 MAILBOX | |
| depends on QCOM_SMEM | |
| select QCOM_SMEM_STATE | |
| select IRQ_DOMAIN | |
| default ARCH_QCOM | |
| 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 | |
| default m if ARCH_QCOM | |
| 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 QCOM_SCM | |
| default ARCH_QCOM if ARM | |
| 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 Sleep stats driver" | |
| depends on DEBUG_FS || COMPILE_TEST | |
| depends on QCOM_SMEM | |
| depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n | |
| default m if ARCH_QCOM | |
| 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 RPMSG | |
| default m if ARCH_QCOM | |
| 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 RPMSG | |
| depends on NET | |
| select QCOM_PDR_HELPERS | |
| default m if ARCH_QCOM | |
| 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 "Qualcomm Interconnect Bandwidth Monitor driver" | |
| depends on ARM64 || COMPILE_TEST | |
| select PM_OPP | |
| select REGMAP_MMIO | |
| default m if ARCH_QCOM | |
| 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_PBS | |
| tristate "PBS trigger support for Qualcomm PMICs" | |
| depends on SPMI | |
| default m if ARCH_QCOM | |
| help | |
| This driver supports configuring software programmable boot sequencer (PBS) | |
| trigger event through PBS RAM on Qualcomm Technologies, Inc. PMICs. | |
| This module provides the APIs to the client drivers that wants to send the | |
| PBS trigger event to the PBS RAM. | |
| endif | |
| # Options selected by other drivers from different subsystems must be outside | |
| # of the menuconfig if-block: | |
| config QCOM_INLINE_CRYPTO_ENGINE | |
| tristate | |
| select QCOM_SCM | |
| config QCOM_KRYO_L2_ACCESSORS | |
| bool | |
| depends on ARM64 | |
| config QCOM_MDT_LOADER | |
| tristate | |
| select QCOM_SCM | |
| config QCOM_PDR_HELPERS | |
| tristate | |
| select QCOM_QMI_HELPERS | |
| select QCOM_PDR_MSG | |
| depends on NET | |
| config QCOM_PDR_MSG | |
| tristate | |
| config QCOM_QMI_HELPERS | |
| tristate | |
| depends on NET | |
| config QCOM_UBWC_CONFIG | |
| tristate | |
| depends on QCOM_SMEM | |
| help | |
| Most Qualcomm SoCs feature a number of Universal Bandwidth Compression | |
| (UBWC) engines across various IP blocks, which need to be initialized | |
| with coherent configuration data. This module functions as a single | |
| source of truth for that information. |