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