Message ID | 1446730488-31930-4-git-send-email-puck.chen@hisilicon.com |
---|---|
State | New |
Headers | show |
On Thu, Nov 05, 2015 at 09:34:44PM +0800, Chen Feng wrote: > +Required properties: > +- compatible: Must be "hisilicon,hi655x-regulator-pmic"; If this is a subfunction of a MFD it shouldn't have a compatible string. If it is instead a standalone device it should just have a name in the form "vendor,chip" without any random suffixes. > +- regulator-name: Regulator name in SoC. > +- regulator-min-microvolt: Smallest voltage support. > +- regulator-max-microvolt: Largest voltages support. These should *never* be mandatory properties and the generic regulator bindings should be reference rather than copied into the binding for a specific device, that way the standard definitions for things are always used and people know about any other properties that are available as standard. > +- regulator-off-on-delay: The time wait for power steady > +- regulator-ctrl-regs: Registers offset of control register. > + In turn with enable disable and status register offset. > +- regulator-ctrl-mask: The control mask of the register. > +- regulator-vset-regs: Voltage set register offset. > +- regulator-vset-mask: voltage set control mask. > +- regulator-n-vol: The num of support voltages. > +- regulator-vset-table: The table of support voltages. Why is this in the binding? This is a binding for a specific device, there is no point in putting all these data tables in the DT - it just bloats the DT and makes it harder for us to enhance our support for this device in the future. Just > + > +Example: > + pmic: pmic@f8000000 { > + compatible = "hisilicon,hi655x-pmic-driver"; > + ... > + ldo2: regulator@a21 { > + compatible = "hisilicon,hi655x-regulator-pmic"; > + regulator-name = "ldo2"; > + regulator-min-microvolt = <2500000>; > + regulator-max-microvolt = <3200000>; > + regulator-valid-modes-mask = <0x02>; > + regulator-initial-mode = <0x02>; > + regulator-off-on-delay = <120>; > + regulator-ctrl-regs = <0x029 0x02a 0x02b>; > + regulator-ctrl-mask = <0x1>; > + regulator-vset-regs = <0x072>; > + regulator-vset-mask = <0x3>; > + regulator-n-vol = <8>; > + regulator-vset-table = <2500000>,<2600000>, > + <2700000>,<2800000>, > + <2900000>,<3000000>, > + <3100000>,<3200000>; > + }; > + ... > + } > -- > 1.9.1 > >
diff --git a/Documentation/devicetree/bindings/regulator/hisilicon,hi655x-regulator.txt b/Documentation/devicetree/bindings/regulator/hisilicon,hi655x-regulator.txt new file mode 100644 index 0000000..66c6a73 --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/hisilicon,hi655x-regulator.txt @@ -0,0 +1,50 @@ +Hisilicon Hi655x Voltage regulators + +Note: +The hi655x regulator control is managed by hi655x Power IC. +So the node of this regulator must be child node of hi655x +pmic node. + +The driver uses the regulator core framework, so please also +take the bindings of regulator.txt for reference. + +Required properties: +- compatible: Must be "hisilicon,hi655x-regulator-pmic"; +- regulator-name: Regulator name in SoC. +- regulator-min-microvolt: Smallest voltage support. +- regulator-max-microvolt: Largest voltages support. +- regulator-initial-mode: Init mode of this regulator. +- regulator-valid-modes-mask: Valid support mode mask. +- regulator-off-on-delay: The time wait for power steady +- regulator-ctrl-regs: Registers offset of control register. + In turn with enable disable and status register offset. +- regulator-ctrl-mask: The control mask of the register. +- regulator-vset-regs: Voltage set register offset. +- regulator-vset-mask: voltage set control mask. +- regulator-n-vol: The num of support voltages. +- regulator-vset-table: The table of support voltages. + +Example: + pmic: pmic@f8000000 { + compatible = "hisilicon,hi655x-pmic-driver"; + ... + ldo2: regulator@a21 { + compatible = "hisilicon,hi655x-regulator-pmic"; + regulator-name = "ldo2"; + regulator-min-microvolt = <2500000>; + regulator-max-microvolt = <3200000>; + regulator-valid-modes-mask = <0x02>; + regulator-initial-mode = <0x02>; + regulator-off-on-delay = <120>; + regulator-ctrl-regs = <0x029 0x02a 0x02b>; + regulator-ctrl-mask = <0x1>; + regulator-vset-regs = <0x072>; + regulator-vset-mask = <0x3>; + regulator-n-vol = <8>; + regulator-vset-table = <2500000>,<2600000>, + <2700000>,<2800000>, + <2900000>,<3000000>, + <3100000>,<3200000>; + }; + ... + }