blob: 6a6fc8c0c67f6c44f6c8bb419280815310f03f73 [file] [log] [blame]
Andy Gross5d144e32014-04-24 11:31:21 -05001#
2# QCOM Soc drivers
3#
Channagoud Kadabi7e8d55a2016-08-23 14:04:44 -07004config QCOM_CPUSS_DUMP
5 bool "CPU Subsystem Dumping support"
6 help
7 Add support to dump various hardware entities such as the instruction
8 and data tlb's as well as the unified tlb, which are a part of the
9 cpu subsystem to an allocated buffer. This allows for analysis of the
10 the entities if corruption is suspected.
11 If unsure, say N
12
Kyle Yan36d78702016-08-23 16:07:11 -070013config QCOM_RUN_QUEUE_STATS
14 bool "Enable collection and exporting of QTI Run Queue stats to userspace"
15 help
16 This option enables the driver to periodically collecting the statistics
17 of kernel run queue information and calculate the load of the system.
18 This information is exported to usespace via sysfs entries and userspace
19 algorithms uses info and decide when to turn on/off the cpu cores.
20
Andy Gross5d144e32014-04-24 11:31:21 -050021config QCOM_GSBI
22 tristate "QCOM General Serial Bus Interface"
23 depends on ARCH_QCOM
Andy Grosse5fdad62015-02-09 16:01:06 -060024 select MFD_SYSCON
Andy Gross5d144e32014-04-24 11:31:21 -050025 help
26 Say y here to enable GSBI support. The GSBI provides control
27 functions for connecting the underlying serial UART, SPI, and I2C
28 devices to the output pins.
29
Channagoud Kadabi97335b22016-08-17 13:40:46 -070030config QCOM_LLCC
31 tristate "Qualcomm Technologies, Inc. LLCC driver"
32 depends on ARCH_QCOM
33 help
34 Qualcomm Technologies, Inc. platform specific LLCC driver for Last
35 Level Cache. This provides interfaces to client's that use the LLCC.
36 Say yes here to enable LLCC slice driver.
37
Kyle Yan6a20fae2017-02-14 13:34:41 -080038config QCOM_SDM845_LLCC
39 tristate "Qualcomm Technologies, Inc. SDM845 LLCC driver"
Channagoud Kadabib1fec942016-08-17 17:00:26 -070040 depends on QCOM_LLCC
41 help
Kyle Yan6a20fae2017-02-14 13:34:41 -080042 Say yes here to enable the LLCC driver for SDM845. This is provides
Channagoud Kadabib1fec942016-08-17 17:00:26 -070043 data required to configure LLCC so that clients can start using the
44 LLCC slices.
45
Lingutla Chandrasekhar9cecdb22017-05-30 10:36:38 +053046config QCOM_SDM670_LLCC
47 tristate "Qualcomm Technologies, Inc. SDM670 LLCC driver"
48 depends on QCOM_LLCC
49 help
50 This provides Last level cache controller driver for SDM670.
51 This driver provides data required to configure LLCC, so that clients
52 can start using the LLCC slices.
53 Say yes here to enable llcc driver for SDM670.
54
Chintan Pandyab3a1b642018-04-20 18:57:32 +053055config QCOM_QCS605_LLCC
56 tristate "Qualcomm Technologies, Inc. QCS605 LLCC driver"
57 depends on QCOM_LLCC
58 help
59 This provides Last level cache controller driver for QCS605.
60 This driver provides data required to configure LLCC, so that clients
61 can start using the LLCC slices.
62 Say yes here to enable llcc driver for QCS605.
Lingutla Chandrasekhar9cecdb22017-05-30 10:36:38 +053063
Imran Khan1b223902016-09-21 17:11:58 +053064config QCOM_LLCC_AMON
65 tristate "Qualcomm Technologies, Inc. LLCC Activity Monitor(AMON) driver"
66 depends on QCOM_LLCC
67 help
68 This option enables a activity monitor driver for last level cache
69 controller. This driver configures the activity monitor as
70 deadlock detector and dumps the AMON registers upon detection of
71 deadlock.
72
73config QCOM_LLCC_AMON_PANIC
74 tristate "Panic on detecting LLCC Activity Monitor(AMON) error"
75 depends on QCOM_LLCC_AMON
76 help
77 This option enables panic upon detection of LLCC Activity Monitor(AMON)
78 errors. Say yes here to enable deadlock detection mode of AMON. In
79 deadlock detection mode AMON will trigger an interrupt if some LLCC request
80 ages out.
81
Sankaran Nampoothiri666cfeb2017-06-27 17:41:29 +053082config QCOM_LLCC_PERFMON
83 tristate "Qualcomm Technologies, Inc. LLCC Perfmon driver"
84 depends on QCOM_LLCC
85 help
86 This option enables driver for LLCC Performance monitor block. Using
87 this various events in different LLCC sub block ports can be monitored.
88 This is used for performance and debug activity and exports SYSFS
89 interface. SYSFS interface used for configure and dump the LLCC
90 performance events.
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
Stephen Boyd7d0c8be2015-08-28 11:23:33 -0700102config QCOM_SMEM
103 tristate "Qualcomm Shared Memory Manager (SMEM)"
104 depends on ARCH_QCOM
Arnd Bergmann73ebb852015-10-13 17:05:39 +0200105 depends on HWSPINLOCK
Stephen Boyd7d0c8be2015-08-28 11:23:33 -0700106 help
107 Say y here to enable support for the Qualcomm Shared Memory Manager.
108 The driver provides an interface to items in a heap shared among all
109 processors in a Qualcomm platform.
110
Channagoud Kadabi4d480b02016-12-20 11:57:51 -0800111config MSM_SERVICE_LOCATOR
112 bool "Service Locator"
113 depends on MSM_QMI_INTERFACE
114 help
115 The Service Locator provides a library to retrieve location
116 information given a service identifier. Location here translates
117 to what process domain exports the service, and which subsystem
118 that process domain will execute in.
119
120config MSM_SERVICE_NOTIFIER
121 bool "Service Notifier"
122 depends on MSM_SERVICE_LOCATOR && MSM_SUBSYSTEM_RESTART
123 help
124 The Service Notifier provides a library for a kernel client to
125 register for state change notifications regarding a remote service.
126 A remote service here refers to a process providing certain services
127 like audio, the identifier for which is provided by the service
128 locator.
129
Bjorn Anderssonf2ab3292015-07-27 20:20:30 -0700130config QCOM_SMD
131 tristate "Qualcomm Shared Memory Driver (SMD)"
132 depends on QCOM_SMEM
133 help
134 Say y here to enable support for the Qualcomm Shared Memory Driver
135 providing communication channels to remote processors in Qualcomm
136 platforms.
137
Bjorn Andersson936f14c2015-07-27 20:20:32 -0700138config QCOM_SMD_RPM
139 tristate "Qualcomm Resource Power Manager (RPM) over SMD"
140 depends on QCOM_SMD && OF
141 help
142 If you say yes to this option, support will be included for the
143 Resource Power Manager system found in the Qualcomm 8974 based
144 devices.
145
146 This is required to access many regulators, clocks and bus
147 frequencies controlled by the RPM on these devices.
148
149 Say M here if you want to include support for the Qualcomm RPM as a
150 module. This will build a module called "qcom-smd-rpm".
Bjorn Andersson9460ae22015-09-24 18:25:01 -0700151
Raghavendra Kakarlaac093d92017-11-16 12:28:54 +0530152config MSM_SPM
153 bool "Driver support for SPM and AVS wrapper hardware"
154 help
155 Enables the support for SPM and AVS wrapper hardware on MSMs. SPM
156 hardware is used to manage the processor power during sleep. The
157 driver allows configuring SPM to allow different low power modes for
158 both core and L2.
159
160config MSM_L2_SPM
161 bool "SPM support for L2 cache"
162 help
163 Enable SPM driver support for L2 cache. Some MSM chipsets allow
164 control of L2 cache low power mode with a Subsystem Power manager.
165 Enabling this driver allows configuring L2 SPM for low power modes
166 on supported chipsets.
167
Channagoud Kadabieee0ffd2016-08-11 14:18:17 -0700168config QCOM_SCM
169 bool "Secure Channel Manager (SCM) support"
170 default n
171
Bjorn Andersson9460ae22015-09-24 18:25:01 -0700172config QCOM_SMEM_STATE
173 bool
Bjorn Anderssonc97c4092015-09-24 18:25:02 -0700174
Bjorn Andersson50e99642015-09-24 18:25:03 -0700175config QCOM_SMP2P
Arnd Bergmann10475d52015-11-20 11:32:21 +0100176 tristate "Qualcomm Shared Memory Point to Point support"
Bjorn Andersson50e99642015-09-24 18:25:03 -0700177 depends on QCOM_SMEM
178 select QCOM_SMEM_STATE
179 help
180 Say yes here to support the Qualcomm Shared Memory Point to Point
181 protocol.
182
Bjorn Anderssonc97c4092015-09-24 18:25:02 -0700183config QCOM_SMSM
Arnd Bergmann10475d52015-11-20 11:32:21 +0100184 tristate "Qualcomm Shared Memory State Machine"
Bjorn Anderssonc97c4092015-09-24 18:25:02 -0700185 depends on QCOM_SMEM
186 select QCOM_SMEM_STATE
187 help
188 Say yes here to support the Qualcomm Shared Memory State Machine.
189 The state machine is represented by bits in shared memory.
Bjorn Anderssonea7a1f22015-09-21 10:52:55 -0700190
191config QCOM_WCNSS_CTRL
192 tristate "Qualcomm WCNSS control driver"
193 depends on QCOM_SMD
194 help
195 Client driver for the WCNSS_CTRL SMD channel, used to download nv
196 firmware to a newly booted WCNSS chip.
Kyle Yanbf6dedf2016-08-19 16:47:30 -0700197
Isaac J. Manjarresbfe53e52018-04-27 17:29:56 -0700198config SETUP_SSR_NOTIF_TIMEOUTS
199 bool "Set timeouts on SSR sysmon notifications and notifier callbacks"
200 help
201 Setup timers prior to initiating communication between
202 subsystems through sysmon, and prior to sending notifications
203 to drivers in the kernel that have registered callbacks with the
204 subsystem notifier framework for a particular subsystem. This
205 is a debugging feature.
206
207config SSR_SYSMON_NOTIF_TIMEOUT
208 depends on SETUP_SSR_NOTIF_TIMEOUTS
209 int "SSR Sysmon notifications timeout in ms"
210 default 10000
211 help
212 The amount of time, in milliseconds, that should elapse between
213 the start and end of sysmon SSR notifications, before a warning
214 is emitted.
215
216config SSR_SUBSYS_NOTIF_TIMEOUT
217 depends on SETUP_SSR_NOTIF_TIMEOUTS
218 int "SSR Subsystem notifier timeout in ms"
219 default 10000
220 help
221 The amount of time, in milliseconds, that should elapse between
222 the start and end of SSR notifications through the subsystem
223 notifier, before a warning is emitted.
224
225config PANIC_ON_SSR_NOTIF_TIMEOUT
226 bool "Trigger kernel panic when notification timeout expires"
227 depends on SETUP_SSR_NOTIF_TIMEOUTS
228 help
229 Trigger a kernel panic when communication between subsystems
230 through sysmon is taking too long. Also trigger a kernel panic
231 if invoking the callbacks registered with a particular subsystem's
232 notifications by the subsystem notifier framework is taking too long.
233 This is a debugging feature.
234
Channagoud Kadabi0fb6cf62016-08-23 15:12:52 -0700235config MSM_BOOT_STATS
236 bool "Use MSM boot stats reporting"
237 help
238 Use this to report msm boot stats such as bootloader throughput,
239 display init, total boot time.
240 This figures are reported in mpm sleep clock cycles and have a
241 resolution of 31 bits as 1 bit is used as an overflow check.
242
Venkata Rao Kakani6e0b10d2019-01-10 11:46:21 +0530243config MSM_BOOT_TIME_MARKER
244 bool "Use MSM boot time marker reporting"
245 depends on MSM_BOOT_STATS
246 help
247 Use this to mark msm boot kpi for measurement.
248 An instrumentation for boot time measurement.
249 To create an entry, call "place_marker" function.
250 At userspace, write marker name to "/sys/kernel/debug/bootkpi/kpi_values"
251 If unsure, say N
252
Kyle Yana6029442016-08-19 17:07:58 -0700253config MSM_CORE_HANG_DETECT
254 tristate "MSM Core Hang Detection Support"
255 help
256 This enables the core hang detection module. It causes SoC
257 reset on core hang detection and collects the core context
258 for hang.
259
Kyle Yanbf6dedf2016-08-19 16:47:30 -0700260config MSM_GLADIATOR_HANG_DETECT
261 tristate "MSM Gladiator Hang Detection Support"
262 help
263 This enables the gladiator hang detection module.
264 If the configured threshold is reached, it causes SoC reset on
265 gladiator hang detection and collects the context for the
266 gladiator hang.
Kyle Yancc90ead2016-08-19 16:53:28 -0700267
Kyle Yan3a641f42016-11-21 14:00:04 -0800268config MSM_GLADIATOR_ERP
269 tristate "GLADIATOR coherency interconnect error reporting driver"
Kyle Yancc90ead2016-08-19 16:53:28 -0700270 help
271 Support dumping debug information for the GLADIATOR
272 cache interconnect in the error interrupt handler.
273 Meant to be used for debug scenarios only.
274
275 If unsure, say N.
276
Rishabh Bhatnagar37c69862019-08-30 16:59:51 -0700277config SDX_EXT_IPC
278 tristate "QCOM external ipc driver"
279 help
280 This enables the module to help modem communicate with external
281 Application processor connected to Qualcomm Technologies, Inc
282 modem chipset. The modem and APQ can understand each other's
283 state by reading ipc gpios.
284
285 If unsure, say N.
286
Kyle Yan3a641f42016-11-21 14:00:04 -0800287config PANIC_ON_GLADIATOR_ERROR
288 depends on MSM_GLADIATOR_ERP
289 bool "Panic on GLADIATOR error report"
Kyle Yancc90ead2016-08-19 16:53:28 -0700290 help
291 Panic upon detection of an Gladiator coherency interconnect error
292 in order to support dumping debug information.
293 Meant to be used for debug scenarios only.
294
295 If unsure, say N.
Satyajit Desai5255cea2016-08-04 16:02:50 -0700296
Satya Durga Srinivasu Prabhala60909002016-09-12 11:36:09 -0700297config QCOM_EUD
298 tristate "QTI Embedded USB Debugger (EUD)"
299 depends on ARCH_QCOM
300 select SERIAL_CORE
301 help
302 The EUD (Embedded USB Debugger) is a mini-USB hub implemented
303 on chip to support the USB-based debug and trace capabilities.
304 This module enables support for Qualcomm Technologies, Inc.
305 Embedded USB Debugger (EUD).
306
307 If unsure, say N.
308
Satyajit Desai5255cea2016-08-04 16:02:50 -0700309config QCOM_WATCHDOG_V2
310 bool "Qualcomm Watchdog Support"
311 depends on ARCH_QCOM
312 help
313 This enables the watchdog module. It causes kernel panic if the
314 watchdog times out. It allows for detection of cpu hangs and
315 deadlocks. It does not run during the bootup process, so it will
316 not catch any early lockups.
Satyajit Desai11e470c2016-08-10 15:36:45 -0700317
Lingutla Chandrasekhar8325dec2018-02-03 16:00:33 +0530318config QCOM_WDOG_IPI_ENABLE
319 bool "Qcom WDT pet optimization"
320 depends on QCOM_WATCHDOG_V2
321 default n
322 help
323 When this option is enabled, watchdog sends IPI to cores in low power
324 mode also. For power optimizations, by default watchdog don't ping
325 cores in low power mode at pettime.
326
327 To track CPUs health on LPM, or on debug builds enable it.
328
Kiran Gunda04967c82017-02-14 14:22:18 +0530329config QPNP_PBS
330 tristate "PBS trigger support for QPNP PMIC"
331 depends on SPMI
332 help
333 This driver supports configuring software PBS trigger event through PBS
334 RAM on Qualcomm Technologies, Inc. QPNP PMICs. This module provides
335 the APIs to the client drivers that wants to send the PBS trigger
336 event to the PBS RAM.
337
Satyajit Desai11e470c2016-08-10 15:36:45 -0700338config QCOM_MEMORY_DUMP_V2
339 bool "QCOM Memory Dump V2 Support"
340 help
341 This enables memory dump feature. It allows various client
342 subsystems to register respective dump regions. At the time
343 of deadlocks or cpu hangs these dump regions are captured to
344 give a snapshot of the system at the time of the crash.
David Dai87584a42016-09-01 17:13:35 -0700345
Jinlong Mao4e85f112018-03-21 17:51:37 +0530346config MSM_DEBUG_LAR_UNLOCK
347 bool "MSM Debug LAR Unlock Support"
348 depends on QCOM_MEMORY_DUMP_V2
349 help
350 This allows unlocking Core Debug lock to allow capture
351 of upper 32 bits of program counter at the time of
352 system crash. This is useful in getting correct crash
353 location.
354
Lingutla Chandrasekhar8bbf9a72017-09-25 15:56:24 +0530355config QCOM_MINIDUMP
356 bool "QCOM Minidump Support"
357 depends on MSM_SMEM && QCOM_DLOAD_MODE
358 help
359 This enables minidump feature. It allows various clients to
360 register to dump their state at system bad state (panic/WDT,etc.,).
361 Minidump would dump all registered entries, only when DLOAD mode
362 is enabled.
363
Lingutla Chandrasekhar5d4442b2017-10-03 15:21:30 +0530364config MINIDUMP_MAX_ENTRIES
365 int "Minidump Maximum num of entries"
366 default 200
367 depends on QCOM_MINIDUMP
368 help
369 This defines maximum number of entries to be allocated for application
370 subsytem in Minidump table.
371
Raju P.L.S.S.S.N43c1be72017-10-31 16:50:30 +0530372config MSM_RPM_SMD
373 bool "RPM driver using SMD protocol"
374 help
375 RPM is the dedicated hardware engine for managing shared SoC
376 resources. This config adds driver support for using SMD as a
377 transport layer communication with RPM hardware. It also selects
378 the MSM_MPM config that programs the MPM module to monitor interrupts
379 during sleep modes.
380
David Dai87584a42016-09-01 17:13:35 -0700381config QCOM_BUS_SCALING
382 bool "Bus scaling driver"
383 help
384 This option enables bus scaling on MSM devices. Bus scaling
385 allows devices to request the clocks be set to rates sufficient
386 for the active devices needs without keeping the clocks at max
387 frequency when a slower speed is sufficient.
Chris Lewb4791c32016-08-01 11:58:55 -0700388
David Dai04ce4202016-09-26 16:24:13 -0700389config QCOM_BUS_CONFIG_RPMH
390 bool "RPMH Bus scaling driver"
391 depends on QCOM_BUS_SCALING
392 help
393 This option enables bus scaling using QCOM specific hardware
394 accelerators. It enables the translation of bandwidth requests
395 from logical nodes to hardware nodes controlled by the BCM (Bus
396 Clock Manager)
397
Patrick Dalya125d5d2016-09-30 16:16:10 -0700398config QCOM_SECURE_BUFFER
399 bool "Helper functions for securing buffers through TZ"
400 help
401 Say 'Y' here for targets that need to call into TZ to secure
402 memory buffers. This ensures that only the correct clients can
403 use this memory and no unauthorized access is made to the
404 buffer
405
Laura Abbott130e1d02013-08-09 18:17:06 -0700406config QCOM_EARLY_RANDOM
407 bool "Initialize random pool very early"
408 help
409 The standard random pool may not initialize until late in the boot
410 process which means that any calls to get random numbers before then
411 may not be truly random. Select this option to make an early call
412 to get some random data to put in the pool. If unsure, say N.
413
Chris Lewb4791c32016-08-01 11:58:55 -0700414config MSM_SMEM
415 depends on ARCH_QCOM
416 depends on REMOTE_SPINLOCK_MSM
417 bool "MSM Shared Memory (SMEM)"
418 help
419 Support for the shared memory interface between the various
420 processors in the System on a Chip (SoC) which allows basic
421 inter-processor communication.
Chris Lewfa6135e2016-08-01 13:29:46 -0700422
Arun Kumar Neelakantamd680a242017-11-02 21:14:53 +0530423config MSM_SMD
424 depends on MSM_SMEM
425 bool "MSM Shared Memory Driver (SMD)"
426 help
427 Support for the shared memory interprocessor communication protocol
428 which provides virual point to point serial channels between processes
429 on the apps processor and processes on other processors in the SoC.
430 Also includes support for the Shared Memory State Machine (SMSM)
431 protocol which provides a mechanism to publish single bit state
432 information to one or more processors in the SoC.
433
434config MSM_SMD_DEBUG
435 depends on MSM_SMD
436 bool "MSM SMD debug support"
437 help
438 Support for debugging SMD and SMSM communication between apps and
439 other processors in the SoC. Debug support primarily consists of
440 logs consisting of information such as what interrupts were processed,
441 what channels caused interrupt activity, and when internal state
442 change events occur.
443
Chris Lewfa6135e2016-08-01 13:29:46 -0700444config MSM_GLINK
445 bool "Generic Link (G-Link)"
446 help
447 G-Link is a generic link transport that replaces SMD. It is used
448 within a System-on-Chip (SoC) for communication between both internal
449 processors and external peripherals. The actual physical transport
450 is handled by transport plug-ins that can be individually enabled and
451 configured separately.
452
Charan Teja Reddy35144b02017-09-05 16:20:46 +0530453config MSM_TZ_SMMU
Charan Teja Reddy35144b02017-09-05 16:20:46 +0530454 bool "Helper functions for SMMU configuration through TZ"
Maria Yuf9d56732018-04-16 16:15:46 +0800455 default n
Charan Teja Reddy35144b02017-09-05 16:20:46 +0530456 help
457 Say 'Y' here for targets that need to call into TZ to configure
458 SMMUs for any reason (for example, for errata workarounds or
459 configuration of SMMU virtualization).
460
461 If unsure, say N.
462
Chris Lewfa6135e2016-08-01 13:29:46 -0700463config MSM_GLINK_LOOPBACK_SERVER
464 bool "Generic Link (G-Link) Loopback Server"
465 help
466 G-Link Loopback Server that enable loopback test framework to test
467 and validate the G-Link protocol stack. It support both local and
468 remote clients to configure the loopback server and echo back the
469 data received from the clients.
470
471config MSM_GLINK_SMEM_NATIVE_XPRT
472 depends on MSM_SMEM
473 depends on MSM_GLINK
474 bool "Generic Link (G-Link) SMEM Native Transport"
475 help
476 G-Link SMEM Native Transport is a G-Link Transport plug-in. It allows
477 G-Link communication to remote entities through a shared memory
478 physical transport. The nature of shared memory limits this G-Link
479 transport to only connecting with entities internal to the
480 System-on-Chip.
481
482config MSM_GLINK_SPI_XPRT
483 depends on MSM_GLINK
484 tristate "Generic Link (G-Link) SPI Transport"
485 help
486 G-Link SPI Transport is a Transport plug-in developed over SPI
487 bus. This transport plug-in performs marshaling of G-Link
488 commands & data to the appropriate SPI bus wire format and
489 allows for G-Link communication with remote subsystems that are
490 external to the System-on-Chip.
491
Kineret Berger5bb47422017-02-09 11:51:32 +0200492config MSM_SPCOM
493 depends on MSM_GLINK
494 bool "Secure Processor Communication over GLINK"
495 help
496 spcom driver allows loading Secure Processor Applications and
497 sending messages to Secure Processor Applications.
498 spcom provides interface to both user space app and kernel driver.
499 It is using glink as the transport layer, which provides multiple
500 logical channels over single physical channel.
501 The physical layer is based on shared memory and interrupts.
502 spcom provides clients/server API, although currently only one client
503 or server is allowed per logical channel.
504
Reut Zysman92bfac82017-04-05 18:18:50 +0300505config MSM_SPSS_UTILS
506 depends on MSM_PIL
507 bool "Secure Processor Utilities"
508 help
509 spss-utils driver selects Secure Processor firmware file name.
510 The firmware file name for dev, test or production is selected
511 based on two fuses.
512 Different file name is used for differnt SPSS HW versions,
513 because the SPSS firmware size is too small to support multiple
514 HW versions.
515
Chris Lewfa6135e2016-08-01 13:29:46 -0700516config TRACER_PKT
517 bool "Tracer Packet"
518 help
519 Tracer Packet helps in profiling the performance of inter-
520 processor communication protocols. The profiling information
521 can be logged into the tracer packet itself.
Lina Iyerd7194ff2016-04-20 17:13:34 -0600522
523config QTI_RPMH_API
524 bool "QTI RPMH (h/w accelerators) Communication API"
525 select MAILBOX
526 select QTI_RPMH_MBOX
Lina Iyer15d6df32016-08-18 12:10:27 -0600527 select QTI_SYSTEM_PM
Lina Iyerd7194ff2016-04-20 17:13:34 -0600528 help
529 This option enables RPMH hardware communication for making shared
530 resource requests on Qualcomm Technologies Inc SoCs.
Lina Iyer15d6df32016-08-18 12:10:27 -0600531
532config QTI_SYSTEM_PM
533 bool
Karthikeyan Ramasubramanian97a10282016-09-16 12:01:18 -0600534
535config MSM_SMP2P
536 bool "SMSM Point-to-Point (SMP2P)"
537 depends on MSM_SMEM
538 help
539 Provide point-to-point remote signaling support.
540 SMP2P enables transferring 32-bit values between
541 the local and a remote system using shared
542 memory and interrupts. A client can open multiple
543 32-bit values by specifying a unique string and
544 remote processor ID.
545
Karthikeyan Ramasubramanian9f9c4a72016-10-18 14:06:18 -0600546config MSM_IPC_ROUTER_SMD_XPRT
547 depends on MSM_SMD
548 depends on IPC_ROUTER
549 bool "MSM SMD XPRT Layer"
550 help
551 SMD Transport Layer that enables IPC Router communication within
552 a System-on-Chip(SoC). When the SMD channels become available,
553 this layer registers a transport with IPC Router and enable
554 message exchange.
Karthikeyan Ramasubramanianf0d46a82016-09-16 16:43:51 -0600555
Ajay Agarwalfac22962018-10-22 18:37:17 +0530556config MSM_IPC_ROUTER_USB_XPRT
557 depends on USB_QCOM_IPC_BRIDGE || USB_F_IPC
Karthikeyan Ramasubramanianf0d46a82016-09-16 16:43:51 -0600558 depends on IPC_ROUTER
Ajay Agarwalfac22962018-10-22 18:37:17 +0530559 bool "MSM USB XPRT Layer"
Karthikeyan Ramasubramanianf0d46a82016-09-16 16:43:51 -0600560 help
Ajay Agarwalfac22962018-10-22 18:37:17 +0530561 USB Transport Layer that enables off-chip communication of IPC Router.
562 When the USB endpoint becomes available, this layer registers the
563 transport with IPC Router and enable message exchange. This layer is
564 independent of USB host or device mode IPC bridge and can interface
565 with only one of them on a given platform.
Karthikeyan Ramasubramanianbf94cab2016-09-16 16:50:04 -0600566
567config MSM_IPC_ROUTER_MHI_XPRT
568 depends on MSM_MHI
569 depends on IPC_ROUTER
570 bool "MSM MHI XPRT Layer"
571 help
572 MHI Transport Layer that enables off-chip communication of
573 IPC Router. When the MHI endpoint becomes available, this layer
574 registers the transport with IPC Router and enable message
575 exchange.
Karthikeyan Ramasubramanian4f4074f2016-09-16 16:53:30 -0600576
Gustavo Solairaab6340f2019-05-24 11:29:42 -0700577config MSM_IPC_ROUTER_MHI_DEV_XPRT
578 depends on MSM_MHI_DEV
579 depends on IPC_ROUTER
580 bool "MSM MHI_DEV XPRT Layer"
581 help
582 MHI_DEV Transport Layer that enables off-chip communication of
583 IPC Router. When the MHI endpoint becomes available, this layer
584 registers the transport with IPC Router and enables message
585 exchange.
586
Karthikeyan Ramasubramanian4f4074f2016-09-16 16:53:30 -0600587config MSM_IPC_ROUTER_GLINK_XPRT
588 depends on MSM_GLINK
589 depends on IPC_ROUTER
590 bool "MSM GLINK XPRT Layer"
591 help
592 GLINK Transport Layer that enables IPC Router communication within
593 a System-on-Chip(SoC). When the GLINK channels become available,
594 this layer registers a transport with IPC Router and enable
595 message exchange.
Karthikeyan Ramasubramanianfafd67f12016-09-16 17:15:13 -0600596
597config MSM_QMI_INTERFACE
598 depends on IPC_ROUTER
599 depends on QMI_ENCDEC
600 bool "MSM QMI Interface Library"
601 help
602 Library to send and receive QMI messages over IPC Router.
603 This library provides interface functions to the kernel drivers
604 to perform QMI message marshaling and transport them over IPC
605 Router.
Karthikeyan Ramasubramanian5d797a82016-09-16 17:56:18 -0600606
607config MSM_GLINK_PKT
608 bool "Enable device interface for GLINK packet channels"
609 depends on MSM_GLINK
610 help
611 G-link packet driver provides the interface for the userspace
612 clients to communicate over G-Link via device nodes.
613 This enable the userspace clients to read and write to
614 some glink packets channel.
Karthikeyan Ramasubramanian04e3f902016-09-19 09:24:36 -0600615
616config MSM_SYSTEM_HEALTH_MONITOR
617 bool "System Health Monitor"
618 depends on MSM_QMI_INTERFACE && MSM_SUBSYSTEM_RESTART
619 help
620 System Health Monitor (SHM) passively monitors the health of the
621 peripherals connected to the application processor. Software
622 components in the application processor that experience
623 communication failure can request the SHM to perform a system-wide
624 health check. If any failures are detected during the health-check,
625 then a subsystem restart will be triggered for the failed subsystem.
Kyle Yane45fa022016-08-29 11:40:26 -0700626
627config MSM_SUBSYSTEM_RESTART
628 bool "MSM Subsystem Restart"
629 help
630 This option enables the MSM subsystem restart framework.
631
632 The MSM subsystem restart framework provides support to boot,
633 shutdown, and restart subsystems with a reference counted API.
634 It also notifies userspace of transitions between these states via
635 sysfs.
636
Tingwei Zhang4fff60a2018-04-03 14:16:59 +0800637config MSM_SYSMON_COMM
638 bool "MSM System Monitor communication support"
639 depends on MSM_SMD && MSM_SUBSYSTEM_RESTART
640 help
641 This option adds support for MSM System Monitor library, which
642 provides an API that may be used for notifying subsystems within
643 the SoC about other subsystems' power-up/down state-changes.
644
Kyle Yane45fa022016-08-29 11:40:26 -0700645config MSM_PIL
646 bool "Peripheral image loading"
647 select FW_LOADER
648 default n
649 help
650 Some peripherals need to be loaded into memory before they can be
651 brought out of reset.
652
653 Say yes to support these devices.
654
655config MSM_SYSMON_GLINK_COMM
656 bool "MSM System Monitor communication support using GLINK transport"
657 depends on MSM_GLINK && MSM_SUBSYSTEM_RESTART
658 help
659 This option adds support for MSM System Monitor APIs using the GLINK
660 transport layer. The APIs provided may be used for notifying
661 subsystems within the SoC about other subsystems' power-up/down
662 state-changes.
663
664config MSM_PIL_SSR_GENERIC
665 tristate "MSM Subsystem Boot Support"
666 depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
667 help
668 Support for booting and shutting down MSM Subsystem processors.
669 This driver also monitors the SMSM status bits and the watchdog
670 interrupt for the subsystem and restarts it on a watchdog bite
671 or a fatal error. Subsystems include LPASS, Venus, VPU, WCNSS and
672 BCSS.
673
674config MSM_PIL_MSS_QDSP6V5
675 tristate "MSS QDSP6v5 (Hexagon) Boot Support"
676 depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
677 help
678 Support for booting and shutting down QDSP6v5 (Hexagon) processors
679 in modem subsystems. If you would like to make or receive phone
680 calls then say Y here.
681
682 If unsure, say N.
Yuanyuan Liu607051c2016-11-28 17:04:13 -0800683
684config ICNSS
685 tristate "Platform driver for Q6 integrated connectivity"
Yuanyuan Liu13e7cdf2017-06-13 11:48:00 -0700686 select CNSS_UTILS
Yuanyuan Liu607051c2016-11-28 17:04:13 -0800687 ---help---
688 This module adds support for Q6 integrated WLAN connectivity
689 subsystem. This module is responsible for communicating WLAN on/off
690 control messages to FW over QMI channel. It is also responsible for
691 handling WLAN PD restart notifications.
692
693config ICNSS_DEBUG
694 bool "ICNSS debug support"
695 depends on ICNSS
696 ---help---
697 Say 'Y' here to enable ICNSS driver debug support. Debug support
698 primarily consists of logs consisting of information related to
699 hardware register access and enabling BUG_ON for certain cases to aid
Mahesh Sivasubramaniancb649522016-08-19 14:04:44 -0600700 the debugging.
701
702config QCOM_COMMAND_DB
703 bool "Command DB"
704 help
705 Command DB queries shared memory by key string for shared system
706 resources
Banajit Goswamiaec1b462016-11-21 21:54:23 -0800707
Vijay Ganti10772c02017-05-05 11:47:40 -0700708config MSM_PERFORMANCE
709 tristate "msm performacne driver to support userspace hotplug requests"
710 default n
711 help
712 This driver is used to provide CPU hotplug support to userspace.
713 It ensures that no more than a user specified number of CPUs stay
714 online at any given point in time. This module can also restrict
715 max freq or min freq of cpu cluster
716
Sathish Ambley5a8b3102017-01-23 09:56:24 -0800717config MSM_CDSP_LOADER
718 tristate "CDSP loader support"
719 depends on MSM_GLINK
720 help
721 Enable CDSP image loader.
722 The CDSP loader brings CDSP out of reset
723 for platforms that have compute DSP.
724 Say M if you want to enable this module.
725
AnilKumar Chimata4cf128e2017-07-13 01:22:31 +0530726config QCOM_SMCINVOKE
727 bool "Secure QSEE Support"
728 help
729 Enable SMCInvoke driver which supports capability based secure
730 communication between QTI Secure Execution Environment (QSEE)
731 and high level operating system. It exposes APIs for both
732 userspace and kernel clients.
733
Mahesh Sivasubramanianc2ea76f2016-02-01 10:40:26 -0700734config MSM_EVENT_TIMER
735 bool "Event timer"
736 help
737 This option enables a modules that manages a list of event timers
738 that need to be monitored by the PM. The enables the PM code to
739 monitor events that require the core to be awake and ready to
740 handle the event.
741
Laxminath Kasam6c8b4732018-03-05 15:44:31 +0530742config MSM_AVTIMER
743 tristate "Avtimer Driver"
744 default n
745 help
746 This driver gets the Q6 out of power collapsed state
747 and exposes ioctl control to read avtimer tick.
748 Enables camera to use for VT call to get avtimer
749 timestamp.
750
Mahesh Sivasubramanianc2ea76f2016-02-01 10:40:26 -0700751config MSM_PM
752 depends on PM
753 select MSM_IDLE_STATS if DEBUG_FS
754 select CPU_IDLE_MULTIPLE_DRIVERS
755 bool "Qualcomm platform specific PM driver"
756 help
757 Platform specific power driver to manage cores and l2 low power
758 modes. It interface with various system driver and put the cores
759 into low power modes. It implements OS initiated scheme and
760 determines last CPU to call into PSCI for cluster Low power
761 modes.
762
Raja Mallikb9ad4522018-04-19 15:23:49 +0530763config MSM_PM_LEGACY
764 depends on PM
765 select MSM_IDLE_STATS if DEBUG_FS
766 select CPU_IDLE_MULTIPLE_DRIVERS
767 bool "Qualcomm platform specific Legacy PM driver"
768 help
769 Platform specific legacy power driver to manage
770 cores and l2 low power modes. It interface with
771 various system driver and put the cores into
772 low power modes.
773
Mahesh Sivasubramanianc2ea76f2016-02-01 10:40:26 -0700774config MSM_NOPM
775 default y if !PM
776 bool
777 help
778 This enables bare minimum support of power management at platform level.
779 i.e WFI
780
Abir Ghosh989d5e92016-10-09 11:47:28 +0300781config MSM_QBT1000
782 bool "QBT1000 Ultrasonic Fingerprint Sensor"
783 help
784 This driver provides services for configuring the fingerprint
785 sensor hardware and for communicating with the trusted app which
786 uses it. It enables clocks and provides commands for loading
787 trusted apps, unloading them and marshalling buffers to the
788 trusted fingerprint app.
789
Raja Mallikb9ad4522018-04-19 15:23:49 +0530790if (MSM_PM || MSM_PM_LEGACY)
Mahesh Sivasubramanianc2ea76f2016-02-01 10:40:26 -0700791menuconfig MSM_IDLE_STATS
792 bool "Collect idle statistics"
793 help
794 Collect cores various low power mode idle statistics
795 and export them in proc/msm_pm_stats. User can read
796 this data and determine what low power modes and how
797 many times cores have entered into LPM modes.
798
799if MSM_IDLE_STATS
800
801config MSM_IDLE_STATS_FIRST_BUCKET
802 int "First bucket time"
803 default 62500
804 help
805 Upper time limit in nanoseconds of first bucket.
806
807config MSM_IDLE_STATS_BUCKET_SHIFT
808 int "Bucket shift"
809 default 2
810
811config MSM_IDLE_STATS_BUCKET_COUNT
812 int "Bucket count"
813 default 10
814
815config MSM_SUSPEND_STATS_FIRST_BUCKET
816 int "First bucket time for suspend"
817 default 1000000000
818 help
819 Upper time limit in nanoseconds of first bucket of the
820 histogram. This is for collecting statistics on suspend.
821
822endif # MSM_IDLE_STATS
Raja Mallikb9ad4522018-04-19 15:23:49 +0530823endif # MSM_PM || MSM_PM_LEGACY
Satyajit Desai765e7ef2016-11-09 14:27:45 -0800824
825config QCOM_DCC_V2
Mukesh Ojhacdbf01c2017-12-04 17:46:09 +0530826 bool "Qualcomm Technologies Data Capture and Compare engine support for V2"
827 help
828 This option enables driver for Data Capture and Compare engine. DCC
829 driver provides interface to configure DCC block and read back
830 captured data from DCC's internal SRAM.
831
832config QCOM_DCC
833 bool "QCOM Data Capture and Compare engine support"
Satyajit Desai765e7ef2016-11-09 14:27:45 -0800834 help
835 This option enables driver for Data Capture and Compare engine. DCC
836 driver provides interface to configure DCC block and read back
837 captured data from DCC's internal SRAM.
Mahesh Sivasubramanian6d0cfea2016-04-12 14:46:05 -0600838
839config QTI_RPM_STATS_LOG
840 bool "Qualcomm Technologies RPM Stats Driver"
Mahesh Sivasubramanian7c9528f2017-05-30 11:02:59 -0600841 depends on SYSFS
Mahesh Sivasubramanian6d0cfea2016-04-12 14:46:05 -0600842 default n
843 help
844 This option enables a driver which reads RPM messages from a shared
845 memory location. These messages provide statistical information about
846 the low power modes that RPM enters. The drivers outputs the message
847 via a debugfs node.
Satyajit Desaia6dfbd62017-05-02 10:49:52 -0700848
849config QCOM_FORCE_WDOG_BITE_ON_PANIC
850 bool "QCOM force watchdog bite"
851 depends on QCOM_WATCHDOG_V2
852 help
853 This forces a watchdog bite when the device restarts due to a
854 kernel panic. On certain MSM SoCs, this provides us
855 additional debugging information.
Manoj Prabhu Bc0c03572017-04-24 18:16:50 +0530856
Mahesh Sivasubramaniana8b87902017-06-15 14:56:23 -0600857config QMP_DEBUGFS_CLIENT
858 bool "Debugfs Client to communicate with AOP using QMP protocol"
859 depends on DEBUG_FS
860 default n
861 help
862 This options enables a driver which allows clients to send messages
863 to Alway On processor using QMP transport.
864
Manoj Prabhu Bc0c03572017-04-24 18:16:50 +0530865source "drivers/soc/qcom/memshare/Kconfig"
Chris Lewd2f6d512017-05-17 11:40:13 -0700866
Satyajit Desaid57f0e22017-08-15 12:53:00 -0700867config MSM_REMOTEQDSS
868 bool "Allow debug tools to enable events on other processors"
869 depends on QCOM_SCM && DEBUG_FS
870 help
871 Other onchip processors/execution environments may support debug
872 events. Provide a sysfs interface for debug tools to dynamically
873 enable/disable these events. Interface located in
874 /sys/class/remoteqdss.
875
Chris Lewd2f6d512017-05-17 11:40:13 -0700876config QSEE_IPC_IRQ_BRIDGE
877 tristate "QSEE IPC Interrupt Bridge"
878 help
879 This module enables bridging an Inter-Processor Communication(IPC)
880 interrupt from a remote subsystem directed towards Qualcomm
881 Technologies, Inc. Secure Execution Environment(QSEE).
Satyajit Desai66b6c452017-06-27 17:10:46 -0700882
883config MSM_JTAGV8
884 bool "Debug and ETM trace support across power collapse for ARMv8"
885 default y if CORESIGHT_SOURCE_ETM4X
886 help
887 Enables support for debugging (specifically breakpoints) and ETM
888 processor tracing across power collapse both for JTag and OS hosted
889 software running on ARMv8 target. Enabling this will ensure debug
890 and ETM registers are saved and restored across power collapse.
891 If unsure, say 'N' here to avoid potential power, performance and
892 memory penalty.
Satyajit Desaifa04d092017-10-30 15:19:15 -0700893
894config QCOM_QDSS_BRIDGE
895 bool "Configure bridge driver for QTI/Qualcomm Technologies, Inc. MDM"
896 depends on MSM_MHI
897 help
898 The driver will help route diag traffic from modem side over the QDSS
899 sub-system to USB on APSS side. The driver acts as a bridge between the
Linux Build Service Accountde467c02017-11-28 06:04:05 -0800900 MHI and USB interface. If unsure, say N.
Anurag Chouhana53cf212017-12-22 13:24:39 +0530901
Arun Kumar Neelakantamfc66de82017-11-15 20:33:40 +0530902config MSM_BAM_DMUX
903 bool "BAM Data Mux Driver"
904 depends on SPS
905 help
906 Support Muxed Data Channels over BAM interface.
907 BAM has a limited number of pipes. This driver
908 provides a means to support more logical channels
909 via muxing than BAM could without muxing.
910
Ramesh Yadav Javadi43ff8772018-04-06 13:13:53 +0530911 config MSM_GLINK_BGCOM_XPRT
912 depends on MSM_GLINK
913 depends on MSM_BGCOM
914 tristate "Generic Link (G-Link) BGCOM Transport"
915 help
916 G-Link BGCOM Transport is a Transport plug-in developed over BGCOM.
917 This transport plug-in performs marshaling of G-Link
918 commands & data to the appropriate BGCOM format and
919 allows for G-Link communication with remote subsystems that are
920 external to the System-on-Chip.
921
922 config MSM_BGCOM_INTERFACE
923 bool "Driver support for Blackghost Communication"
924 depends on MSM_BGCOM
925 help
926 Create a bg_com_dev device node for user space communication.
927 Single user space client can open device node for communication
928 from hardware. Hardware will provide access to read
929 registers and read/write AHB memory in the device.
930
931 config MSM_BGRSB
932 bool "Provide support for rsb events on Blackghost chipset"
933 depends on MSM_GLINK
934 help
935 BGRSB communicates to BG over Glink for RSB configuration and
936 enable/disable on device power state change. It enables/disables
937 the regulator specific to RSB. Sends the side band events generated
938 by BG to input framework.
939
940 config MSM_PIL_SSR_BG
941 tristate "MSM Subsystem Blackghost(BG) Support"
942 depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
943 help
944 Support for booting and shutting down Blackghost(BG) SOC which is
945 an external SOC. This driver communicates with Blackghost(BG) SOC
946 via pair of IPC GPIOs for inward and outward signals between MSM
947 and Blackghost(BG) SOC.
948
949 config MSM_BGCOM
950 bool "Provide APIs to communicate with Blackghost chipset"
951 help
952 BGCOM is a thin layer above SPI. It is used whithin a SoC for
953 communication between G-Link/bg_com_dev and BG processor over SPI.
954 This handle the interrupts raised by BG and notify the G-link with
955 interrupt event and event data.
956
Anurag Chouhana53cf212017-12-22 13:24:39 +0530957source "drivers/soc/qcom/wcnss/Kconfig"
Ramakrishna Gottimukkula3bc9ec22018-04-11 00:53:24 +0530958
959config BIG_CLUSTER_MIN_FREQ_ADJUST
960 bool "Adjust BIG cluster min frequency based on power collapse state"
961 default n
962 help
963 This driver is used to set the floor of the min frequency of big cluster
964 to the user specified value when the cluster is not power collapsed. When
965 the cluster is power collpsed it resets the value to physical limits.