Bindings for the Generic PWM Regulator
======================================

Currently supports 2 modes of operation:

Voltage Table:		When in this mode, a voltage table (See below) of
			predefined voltage <=> duty-cycle values must be
			provided via DT. Limitations are that the regulator can
			only operate at the voltages supplied in the table.
			Intermediary duty-cycle values which would normally
			allow finer grained voltage selection are ignored and
			rendered useless.  Although more control is given to
			the user if the assumptions made in continuous-voltage
			mode do not reign true.

Continuous Voltage:	This mode uses the regulator's maximum and minimum
			supplied voltages specified in the
			regulator-{min,max}-microvolt properties to calculate
			appropriate duty-cycle values.  This allows for a much
			more fine grained solution when compared with
			voltage-table mode above.  This solution does make an
			assumption that a %50 duty-cycle value will cause the
			regulator voltage to run at half way between the
			supplied max_uV and min_uV values.

Required properties:
--------------------
- compatible:		Should be "pwm-regulator"

- pwms:			PWM specification (See: ../pwm/pwm.txt)

Only required for Voltage Table Mode:
- voltage-table: 	Voltage and Duty-Cycle table consisting of 2 cells
			    First cell is voltage in microvolts (uV)
			    Second cell is duty-cycle in percent (%)

NB: To be clear, if voltage-table is provided, then the device will be used
in Voltage Table Mode.  If no voltage-table is provided, then the device will
be used in Continuous Voltage Mode.

Any property defined as part of the core regulator binding can also be used.
(See: ../regulator/regulator.txt)

Continuous Voltage Example:
	pwm_regulator {
		compatible = "pwm-regulator;
		pwms = <&pwm1 0 8448 0>;
		regulator-min-microvolt = <1016000>;
		regulator-max-microvolt = <1114000>;
		regulator-name = "vdd_logic";
	};

Voltage Table Example:
	pwm_regulator {
		compatible = "pwm-regulator;
		pwms = <&pwm1 0 8448 0>;
		regulator-min-microvolt = <1016000>;
		regulator-max-microvolt = <1114000>;
		regulator-name = "vdd_logic";

			      /* Voltage Duty-Cycle */
		voltage-table = <1114000 0>,
				<1095000 10>,
				<1076000 20>,
				<1056000 30>,
				<1036000 40>,
				<1016000 50>;
	};
