Kconfig 9.5 KB

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