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 26c3d4aed7SCristian Marussiconfig ARM_SCMI_NEED_DEBUGFS 27c3d4aed7SCristian Marussi bool 28c3d4aed7SCristian Marussi help 29c3d4aed7SCristian Marussi This declares whether at least one SCMI facility is configured 30c3d4aed7SCristian Marussi which needs debugfs support. When selected causess the creation 31c3d4aed7SCristian Marussi of a common SCMI debugfs root directory. 32c3d4aed7SCristian Marussi 333c3d818aSCristian Marussiconfig ARM_SCMI_RAW_MODE_SUPPORT 343c3d818aSCristian Marussi bool "Enable support for SCMI Raw transmission mode" 353c3d818aSCristian Marussi depends on DEBUG_FS 363c3d818aSCristian Marussi select ARM_SCMI_NEED_DEBUGFS 373c3d818aSCristian Marussi help 383c3d818aSCristian Marussi Enable support for SCMI Raw transmission mode. 393c3d818aSCristian Marussi 403c3d818aSCristian Marussi If enabled allows the direct injection and snooping of SCMI bare 413c3d818aSCristian Marussi messages through a dedicated debugfs interface. 423c3d818aSCristian Marussi It is meant to be used by SCMI compliance/testing suites. 433c3d818aSCristian Marussi 443c3d818aSCristian Marussi When enabled regular SCMI drivers interactions are inhibited in 453c3d818aSCristian Marussi order to avoid unexpected interactions with the SCMI Raw message 463c3d818aSCristian Marussi flow. If unsure say N. 473c3d818aSCristian Marussi 489c54633eSCristian Marussiconfig ARM_SCMI_RAW_MODE_SUPPORT_COEX 499c54633eSCristian Marussi bool "Allow SCMI Raw mode coexistence with normal SCMI stack" 509c54633eSCristian Marussi depends on ARM_SCMI_RAW_MODE_SUPPORT 519c54633eSCristian Marussi help 529c54633eSCristian Marussi Allow SCMI Raw transmission mode to coexist with normal SCMI stack. 539c54633eSCristian Marussi 549c54633eSCristian Marussi This will allow regular SCMI drivers to register with the core and 559c54633eSCristian Marussi operate normally, thing which could make an SCMI test suite using the 569c54633eSCristian Marussi SCMI Raw mode support unreliable. If unsure, say N. 579c54633eSCristian Marussi 581b18d429SLuke Parkinconfig ARM_SCMI_DEBUG_COUNTERS 591b18d429SLuke Parkin bool "Enable SCMI communication debug metrics tracking" 601b18d429SLuke Parkin select ARM_SCMI_NEED_DEBUGFS 611b18d429SLuke Parkin depends on DEBUG_FS 621b18d429SLuke Parkin default n 631b18d429SLuke Parkin help 641b18d429SLuke Parkin Enables tracking of some key communication metrics for debug 651b18d429SLuke Parkin purposes. It may track metrics like how many messages were sent 661b18d429SLuke Parkin or received, were there any failures, what kind of failures, ..etc. 671b18d429SLuke Parkin 681b18d429SLuke Parkin Enable this option to create a new debugfs directory which contains 691b18d429SLuke Parkin such useful debug counters. This can be helpful for debugging and 701b18d429SLuke Parkin SCMI monitoring. 711b18d429SLuke Parkin 72b53515faSCristian Marussisource "drivers/firmware/arm_scmi/transports/Kconfig" 73*41845541SPeng Fansource "drivers/firmware/arm_scmi/vendors/imx/Kconfig" 74e8419c24SCristian Marussi 75e8419c24SCristian Marussiendif #ARM_SCMI_PROTOCOL 76e8419c24SCristian Marussi 772c4b97feSCristian Marussiconfig ARM_SCMI_POWER_CONTROL 782c4b97feSCristian Marussi tristate "SCMI system power control driver" 792c4b97feSCristian Marussi depends on ARM_SCMI_PROTOCOL || (COMPILE_TEST && OF) 802c4b97feSCristian Marussi help 812c4b97feSCristian Marussi This enables System Power control logic which binds system shutdown or 822c4b97feSCristian Marussi reboot actions to SCMI System Power notifications generated by SCP 832c4b97feSCristian Marussi firmware. 842c4b97feSCristian Marussi 852c4b97feSCristian Marussi This driver can also be built as a module. If so, the module will be 862c4b97feSCristian Marussi called scmi_power_control. Note this may needed early in boot to catch 872c4b97feSCristian Marussi early shutdown/reboot SCMI requests. 882c4b97feSCristian Marussi 89e8419c24SCristian Marussiendmenu 90