1 /* SPDX-License-Identifier: GPL-2.0+ */
3 * Copyright (c) 2014 Samsung Electronics Co., Ltd
4 * http://www.samsung.com
7 #ifndef __LINUX_MFD_S2MPU02_H
8 #define __LINUX_MFD_S2MPU02_H
10 /* S2MPU02 registers */
100 /* S2MPU02 regulator ids */
101 enum S2MPU02_regulators {
138 S2MPU02_REGULATOR_MAX,
141 /* Regulator constraints for BUCKx */
142 #define S2MPU02_BUCK1234_MIN_600MV 600000
143 #define S2MPU02_BUCK5_MIN_1081_25MV 1081250
144 #define S2MPU02_BUCK6_MIN_1700MV 1700000
145 #define S2MPU02_BUCK7_MIN_900MV 900000
147 #define S2MPU02_BUCK1234_STEP_6_25MV 6250
148 #define S2MPU02_BUCK5_STEP_6_25MV 6250
149 #define S2MPU02_BUCK6_STEP_2_50MV 2500
150 #define S2MPU02_BUCK7_STEP_6_25MV 6250
152 #define S2MPU02_BUCK1234_START_SEL 0x00
153 #define S2MPU02_BUCK5_START_SEL 0x4D
154 #define S2MPU02_BUCK6_START_SEL 0x28
155 #define S2MPU02_BUCK7_START_SEL 0x30
157 #define S2MPU02_BUCK_RAMP_DELAY 12500
159 /* Regulator constraints for different types of LDOx */
160 #define S2MPU02_LDO_MIN_900MV 900000
161 #define S2MPU02_LDO_MIN_1050MV 1050000
162 #define S2MPU02_LDO_MIN_1600MV 1600000
163 #define S2MPU02_LDO_STEP_12_5MV 12500
164 #define S2MPU02_LDO_STEP_25MV 25000
165 #define S2MPU02_LDO_STEP_50MV 50000
167 #define S2MPU02_LDO_GROUP1_START_SEL 0x8
168 #define S2MPU02_LDO_GROUP2_START_SEL 0xA
169 #define S2MPU02_LDO_GROUP3_START_SEL 0x10
171 #define S2MPU02_LDO_VSEL_MASK 0x3F
172 #define S2MPU02_BUCK_VSEL_MASK 0xFF
173 #define S2MPU02_ENABLE_MASK (0x03 << S2MPU02_ENABLE_SHIFT)
174 #define S2MPU02_ENABLE_SHIFT 6
176 /* On/Off controlled by PWREN */
177 #define S2MPU02_ENABLE_SUSPEND (0x01 << S2MPU02_ENABLE_SHIFT)
178 #define S2MPU02_DISABLE_SUSPEND (0x11 << S2MPU02_ENABLE_SHIFT)
179 #define S2MPU02_LDO_N_VOLTAGES (S2MPU02_LDO_VSEL_MASK + 1)
180 #define S2MPU02_BUCK_N_VOLTAGES (S2MPU02_BUCK_VSEL_MASK + 1)
182 /* RAMP delay for BUCK1234*/
183 #define S2MPU02_BUCK1_RAMP_SHIFT 6
184 #define S2MPU02_BUCK2_RAMP_SHIFT 4
185 #define S2MPU02_BUCK3_RAMP_SHIFT 2
186 #define S2MPU02_BUCK4_RAMP_SHIFT 0
187 #define S2MPU02_BUCK1234_RAMP_MASK 0x3
189 #endif /* __LINUX_MFD_S2MPU02_H */