pwm-regulator.txt 3.1 KB
Newer Older
1 2 3 4 5
Bindings for the Generic PWM Regulator
======================================

Currently supports 2 modes of operation:

6
Voltage Table:		When in this mode, a voltage table (See below) of
7 8 9 10 11 12 13 14 15
			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.

16
Continuous Voltage:	This mode uses the regulator's maximum and minimum
17 18 19 20 21 22 23 24
			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.
25 26

Required properties:
27 28 29 30 31
--------------------
- compatible:		Should be "pwm-regulator"

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

32
Only required for Voltage Table Mode:
33 34 35 36
- 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 (%)

37 38 39 40 41 42 43 44 45 46 47 48
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.

49 50 51
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.
52

53 54 55 56
Optional properties:
--------------------
- enable-gpios:		GPIO to use to enable/disable the regulator

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

60
Continuous Voltage With Enable GPIO Example:
61 62 63
	pwm_regulator {
		compatible = "pwm-regulator;
		pwms = <&pwm1 0 8448 0>;
64
		enable-gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>;
65 66 67
		regulator-min-microvolt = <1016000>;
		regulator-max-microvolt = <1114000>;
		regulator-name = "vdd_logic";
68 69 70 71 72 73 74
		/* 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>; /* */
75
	};
76

77 78 79 80 81 82 83 84 85
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 */
86 87 88 89 90 91 92
		voltage-table = <1114000 0>,
				<1095000 10>,
				<1076000 20>,
				<1056000 30>,
				<1036000 40>,
				<1016000 50>;
	};