blob: 14cd691096f2bd4dcce8f28610ee931ca221effc [file] [log] [blame]
Rishabh Bhatnagar6ff955e2018-05-22 17:57:51 -07001# SPDX-License-Identifier: GPL-2.0
Andy Gross5d144e32014-04-24 11:31:21 -05002#
3# QCOM Soc drivers
4#
Srinivas Kandagatla2a464812017-07-26 17:27:16 +02005menu "Qualcomm SoC drivers"
Mahesh Sivasubramanian312416d2018-04-10 11:57:23 -06006config QCOM_COMMAND_DB
7 bool "Qualcomm Command DB"
Arnd Bergmann0ea3fa12018-05-25 18:08:24 +02008 depends on ARCH_QCOM || COMPILE_TEST
9 depends on OF_RESERVED_MEM
Mahesh Sivasubramanian312416d2018-04-10 11:57:23 -060010 help
11 Command DB queries shared memory by key string for shared system
12 resources. Platform drivers that require to set state of a shared
13 resource on a RPM-hardened platform must use this database to get
14 SoC specific identifier and information for the shared resources.
15
Karthikeyan Ramasubramanianeddac5a2018-03-30 11:08:17 -060016config QCOM_GENI_SE
17 tristate "QCOM GENI Serial Engine Driver"
18 depends on ARCH_QCOM || COMPILE_TEST
19 help
20 This driver is used to manage Generic Interface (GENI) firmware based
21 Qualcomm Technologies, Inc. Universal Peripheral (QUP) Wrapper. This
22 driver is also used to manage the common aspects of multiple Serial
23 Engines present in the QUP.
24
Bjorn Anderssonc4d77d52017-07-24 22:56:44 -070025config QCOM_GLINK_SSR
26 tristate "Qualcomm Glink SSR driver"
27 depends on RPMSG
28 depends on QCOM_RPROC_COMMON
29 help
30 Say y here to enable GLINK SSR support. The GLINK SSR driver
31 implements the SSR protocol for notifying the remote processor about
32 neighboring subsystems going up or down.
33
Rishabh Bhatnagarb7d7d4b2018-06-11 13:11:34 -070034config QCOM_CPUSS_DUMP
35 bool "CPU Subsystem Dumping support"
36 help
37 Add support to dump various hardware entities such as the instruction
38 and data tlb's as well as the unified tlb, which are a part of the
39 cpu subsystem to an allocated buffer. This allows for analysis of the
40 the entities if corruption is suspected.
41 If unsure, say N
42
Andy Gross5d144e32014-04-24 11:31:21 -050043config QCOM_GSBI
44 tristate "QCOM General Serial Bus Interface"
45 depends on ARCH_QCOM
Andy Grosse5fdad62015-02-09 16:01:06 -060046 select MFD_SYSCON
Andy Gross5d144e32014-04-24 11:31:21 -050047 help
48 Say y here to enable GSBI support. The GSBI provides control
49 functions for connecting the underlying serial UART, SPI, and I2C
50 devices to the output pins.
51
Raghavendra Rao Ananta65115212018-08-06 11:49:36 -070052config QCOM_IPCC
53 tristate "Qualcomm Technologies, Inc. IPCC driver"
54 depends on MAILBOX
55 help
56 Qualcomm Technologies, Inc. IPCC driver for MSM devices. The drivers
57 acts as an interrupt controller for the clients interested in
58 talking to the IPCC (inbound-communication). On the other hand, the
59 driver also provides a mailbox channel for outbound-communications.
60 Say Y here to compile the driver as a part of kernel or M to compile
61 as a module.
62
Rishabh Bhatnagarce47efe2018-07-09 11:03:19 -070063config QCOM_LLCC
64 tristate "Qualcomm Technologies, Inc. LLCC driver"
65 depends on ARCH_QCOM
66 help
67 Qualcomm Technologies, Inc. platform specific
68 Last Level Cache Controller(LLCC) driver. This provides interfaces
69 to clients that use the LLCC. Say yes here to enable LLCC slice
70 driver.
71
72config QCOM_KONA_LLCC
73 tristate "Qualcomm Technologies, Inc. KONA LLCC driver"
74 depends on QCOM_LLCC
75 help
76 Say yes here to enable the LLCC driver for KONA. This provides
77 data required to configure LLCC so that clients can start using the
78 LLCC slices.
79
Rishabh Bhatnagara3134fb2018-05-23 17:35:21 -070080config QCOM_SDM845_LLCC
81 tristate "Qualcomm Technologies, Inc. SDM845 LLCC driver"
82 depends on QCOM_LLCC
83 help
84 Say yes here to enable the LLCC driver for SDM845. This provides
85 data required to configure LLCC so that clients can start using the
86 LLCC slices.
87
Bjorn Andersson2aad40d2017-01-27 03:12:57 -080088config QCOM_MDT_LOADER
89 tristate
90 select QCOM_SCM
91
Lina Iyer7ce75bb2015-04-09 13:20:41 -060092config QCOM_PM
93 bool "Qualcomm Power Management"
94 depends on ARCH_QCOM && !ARM64
Arnd Bergmannd9d68882015-11-24 23:13:09 +010095 select ARM_CPU_SUSPEND
Lina Iyer23b38ce2015-07-10 14:18:00 -060096 select QCOM_SCM
Lina Iyer7ce75bb2015-04-09 13:20:41 -060097 help
98 QCOM Platform specific power driver to manage cores and L2 low power
99 modes. It interface with various system drivers to put the cores in
100 low power modes.
Bjorn Andersson4b638df42015-06-26 14:50:10 -0700101
Bjorn Andersson9b8a11e2017-12-05 09:43:06 -0800102config QCOM_QMI_HELPERS
103 tristate
Arnd Bergmanndea4bd12018-02-22 16:57:38 +0100104 depends on ARCH_QCOM && NET
Bjorn Andersson9b8a11e2017-12-05 09:43:06 -0800105 help
106 Helper library for handling QMI encoded messages. QMI encoded
107 messages are used in communication between the majority of QRTR
108 clients and this helpers provide the common functionality needed for
109 doing this from a kernel driver.
110
Bjorn Anderssond1de6d62017-10-16 13:17:08 -0500111config QCOM_RMTFS_MEM
112 tristate "Qualcomm Remote Filesystem memory driver"
113 depends on ARCH_QCOM
Bjorn Anderssonfa65f802018-02-12 17:37:23 -0800114 select QCOM_SCM
Bjorn Anderssond1de6d62017-10-16 13:17:08 -0500115 help
116 The Qualcomm remote filesystem memory driver is used for allocating
117 and exposing regions of shared memory with remote processors for the
118 purpose of exchanging sector-data between the remote filesystem
119 service and its clients.
120
121 Say y here if you intend to boot the modem remoteproc.
122
Lina Iyer658628e2018-06-20 18:56:58 +0530123config QCOM_RPMH
124 bool "Qualcomm RPM-Hardened (RPMH) Communication"
125 depends on ARCH_QCOM && ARM64 && OF || COMPILE_TEST
126 help
127 Support for communication with the hardened-RPM blocks in
128 Qualcomm Technologies Inc (QTI) SoCs. RPMH communication uses an
129 internal bus to transmit state requests for shared resources. A set
130 of hardware components aggregate requests for these resources and
131 help apply the aggregated state on the resource.
132
Stephen Boyd7d0c8be2015-08-28 11:23:33 -0700133config QCOM_SMEM
134 tristate "Qualcomm Shared Memory Manager (SMEM)"
135 depends on ARCH_QCOM
Arnd Bergmann73ebb852015-10-13 17:05:39 +0200136 depends on HWSPINLOCK
Stephen Boyd7d0c8be2015-08-28 11:23:33 -0700137 help
138 Say y here to enable support for the Qualcomm Shared Memory Manager.
139 The driver provides an interface to items in a heap shared among all
140 processors in a Qualcomm platform.
141
Bjorn Andersson936f14c2015-07-27 20:20:32 -0700142config QCOM_SMD_RPM
143 tristate "Qualcomm Resource Power Manager (RPM) over SMD"
Bjorn Andersson5052de82017-03-27 22:26:33 -0700144 depends on ARCH_QCOM
145 depends on RPMSG && OF
Bjorn Andersson936f14c2015-07-27 20:20:32 -0700146 help
147 If you say yes to this option, support will be included for the
148 Resource Power Manager system found in the Qualcomm 8974 based
149 devices.
150
151 This is required to access many regulators, clocks and bus
152 frequencies controlled by the RPM on these devices.
153
154 Say M here if you want to include support for the Qualcomm RPM as a
155 module. This will build a module called "qcom-smd-rpm".
Bjorn Andersson9460ae22015-09-24 18:25:01 -0700156
Rishabh Bhatnagar23ff8d82018-06-08 10:18:25 -0700157config QCOM_SCM
158 bool "Secure Channel Manager (SCM) support"
159 default n
160 help
161 Say y here to enable Secure Channel Mananger(SCM) support for SoC.
162 SCM provides communication channel to communicate with secure
163 world(EL2 and EL3) by using smc call.
164 SCM driver provides the support for atomic scm calls also.
165
Rama Aparna Mallavarapu15b95792017-07-07 16:03:27 -0700166config QCOM_MEMORY_DUMP_V2
167 bool "QCOM Memory Dump V2 Support"
168 help
169 This enables memory dump feature. It allows various client
170 subsystems to register respective dump regions. At the time
171 of deadlocks or cpu hangs these dump regions are captured to
172 give a snapshot of the system at the time of the crash.
173
Bjorn Andersson9460ae22015-09-24 18:25:01 -0700174config QCOM_SMEM_STATE
175 bool
Bjorn Anderssonc97c4092015-09-24 18:25:02 -0700176
Bjorn Andersson50e99642015-09-24 18:25:03 -0700177config QCOM_SMP2P
Arnd Bergmann10475d52015-11-20 11:32:21 +0100178 tristate "Qualcomm Shared Memory Point to Point support"
Bjorn Anderssone7180262017-11-29 16:00:40 -0800179 depends on MAILBOX
Bjorn Andersson50e99642015-09-24 18:25:03 -0700180 depends on QCOM_SMEM
181 select QCOM_SMEM_STATE
182 help
183 Say yes here to support the Qualcomm Shared Memory Point to Point
184 protocol.
185
Bjorn Anderssonc97c4092015-09-24 18:25:02 -0700186config QCOM_SMSM
Arnd Bergmann10475d52015-11-20 11:32:21 +0100187 tristate "Qualcomm Shared Memory State Machine"
Bjorn Anderssonc97c4092015-09-24 18:25:02 -0700188 depends on QCOM_SMEM
189 select QCOM_SMEM_STATE
190 help
191 Say yes here to support the Qualcomm Shared Memory State Machine.
192 The state machine is represented by bits in shared memory.
Bjorn Anderssonea7a1f22015-09-21 10:52:55 -0700193
194config QCOM_WCNSS_CTRL
195 tristate "Qualcomm WCNSS control driver"
Bjorn Andersson5052de82017-03-27 22:26:33 -0700196 depends on ARCH_QCOM
197 depends on RPMSG
Bjorn Anderssonea7a1f22015-09-21 10:52:55 -0700198 help
199 Client driver for the WCNSS_CTRL SMD channel, used to download nv
200 firmware to a newly booted WCNSS chip.
Srinivas Kandagatla2a464812017-07-26 17:27:16 +0200201
Isaac J. Manjarres3a212172018-04-27 17:29:56 -0700202config SETUP_SSR_NOTIF_TIMEOUTS
203 bool "Set timeouts on SSR sysmon notifications and notifier callbacks"
204 help
205 Setup timers prior to initiating communication between
206 subsystems through sysmon, and prior to sending notifications
207 to drivers in the kernel that have registered callbacks with the
208 subsystem notifier framework for a particular subsystem. This
209 is a debugging feature.
210
211config SSR_SYSMON_NOTIF_TIMEOUT
212 depends on SETUP_SSR_NOTIF_TIMEOUTS
213 int "SSR Sysmon notifications timeout in ms"
214 default 10000
215 help
216 The amount of time, in milliseconds, that should elapse between
217 the start and end of sysmon SSR notifications, before a warning
218 is emitted.
219
220config SSR_SUBSYS_NOTIF_TIMEOUT
221 depends on SETUP_SSR_NOTIF_TIMEOUTS
222 int "SSR Subsystem notifier timeout in ms"
223 default 10000
224 help
225 The amount of time, in milliseconds, that should elapse between
226 the start and end of SSR notifications through the subsystem
227 notifier, before a warning is emitted.
228
229config PANIC_ON_SSR_NOTIF_TIMEOUT
230 bool "Trigger kernel panic when notification timeout expires"
231 depends on SETUP_SSR_NOTIF_TIMEOUTS
232 help
233 Trigger a kernel panic when communication between subsystems
234 through sysmon is taking too long. Also trigger a kernel panic
235 if invoking the callbacks registered with a particular subsystem's
236 notifications by the subsystem notifier framework is taking too long.
237 This is a debugging feature.
238
Swathi Sridhar4008eb42018-07-17 15:34:46 -0700239config QCOM_SECURE_BUFFER
240 bool "Helper functions for securing buffers through TZ"
241 help
242 Say 'Y' here for targets that need to call into TZ to secure
243 memory buffers. This ensures that only the correct clients can
244 use this memory and no unauthorized access is made to the
245 buffer
246
247config MSM_TZ_SMMU
248 depends on ARCH_MSM8953 || ARCH_QCS405
249 bool "Helper functions for SMMU configuration through TZ"
250 help
251 Say 'Y' here for targets that need to call into TZ to configure
252 SMMUs for any reason (for example, for errata workarounds or
253 configuration of SMMU virtualization).
254
255 If unsure, say N.
256
Rishabh Bhatnagar6ff955e2018-05-22 17:57:51 -0700257config MSM_SERVICE_LOCATOR
258 bool "Service Locator"
Runmin Wangf05bd3e2017-08-14 16:44:47 -0700259 depends on QCOM_QMI_HELPERS
Rishabh Bhatnagar6ff955e2018-05-22 17:57:51 -0700260 help
261 The Service Locator provides a library to retrieve location
262 information given a service identifier. Location here translates
263 to what process domain exports the service, and which subsystem
264 that process domain will execute in.
265
266config MSM_SERVICE_NOTIFIER
267 bool "Service Notifier"
268 depends on MSM_SERVICE_LOCATOR && MSM_SUBSYSTEM_RESTART
269 help
270 The Service Notifier provides a library for a kernel client to
271 register for state change notifications regarding a remote service.
272 A remote service here refers to a process providing certain services
273 like audio, the identifier for which is provided by the service
274 locator.
275
276config MSM_SUBSYSTEM_RESTART
277 bool "MSM Subsystem Restart"
278 help
279 This option enables the MSM subsystem restart framework.
280
281 The MSM subsystem restart framework provides support to boot,
282 shutdown, and restart subsystems with a reference counted API.
283 It also notifies userspace of transitions between these states via
284 sysfs.
285
286config MSM_PIL
287 bool "Peripheral image loading"
288 select FW_LOADER
289 default n
290 help
291 Some peripherals need to be loaded into memory before they can be
292 brought out of reset.
293
294 Say yes to support these devices.
295
296config MSM_SYSMON_GLINK_COMM
297 bool "MSM System Monitor communication support using GLINK transport"
298 depends on MSM_GLINK && MSM_SUBSYSTEM_RESTART
299 help
300 This option adds support for MSM System Monitor APIs using the GLINK
301 transport layer. The APIs provided may be used for notifying
302 subsystems within the SoC about other subsystems' power-up/down
303 state-changes.
304
305config MSM_PIL_SSR_GENERIC
306 tristate "MSM Subsystem Boot Support"
307 depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
308 help
309 Support for booting and shutting down MSM Subsystem processors.
310 This driver also monitors the SMSM status bits and the watchdog
311 interrupt for the subsystem and restarts it on a watchdog bite
312 or a fatal error. Subsystems include LPASS, Venus, VPU, WCNSS and
313 BCSS.
Rishabh Bhatnagar9b1ff4b2018-06-26 10:57:52 -0700314config MSM_BOOT_STATS
315 bool "Use MSM boot stats reporting"
316 help
317 Use this to report msm boot stats such as bootloader throughput,
318 display init, total boot time.
319 This figures are reported in mpm sleep clock cycles and have a
320 resolution of 31 bits as 1 bit is used as an overflow check.
Rishabh Bhatnagar6ff955e2018-05-22 17:57:51 -0700321
Rishabh Bhatnagar29d615e2018-07-01 16:50:06 -0700322config QCOM_EUD
323 tristate "QTI Embedded USB Debugger (EUD)"
324 depends on ARCH_QCOM
325 select SERIAL_CORE
326 help
327 The EUD (Embedded USB Debugger) is a mini-USB hub implemented
328 on chip to support the USB-based debug and trace capabilities.
329 This module enables support for Qualcomm Technologies, Inc.
330 Embedded USB Debugger (EUD).
331 If unsure, say N.
332
Rishabh Bhatnagar2f9a3282018-09-07 12:06:12 -0700333config QCOM_MINIDUMP
334 bool "QCOM Minidump Support"
335 depends on QCOM_SMEM && QCOM_DLOAD_MODE
336 help
337 This enables minidump feature. It allows various clients to
338 register to dump their state at system bad state (panic/WDT,etc.,).
339 Minidump would dump all registered entries, only when DLOAD mode
340 is enabled.
341
342config MINIDUMP_MAX_ENTRIES
343 int "Minidump Maximum num of entries"
344 default 200
345 depends on QCOM_MINIDUMP
346 help
347 This defines maximum number of entries to be allocated for application
348 subsytem in Minidump table.
349
Srinivas Kandagatla6adba212018-05-09 13:56:13 +0100350config QCOM_APR
351 tristate "Qualcomm APR Bus (Asynchronous Packet Router)"
352 depends on ARCH_QCOM
353 depends on RPMSG
354 help
355 Enable APR IPC protocol support between
356 application processor and QDSP6. APR is
357 used by audio driver to configure QDSP6
358 ASM, ADM and AFE modules.
Rishabh Bhatnagara5257422018-07-01 16:21:16 -0700359
360config MSM_CORE_HANG_DETECT
361 tristate "MSM Core Hang Detection Support"
362 help
363 This enables the core hang detection module. It causes SoC
364 reset on core hang detection and collects the core context
365 for hang. By using sysfs entries core hang detection can be
366 enabled or disabled dynamically.
367
Phani Kumar Uppalapati6037f6c2018-01-17 11:14:16 -0800368config QCOM_FSA4480_I2C
369 bool "Fairchild FSA4480 chip with I2C"
370 select REGMAP_I2C
371 depends on I2C
372 help
373 Support for the Fairchild FSA4480 IC switch chip controlled
374 using I2C. This driver provides common support
375 for accessing the device, switching between USB and Audio
376 modes, changing orientation.
377
Rishabh Bhatnagar04d305d2018-07-05 21:59:09 -0700378config QCOM_WATCHDOG_V2
Rishabh Bhatnagarc7990c02018-08-01 13:22:34 -0700379 bool "QTI Watchdog Support"
Rishabh Bhatnagar04d305d2018-07-05 21:59:09 -0700380 depends on ARCH_QCOM
381 help
382 This enables the watchdog module. It causes kernel panic if the
383 watchdog times out. It allows for detection of cpu hangs and
384 deadlocks. It does not run during the bootup process, so it will
385 not catch any early lockups.
David Daia26573f2018-07-27 14:20:24 -0700386
387config QCOM_RPMH
388 bool "Qualcomm Technologies, Inc. RPM-Hardened (RPMH) Communication"
389 depends on ARCH_QCOM && ARM64 && OF || COMPILE_TEST
390 help
391 Support for communication with the hardened-RPM blocks in
392 Qualcomm Technologies Inc (QTI) SoCs. RPMH communication uses an
393 internal bus to transmit state requests for shared resources. A set
394 of hardware components aggregate requests for these resources and
395 help apply the aggregated state on the resource.
396
397config QCOM_BUS_SCALING
398 bool "Bus scaling driver"
399 help
400 This option enables bus scaling on MSM devices. Bus scaling
401 allows devices to request the clocks be set to rates sufficient
402 for the active devices needs without keeping the clocks at max
403 frequency when a slower speed is sufficient.
404
405config QCOM_BUS_CONFIG_RPMH
406 bool "RPMH Bus scaling driver"
407 depends on QCOM_BUS_SCALING
408 help
409 This option enables bus scaling using QCOM specific hardware
410 accelerators. It enables the translation of bandwidth requests
411 from logical nodes to hardware nodes controlled by the BCM (Bus
412 Clock Manager)
413
Chris Lew513f49b2017-08-25 14:45:44 -0700414config QCOM_GLINK
415 tristate "GLINK Probe Helper"
416 depends on RPMSG_QCOM_GLINK_SMEM
417 help
418 This enables the GLINK Probe module. The GLINK RPMSG Plugin is
419 currently designed to plugin with the remote proc framework as a
420 subdev. This module is responsible for creating the glink transports
421 when remote proc is disabled.
Chris Lew86510902017-12-17 17:05:54 -0800422
423config QCOM_GLINK_PKT
424 tristate "Enable device interface for GLINK packet channels"
425 depends on QCOM_GLINK
426 help
427 G-link packet driver provides the interface for the userspace
428 clients to communicate over G-Link via device nodes.
429 This enable the userspace clients to read and write to
430 some glink packets channel.
Srinivas Kandagatla2a464812017-07-26 17:27:16 +0200431endmenu