xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/mfd/tps65910.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunTPS65910 Power Management Integrated Circuit
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunRequired properties:
4*4882a593Smuzhiyun- compatible: "ti,tps65910" or "ti,tps65911"
5*4882a593Smuzhiyun- reg: I2C slave address
6*4882a593Smuzhiyun- interrupts: the interrupt outputs of the controller
7*4882a593Smuzhiyun- #gpio-cells: number of cells to describe a GPIO, this should be 2.
8*4882a593Smuzhiyun  The first cell is the GPIO number.
9*4882a593Smuzhiyun  The second cell is used to specify additional options <unused>.
10*4882a593Smuzhiyun- gpio-controller: mark the device as a GPIO controller
11*4882a593Smuzhiyun- #interrupt-cells: the number of cells to describe an IRQ, this should be 2.
12*4882a593Smuzhiyun  The first cell is the IRQ number.
13*4882a593Smuzhiyun  The second cell is the flags, encoded as the trigger masks from
14*4882a593Smuzhiyun  Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
15*4882a593Smuzhiyun- regulators: This is the list of child nodes that specify the regulator
16*4882a593Smuzhiyun  initialization data for defined regulators. Not all regulators for the given
17*4882a593Smuzhiyun  device need to be present. The definition for each of these nodes is defined
18*4882a593Smuzhiyun  using the standard binding for regulators found at
19*4882a593Smuzhiyun  Documentation/devicetree/bindings/regulator/regulator.txt.
20*4882a593Smuzhiyun  The regulator is matched with the regulator-compatible.
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun  The valid regulator-compatible values are:
23*4882a593Smuzhiyun  tps65910: vrtc, vio, vdd1, vdd2, vdd3, vdig1, vdig2, vpll, vdac, vaux1,
24*4882a593Smuzhiyun            vaux2, vaux33, vmmc, vbb
25*4882a593Smuzhiyun  tps65911: vrtc, vio, vdd1, vdd2, vddctrl, ldo1, ldo2, ldo3, ldo4, ldo5,
26*4882a593Smuzhiyun            ldo6, ldo7, ldo8
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun- xxx-supply: Input voltage supply regulator.
29*4882a593Smuzhiyun  These entries are required if regulators are enabled for a device. Missing these
30*4882a593Smuzhiyun  properties can cause the regulator registration to fail.
31*4882a593Smuzhiyun  If some of input supply is powered through battery or always-on supply then
32*4882a593Smuzhiyun  also it is require to have these parameters with proper node handle of always
33*4882a593Smuzhiyun  on power supply.
34*4882a593Smuzhiyun  tps65910:
35*4882a593Smuzhiyun	vcc1-supply: VDD1 input.
36*4882a593Smuzhiyun	vcc2-supply: VDD2 input.
37*4882a593Smuzhiyun	vcc3-supply: VAUX33 and VMMC input.
38*4882a593Smuzhiyun	vcc4-supply: VAUX1 and VAUX2 input.
39*4882a593Smuzhiyun	vcc5-supply: VPLL and VDAC input.
40*4882a593Smuzhiyun	vcc6-supply: VDIG1 and VDIG2 input.
41*4882a593Smuzhiyun	vcc7-supply: VRTC and VBB input.
42*4882a593Smuzhiyun	vccio-supply: VIO input.
43*4882a593Smuzhiyun  tps65911:
44*4882a593Smuzhiyun	vcc1-supply: VDD1 input.
45*4882a593Smuzhiyun	vcc2-supply: VDD2 input.
46*4882a593Smuzhiyun	vcc3-supply: LDO6, LDO7 and LDO8 input.
47*4882a593Smuzhiyun	vcc4-supply: LDO5 input.
48*4882a593Smuzhiyun	vcc5-supply: LDO3 and LDO4 input.
49*4882a593Smuzhiyun	vcc6-supply: LDO1 and LDO2 input.
50*4882a593Smuzhiyun	vcc7-supply: VRTC input.
51*4882a593Smuzhiyun	vccio-supply: VIO input.
52*4882a593Smuzhiyun
53*4882a593SmuzhiyunOptional properties:
54*4882a593Smuzhiyun- ti,vmbch-threshold: (tps65911) main battery charged threshold
55*4882a593Smuzhiyun  comparator. (see VMBCH_VSEL in TPS65910 datasheet)
56*4882a593Smuzhiyun- ti,vmbch2-threshold: (tps65911) main battery discharged threshold
57*4882a593Smuzhiyun  comparator. (see VMBCH_VSEL in TPS65910 datasheet)
58*4882a593Smuzhiyun- ti,en-ck32k-xtal: enable external 32-kHz crystal oscillator (see CK32K_CTRL
59*4882a593Smuzhiyun  in TPS6591X datasheet)
60*4882a593Smuzhiyun- ti,en-gpio-sleep: enable sleep control for gpios
61*4882a593Smuzhiyun  There should be 9 entries here, one for each gpio.
62*4882a593Smuzhiyun- ti,system-power-controller: Telling whether or not this pmic is controlling
63*4882a593Smuzhiyun  the system power.
64*4882a593Smuzhiyun- ti,sleep-enable: Enable SLEEP state.
65*4882a593Smuzhiyun- ti,sleep-keep-therm: Keep thermal monitoring on in sleep state.
66*4882a593Smuzhiyun- ti,sleep-keep-ck32k: Keep the 32KHz clock output on in sleep state.
67*4882a593Smuzhiyun- ti,sleep-keep-hsclk: Keep high speed internal clock on in sleep state.
68*4882a593Smuzhiyun
69*4882a593SmuzhiyunRegulator Optional properties:
70*4882a593Smuzhiyun- ti,regulator-ext-sleep-control: enable external sleep
71*4882a593Smuzhiyun  control through external inputs [0 (not enabled), 1 (EN1), 2 (EN2) or 4(EN3)]
72*4882a593Smuzhiyun  If this property is not defined, it defaults to 0 (not enabled).
73*4882a593Smuzhiyun
74*4882a593SmuzhiyunExample:
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun	pmu: tps65910@d2 {
77*4882a593Smuzhiyun		compatible = "ti,tps65910";
78*4882a593Smuzhiyun		reg = <0xd2>;
79*4882a593Smuzhiyun		interrupt-parent = <&intc>;
80*4882a593Smuzhiyun		interrupts = < 0 118 0x04 >;
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun		#gpio-cells = <2>;
83*4882a593Smuzhiyun		gpio-controller;
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun		#interrupt-cells = <2>;
86*4882a593Smuzhiyun		interrupt-controller;
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun		ti,system-power-controller;
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun		ti,vmbch-threshold = 0;
91*4882a593Smuzhiyun		ti,vmbch2-threshold = 0;
92*4882a593Smuzhiyun		ti,en-ck32k-xtal;
93*4882a593Smuzhiyun		ti,en-gpio-sleep = <0 0 1 0 0 0 0 0 0>;
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun		vcc1-supply = <&reg_parent>;
96*4882a593Smuzhiyun		vcc2-supply = <&some_reg>;
97*4882a593Smuzhiyun		vcc3-supply = <...>;
98*4882a593Smuzhiyun		vcc4-supply = <...>;
99*4882a593Smuzhiyun		vcc5-supply = <...>;
100*4882a593Smuzhiyun		vcc6-supply = <...>;
101*4882a593Smuzhiyun		vcc7-supply = <...>;
102*4882a593Smuzhiyun		vccio-supply = <...>;
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun		regulators {
105*4882a593Smuzhiyun			#address-cells = <1>;
106*4882a593Smuzhiyun			#size-cells = <0>;
107*4882a593Smuzhiyun
108*4882a593Smuzhiyun			vdd1_reg: regulator@0 {
109*4882a593Smuzhiyun				regulator-compatible = "vdd1";
110*4882a593Smuzhiyun				reg = <0>;
111*4882a593Smuzhiyun				regulator-min-microvolt = < 600000>;
112*4882a593Smuzhiyun				regulator-max-microvolt = <1500000>;
113*4882a593Smuzhiyun				regulator-always-on;
114*4882a593Smuzhiyun				regulator-boot-on;
115*4882a593Smuzhiyun				ti,regulator-ext-sleep-control = <0>;
116*4882a593Smuzhiyun			};
117*4882a593Smuzhiyun			vdd2_reg: regulator@1 {
118*4882a593Smuzhiyun				regulator-compatible = "vdd2";
119*4882a593Smuzhiyun				reg = <1>;
120*4882a593Smuzhiyun				regulator-min-microvolt = < 600000>;
121*4882a593Smuzhiyun				regulator-max-microvolt = <1500000>;
122*4882a593Smuzhiyun				regulator-always-on;
123*4882a593Smuzhiyun				regulator-boot-on;
124*4882a593Smuzhiyun				ti,regulator-ext-sleep-control = <4>;
125*4882a593Smuzhiyun			};
126*4882a593Smuzhiyun			vddctrl_reg: regulator@2 {
127*4882a593Smuzhiyun				regulator-compatible = "vddctrl";
128*4882a593Smuzhiyun				reg = <2>;
129*4882a593Smuzhiyun				regulator-min-microvolt = < 600000>;
130*4882a593Smuzhiyun				regulator-max-microvolt = <1400000>;
131*4882a593Smuzhiyun				regulator-always-on;
132*4882a593Smuzhiyun				regulator-boot-on;
133*4882a593Smuzhiyun				ti,regulator-ext-sleep-control = <0>;
134*4882a593Smuzhiyun			};
135*4882a593Smuzhiyun			vio_reg: regulator@3 {
136*4882a593Smuzhiyun				regulator-compatible = "vio";
137*4882a593Smuzhiyun				reg = <3>;
138*4882a593Smuzhiyun				regulator-min-microvolt = <1500000>;
139*4882a593Smuzhiyun				regulator-max-microvolt = <1800000>;
140*4882a593Smuzhiyun				regulator-always-on;
141*4882a593Smuzhiyun				regulator-boot-on;
142*4882a593Smuzhiyun				ti,regulator-ext-sleep-control = <1>;
143*4882a593Smuzhiyun			};
144*4882a593Smuzhiyun			ldo1_reg: regulator@4 {
145*4882a593Smuzhiyun				regulator-compatible = "ldo1";
146*4882a593Smuzhiyun				reg = <4>;
147*4882a593Smuzhiyun				regulator-min-microvolt = <1000000>;
148*4882a593Smuzhiyun				regulator-max-microvolt = <3300000>;
149*4882a593Smuzhiyun				ti,regulator-ext-sleep-control = <0>;
150*4882a593Smuzhiyun			};
151*4882a593Smuzhiyun			ldo2_reg: regulator@5 {
152*4882a593Smuzhiyun				regulator-compatible = "ldo2";
153*4882a593Smuzhiyun				reg = <5>;
154*4882a593Smuzhiyun				regulator-min-microvolt = <1050000>;
155*4882a593Smuzhiyun				regulator-max-microvolt = <1050000>;
156*4882a593Smuzhiyun				ti,regulator-ext-sleep-control = <0>;
157*4882a593Smuzhiyun			};
158*4882a593Smuzhiyun			ldo3_reg: regulator@6 {
159*4882a593Smuzhiyun				regulator-compatible = "ldo3";
160*4882a593Smuzhiyun				reg = <6>;
161*4882a593Smuzhiyun				regulator-min-microvolt = <1000000>;
162*4882a593Smuzhiyun				regulator-max-microvolt = <3300000>;
163*4882a593Smuzhiyun				ti,regulator-ext-sleep-control = <0>;
164*4882a593Smuzhiyun			};
165*4882a593Smuzhiyun			ldo4_reg: regulator@7 {
166*4882a593Smuzhiyun				regulator-compatible = "ldo4";
167*4882a593Smuzhiyun				reg = <7>;
168*4882a593Smuzhiyun				regulator-min-microvolt = <1000000>;
169*4882a593Smuzhiyun				regulator-max-microvolt = <3300000>;
170*4882a593Smuzhiyun				regulator-always-on;
171*4882a593Smuzhiyun				ti,regulator-ext-sleep-control = <0>;
172*4882a593Smuzhiyun			};
173*4882a593Smuzhiyun			ldo5_reg: regulator@8 {
174*4882a593Smuzhiyun				regulator-compatible = "ldo5";
175*4882a593Smuzhiyun				reg = <8>;
176*4882a593Smuzhiyun				regulator-min-microvolt = <1000000>;
177*4882a593Smuzhiyun				regulator-max-microvolt = <3300000>;
178*4882a593Smuzhiyun				ti,regulator-ext-sleep-control = <0>;
179*4882a593Smuzhiyun			};
180*4882a593Smuzhiyun			ldo6_reg: regulator@9 {
181*4882a593Smuzhiyun				regulator-compatible = "ldo6";
182*4882a593Smuzhiyun				reg = <9>;
183*4882a593Smuzhiyun				regulator-min-microvolt = <1200000>;
184*4882a593Smuzhiyun				regulator-max-microvolt = <1200000>;
185*4882a593Smuzhiyun				ti,regulator-ext-sleep-control = <0>;
186*4882a593Smuzhiyun			};
187*4882a593Smuzhiyun			ldo7_reg: regulator@10 {
188*4882a593Smuzhiyun				regulator-compatible = "ldo7";
189*4882a593Smuzhiyun				reg = <10>;
190*4882a593Smuzhiyun				regulator-min-microvolt = <1200000>;
191*4882a593Smuzhiyun				regulator-max-microvolt = <1200000>;
192*4882a593Smuzhiyun				regulator-always-on;
193*4882a593Smuzhiyun				regulator-boot-on;
194*4882a593Smuzhiyun				ti,regulator-ext-sleep-control = <1>;
195*4882a593Smuzhiyun			};
196*4882a593Smuzhiyun			ldo8_reg: regulator@11 {
197*4882a593Smuzhiyun				regulator-compatible = "ldo8";
198*4882a593Smuzhiyun				reg = <11>;
199*4882a593Smuzhiyun				regulator-min-microvolt = <1000000>;
200*4882a593Smuzhiyun				regulator-max-microvolt = <3300000>;
201*4882a593Smuzhiyun				regulator-always-on;
202*4882a593Smuzhiyun				ti,regulator-ext-sleep-control = <1>;
203*4882a593Smuzhiyun			};
204*4882a593Smuzhiyun		};
205*4882a593Smuzhiyun	};
206