Message ID | 20201119191051.46363-5-cristian.marussi@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add support for SCMIv3.0 Voltage Domain Protocol and SCMI-Regulator | expand |
On Thu, Nov 19, 2020 at 07:10:50PM +0000, Cristian Marussi wrote: > +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 Please send a followup patch removing this stuff about only specific properties being supported, that's just asking for bitrot and is equally true for most regulator drivers - people shouldn't have to do do an audit of every single regulator driver to add a generic feature.
On Mon, Nov 23, 2020 at 05:30:08PM +0000, Mark Brown wrote: > On Thu, Nov 19, 2020 at 07:10:50PM +0000, Cristian Marussi wrote: > > > +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 > > Please send a followup patch removing this stuff about only specific > properties being supported, that's just asking for bitrot and is equally > true for most regulator drivers - people shouldn't have to do do an > audit of every single regulator driver to add a generic feature. Ok I'll remove any reference to partial SCMI regulator support. Thanks Cristian
diff --git a/Documentation/devicetree/bindings/arm/arm,scmi.txt b/Documentation/devicetree/bindings/arm/arm,scmi.txt index 55deb68230eb..6e011ca97079 100644 --- a/Documentation/devicetree/bindings/arm/arm,scmi.txt +++ b/Documentation/devicetree/bindings/arm/arm,scmi.txt @@ -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>; + }; + + ... + }; + }; }; };