1*e8419c24SCristian Marussi# SPDX-License-Identifier: GPL-2.0-only
2*e8419c24SCristian Marussimenu "ARM System Control and Management Interface Protocol"
3*e8419c24SCristian Marussi
4*e8419c24SCristian Marussiconfig ARM_SCMI_PROTOCOL
5*e8419c24SCristian Marussi	tristate "ARM System Control and Management Interface (SCMI) Message Protocol"
6*e8419c24SCristian Marussi	depends on ARM || ARM64 || COMPILE_TEST
7*e8419c24SCristian Marussi	help
8*e8419c24SCristian Marussi	  ARM System Control and Management Interface (SCMI) protocol is a
9*e8419c24SCristian Marussi	  set of operating system-independent software interfaces that are
10*e8419c24SCristian Marussi	  used in system management. SCMI is extensible and currently provides
11*e8419c24SCristian Marussi	  interfaces for: Discovery and self-description of the interfaces
12*e8419c24SCristian Marussi	  it supports, Power domain management which is the ability to place
13*e8419c24SCristian Marussi	  a given device or domain into the various power-saving states that
14*e8419c24SCristian Marussi	  it supports, Performance management which is the ability to control
15*e8419c24SCristian Marussi	  the performance of a domain that is composed of compute engines
16*e8419c24SCristian Marussi	  such as application processors and other accelerators, Clock
17*e8419c24SCristian Marussi	  management which is the ability to set and inquire rates on platform
18*e8419c24SCristian Marussi	  managed clocks and Sensor management which is the ability to read
19*e8419c24SCristian Marussi	  sensor data, and be notified of sensor value.
20*e8419c24SCristian Marussi
21*e8419c24SCristian Marussi	  This protocol library provides interface for all the client drivers
22*e8419c24SCristian Marussi	  making use of the features offered by the SCMI.
23*e8419c24SCristian Marussi
24*e8419c24SCristian Marussiif ARM_SCMI_PROTOCOL
25*e8419c24SCristian Marussi
26*e8419c24SCristian Marussiconfig ARM_SCMI_HAVE_TRANSPORT
27*e8419c24SCristian Marussi	bool
28*e8419c24SCristian Marussi	help
29*e8419c24SCristian Marussi	  This declares whether at least one SCMI transport has been configured.
30*e8419c24SCristian Marussi	  Used to trigger a build bug when trying to build SCMI without any
31*e8419c24SCristian Marussi	  configured transport.
32*e8419c24SCristian Marussi
33*e8419c24SCristian Marussiconfig ARM_SCMI_TRANSPORT_MAILBOX
34*e8419c24SCristian Marussi	bool "SCMI transport based on Mailbox"
35*e8419c24SCristian Marussi	depends on MAILBOX
36*e8419c24SCristian Marussi	select ARM_SCMI_HAVE_TRANSPORT
37*e8419c24SCristian Marussi	default y
38*e8419c24SCristian Marussi	help
39*e8419c24SCristian Marussi	  Enable mailbox based transport for SCMI.
40*e8419c24SCristian Marussi
41*e8419c24SCristian Marussi	  If you want the ARM SCMI PROTOCOL stack to include support for a
42*e8419c24SCristian Marussi	  transport based on mailboxes, answer Y.
43*e8419c24SCristian Marussi
44*e8419c24SCristian Marussiconfig ARM_SCMI_TRANSPORT_SMC
45*e8419c24SCristian Marussi	bool "SCMI transport based on SMC"
46*e8419c24SCristian Marussi	depends on HAVE_ARM_SMCCC_DISCOVERY
47*e8419c24SCristian Marussi	select ARM_SCMI_HAVE_TRANSPORT
48*e8419c24SCristian Marussi	default y
49*e8419c24SCristian Marussi	help
50*e8419c24SCristian Marussi	  Enable SMC based transport for SCMI.
51*e8419c24SCristian Marussi
52*e8419c24SCristian Marussi	  If you want the ARM SCMI PROTOCOL stack to include support for a
53*e8419c24SCristian Marussi	  transport based on SMC, answer Y.
54*e8419c24SCristian Marussi
55*e8419c24SCristian Marussiendif #ARM_SCMI_PROTOCOL
56*e8419c24SCristian Marussi
57*e8419c24SCristian Marussiconfig ARM_SCMI_POWER_DOMAIN
58*e8419c24SCristian Marussi	tristate "SCMI power domain driver"
59*e8419c24SCristian Marussi	depends on ARM_SCMI_PROTOCOL || (COMPILE_TEST && OF)
60*e8419c24SCristian Marussi	default y
61*e8419c24SCristian Marussi	select PM_GENERIC_DOMAINS if PM
62*e8419c24SCristian Marussi	help
63*e8419c24SCristian Marussi	  This enables support for the SCMI power domains which can be
64*e8419c24SCristian Marussi	  enabled or disabled via the SCP firmware
65*e8419c24SCristian Marussi
66*e8419c24SCristian Marussi	  This driver can also be built as a module.  If so, the module
67*e8419c24SCristian Marussi	  will be called scmi_pm_domain. Note this may needed early in boot
68*e8419c24SCristian Marussi	  before rootfs may be available.
69*e8419c24SCristian Marussi
70*e8419c24SCristian Marussiendmenu
71