| # SPDX-License-Identifier: GPL-2.0 |
| # |
| # QCOM Soc drivers |
| # |
| menu "Qualcomm SoC drivers" |
| config QCOM_COMMAND_DB |
| bool "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_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_GLINK_SSR |
| tristate "Qualcomm Glink SSR driver" |
| depends on RPMSG |
| depends on QCOM_RPROC_COMMON |
| help |
| Say y here to enable GLINK SSR support. The GLINK SSR driver |
| implements the SSR protocol for notifying the remote processor about |
| neighboring subsystems going up or down. |
| |
| config QCOM_CPUSS_DUMP |
| bool "CPU Subsystem Dumping support" |
| help |
| Add support to dump various hardware entities such as the instruction |
| and data tlb's as well as the unified tlb, which are a part of the |
| cpu subsystem to an allocated buffer. This allows for analysis of the |
| the entities if corruption is suspected. |
| If unsure, say N |
| |
| config QCOM_GSBI |
| tristate "QCOM General Serial Bus Interface" |
| depends on 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_IPCC |
| tristate "Qualcomm Technologies, Inc. IPCC driver" |
| depends on MAILBOX |
| help |
| Qualcomm Technologies, Inc. IPCC driver for MSM devices. The drivers |
| acts as an interrupt controller for the clients interested in |
| talking to the IPCC (inbound-communication). On the other hand, the |
| driver also provides a mailbox channel for outbound-communications. |
| Say Y here to compile the driver as a part of kernel or M to compile |
| as a module. |
| |
| config QCOM_LLCC |
| tristate "Qualcomm Technologies, Inc. LLCC driver" |
| depends on ARCH_QCOM |
| help |
| Qualcomm Technologies, Inc. platform specific |
| Last Level Cache Controller(LLCC) driver. This provides interfaces |
| to clients that use the LLCC. Say yes here to enable LLCC slice |
| driver. |
| |
| config QCOM_KONA_LLCC |
| tristate "Qualcomm Technologies, Inc. KONA LLCC driver" |
| depends on QCOM_LLCC |
| help |
| Say yes here to enable the LLCC driver for KONA. This provides |
| data required to configure LLCC so that clients can start using the |
| LLCC slices. |
| |
| config QCOM_SDM845_LLCC |
| tristate "Qualcomm Technologies, Inc. SDM845 LLCC driver" |
| depends on QCOM_LLCC |
| help |
| Say yes here to enable the LLCC driver for SDM845. This provides |
| data required to configure LLCC so that clients can start using the |
| LLCC slices. |
| |
| config QCOM_MDT_LOADER |
| tristate |
| select QCOM_SCM |
| |
| config QCOM_PM |
| bool "Qualcomm Power Management" |
| depends on ARCH_QCOM && !ARM64 |
| select ARM_CPU_SUSPEND |
| select QCOM_SCM |
| help |
| QCOM Platform specific power driver to manage cores and L2 low power |
| modes. It interface with various system drivers to put the cores in |
| low power modes. |
| |
| config QCOM_QMI_HELPERS |
| tristate |
| depends on ARCH_QCOM && NET |
| help |
| Helper library for handling QMI encoded messages. QMI encoded |
| messages are used in communication between the majority of QRTR |
| clients and this helpers provide the common functionality needed for |
| doing this from a kernel driver. |
| |
| 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_RPMH |
| bool "Qualcomm RPM-Hardened (RPMH) Communication" |
| depends on ARCH_QCOM && ARM64 && OF || COMPILE_TEST |
| 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 ARCH_QCOM |
| 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 |
| depends on RPMSG && OF |
| 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_SCM |
| bool "Secure Channel Manager (SCM) support" |
| default n |
| help |
| Say y here to enable Secure Channel Mananger(SCM) support for SoC. |
| SCM provides communication channel to communicate with secure |
| world(EL2 and EL3) by using smc call. |
| SCM driver provides the support for atomic scm calls also. |
| |
| config QCOM_MEMORY_DUMP_V2 |
| bool "QCOM Memory Dump V2 Support" |
| help |
| This enables memory dump feature. It allows various client |
| subsystems to register respective dump regions. At the time |
| of deadlocks or cpu hangs these dump regions are captured to |
| give a snapshot of the system at the time of the crash. |
| |
| 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 |
| 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 |
| help |
| Say yes here to support the Qualcomm Shared Memory State Machine. |
| The state machine is represented by bits in shared memory. |
| |
| config QCOM_WCNSS_CTRL |
| tristate "Qualcomm WCNSS control driver" |
| depends on ARCH_QCOM |
| depends on RPMSG |
| help |
| Client driver for the WCNSS_CTRL SMD channel, used to download nv |
| firmware to a newly booted WCNSS chip. |
| |
| config SETUP_SSR_NOTIF_TIMEOUTS |
| bool "Set timeouts on SSR sysmon notifications and notifier callbacks" |
| help |
| Setup timers prior to initiating communication between |
| subsystems through sysmon, and prior to sending notifications |
| to drivers in the kernel that have registered callbacks with the |
| subsystem notifier framework for a particular subsystem. This |
| is a debugging feature. |
| |
| config SSR_SYSMON_NOTIF_TIMEOUT |
| depends on SETUP_SSR_NOTIF_TIMEOUTS |
| int "SSR Sysmon notifications timeout in ms" |
| default 10000 |
| help |
| The amount of time, in milliseconds, that should elapse between |
| the start and end of sysmon SSR notifications, before a warning |
| is emitted. |
| |
| config SSR_SUBSYS_NOTIF_TIMEOUT |
| depends on SETUP_SSR_NOTIF_TIMEOUTS |
| int "SSR Subsystem notifier timeout in ms" |
| default 10000 |
| help |
| The amount of time, in milliseconds, that should elapse between |
| the start and end of SSR notifications through the subsystem |
| notifier, before a warning is emitted. |
| |
| config PANIC_ON_SSR_NOTIF_TIMEOUT |
| bool "Trigger kernel panic when notification timeout expires" |
| depends on SETUP_SSR_NOTIF_TIMEOUTS |
| help |
| Trigger a kernel panic when communication between subsystems |
| through sysmon is taking too long. Also trigger a kernel panic |
| if invoking the callbacks registered with a particular subsystem's |
| notifications by the subsystem notifier framework is taking too long. |
| This is a debugging feature. |
| |
| config QCOM_SECURE_BUFFER |
| bool "Helper functions for securing buffers through TZ" |
| help |
| Say 'Y' here for targets that need to call into TZ to secure |
| memory buffers. This ensures that only the correct clients can |
| use this memory and no unauthorized access is made to the |
| buffer |
| |
| config MSM_TZ_SMMU |
| depends on ARCH_MSM8953 || ARCH_QCS405 |
| bool "Helper functions for SMMU configuration through TZ" |
| help |
| Say 'Y' here for targets that need to call into TZ to configure |
| SMMUs for any reason (for example, for errata workarounds or |
| configuration of SMMU virtualization). |
| |
| If unsure, say N. |
| |
| config MSM_SERVICE_LOCATOR |
| bool "Service Locator" |
| depends on QCOM_QMI_HELPERS |
| help |
| The Service Locator provides a library to retrieve location |
| information given a service identifier. Location here translates |
| to what process domain exports the service, and which subsystem |
| that process domain will execute in. |
| |
| config MSM_SERVICE_NOTIFIER |
| bool "Service Notifier" |
| depends on MSM_SERVICE_LOCATOR && MSM_SUBSYSTEM_RESTART |
| help |
| The Service Notifier provides a library for a kernel client to |
| register for state change notifications regarding a remote service. |
| A remote service here refers to a process providing certain services |
| like audio, the identifier for which is provided by the service |
| locator. |
| |
| config MSM_SUBSYSTEM_RESTART |
| bool "MSM Subsystem Restart" |
| help |
| This option enables the MSM subsystem restart framework. |
| |
| The MSM subsystem restart framework provides support to boot, |
| shutdown, and restart subsystems with a reference counted API. |
| It also notifies userspace of transitions between these states via |
| sysfs. |
| |
| config MSM_PIL |
| bool "Peripheral image loading" |
| select FW_LOADER |
| default n |
| help |
| Some peripherals need to be loaded into memory before they can be |
| brought out of reset. |
| |
| Say yes to support these devices. |
| |
| config MSM_SYSMON_GLINK_COMM |
| bool "MSM System Monitor communication support using GLINK transport" |
| depends on MSM_GLINK && MSM_SUBSYSTEM_RESTART |
| help |
| This option adds support for MSM System Monitor APIs using the GLINK |
| transport layer. The APIs provided may be used for notifying |
| subsystems within the SoC about other subsystems' power-up/down |
| state-changes. |
| |
| config MSM_PIL_SSR_GENERIC |
| tristate "MSM Subsystem Boot Support" |
| depends on MSM_PIL && MSM_SUBSYSTEM_RESTART |
| help |
| Support for booting and shutting down MSM Subsystem processors. |
| This driver also monitors the SMSM status bits and the watchdog |
| interrupt for the subsystem and restarts it on a watchdog bite |
| or a fatal error. Subsystems include LPASS, Venus, VPU, WCNSS and |
| BCSS. |
| config MSM_BOOT_STATS |
| bool "Use MSM boot stats reporting" |
| help |
| Use this to report msm boot stats such as bootloader throughput, |
| display init, total boot time. |
| This figures are reported in mpm sleep clock cycles and have a |
| resolution of 31 bits as 1 bit is used as an overflow check. |
| |
| config QCOM_EUD |
| tristate "QTI Embedded USB Debugger (EUD)" |
| depends on ARCH_QCOM |
| select SERIAL_CORE |
| help |
| The EUD (Embedded USB Debugger) is a mini-USB hub implemented |
| on chip to support the USB-based debug and trace capabilities. |
| This module enables support for Qualcomm Technologies, Inc. |
| Embedded USB Debugger (EUD). |
| If unsure, say N. |
| |
| config QCOM_MINIDUMP |
| bool "QCOM Minidump Support" |
| depends on QCOM_SMEM && QCOM_DLOAD_MODE |
| help |
| This enables minidump feature. It allows various clients to |
| register to dump their state at system bad state (panic/WDT,etc.,). |
| Minidump would dump all registered entries, only when DLOAD mode |
| is enabled. |
| |
| config MINIDUMP_MAX_ENTRIES |
| int "Minidump Maximum num of entries" |
| default 200 |
| depends on QCOM_MINIDUMP |
| help |
| This defines maximum number of entries to be allocated for application |
| subsytem in Minidump table. |
| |
| config QCOM_APR |
| tristate "Qualcomm APR Bus (Asynchronous Packet Router)" |
| depends on ARCH_QCOM |
| depends on RPMSG |
| 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 MSM_CORE_HANG_DETECT |
| tristate "MSM Core Hang Detection Support" |
| help |
| This enables the core hang detection module. It causes SoC |
| reset on core hang detection and collects the core context |
| for hang. By using sysfs entries core hang detection can be |
| enabled or disabled dynamically. |
| |
| config QCOM_FSA4480_I2C |
| bool "Fairchild FSA4480 chip with I2C" |
| select REGMAP_I2C |
| depends on I2C |
| help |
| Support for the Fairchild FSA4480 IC switch chip controlled |
| using I2C. This driver provides common support |
| for accessing the device, switching between USB and Audio |
| modes, changing orientation. |
| |
| config QCOM_WATCHDOG_V2 |
| bool "QTI Watchdog Support" |
| depends on ARCH_QCOM |
| help |
| This enables the watchdog module. It causes kernel panic if the |
| watchdog times out. It allows for detection of cpu hangs and |
| deadlocks. It does not run during the bootup process, so it will |
| not catch any early lockups. |
| |
| config QCOM_RPMH |
| bool "Qualcomm Technologies, Inc. RPM-Hardened (RPMH) Communication" |
| depends on ARCH_QCOM && ARM64 && OF || COMPILE_TEST |
| 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_BUS_SCALING |
| bool "Bus scaling driver" |
| help |
| This option enables bus scaling on MSM devices. Bus scaling |
| allows devices to request the clocks be set to rates sufficient |
| for the active devices needs without keeping the clocks at max |
| frequency when a slower speed is sufficient. |
| |
| config QCOM_BUS_CONFIG_RPMH |
| bool "RPMH Bus scaling driver" |
| depends on QCOM_BUS_SCALING |
| help |
| This option enables bus scaling using QCOM specific hardware |
| accelerators. It enables the translation of bandwidth requests |
| from logical nodes to hardware nodes controlled by the BCM (Bus |
| Clock Manager) |
| |
| config QCOM_GLINK |
| tristate "GLINK Probe Helper" |
| depends on RPMSG_QCOM_GLINK_SMEM |
| help |
| This enables the GLINK Probe module. The GLINK RPMSG Plugin is |
| currently designed to plugin with the remote proc framework as a |
| subdev. This module is responsible for creating the glink transports |
| when remote proc is disabled. |
| |
| config QCOM_GLINK_PKT |
| tristate "Enable device interface for GLINK packet channels" |
| depends on QCOM_GLINK |
| help |
| G-link packet driver provides the interface for the userspace |
| clients to communicate over G-Link via device nodes. |
| This enable the userspace clients to read and write to |
| some glink packets channel. |
| endmenu |