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