Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 02258b8b authored by Lee Jones's avatar Lee Jones Committed by Mark Brown
Browse files

regulator: pwm-regulator: Re-write bindings



* Add support for continuous-voltage mode
* Put more meat on the bones with regards to voltage-table mode
* Sort out formatting for ease of consumption

Cc: devicetree@vger.kernel.org
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent f9178dad
Loading
Loading
Loading
Loading
+56 −12
Original line number Diff line number Diff line
pwm regulator bindings
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: OF device-tree PWM specification (see PWM binding pwm.txt)
- voltage-table: voltage and duty table, include 2 members in each set of
  brackets, first one is voltage(unit: uv), the next is duty(unit: percent)

Any property defined as part of the core regulator binding defined in
regulator.txt can also be used.
- pwms:			PWM specification (See: ../pwm/pwm.txt)

One of these must be provided:
- 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 (%)

- max-duty-cycle:	Maximum Duty-Cycle value -- this will normally be
  			255 (0xff) for an 8 bit PWM device

If both are provided, the current default is voltage-table mode.

Example:
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";

		max-duty-cycle = <255>; /* 8bit PWM */
	};

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

		regulator-min-microvolt = <1016000>;
		regulator-max-microvolt = <1114000>;
		regulator-name = "vdd_logic";
	};