Cristian Marussi | e8419c2 | 2021-08-03 14:10:17 +0100 | [diff] [blame] | 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 | |
Igor Skalkin | a7b1138b | 2021-08-03 14:10:18 +0100 | [diff] [blame] | 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 | |
Peter Hilber | f301bba | 2021-08-03 14:10:20 +0100 | [diff] [blame] | 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 | |
Cristian Marussi | e8419c2 | 2021-08-03 14:10:17 +0100 | [diff] [blame] | 45 | config ARM_SCMI_TRANSPORT_MAILBOX |
| 46 | bool "SCMI transport based on Mailbox" |
| 47 | depends on MAILBOX |
| 48 | select ARM_SCMI_HAVE_TRANSPORT |
Igor Skalkin | a7b1138b | 2021-08-03 14:10:18 +0100 | [diff] [blame] | 49 | select ARM_SCMI_HAVE_SHMEM |
Cristian Marussi | e8419c2 | 2021-08-03 14:10:17 +0100 | [diff] [blame] | 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 |
Igor Skalkin | a7b1138b | 2021-08-03 14:10:18 +0100 | [diff] [blame] | 61 | select ARM_SCMI_HAVE_SHMEM |
Cristian Marussi | e8419c2 | 2021-08-03 14:10:17 +0100 | [diff] [blame] | 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 | |
Igor Skalkin | 46abe13 | 2021-08-03 14:10:24 +0100 | [diff] [blame] | 69 | config ARM_SCMI_TRANSPORT_VIRTIO |
| 70 | bool "SCMI transport based on VirtIO" |
Cristian Marussi | c90521a | 2021-08-16 15:16:09 +0100 | [diff] [blame] | 71 | depends on VIRTIO=y || VIRTIO=ARM_SCMI_PROTOCOL |
Igor Skalkin | 46abe13 | 2021-08-03 14:10:24 +0100 | [diff] [blame] | 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 | |
Cristian Marussi | e8419c2 | 2021-08-03 14:10:17 +0100 | [diff] [blame] | 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 |