xref: /linux/drivers/firmware/arm_scmi/Kconfig (revision 297d9111e9fcf47dd1dcc6f79bba915f35378d01)
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
72*487c407dSCristian Marussiconfig ARM_SCMI_QUIRKS
73*487c407dSCristian Marussi	bool "Enable SCMI Quirks framework"
74*487c407dSCristian Marussi	depends on JUMP_LABEL || COMPILE_TEST
75*487c407dSCristian Marussi	default y
76*487c407dSCristian Marussi	help
77*487c407dSCristian Marussi	  Enables support for SCMI Quirks framework to workaround SCMI platform
78*487c407dSCristian Marussi	  firmware bugs on system already deployed in the wild.
79*487c407dSCristian Marussi
80*487c407dSCristian Marussi	  The framework allows the definition of platform-specific code quirks
81*487c407dSCristian Marussi	  that will be associated and enabled only on the desired platforms
82*487c407dSCristian Marussi	  depending on the SCMI firmware advertised versions and/or machine
83*487c407dSCristian Marussi	  compatibles.
84*487c407dSCristian Marussi
85b53515faSCristian Marussisource "drivers/firmware/arm_scmi/transports/Kconfig"
8641845541SPeng Fansource "drivers/firmware/arm_scmi/vendors/imx/Kconfig"
87e8419c24SCristian Marussi
88e8419c24SCristian Marussiendif #ARM_SCMI_PROTOCOL
89e8419c24SCristian Marussi
902c4b97feSCristian Marussiconfig ARM_SCMI_POWER_CONTROL
912c4b97feSCristian Marussi	tristate "SCMI system power control driver"
922c4b97feSCristian Marussi	depends on ARM_SCMI_PROTOCOL || (COMPILE_TEST && OF)
932c4b97feSCristian Marussi	help
942c4b97feSCristian Marussi	  This enables System Power control logic which binds system shutdown or
952c4b97feSCristian Marussi	  reboot actions to SCMI System Power notifications generated by SCP
962c4b97feSCristian Marussi	  firmware.
972c4b97feSCristian Marussi
982c4b97feSCristian Marussi	  This driver can also be built as a module.  If so, the module will be
992c4b97feSCristian Marussi	  called scmi_power_control. Note this may needed early in boot to catch
1002c4b97feSCristian Marussi	  early shutdown/reboot SCMI requests.
1012c4b97feSCristian Marussi
102e8419c24SCristian Marussiendmenu
103