blob: 14cd691096f2bd4dcce8f28610ee931ca221effc [file] [log] [blame]
# 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