1 2* Samsung S2MPS11/13/14/15 and S2MPU02 Voltage and Current Regulator 3 4The Samsung S2MPS11 is a multi-function device which includes voltage and 5current regulators, RTC, charger controller and other sub-blocks. It is 6interfaced to the host controller using an I2C interface. Each sub-block is 7addressed by the host system using different I2C slave addresses. 8 9Required properties: 10- compatible: Should be one of the following 11 - "samsung,s2mps11-pmic" 12 - "samsung,s2mps13-pmic" 13 - "samsung,s2mps14-pmic" 14 - "samsung,s2mps15-pmic" 15 - "samsung,s2mpu02-pmic". 16- reg: Specifies the I2C slave address of the pmic block. It should be 0x66. 17 18Optional properties: 19- interrupt-parent: Specifies the phandle of the interrupt controller to which 20 the interrupts from s2mps11 are delivered to. 21- interrupts: Interrupt specifiers for interrupt sources. 22- samsung,s2mps11-wrstbi-ground: Indicates that WRSTBI pin of PMIC is pulled 23 down. When the system is suspended it will always go down thus triggerring 24 unwanted buck warm reset (setting buck voltages to default values). 25- samsung,s2mps11-acokb-ground: Indicates that ACOKB pin of S2MPS11 PMIC is 26 connected to the ground so the PMIC must manually set PWRHOLD bit in CTRL1 27 register to turn off the power. Usually the ACOKB is pulled up to VBATT so 28 when PWRHOLD pin goes low, the rising ACOKB will trigger power off. 29 30Optional nodes: 31- clocks: s2mps11, s2mps13, s2mps15 and s5m8767 provide three(AP/CP/BT) buffered 32.768 32 KHz outputs, so to register these as clocks with common clock framework 33 instantiate a sub-node named "clocks". It uses the common clock binding 34 documented in : 35 [Documentation/devicetree/bindings/clock/clock-bindings.txt] 36 The s2mps14 provides two (AP/BT) buffered 32.768 KHz outputs. 37 - #clock-cells: should be 1. 38 39 - The following is the list of clocks generated by the controller. Each clock 40 is assigned an identifier and client nodes use this identifier to specify 41 the clock which they consume. 42 Clock ID Devices 43 ---------------------------------------------------------- 44 32KhzAP 0 S2MPS11, S2MPS13, S2MPS14, S2MPS15, S5M8767 45 32KhzCP 1 S2MPS11, S2MPS13, S2MPS15, S5M8767 46 32KhzBT 2 S2MPS11, S2MPS13, S2MPS14, S2MPS15, S5M8767 47 48 - compatible: Should be one of: "samsung,s2mps11-clk", "samsung,s2mps13-clk", 49 "samsung,s2mps14-clk", "samsung,s5m8767-clk" 50 The s2msp15 uses the same compatible as s2mps13, as both provides similar clocks. 51 52- regulators: The regulators of s2mps11 that have to be instantiated should be 53included in a sub-node named 'regulators'. Regulator nodes included in this 54sub-node should be of the format as listed below. 55 56 regulator_name { 57 [standard regulator constraints....]; 58 }; 59 60 regulator-ramp-delay for BUCKs = [6250/12500/25000(default)/50000] uV/us 61 62 BUCK[2/3/4/6] supports disabling ramp delay on hardware, so explicitly 63 regulator-ramp-delay = <0> can be used for them to disable ramp delay. 64 In the absence of the regulator-ramp-delay property, the default ramp 65 delay will be used. 66 67NOTE: Some BUCKs share the ramp rate setting i.e. same ramp value will be set 68for a particular group of BUCKs. So provide same regulator-ramp-delay<value>. 69Grouping of BUCKs sharing ramp rate setting is as follow : BUCK[1, 6], 70BUCK[3, 4], and BUCK[7, 8, 10] 71 72On S2MPS14 the LDO10, LDO11 and LDO12 can be configured to external control 73over GPIO. To turn this feature on this property must be added to the regulator 74sub-node: 75 - samsung,ext-control-gpios: GPIO specifier for one GPIO 76 controlling this regulator (enable/disable); 77Example: 78 LDO12 { 79 regulator-name = "V_EMMC_2.8V"; 80 regulator-min-microvolt = <2800000>; 81 regulator-max-microvolt = <2800000>; 82 samsung,ext-control-gpios = <&gpk0 2 0>; 83 }; 84 85 86The regulator constraints inside the regulator nodes use the standard regulator 87bindings which are documented elsewhere. 88 89The following are the names of the regulators that the s2mps11 pmic block 90supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number 91as per the datasheet of s2mps11. 92 93 - LDOn 94 - valid values for n are: 95 - S2MPS11: 1 to 38 96 - S2MPS13: 1 to 40 97 - S2MPS14: 1 to 25 98 - S2MPS15: 1 to 27 99 - S2MPU02: 1 to 28 100 - Example: LDO1, LDO2, LDO28 101 - BUCKn 102 - valid values for n are: 103 - S2MPS11: 1 to 10 104 - S2MPS13: 1 to 10 105 - S2MPS14: 1 to 5 106 - S2MPS15: 1 to 10 107 - S2MPU02: 1 to 7 108 - Example: BUCK1, BUCK2, BUCK9 109 110Example: 111 112 s2mps11_pmic@66 { 113 compatible = "samsung,s2mps11-pmic"; 114 reg = <0x66>; 115 116 s2m_osc: clocks { 117 compatible = "samsung,s2mps11-clk"; 118 #clock-cells = <1>; 119 clock-output-names = "xx", "yy", "zz"; 120 }; 121 122 regulators { 123 ldo1_reg: LDO1 { 124 regulator-name = "VDD_ABB_3.3V"; 125 regulator-min-microvolt = <3300000>; 126 regulator-max-microvolt = <3300000>; 127 }; 128 129 ldo2_reg: LDO2 { 130 regulator-name = "VDD_ALIVE_1.1V"; 131 regulator-min-microvolt = <1100000>; 132 regulator-max-microvolt = <1100000>; 133 regulator-always-on; 134 }; 135 136 buck1_reg: BUCK1 { 137 regulator-name = "vdd_mif"; 138 regulator-min-microvolt = <950000>; 139 regulator-max-microvolt = <1350000>; 140 regulator-always-on; 141 regulator-boot-on; 142 }; 143 144 buck2_reg: BUCK2 { 145 regulator-name = "vdd_arm"; 146 regulator-min-microvolt = <950000>; 147 regulator-max-microvolt = <1350000>; 148 regulator-always-on; 149 regulator-boot-on; 150 regulator-ramp-delay = <50000>; 151 }; 152 }; 153 }; 154