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 (%)

Optional properties for Continuous mode:
- pwm-dutycycle-unit:	Integer value encoding the duty cycle unit. If not
			defined, <100> is assumed, meaning that
			pwm-dutycycle-range contains values expressed in
			percent.

- pwm-dutycycle-range:	Should contain 2 entries. The first entry is encoding
			the dutycycle for regulator-min-microvolt and the
			second one the dutycycle for regulator-max-microvolt.
			Duty cycle values are expressed in pwm-dutycycle-unit.
			If not defined, <0 100> is assumed.

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.

Optional properties:
--------------------
- enable-gpios:		GPIO to use to enable/disable the regulator

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

Continuous Voltage With Enable GPIO Example:
	pwm_regulator {
		compatible = "pwm-regulator;
		pwms = <&pwm1 0 8448 0>;
		enable-gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>;
		regulator-min-microvolt = <1016000>;
		regulator-max-microvolt = <1114000>;
		regulator-name = "vdd_logic";
		/* unit == per-mille */
		pwm-dutycycle-unit = <1000>;
		/*
		 * Inverted PWM logic, and the duty cycle range is limited
		 * to 30%-70%.
		 */
		pwm-dutycycle-range <700 300>; /* */
	};

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>;
	};
