diff mbox

[RFC,1/3] DT: add binding for MXS regulator

Message ID 1410089869-6611-2-git-send-email-info@lategoodbye.de (mailing list archive)
State New, archived
Headers show

Commit Message

Stefan Wahren Sept. 7, 2014, 11:37 a.m. UTC
This patch adds the Device tree bindings for the Freescale MXS on-chip
regulators.

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
---
 .../bindings/regulator/mxs-regulator.txt           | 38 ++++++++++++++++++++++
 1 file changed, 38 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/regulator/mxs-regulator.txt

Comments

Sergei Shtylyov Sept. 7, 2014, 1:35 p.m. UTC | #1
Hello.

On 9/7/2014 3:37 PM, Stefan Wahren wrote:

> This patch adds the Device tree bindings for the Freescale MXS on-chip
> regulators.

> Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
> ---
>   .../bindings/regulator/mxs-regulator.txt           | 38 ++++++++++++++++++++++
>   1 file changed, 38 insertions(+)
>   create mode 100644 Documentation/devicetree/bindings/regulator/mxs-regulator.txt

> diff --git a/Documentation/devicetree/bindings/regulator/mxs-regulator.txt b/Documentation/devicetree/bindings/regulator/mxs-regulator.txt
> new file mode 100644
> index 0000000..c3226cc
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/mxs-regulator.txt
> @@ -0,0 +1,38 @@
> +MXS regulators
> +
> +Required node properties:
> +- compatible: Should be "fsl,<soc>-power", where soc is "imx23" or "imx28"
> +- reg: Offset and length of the register set for the device
> +
> +Required regulator properties:
> +- compatible: Must be "fsl,mxs-regulator"
> +- reg: Offset of the register set for the regulator
> +- mxs-max-reg-val: Maximum value of this register
> +
> +Optional regulator properties:
> +- mxs-default-microvolt: initial voltage of the regulator

    Vendor specific property names should be prefixed with the vendor name and 
comma.

WBR, Sergei
Mark Rutland Sept. 9, 2014, 5:59 p.m. UTC | #2
On Sun, Sep 07, 2014 at 12:37:47PM +0100, Stefan Wahren wrote:
> This patch adds the Device tree bindings for the Freescale MXS on-chip
> regulators.
> 
> Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
> ---
>  .../bindings/regulator/mxs-regulator.txt           | 38 ++++++++++++++++++++++
>  1 file changed, 38 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/regulator/mxs-regulator.txt
> 
> diff --git a/Documentation/devicetree/bindings/regulator/mxs-regulator.txt b/Documentation/devicetree/bindings/regulator/mxs-regulator.txt
> new file mode 100644
> index 0000000..c3226cc
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/mxs-regulator.txt
> @@ -0,0 +1,38 @@
> +MXS regulators
> +
> +Required node properties:
> +- compatible: Should be "fsl,<soc>-power", where soc is "imx23" or "imx28"
> +- reg: Offset and length of the register set for the device

We require #address-cells and #size-cells if the child nodes have reg
entries.

> +
> +Required regulator properties:
> +- compatible: Must be "fsl,mxs-regulator"
> +- reg: Offset of the register set for the regulator

Is this the offset or the absolute physical address?

The example seems to be absolute.

> +- mxs-max-reg-val: Maximum value of this register

What does this even mean? What's the format?

Is this not implied by standard properties like regulator-max-microvolt?

> +Optional regulator properties:
> +- mxs-default-microvolt: initial voltage of the regulator

Why is this necessary?

Mark.

> +
> +Any regulator property defined as part of the core regulator
> +binding, defined in regulator.txt, can also be used.
> +
> +Example:
> +
> +	power: power@80044000 {
> +		compatible = "fsl,imx28-power";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		reg = <0x80044000 0x2000>;
> +
> +		reg_vddio: regulator-vddio@80044060 {
> +			reg = <0x80044060>;
> +			compatible = "fsl,mxs-regulator";
> +			regulator-name = "vddio";
> +			regulator-min-microvolt = <2800000>;
> +			regulator-max-microvolt = <3600000>;
> +			regulator-microvolt-offset = <80000>;
> +			regulator-always-on;
> +			mxs-max-reg-val = <0x10>;
> +			mxs-default-microvolt = <3300000>;
> +		};
> +	};
> +
> -- 
> 1.8.1.4
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
Stefan Wahren Sept. 9, 2014, 6:48 p.m. UTC | #3
Hi Mark,

Am 09.09.2014 19:59, schrieb Mark Rutland:
> On Sun, Sep 07, 2014 at 12:37:47PM +0100, Stefan Wahren wrote:
>> This patch adds the Device tree bindings for the Freescale MXS on-chip
>> regulators.
>>
>> Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
>> ---
>>   .../bindings/regulator/mxs-regulator.txt           | 38 ++++++++++++++++++++++
>>   1 file changed, 38 insertions(+)
>>   create mode 100644 Documentation/devicetree/bindings/regulator/mxs-regulator.txt
>>
>> diff --git a/Documentation/devicetree/bindings/regulator/mxs-regulator.txt b/Documentation/devicetree/bindings/regulator/mxs-regulator.txt
>> new file mode 100644
>> index 0000000..c3226cc
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/regulator/mxs-regulator.txt
>> @@ -0,0 +1,38 @@
>> +MXS regulators
>> +
>> +Required node properties:
>> +- compatible: Should be "fsl,<soc>-power", where soc is "imx23" or "imx28"
>> +- reg: Offset and length of the register set for the device
>
> We require #address-cells and #size-cells if the child nodes have reg
> entries.

okay.

>
>> +
>> +Required regulator properties:
>> +- compatible: Must be "fsl,mxs-regulator"
>> +- reg: Offset of the register set for the regulator
>
> Is this the offset or the absolute physical address?
>
> The example seems to be absolute.

You are right, the description is wrong.

>
>> +- mxs-max-reg-val: Maximum value of this register
>
> What does this even mean? What's the format?
>
> Is this not implied by standard properties like regulator-max-microvolt?

Unfortunately not as long the step size in microvolt isn't defined. The 
parameter defines the register value in hex corresponding to 
regulator-max-microvolt.

step size = (regulator-max-microvolt - regulator-min-microvolt) / 
mxs-max-reg-val

May be i missed or understand something wrong?

>
>> +Optional regulator properties:
>> +- mxs-default-microvolt: initial voltage of the regulator
>
> Why is this necessary?

The original driver from Freescale set the MX28 regulator vddio to 3.38 
V during registering. I think that is ugly to implement in the driver 
part, so i add a more general property in the devicetree binding.

>
> Mark.

Stefan
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/regulator/mxs-regulator.txt b/Documentation/devicetree/bindings/regulator/mxs-regulator.txt
new file mode 100644
index 0000000..c3226cc
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/mxs-regulator.txt
@@ -0,0 +1,38 @@ 
+MXS regulators
+
+Required node properties:
+- compatible: Should be "fsl,<soc>-power", where soc is "imx23" or "imx28"
+- reg: Offset and length of the register set for the device
+
+Required regulator properties:
+- compatible: Must be "fsl,mxs-regulator"
+- reg: Offset of the register set for the regulator
+- mxs-max-reg-val: Maximum value of this register
+
+Optional regulator properties:
+- mxs-default-microvolt: initial voltage of the regulator
+
+Any regulator property defined as part of the core regulator
+binding, defined in regulator.txt, can also be used.
+
+Example:
+
+	power: power@80044000 {
+		compatible = "fsl,imx28-power";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		reg = <0x80044000 0x2000>;
+
+		reg_vddio: regulator-vddio@80044060 {
+			reg = <0x80044060>;
+			compatible = "fsl,mxs-regulator";
+			regulator-name = "vddio";
+			regulator-min-microvolt = <2800000>;
+			regulator-max-microvolt = <3600000>;
+			regulator-microvolt-offset = <80000>;
+			regulator-always-on;
+			mxs-max-reg-val = <0x10>;
+			mxs-default-microvolt = <3300000>;
+		};
+	};
+