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