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