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