^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) # QCOM Soc drivers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) menu "Qualcomm SoC drivers"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) config QCOM_AOSS_QMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) tristate "Qualcomm AOSS Driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) depends on ARCH_QCOM || COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) depends on MAILBOX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) depends on COMMON_CLK && PM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) select PM_GENERIC_DOMAINS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) This driver provides the means of communicating with and controlling
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) the low-power state for resources related to the remoteproc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) subsystems as well as controlling the debug clocks exposed by the Always On
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) Subsystem (AOSS) using Qualcomm Messaging Protocol (QMP).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) config QCOM_COMMAND_DB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) tristate "Qualcomm Command DB"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) depends on ARCH_QCOM || COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) depends on OF_RESERVED_MEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) Command DB queries shared memory by key string for shared system
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) resources. Platform drivers that require to set state of a shared
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) resource on a RPM-hardened platform must use this database to get
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) SoC specific identifier and information for the shared resources.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) config QCOM_CPR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) tristate "QCOM Core Power Reduction (CPR) support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) depends on ARCH_QCOM && HAS_IOMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) select PM_OPP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) select REGMAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) Say Y here to enable support for the CPR hardware found on Qualcomm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) SoCs like QCS404.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) This driver populates CPU OPPs tables and makes adjustments to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) tables based on feedback from the CPR hardware. If you want to do
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) CPUfrequency scaling say Y here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) To compile this driver as a module, choose M here: the module will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) be called qcom-cpr
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) config QCOM_GENI_SE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) tristate "QCOM GENI Serial Engine Driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) depends on ARCH_QCOM || COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) This driver is used to manage Generic Interface (GENI) firmware based
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) Qualcomm Technologies, Inc. Universal Peripheral (QUP) Wrapper. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) driver is also used to manage the common aspects of multiple Serial
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) Engines present in the QUP.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) config QCOM_GSBI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) tristate "QCOM General Serial Bus Interface"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) depends on ARCH_QCOM || COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) select MFD_SYSCON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) Say y here to enable GSBI support. The GSBI provides control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) functions for connecting the underlying serial UART, SPI, and I2C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) devices to the output pins.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) config QCOM_LLCC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) tristate "Qualcomm Technologies, Inc. LLCC driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) depends on ARCH_QCOM || COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) Qualcomm Technologies, Inc. platform specific
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) Last Level Cache Controller(LLCC) driver for platforms such as,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) SDM845. This provides interfaces to clients that use the LLCC.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) Say yes here to enable LLCC slice driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) config QCOM_KRYO_L2_ACCESSORS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) depends on ARCH_QCOM && ARM64 || COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) config QCOM_MDT_LOADER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) select QCOM_SCM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) config QCOM_OCMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) tristate "Qualcomm On Chip Memory (OCMEM) driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) depends on ARCH_QCOM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) select QCOM_SCM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) The On Chip Memory (OCMEM) allocator allows various clients to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) allocate memory from OCMEM based on performance, latency and power
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) requirements. This is typically used by the GPU, camera/video, and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) audio components on some Snapdragon SoCs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) config QCOM_PDR_HELPERS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) select QCOM_QMI_HELPERS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) config QCOM_QMI_HELPERS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) depends on NET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) config QCOM_RMTFS_MEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) tristate "Qualcomm Remote Filesystem memory driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) depends on ARCH_QCOM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) select QCOM_SCM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) The Qualcomm remote filesystem memory driver is used for allocating
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) and exposing regions of shared memory with remote processors for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) purpose of exchanging sector-data between the remote filesystem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) service and its clients.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) Say y here if you intend to boot the modem remoteproc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) config QCOM_RPMH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) tristate "Qualcomm RPM-Hardened (RPMH) Communication"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) depends on ARCH_QCOM || COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) depends on (QCOM_COMMAND_DB || !QCOM_COMMAND_DB)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) Support for communication with the hardened-RPM blocks in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) Qualcomm Technologies Inc (QTI) SoCs. RPMH communication uses an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) internal bus to transmit state requests for shared resources. A set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) of hardware components aggregate requests for these resources and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) help apply the aggregated state on the resource.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) config QCOM_RPMHPD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) tristate "Qualcomm RPMh Power domain driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) depends on QCOM_RPMH && QCOM_COMMAND_DB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) QCOM RPMh Power domain driver to support power-domains with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) performance states. The driver communicates a performance state
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) value to RPMh which then translates it into corresponding voltage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) for the voltage rail.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) config QCOM_RPMPD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) tristate "Qualcomm RPM Power domain driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) depends on QCOM_SMD_RPM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) QCOM RPM Power domain driver to support power-domains with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) performance states. The driver communicates a performance state
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) value to RPM which then translates it into corresponding voltage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) for the voltage rail.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) config QCOM_SMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) tristate "Qualcomm Shared Memory Manager (SMEM)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) depends on ARCH_QCOM || COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) depends on HWSPINLOCK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) Say y here to enable support for the Qualcomm Shared Memory Manager.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) The driver provides an interface to items in a heap shared among all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) processors in a Qualcomm platform.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) config QCOM_SMD_RPM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) tristate "Qualcomm Resource Power Manager (RPM) over SMD"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) depends on ARCH_QCOM || COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) depends on RPMSG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) If you say yes to this option, support will be included for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) Resource Power Manager system found in the Qualcomm 8974 based
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) devices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) This is required to access many regulators, clocks and bus
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) frequencies controlled by the RPM on these devices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) Say M here if you want to include support for the Qualcomm RPM as a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) module. This will build a module called "qcom-smd-rpm".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) config QCOM_SMEM_STATE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) config QCOM_SMP2P
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) tristate "Qualcomm Shared Memory Point to Point support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) depends on MAILBOX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) depends on QCOM_SMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) select QCOM_SMEM_STATE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) select IRQ_DOMAIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) Say yes here to support the Qualcomm Shared Memory Point to Point
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) protocol.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) config QCOM_SMSM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) tristate "Qualcomm Shared Memory State Machine"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) depends on QCOM_SMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) select QCOM_SMEM_STATE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) select IRQ_DOMAIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) Say yes here to support the Qualcomm Shared Memory State Machine.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) The state machine is represented by bits in shared memory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) config QCOM_SOCINFO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) tristate "Qualcomm socinfo driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) depends on QCOM_SMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) select SOC_BUS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) Say yes here to support the Qualcomm socinfo driver, providing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) information about the SoC to user space.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) config QCOM_WCNSS_CTRL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) tristate "Qualcomm WCNSS control driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) depends on ARCH_QCOM || COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) depends on RPMSG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) Client driver for the WCNSS_CTRL SMD channel, used to download nv
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) firmware to a newly booted WCNSS chip.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) config QCOM_APR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) tristate "Qualcomm APR Bus (Asynchronous Packet Router)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) depends on ARCH_QCOM || COMPILE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) depends on RPMSG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) depends on NET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) select QCOM_PDR_HELPERS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) Enable APR IPC protocol support between
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) application processor and QDSP6. APR is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) used by audio driver to configure QDSP6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) ASM, ADM and AFE modules.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) endmenu