xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunBinding for Samsung S2M family regulator block
2*4882a593Smuzhiyun==============================================
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunThis is a part of device tree bindings for S2M family multi-function devices.
5*4882a593SmuzhiyunMore information can be found in bindings/mfd/sec-core.txt file.
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunThe S2MPS11/13/14/15 and S2MPU02 devices provide buck and LDO regulators.
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunTo register these with regulator framework instantiate under main device node
10*4882a593Smuzhiyuna sub-node named "regulators" with more sub-nodes for each regulator using the
11*4882a593Smuzhiyuncommon regulator binding documented in:
12*4882a593Smuzhiyun - Documentation/devicetree/bindings/regulator/regulator.txt
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun
15*4882a593SmuzhiyunNames of regulators supported by different devices:
16*4882a593Smuzhiyun	- LDOn
17*4882a593Smuzhiyun		  - valid values for n are:
18*4882a593Smuzhiyun			- S2MPS11: 1 to 38
19*4882a593Smuzhiyun			- S2MPS13: 1 to 40
20*4882a593Smuzhiyun			- S2MPS14: 1 to 25
21*4882a593Smuzhiyun			- S2MPS15: 1 to 27
22*4882a593Smuzhiyun			- S2MPU02: 1 to 28
23*4882a593Smuzhiyun		  - Example: LDO1, LDO2, LDO28
24*4882a593Smuzhiyun	- BUCKn
25*4882a593Smuzhiyun		  - valid values for n are:
26*4882a593Smuzhiyun			- S2MPS11: 1 to 10
27*4882a593Smuzhiyun			- S2MPS13: 1 to 10
28*4882a593Smuzhiyun			- S2MPS14: 1 to 5
29*4882a593Smuzhiyun			- S2MPS15: 1 to 10
30*4882a593Smuzhiyun			- S2MPU02: 1 to 7
31*4882a593Smuzhiyun		  - Example: BUCK1, BUCK2, BUCK9
32*4882a593SmuzhiyunNote: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
33*4882a593Smuzhiyunas per the datasheet of device.
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun
36*4882a593SmuzhiyunOptional properties of the nodes under "regulators" sub-node:
37*4882a593Smuzhiyun - regulator-ramp-delay: ramp delay in uV/us. May be 6250, 12500,
38*4882a593Smuzhiyun   25000 (default) or 50000.
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun   Additionally S2MPS11 supports disabling ramp delay for BUCK{2,3,4,6}
41*4882a593Smuzhiyun   by setting it to <0>.
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun   Note: On S2MPS11 some bucks share the ramp rate setting i.e. same ramp value
44*4882a593Smuzhiyun   will be set for a particular group of bucks so provide the same
45*4882a593Smuzhiyun   regulator-ramp-delay value for them.
46*4882a593Smuzhiyun   Groups sharing ramp rate:
47*4882a593Smuzhiyun    - buck{1,6},
48*4882a593Smuzhiyun    - buck{3,4},
49*4882a593Smuzhiyun    - buck{7,8,10}.
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun - samsung,ext-control-gpios: On S2MPS14 the LDO10, LDO11 and LDO12 can be
52*4882a593Smuzhiyun   configured to external control over GPIO. To turn this feature on this
53*4882a593Smuzhiyun   property must be added to the regulator sub-node:
54*4882a593Smuzhiyun    - samsung,ext-control-gpios: GPIO specifier for one GPIO
55*4882a593Smuzhiyun                                 controlling this regulator (enable/disable)
56*4882a593Smuzhiyun  Example:
57*4882a593Smuzhiyun	LDO12 {
58*4882a593Smuzhiyun		regulator-name = "V_EMMC_2.8V";
59*4882a593Smuzhiyun		regulator-min-microvolt = <2800000>;
60*4882a593Smuzhiyun		regulator-max-microvolt = <2800000>;
61*4882a593Smuzhiyun		samsung,ext-control-gpios = <&gpk0 2 0>;
62*4882a593Smuzhiyun	};
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun
65*4882a593SmuzhiyunExample:
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun	s2mps11_pmic@66 {
68*4882a593Smuzhiyun		compatible = "samsung,s2mps11-pmic";
69*4882a593Smuzhiyun		reg = <0x66>;
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun		regulators {
72*4882a593Smuzhiyun			ldo1_reg: LDO1 {
73*4882a593Smuzhiyun				regulator-name = "VDD_ABB_3.3V";
74*4882a593Smuzhiyun				regulator-min-microvolt = <3300000>;
75*4882a593Smuzhiyun				regulator-max-microvolt = <3300000>;
76*4882a593Smuzhiyun			};
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun			ldo2_reg: LDO2 {
79*4882a593Smuzhiyun				regulator-name = "VDD_ALIVE_1.1V";
80*4882a593Smuzhiyun				regulator-min-microvolt = <1100000>;
81*4882a593Smuzhiyun				regulator-max-microvolt = <1100000>;
82*4882a593Smuzhiyun				regulator-always-on;
83*4882a593Smuzhiyun			};
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun			buck1_reg: BUCK1 {
86*4882a593Smuzhiyun				regulator-name = "vdd_mif";
87*4882a593Smuzhiyun				regulator-min-microvolt = <950000>;
88*4882a593Smuzhiyun				regulator-max-microvolt = <1350000>;
89*4882a593Smuzhiyun				regulator-always-on;
90*4882a593Smuzhiyun				regulator-boot-on;
91*4882a593Smuzhiyun			};
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun			buck2_reg: BUCK2 {
94*4882a593Smuzhiyun				regulator-name = "vdd_arm";
95*4882a593Smuzhiyun				regulator-min-microvolt = <950000>;
96*4882a593Smuzhiyun				regulator-max-microvolt = <1350000>;
97*4882a593Smuzhiyun				regulator-always-on;
98*4882a593Smuzhiyun				regulator-boot-on;
99*4882a593Smuzhiyun				regulator-ramp-delay = <50000>;
100*4882a593Smuzhiyun			};
101*4882a593Smuzhiyun		};
102*4882a593Smuzhiyun	};
103