Commit 0f80fcec authored by Cristian Marussi's avatar Cristian Marussi Committed by Sudeep Holla
Browse files

dt-bindings: arm: Add support for SCMI Regulators

Add devicetree bindings to support regulators based on SCMI Voltage
Domain Protocol.

Link: https://lore.kernel.org/r/20201119191051.46363-5-cristian.marussi@arm.com


Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarCristian Marussi <cristian.marussi@arm.com>
Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
parent 3cea11cd
Loading
Loading
Loading
Loading
+43 −0
Original line number Diff line number Diff line
@@ -62,6 +62,29 @@ Required properties:
 - #power-domain-cells : Should be 1. Contains the device or the power
			 domain ID value used by SCMI commands.

Regulator bindings for the SCMI Regulator based on SCMI Message Protocol
------------------------------------------------------------
An SCMI Regulator is permanently bound to a well defined SCMI Voltage Domain,
and should be always positioned as a root regulator.
It does not support any current operation.

SCMI Regulators are grouped under a 'regulators' node which in turn is a child
of the SCMI Voltage protocol node inside the desired SCMI instance node.

This binding uses the common regulator binding[6] but, due to SCMI abstractions,
supports only a subset of its properties as specified below amongst Optional
properties.

Required properties:
 - reg : shall identify an existent SCMI Voltage Domain.

Optional properties:
 - regulator-name
 - regulator-min-microvolt / regulator-max-microvolt
 - regulator-always-on / regulator-boot-on
 - regulator-max-step-microvolt
 - regulator-coupled-with / regulator-coupled-max-spread

Sensor bindings for the sensors based on SCMI Message Protocol
--------------------------------------------------------------
SCMI provides an API to access the various sensors on the SoC.
@@ -105,6 +128,7 @@ Required sub-node properties:
[3] Documentation/devicetree/bindings/thermal/thermal*.yaml
[4] Documentation/devicetree/bindings/sram/sram.yaml
[5] Documentation/devicetree/bindings/reset/reset.txt
[6] Documentation/devicetree/bindings/regulator/regulator.yaml

Example:

@@ -169,6 +193,25 @@ firmware {
			reg = <0x16>;
			#reset-cells = <1>;
		};

		scmi_voltage: protocol@17 {
			reg = <0x17>;

			regulators {
				regulator_devX: regulator@0 {
					reg = <0x0>;
					regulator-max-microvolt = <3300000>;
				};

				regulator_devY: regulator@9 {
					reg = <0x9>;
					regulator-min-microvolt = <500000>;
					regulator-max-microvolt = <4200000>;
				};

				...
			};
		};
	};
};