File Index
Files and directories
Sign in
FILE

pca9450.h

File preview with syntax highlighting.

linux-6.19.14/include/linux/regulator/pca9450.h C
  1/* SPDX-License-Identifier: GPL-2.0-or-later */
  2/* Copyright 2020 NXP. */
  3
  4#ifndef __LINUX_REG_PCA9450_H__
  5#define __LINUX_REG_PCA9450_H__
  6
  7#include <linux/regmap.h>
  8
  9enum pca9450_chip_type {
 10	PCA9450_TYPE_PCA9450A = 0,
 11	PCA9450_TYPE_PCA9450BC,
 12	PCA9450_TYPE_PCA9451A,
 13	PCA9450_TYPE_PCA9452,
 14	PCA9450_TYPE_AMOUNT,
 15};
 16
 17enum {
 18	PCA9450_BUCK1 = 0,
 19	PCA9450_BUCK2,
 20	PCA9450_BUCK3,
 21	PCA9450_BUCK4,
 22	PCA9450_BUCK5,
 23	PCA9450_BUCK6,
 24	PCA9450_LDO1,
 25	PCA9450_LDO2,
 26	PCA9450_LDO3,
 27	PCA9450_LDO4,
 28	PCA9450_LDO5,
 29	PCA9450_REGULATOR_CNT,
 30};
 31
 32enum {
 33	PCA9450_DVS_LEVEL_RUN = 0,
 34	PCA9450_DVS_LEVEL_STANDBY,
 35	PCA9450_DVS_LEVEL_MAX,
 36};
 37
 38#define PCA9450_RESTART_HANDLER_PRIORITY 130
 39
 40#define PCA9450_BUCK1_VOLTAGE_NUM	0x80
 41#define PCA9450_BUCK2_VOLTAGE_NUM	0x80
 42#define PCA9450_BUCK3_VOLTAGE_NUM	0x80
 43#define PCA9450_BUCK4_VOLTAGE_NUM	0x80
 44
 45#define PCA9450_BUCK5_VOLTAGE_NUM	0x80
 46#define PCA9450_BUCK6_VOLTAGE_NUM	0x80
 47
 48#define PCA9450_LDO1_VOLTAGE_NUM	0x08
 49#define PCA9450_LDO2_VOLTAGE_NUM	0x08
 50#define PCA9450_LDO3_VOLTAGE_NUM	0x20
 51#define PCA9450_LDO4_VOLTAGE_NUM	0x20
 52#define PCA9450_LDO5_VOLTAGE_NUM	0x10
 53
 54enum {
 55	PCA9450_REG_DEV_ID	    = 0x00,
 56	PCA9450_REG_INT1	    = 0x01,
 57	PCA9450_REG_INT1_MSK	    = 0x02,
 58	PCA9450_REG_STATUS1	    = 0x03,
 59	PCA9450_REG_STATUS2	    = 0x04,
 60	PCA9450_REG_PWRON_STAT	    = 0x05,
 61	PCA9450_REG_SWRST	    = 0x06,
 62	PCA9450_REG_PWRCTRL         = 0x07,
 63	PCA9450_REG_RESET_CTRL      = 0x08,
 64	PCA9450_REG_CONFIG1         = 0x09,
 65	PCA9450_REG_CONFIG2         = 0x0A,
 66	PCA9450_REG_BUCK123_DVS     = 0x0C,
 67	PCA9450_REG_BUCK1OUT_LIMIT  = 0x0D,
 68	PCA9450_REG_BUCK2OUT_LIMIT  = 0x0E,
 69	PCA9450_REG_BUCK3OUT_LIMIT  = 0x0F,
 70	PCA9450_REG_BUCK1CTRL       = 0x10,
 71	PCA9450_REG_BUCK1OUT_DVS0   = 0x11,
 72	PCA9450_REG_BUCK1OUT_DVS1   = 0x12,
 73	PCA9450_REG_BUCK2CTRL       = 0x13,
 74	PCA9450_REG_BUCK2OUT_DVS0   = 0x14,
 75	PCA9450_REG_BUCK2OUT_DVS1   = 0x15,
 76	PCA9450_REG_BUCK3CTRL       = 0x16,
 77	PCA9450_REG_BUCK3OUT_DVS0   = 0x17,
 78	PCA9450_REG_BUCK3OUT_DVS1   = 0x18,
 79	PCA9450_REG_BUCK4CTRL       = 0x19,
 80	PCA9450_REG_BUCK4OUT        = 0x1A,
 81	PCA9450_REG_BUCK5CTRL       = 0x1B,
 82	PCA9450_REG_BUCK5OUT        = 0x1C,
 83	PCA9450_REG_BUCK6CTRL       = 0x1D,
 84	PCA9450_REG_BUCK6OUT        = 0x1E,
 85	PCA9450_REG_LDO_AD_CTRL     = 0x20,
 86	PCA9450_REG_LDO1CTRL        = 0x21,
 87	PCA9450_REG_LDO2CTRL        = 0x22,
 88	PCA9450_REG_LDO3CTRL        = 0x23,
 89	PCA9450_REG_LDO4CTRL        = 0x24,
 90	PCA9450_REG_LDO5CTRL_L      = 0x25,
 91	PCA9450_REG_LDO5CTRL_H      = 0x26,
 92	PCA9450_REG_LOADSW_CTRL     = 0x2A,
 93	PCA9450_REG_VRFLT1_STS      = 0x2B,
 94	PCA9450_REG_VRFLT2_STS      = 0x2C,
 95	PCA9450_REG_VRFLT1_MASK     = 0x2D,
 96	PCA9450_REG_VRFLT2_MASK     = 0x2E,
 97	PCA9450_MAX_REGISTER	    = 0x2F,
 98};
 99
100/* PCA9450 BUCK ENMODE bits */
101#define BUCK_ENMODE_OFF			0x00
102#define BUCK_ENMODE_ONREQ		0x01
103#define BUCK_ENMODE_ONREQ_STBYREQ	0x02
104#define BUCK_ENMODE_ON			0x03
105
106/* PCA9450_REG_BUCK1_CTRL bits */
107#define BUCK1_RAMP_MASK			0xC0
108#define BUCK1_RAMP_25MV			0x0
109#define BUCK1_RAMP_12P5MV		0x1
110#define BUCK1_RAMP_6P25MV		0x2
111#define BUCK1_RAMP_3P125MV		0x3
112#define BUCK1_DVS_CTRL			0x10
113#define BUCK1_AD			0x08
114#define BUCK1_FPWM			0x04
115#define BUCK1_ENMODE_MASK		0x03
116
117/* PCA9450_REG_BUCK2_CTRL bits */
118#define BUCK2_RAMP_MASK			0xC0
119#define BUCK2_RAMP_25MV			0x0
120#define BUCK2_RAMP_12P5MV		0x1
121#define BUCK2_RAMP_6P25MV		0x2
122#define BUCK2_RAMP_3P125MV		0x3
123#define BUCK2_DVS_CTRL			0x10
124#define BUCK2_AD			0x08
125#define BUCK2_FPWM			0x04
126#define BUCK2_ENMODE_MASK		0x03
127
128/* PCA9450_REG_BUCK3_CTRL bits */
129#define BUCK3_RAMP_MASK			0xC0
130#define BUCK3_RAMP_25MV			0x0
131#define BUCK3_RAMP_12P5MV		0x1
132#define BUCK3_RAMP_6P25MV		0x2
133#define BUCK3_RAMP_3P125MV		0x3
134#define BUCK3_DVS_CTRL			0x10
135#define BUCK3_AD			0x08
136#define BUCK3_FPWM			0x04
137#define BUCK3_ENMODE_MASK		0x03
138
139/* PCA9450_REG_BUCK4_CTRL bits */
140#define BUCK4_AD			0x08
141#define BUCK4_FPWM			0x04
142#define BUCK4_ENMODE_MASK		0x03
143
144/* PCA9450_REG_BUCK5_CTRL bits */
145#define BUCK5_AD			0x08
146#define BUCK5_FPWM			0x04
147#define BUCK5_ENMODE_MASK		0x03
148
149/* PCA9450_REG_BUCK6_CTRL bits */
150#define BUCK6_AD			0x08
151#define BUCK6_FPWM			0x04
152#define BUCK6_ENMODE_MASK		0x03
153
154/* PCA9450_REG_BUCK123_PRESET_EN bit */
155#define BUCK123_PRESET_EN		0x80
156
157/* PCA9450_BUCK1OUT_DVS0 bits */
158#define BUCK1OUT_DVS0_MASK		0x7F
159#define BUCK1OUT_DVS0_DEFAULT		0x14
160
161/* PCA9450_BUCK1OUT_DVS1 bits */
162#define BUCK1OUT_DVS1_MASK		0x7F
163#define BUCK1OUT_DVS1_DEFAULT		0x14
164
165/* PCA9450_BUCK2OUT_DVS0 bits */
166#define BUCK2OUT_DVS0_MASK		0x7F
167#define BUCK2OUT_DVS0_DEFAULT		0x14
168
169/* PCA9450_BUCK2OUT_DVS1 bits */
170#define BUCK2OUT_DVS1_MASK		0x7F
171#define BUCK2OUT_DVS1_DEFAULT		0x14
172
173/* PCA9450_BUCK3OUT_DVS0 bits */
174#define BUCK3OUT_DVS0_MASK		0x7F
175#define BUCK3OUT_DVS0_DEFAULT		0x14
176
177/* PCA9450_BUCK3OUT_DVS1 bits */
178#define BUCK3OUT_DVS1_MASK		0x7F
179#define BUCK3OUT_DVS1_DEFAULT		0x14
180
181/* PCA9450_REG_BUCK4OUT bits */
182#define BUCK4OUT_MASK			0x7F
183#define BUCK4OUT_DEFAULT		0x6C
184
185/* PCA9450_REG_BUCK5OUT bits */
186#define BUCK5OUT_MASK			0x7F
187#define BUCK5OUT_DEFAULT		0x30
188
189/* PCA9450_REG_BUCK6OUT bits */
190#define BUCK6OUT_MASK			0x7F
191#define BUCK6OUT_DEFAULT		0x14
192
193/* PCA9450_REG_LDO1_VOLT bits */
194#define LDO1_EN_MASK			0xC0
195#define LDO1OUT_MASK			0x07
196
197/* PCA9450_REG_LDO2_VOLT bits */
198#define LDO2_EN_MASK			0xC0
199#define LDO2OUT_MASK			0x07
200
201/* PCA9450_REG_LDO3_VOLT bits */
202#define LDO3_EN_MASK			0xC0
203#define LDO3OUT_MASK			0x1F
204
205/* PCA9450_REG_LDO4_VOLT bits */
206#define LDO4_EN_MASK			0xC0
207#define LDO4OUT_MASK			0x1F
208
209/* PCA9450_REG_LDO5_VOLT bits */
210#define LDO5L_EN_MASK			0xC0
211#define LDO5LOUT_MASK			0x0F
212
213#define LDO5H_EN_MASK			0xC0
214#define LDO5HOUT_MASK			0x0F
215
216/* PCA9450_REG_IRQ bits */
217#define IRQ_PWRON			0x80
218#define IRQ_WDOGB			0x40
219#define IRQ_RSVD			0x20
220#define IRQ_VR_FLT1			0x10
221#define IRQ_VR_FLT2			0x08
222#define IRQ_LOWVSYS			0x04
223#define IRQ_THERM_105			0x02
224#define IRQ_THERM_125			0x01
225
226/* PCA9450_REG_PWRCTRL bits */
227#define T_ON_DEB_MASK			0xC0
228#define T_ON_DEB_120US			(0 << 6)
229#define T_ON_DEB_20MS			(1 << 6)
230#define T_ON_DEB_100MS			(2 << 6)
231#define T_ON_DEB_750MS			(3 << 6)
232#define T_OFF_DEB_MASK			0x20
233#define T_OFF_DEB_120US			(0 << 5)
234#define T_OFF_DEB_2MS			(1 << 5)
235#define T_ON_STEP_MASK			0x18
236#define T_ON_STEP_1MS			(0 << 3)
237#define T_ON_STEP_2MS			(1 << 3)
238#define T_ON_STEP_4MS			(2 << 3)
239#define T_ON_STEP_8MS			(3 << 3)
240#define T_OFF_STEP_MASK			0x06
241#define T_OFF_STEP_2MS			(0 << 1)
242#define T_OFF_STEP_4MS			(1 << 1)
243#define T_OFF_STEP_8MS			(2 << 1)
244#define T_OFF_STEP_16MS			(3 << 1)
245#define T_RESTART_MASK			0x01
246#define T_RESTART_250MS			0
247#define T_RESTART_500MS			1
248
249/* PCA9450_REG_RESET_CTRL bits */
250#define WDOG_B_CFG_MASK			0xC0
251#define WDOG_B_CFG_NONE			0x00
252#define WDOG_B_CFG_WARM			0x40
253#define WDOG_B_CFG_COLD_LDO12		0x80
254#define WDOG_B_CFG_COLD			0xC0
255#define T_PMIC_RST_DEB_MASK		0x07
256#define T_PMIC_RST_DEB_10MS		0x00
257#define T_PMIC_RST_DEB_50MS		0x01
258#define T_PMIC_RST_DEB_100MS		0x02
259#define T_PMIC_RST_DEB_500MS		0x03
260#define T_PMIC_RST_DEB_1S		0x04
261#define T_PMIC_RST_DEB_2S		0x05
262#define T_PMIC_RST_DEB_4S		0x06
263#define T_PMIC_RST_DEB_8S		0x07
264
265/* PCA9450_REG_CONFIG2 bits */
266#define I2C_LT_MASK			0x03
267#define I2C_LT_FORCE_DISABLE		0x00
268#define I2C_LT_ON_STANDBY_RUN		0x01
269#define I2C_LT_ON_RUN			0x02
270#define I2C_LT_FORCE_ENABLE		0x03
271
272/* PCA9450_REG_SW_RST command */
273#define SW_RST_COMMAND			0x14
274
275#endif /* __LINUX_REG_PCA9450_H__ */
~/ Read-only file preview.