xref: /linux-6.15/drivers/soc/qcom/Kconfig (revision 1ebcde04)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# QCOM Soc drivers
4#
5menu "Qualcomm SoC drivers"
6
7config 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
19config QCOM_COMMAND_DB
20	tristate "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
29config 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
38config QCOM_GSBI
39	tristate "QCOM General Serial Bus Interface"
40	depends on ARCH_QCOM || COMPILE_TEST
41	select MFD_SYSCON
42	help
43	  Say y here to enable GSBI support.  The GSBI provides control
44	  functions for connecting the underlying serial UART, SPI, and I2C
45	  devices to the output pins.
46
47config QCOM_LLCC
48	tristate "Qualcomm Technologies, Inc. LLCC driver"
49	depends on ARCH_QCOM || COMPILE_TEST
50	select REGMAP_MMIO
51	help
52	  Qualcomm Technologies, Inc. platform specific
53	  Last Level Cache Controller(LLCC) driver for platforms such as,
54	  SDM845. This provides interfaces to clients that use the LLCC.
55	  Say yes here to enable LLCC slice driver.
56
57config QCOM_KRYO_L2_ACCESSORS
58	bool
59	depends on (ARCH_QCOM || COMPILE_TEST) && ARM64
60
61config QCOM_MDT_LOADER
62	tristate
63	select QCOM_SCM
64
65config QCOM_OCMEM
66	tristate "Qualcomm On Chip Memory (OCMEM) driver"
67	depends on ARCH_QCOM
68	select QCOM_SCM
69	help
70	  The On Chip Memory (OCMEM) allocator allows various clients to
71	  allocate memory from OCMEM based on performance, latency and power
72	  requirements. This is typically used by the GPU, camera/video, and
73	  audio components on some Snapdragon SoCs.
74
75config QCOM_PD_MAPPER
76	tristate "Qualcomm Protection Domain Mapper"
77	select QCOM_QMI_HELPERS
78	depends on NET && QRTR
79	default QCOM_RPROC_COMMON
80	help
81	  The Protection Domain Mapper maps registered services to the domains
82	  and instances handled by the remote DSPs. This is a kernel-space
83	  implementation of the service. It is a simpler alternative to the
84	  userspace daemon.
85
86config QCOM_PDR_HELPERS
87	tristate
88	select QCOM_QMI_HELPERS
89	select QCOM_PDR_MSG
90	depends on NET
91
92config QCOM_PDR_MSG
93	tristate
94
95config QCOM_PMIC_PDCHARGER_ULOG
96	tristate "Qualcomm PMIC PDCharger ULOG driver"
97	depends on RPMSG
98	depends on EVENT_TRACING
99	help
100	  The Qualcomm PMIC PDCharger ULOG driver provides access to logs of
101	  the ADSP firmware PDCharger module in charge of Battery and Power
102	  Delivery on modern systems.
103
104	  Say yes here to support PDCharger ULOG event tracing on modern
105	  Qualcomm platforms.
106
107config QCOM_PMIC_GLINK
108	tristate "Qualcomm PMIC GLINK driver"
109	depends on RPMSG
110	depends on TYPEC
111	depends on DRM
112	depends on NET
113	depends on OF
114	select AUXILIARY_BUS
115	select QCOM_PDR_HELPERS
116	select DRM_AUX_HPD_BRIDGE
117	help
118	  The Qualcomm PMIC GLINK driver provides access, over GLINK, to the
119	  USB and battery firmware running on one of the coprocessors in
120	  several modern Qualcomm platforms.
121
122	  Say yes here to support USB-C and battery status on modern Qualcomm
123	  platforms.
124
125config QCOM_QMI_HELPERS
126	tristate
127	depends on NET
128
129config QCOM_RAMP_CTRL
130	tristate "Qualcomm Ramp Controller driver"
131	depends on ARCH_QCOM || COMPILE_TEST
132	help
133	  The Ramp Controller is used to program the sequence ID for pulse
134	  swallowing, enable sequence and link sequence IDs for the CPU
135	  cores on some Qualcomm SoCs.
136	  Say y here to enable support for the ramp controller.
137
138config QCOM_RMTFS_MEM
139	tristate "Qualcomm Remote Filesystem memory driver"
140	depends on ARCH_QCOM
141	select QCOM_SCM
142	help
143	  The Qualcomm remote filesystem memory driver is used for allocating
144	  and exposing regions of shared memory with remote processors for the
145	  purpose of exchanging sector-data between the remote filesystem
146	  service and its clients.
147
148	  Say y here if you intend to boot the modem remoteproc.
149
150config QCOM_RPM_MASTER_STATS
151	tristate "Qualcomm RPM Master stats"
152	depends on ARCH_QCOM || COMPILE_TEST
153	help
154	  The RPM Master sleep stats driver provides detailed per-subsystem
155	  sleep/wake data, read from the RPM message RAM. It can be used to
156	  assess whether all the low-power modes available are entered as
157	  expected or to check which part of the SoC prevents it from sleeping.
158
159	  Say y here if you intend to debug or monitor platform sleep.
160
161config QCOM_RPMH
162	tristate "Qualcomm RPM-Hardened (RPMH) Communication"
163	depends on ARCH_QCOM || COMPILE_TEST
164	depends on (QCOM_COMMAND_DB || !QCOM_COMMAND_DB)
165	help
166	  Support for communication with the hardened-RPM blocks in
167	  Qualcomm Technologies Inc (QTI) SoCs. RPMH communication uses an
168	  internal bus to transmit state requests for shared resources. A set
169	  of hardware components aggregate requests for these resources and
170	  help apply the aggregated state on the resource.
171
172config QCOM_SMEM
173	tristate "Qualcomm Shared Memory Manager (SMEM)"
174	depends on ARCH_QCOM || COMPILE_TEST
175	depends on HWSPINLOCK
176	help
177	  Say y here to enable support for the Qualcomm Shared Memory Manager.
178	  The driver provides an interface to items in a heap shared among all
179	  processors in a Qualcomm platform.
180
181config QCOM_SMD_RPM
182	tristate "Qualcomm Resource Power Manager (RPM) over SMD"
183	depends on ARCH_QCOM || COMPILE_TEST
184	depends on RPMSG
185	depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n
186	help
187	  If you say yes to this option, support will be included for the
188	  Resource Power Manager system found in the Qualcomm 8974 based
189	  devices.
190
191	  This is required to access many regulators, clocks and bus
192	  frequencies controlled by the RPM on these devices.
193
194	  Say M here if you want to include support for the Qualcomm RPM as a
195	  module. This will build a module called "qcom-smd-rpm".
196
197config QCOM_SMEM_STATE
198	bool
199
200config QCOM_SMP2P
201	tristate "Qualcomm Shared Memory Point to Point support"
202	depends on MAILBOX
203	depends on QCOM_SMEM
204	select QCOM_SMEM_STATE
205	select IRQ_DOMAIN
206	help
207	  Say yes here to support the Qualcomm Shared Memory Point to Point
208	  protocol.
209
210config QCOM_SMSM
211	tristate "Qualcomm Shared Memory State Machine"
212	depends on QCOM_SMEM
213	select QCOM_SMEM_STATE
214	select IRQ_DOMAIN
215	help
216	  Say yes here to support the Qualcomm Shared Memory State Machine.
217	  The state machine is represented by bits in shared memory.
218
219config QCOM_SOCINFO
220	tristate "Qualcomm socinfo driver"
221	depends on QCOM_SMEM
222	select SOC_BUS
223	help
224	 Say yes here to support the Qualcomm socinfo driver, providing
225	 information about the SoC to user space.
226
227config QCOM_SPM
228	tristate "Qualcomm Subsystem Power Manager (SPM)"
229	depends on ARCH_QCOM || COMPILE_TEST
230	select QCOM_SCM
231	help
232	  Enable the support for the Qualcomm Subsystem Power Manager, used
233	  to manage cores, L2 low power modes and to configure the internal
234	  Adaptive Voltage Scaler parameters, where supported.
235
236config QCOM_STATS
237	tristate "Qualcomm Technologies, Inc. (QTI) Sleep stats driver"
238	depends on (ARCH_QCOM && DEBUG_FS) || COMPILE_TEST
239	depends on QCOM_SMEM
240	depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n
241	help
242	  Qualcomm Technologies, Inc. (QTI) Sleep stats driver to read
243	  the shared memory exported by the remote processor related to
244	  various SoC level low power modes statistics and export to debugfs
245	  interface.
246
247config QCOM_WCNSS_CTRL
248	tristate "Qualcomm WCNSS control driver"
249	depends on ARCH_QCOM || COMPILE_TEST
250	depends on RPMSG
251	help
252	  Client driver for the WCNSS_CTRL SMD channel, used to download nv
253	  firmware to a newly booted WCNSS chip.
254
255config QCOM_APR
256	tristate "Qualcomm APR/GPR Bus (Asynchronous/Generic Packet Router)"
257	depends on ARCH_QCOM || COMPILE_TEST
258	depends on RPMSG
259	depends on NET
260	select QCOM_PDR_HELPERS
261	help
262	  Enable APR IPC protocol support between
263	  application processor and QDSP6. APR is
264	  used by audio driver to configure QDSP6
265	  ASM, ADM and AFE modules.
266
267config QCOM_ICC_BWMON
268	tristate "QCOM Interconnect Bandwidth Monitor driver"
269	depends on ARCH_QCOM || COMPILE_TEST
270	select PM_OPP
271	select REGMAP_MMIO
272	help
273	  Sets up driver monitoring bandwidth on various interconnects and
274	  based on that voting for interconnect bandwidth, adjusting their
275	  speed to current demand.
276	  Current implementation brings support for BWMON v4, used for example
277	  on SDM845 to measure bandwidth between CPU (gladiator_noc) and Last
278	  Level Cache (memnoc).  Usage of this BWMON allows to remove some of
279	  the fixed bandwidth votes from cpufreq (CPU nodes) thus achieve high
280	  memory throughput even with lower CPU frequencies.
281
282config QCOM_INLINE_CRYPTO_ENGINE
283	tristate
284	select QCOM_SCM
285
286config QCOM_PBS
287	tristate "PBS trigger support for Qualcomm Technologies, Inc. PMICS"
288	depends on SPMI
289	help
290	  This driver supports configuring software programmable boot sequencer (PBS)
291	  trigger event through PBS RAM on Qualcomm Technologies, Inc. PMICs.
292	  This module provides the APIs to the client drivers that wants to send the
293	  PBS trigger event to the PBS RAM.
294
295endmenu
296