blob: 4f99e3f84688176446669ffde393f8b16f9d178e [file] [log] [blame]
AleX Pelosia45a5742020-09-01 18:41:01 -07001/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * machine generated DO NOT MODIFY
4 * source MW_regmap_082720.csv
5 * 2020-09-01
6 */
7
8#ifndef MAX77759_A1_REG_H_
9#define MAX77759_A1_REG_H_
10
11#include <linux/bits.h>
12
13#define MAX77759_BFF(name, h, l) \
14static inline uint8_t _ ## name ## _set(uint8_t r, uint8_t v) \
15{ \
16 return ((r & ~GENMASK(h, l)) | v << l); \
17} \
18\
19static inline uint8_t _ ## name ## _get(uint8_t r) \
20{ \
21 return ((r & GENMASK(h, l)) >> l); \
22}
23
24
25#define FIELD2VALUE(field,value) \
26 (((value) & field##_MASK) >> field##_SHIFT)
27#define VALUE2FIELD(field, value) \
28 (((value) << field##_SHIFT) & field##_MASK)
29
30
31
32/* section: PMIC */
33
34/*
35 * PMIC_ID,0x0,0b00111011,0x3b
36 * ID[7:0],,,,,,
37 */
38#define MAX77759_PMIC_PMIC_ID 0x0
39
40/*
41 * PMIC_REVISION,0x1,0b00000010,0x02
42 * VER[4:0],,,,,REV[2:0],
43 */
44#define MAX77759_PMIC_PMIC_REVISION 0x1
45
46#define MAX77759_PMIC_PMIC_REVISION_VER_SHIFT 3
47#define MAX77759_PMIC_PMIC_REVISION_VER_MASK (0x1f << 3)
48#define MAX77759_PMIC_PMIC_REVISION_VER_CLEAR (~(0x1f << 3))
49#define MAX77759_PMIC_PMIC_REVISION_REV_SHIFT 0
50#define MAX77759_PMIC_PMIC_REVISION_REV_MASK (0x7 << 0)
51#define MAX77759_PMIC_PMIC_REVISION_REV_CLEAR (~(0x7 << 0))
52
53MAX77759_BFF(pmic_pmic_revision_ver,7,3)
54MAX77759_BFF(pmic_pmic_revision_rev,2,0)
55static inline const char *
56max77759_pmic_pmic_revision_cstr(char *buff, size_t len, int val)
57{
58#ifdef SCNPRINTF
59 int i = 0;
60
61 i += SCNPRINTF(&buff[i], len - i, " VER=%x",
62 FIELD2VALUE(MAX77759_PMIC_PMIC_REVISION_VER, val));
63 i += SCNPRINTF(&buff[i], len - i, " REV=%x",
64 FIELD2VALUE(MAX77759_PMIC_PMIC_REVISION_REV, val));
65#else
66 buff[0] = 0;
67#endif
68 return buff;
69}
70
71/*
72 * OTP_REVISION,0x2,0b00000000,0x00
73 * OTP_REV[7:0],,,,,,
74 */
75#define MAX77759_PMIC_OTP_REVISION 0x2
76
77/*
78 * INTSRC,0x22,0b00000000,0x00
79 * SPR_7_4[3:0],,,,MAXQ_INT,SPR_3,TOPSYS_INT
80 */
81#define MAX77759_PMIC_INTSRC 0x22
82#define MAX77759_PMIC_INTSRC_MAXQ_INT (0x1 << 3)
83#define MAX77759_PMIC_INTSRC_SPR_3 (0x1 << 2)
84#define MAX77759_PMIC_INTSRC_TOPSYS_INT (0x1 << 1)
85#define MAX77759_PMIC_INTSRC_CHGR_INT (0x1 << 0)
86
87#define MAX77759_PMIC_INTSRC_SPR_7_4_SHIFT 4
88#define MAX77759_PMIC_INTSRC_SPR_7_4_MASK (0xf << 4)
89#define MAX77759_PMIC_INTSRC_SPR_7_4_CLEAR (~(0xf << 4))
90#define MAX77759_PMIC_INTSRC_MAXQ_INT_SHIFT 3
91#define MAX77759_PMIC_INTSRC_MAXQ_INT_MASK (0x1 << 3)
92#define MAX77759_PMIC_INTSRC_MAXQ_INT_CLEAR (~(0x1 << 3))
93#define MAX77759_PMIC_INTSRC_SPR_3_SHIFT 2
94#define MAX77759_PMIC_INTSRC_SPR_3_MASK (0x1 << 2)
95#define MAX77759_PMIC_INTSRC_SPR_3_CLEAR (~(0x1 << 2))
96#define MAX77759_PMIC_INTSRC_TOPSYS_INT_SHIFT 1
97#define MAX77759_PMIC_INTSRC_TOPSYS_INT_MASK (0x1 << 1)
98#define MAX77759_PMIC_INTSRC_TOPSYS_INT_CLEAR (~(0x1 << 1))
99#define MAX77759_PMIC_INTSRC_CHGR_INT_SHIFT 0
100#define MAX77759_PMIC_INTSRC_CHGR_INT_MASK (0x1 << 0)
101#define MAX77759_PMIC_INTSRC_CHGR_INT_CLEAR (~(0x1 << 0))
102
103MAX77759_BFF(pmic_intsrc_spr_7_4,7,4)
104MAX77759_BFF(pmic_intsrc_maxq_int,3,3)
105MAX77759_BFF(pmic_intsrc_spr_3,2,2)
106MAX77759_BFF(pmic_intsrc_topsys_int,1,1)
107MAX77759_BFF(pmic_intsrc_chgr_int,0,0)
108static inline const char *
109max77759_pmic_intsrc_cstr(char *buff, size_t len, int val)
110{
111#ifdef SCNPRINTF
112 int i = 0;
113
114 i += SCNPRINTF(&buff[i], len - i, " SPR_7_4=%x",
115 FIELD2VALUE(MAX77759_PMIC_INTSRC_SPR_7_4, val));
116 i += SCNPRINTF(&buff[i], len - i, " MAXQ_INT=%x",
117 FIELD2VALUE(MAX77759_PMIC_INTSRC_MAXQ_INT, val));
118 i += SCNPRINTF(&buff[i], len - i, " SPR_3=%x",
119 FIELD2VALUE(MAX77759_PMIC_INTSRC_SPR_3, val));
120 i += SCNPRINTF(&buff[i], len - i, " TOPSYS_INT=%x",
121 FIELD2VALUE(MAX77759_PMIC_INTSRC_TOPSYS_INT, val));
122 i += SCNPRINTF(&buff[i], len - i, " CHGR_INT=%x",
123 FIELD2VALUE(MAX77759_PMIC_INTSRC_CHGR_INT, val));
124#else
125 buff[0] = 0;
126#endif
127 return buff;
128}
129
130/*
131 * INTSRCMASK,0x23,0b11111111,0xff
132 * SPR_7_4[3:0],,,,MAXQ_INT_M,SPR_3,TOPSYS_INT_M
133 */
134#define MAX77759_PMIC_INTSRCMASK 0x23
135#define MAX77759_PMIC_INTSRCMASK_MAXQ_INT_M (0x1 << 3)
136#define MAX77759_PMIC_INTSRCMASK_SPR_3 (0x1 << 2)
137#define MAX77759_PMIC_INTSRCMASK_TOPSYS_INT_M (0x1 << 1)
138#define MAX77759_PMIC_INTSRCMASK_CHGR_INT_M (0x1 << 0)
139
140#define MAX77759_PMIC_INTSRCMASK_SPR_7_4_SHIFT 4
141#define MAX77759_PMIC_INTSRCMASK_SPR_7_4_MASK (0xf << 4)
142#define MAX77759_PMIC_INTSRCMASK_SPR_7_4_CLEAR (~(0xf << 4))
143#define MAX77759_PMIC_INTSRCMASK_MAXQ_INT_M_SHIFT 3
144#define MAX77759_PMIC_INTSRCMASK_MAXQ_INT_M_MASK (0x1 << 3)
145#define MAX77759_PMIC_INTSRCMASK_MAXQ_INT_M_CLEAR (~(0x1 << 3))
146#define MAX77759_PMIC_INTSRCMASK_SPR_3_SHIFT 2
147#define MAX77759_PMIC_INTSRCMASK_SPR_3_MASK (0x1 << 2)
148#define MAX77759_PMIC_INTSRCMASK_SPR_3_CLEAR (~(0x1 << 2))
149#define MAX77759_PMIC_INTSRCMASK_TOPSYS_INT_M_SHIFT 1
150#define MAX77759_PMIC_INTSRCMASK_TOPSYS_INT_M_MASK (0x1 << 1)
151#define MAX77759_PMIC_INTSRCMASK_TOPSYS_INT_M_CLEAR (~(0x1 << 1))
152#define MAX77759_PMIC_INTSRCMASK_CHGR_INT_M_SHIFT 0
153#define MAX77759_PMIC_INTSRCMASK_CHGR_INT_M_MASK (0x1 << 0)
154#define MAX77759_PMIC_INTSRCMASK_CHGR_INT_M_CLEAR (~(0x1 << 0))
155
156MAX77759_BFF(pmic_intsrcmask_spr_7_4,7,4)
157MAX77759_BFF(pmic_intsrcmask_maxq_int_m,3,3)
158MAX77759_BFF(pmic_intsrcmask_spr_3,2,2)
159MAX77759_BFF(pmic_intsrcmask_topsys_int_m,1,1)
160MAX77759_BFF(pmic_intsrcmask_chgr_int_m,0,0)
161static inline const char *
162max77759_pmic_intsrcmask_cstr(char *buff, size_t len, int val)
163{
164#ifdef SCNPRINTF
165 int i = 0;
166
167 i += SCNPRINTF(&buff[i], len - i, " SPR_7_4=%x",
168 FIELD2VALUE(MAX77759_PMIC_INTSRCMASK_SPR_7_4, val));
169 i += SCNPRINTF(&buff[i], len - i, " MAXQ_INT_M=%x",
170 FIELD2VALUE(MAX77759_PMIC_INTSRCMASK_MAXQ_INT_M, val));
171 i += SCNPRINTF(&buff[i], len - i, " SPR_3=%x",
172 FIELD2VALUE(MAX77759_PMIC_INTSRCMASK_SPR_3, val));
173 i += SCNPRINTF(&buff[i], len - i, " TOPSYS_INT_M=%x",
174 FIELD2VALUE(MAX77759_PMIC_INTSRCMASK_TOPSYS_INT_M, val));
175 i += SCNPRINTF(&buff[i], len - i, " CHGR_INT_M=%x",
176 FIELD2VALUE(MAX77759_PMIC_INTSRCMASK_CHGR_INT_M, val));
177#else
178 buff[0] = 0;
179#endif
180 return buff;
181}
182
183/*
184 * TOPSYS_INT,0x24,0b00000000,0x00
185 * SPR_7,TSHDN_INT,SYSOVLO_INT,SYSUVLO_INT,SPR_3_0[3:0],,
186 */
187#define MAX77759_PMIC_TOPSYS_INT 0x24
188#define MAX77759_PMIC_TOPSYS_INT_SPR_7 (0x1 << 7)
189#define MAX77759_PMIC_TOPSYS_INT_TSHDN_INT (0x1 << 6)
190#define MAX77759_PMIC_TOPSYS_INT_SYSOVLO_INT (0x1 << 5)
191#define MAX77759_PMIC_TOPSYS_INT_SYSUVLO_INT (0x1 << 4)
192
193#define MAX77759_PMIC_TOPSYS_INT_SPR_7_SHIFT 7
194#define MAX77759_PMIC_TOPSYS_INT_SPR_7_MASK (0x1 << 7)
195#define MAX77759_PMIC_TOPSYS_INT_SPR_7_CLEAR (~(0x1 << 7))
196#define MAX77759_PMIC_TOPSYS_INT_TSHDN_INT_SHIFT 6
197#define MAX77759_PMIC_TOPSYS_INT_TSHDN_INT_MASK (0x1 << 6)
198#define MAX77759_PMIC_TOPSYS_INT_TSHDN_INT_CLEAR (~(0x1 << 6))
199#define MAX77759_PMIC_TOPSYS_INT_SYSOVLO_INT_SHIFT 5
200#define MAX77759_PMIC_TOPSYS_INT_SYSOVLO_INT_MASK (0x1 << 5)
201#define MAX77759_PMIC_TOPSYS_INT_SYSOVLO_INT_CLEAR (~(0x1 << 5))
202#define MAX77759_PMIC_TOPSYS_INT_SYSUVLO_INT_SHIFT 4
203#define MAX77759_PMIC_TOPSYS_INT_SYSUVLO_INT_MASK (0x1 << 4)
204#define MAX77759_PMIC_TOPSYS_INT_SYSUVLO_INT_CLEAR (~(0x1 << 4))
205#define MAX77759_PMIC_TOPSYS_INT_SPR_3_0_SHIFT 0
206#define MAX77759_PMIC_TOPSYS_INT_SPR_3_0_MASK (0xf << 0)
207#define MAX77759_PMIC_TOPSYS_INT_SPR_3_0_CLEAR (~(0xf << 0))
208
209MAX77759_BFF(pmic_topsys_int_spr_7,7,7)
210MAX77759_BFF(pmic_topsys_int_tshdn_int,6,6)
211MAX77759_BFF(pmic_topsys_int_sysovlo_int,5,5)
212MAX77759_BFF(pmic_topsys_int_sysuvlo_int,4,4)
213MAX77759_BFF(pmic_topsys_int_spr_3_0,3,0)
214static inline const char *
215max77759_pmic_topsys_int_cstr(char *buff, size_t len, int val)
216{
217#ifdef SCNPRINTF
218 int i = 0;
219
220 i += SCNPRINTF(&buff[i], len - i, " SPR_7=%x",
221 FIELD2VALUE(MAX77759_PMIC_TOPSYS_INT_SPR_7, val));
222 i += SCNPRINTF(&buff[i], len - i, " TSHDN_INT=%x",
223 FIELD2VALUE(MAX77759_PMIC_TOPSYS_INT_TSHDN_INT, val));
224 i += SCNPRINTF(&buff[i], len - i, " SYSOVLO_INT=%x",
225 FIELD2VALUE(MAX77759_PMIC_TOPSYS_INT_SYSOVLO_INT, val));
226 i += SCNPRINTF(&buff[i], len - i, " SYSUVLO_INT=%x",
227 FIELD2VALUE(MAX77759_PMIC_TOPSYS_INT_SYSUVLO_INT, val));
228 i += SCNPRINTF(&buff[i], len - i, " SPR_3_0=%x",
229 FIELD2VALUE(MAX77759_PMIC_TOPSYS_INT_SPR_3_0, val));
230#else
231 buff[0] = 0;
232#endif
233 return buff;
234}
235
236/*
237 * TOPSYS_INT_MASK,0x26,0b11111111,0xff
238 * SPR_7,TSHDN_INT_M,SYSOVLO_INT_M,SYSUVLO_INT_M,SPR_3_1[2:0],,
239 */
240#define MAX77759_PMIC_TOPSYS_INT_MASK 0x26
241#define MAX77759_PMIC_TOPSYS_INT_MASK_SPR_7 (0x1 << 7)
242#define MAX77759_PMIC_TOPSYS_INT_MASK_TSHDN_INT_M (0x1 << 6)
243#define MAX77759_PMIC_TOPSYS_INT_MASK_SYSOVLO_INT_M (0x1 << 5)
244#define MAX77759_PMIC_TOPSYS_INT_MASK_SYSUVLO_INT_M (0x1 << 4)
245#define MAX77759_PMIC_TOPSYS_INT_MASK_FSHIP_NOT_RD (0x1 << 0)
246
247#define MAX77759_PMIC_TOPSYS_INT_MASK_SPR_7_SHIFT 7
248#define MAX77759_PMIC_TOPSYS_INT_MASK_SPR_7_MASK (0x1 << 7)
249#define MAX77759_PMIC_TOPSYS_INT_MASK_SPR_7_CLEAR (~(0x1 << 7))
250#define MAX77759_PMIC_TOPSYS_INT_MASK_TSHDN_INT_M_SHIFT 6
251#define MAX77759_PMIC_TOPSYS_INT_MASK_TSHDN_INT_M_MASK (0x1 << 6)
252#define MAX77759_PMIC_TOPSYS_INT_MASK_TSHDN_INT_M_CLEAR (~(0x1 << 6))
253#define MAX77759_PMIC_TOPSYS_INT_MASK_SYSOVLO_INT_M_SHIFT 5
254#define MAX77759_PMIC_TOPSYS_INT_MASK_SYSOVLO_INT_M_MASK (0x1 << 5)
255#define MAX77759_PMIC_TOPSYS_INT_MASK_SYSOVLO_INT_M_CLEAR (~(0x1 << 5))
256#define MAX77759_PMIC_TOPSYS_INT_MASK_SYSUVLO_INT_M_SHIFT 4
257#define MAX77759_PMIC_TOPSYS_INT_MASK_SYSUVLO_INT_M_MASK (0x1 << 4)
258#define MAX77759_PMIC_TOPSYS_INT_MASK_SYSUVLO_INT_M_CLEAR (~(0x1 << 4))
259#define MAX77759_PMIC_TOPSYS_INT_MASK_SPR_3_1_SHIFT 1
260#define MAX77759_PMIC_TOPSYS_INT_MASK_SPR_3_1_MASK (0x7 << 1)
261#define MAX77759_PMIC_TOPSYS_INT_MASK_SPR_3_1_CLEAR (~(0x7 << 1))
262#define MAX77759_PMIC_TOPSYS_INT_MASK_FSHIP_NOT_RD_SHIFT 0
263#define MAX77759_PMIC_TOPSYS_INT_MASK_FSHIP_NOT_RD_MASK (0x1 << 0)
264#define MAX77759_PMIC_TOPSYS_INT_MASK_FSHIP_NOT_RD_CLEAR (~(0x1 << 0))
265
266MAX77759_BFF(pmic_topsys_int_mask_spr_7,7,7)
267MAX77759_BFF(pmic_topsys_int_mask_tshdn_int_m,6,6)
268MAX77759_BFF(pmic_topsys_int_mask_sysovlo_int_m,5,5)
269MAX77759_BFF(pmic_topsys_int_mask_sysuvlo_int_m,4,4)
270MAX77759_BFF(pmic_topsys_int_mask_spr_3_1,3,1)
271MAX77759_BFF(pmic_topsys_int_mask_fship_not_rd,0,0)
272static inline const char *
273max77759_pmic_topsys_int_mask_cstr(char *buff, size_t len, int val)
274{
275#ifdef SCNPRINTF
276 int i = 0;
277
278 i += SCNPRINTF(&buff[i], len - i, " SPR_7=%x",
279 FIELD2VALUE(MAX77759_PMIC_TOPSYS_INT_MASK_SPR_7, val));
280 i += SCNPRINTF(&buff[i], len - i, " TSHDN_INT_M=%x",
281 FIELD2VALUE(MAX77759_PMIC_TOPSYS_INT_MASK_TSHDN_INT_M, val));
282 i += SCNPRINTF(&buff[i], len - i, " SYSOVLO_INT_M=%x",
283 FIELD2VALUE(MAX77759_PMIC_TOPSYS_INT_MASK_SYSOVLO_INT_M, val));
284 i += SCNPRINTF(&buff[i], len - i, " SYSUVLO_INT_M=%x",
285 FIELD2VALUE(MAX77759_PMIC_TOPSYS_INT_MASK_SYSUVLO_INT_M, val));
286 i += SCNPRINTF(&buff[i], len - i, " SPR_3_1=%x",
287 FIELD2VALUE(MAX77759_PMIC_TOPSYS_INT_MASK_SPR_3_1, val));
288 i += SCNPRINTF(&buff[i], len - i, " FSHIP_NOT_RD=%x",
289 FIELD2VALUE(MAX77759_PMIC_TOPSYS_INT_MASK_FSHIP_NOT_RD, val));
290#else
291 buff[0] = 0;
292#endif
293 return buff;
294}
295
296/*
297 * I2C_CNFG,0x40,0b00000000,0x00
298 * SPR_7,PAIR[2:0],,,SPR_3_1[2:0],,
299 */
300#define MAX77759_PMIC_I2C_CNFG 0x40
301#define MAX77759_PMIC_I2C_CNFG_SPR_7 (0x1 << 7)
302#define MAX77759_PMIC_I2C_CNFG_HS_EXT_EN (0x1 << 0)
303
304#define MAX77759_PMIC_I2C_CNFG_SPR_7_SHIFT 7
305#define MAX77759_PMIC_I2C_CNFG_SPR_7_MASK (0x1 << 7)
306#define MAX77759_PMIC_I2C_CNFG_SPR_7_CLEAR (~(0x1 << 7))
307#define MAX77759_PMIC_I2C_CNFG_PAIR_SHIFT 4
308#define MAX77759_PMIC_I2C_CNFG_PAIR_MASK (0x7 << 4)
309#define MAX77759_PMIC_I2C_CNFG_PAIR_CLEAR (~(0x7 << 4))
310#define MAX77759_PMIC_I2C_CNFG_SPR_3_1_SHIFT 1
311#define MAX77759_PMIC_I2C_CNFG_SPR_3_1_MASK (0x7 << 1)
312#define MAX77759_PMIC_I2C_CNFG_SPR_3_1_CLEAR (~(0x7 << 1))
313#define MAX77759_PMIC_I2C_CNFG_HS_EXT_EN_SHIFT 0
314#define MAX77759_PMIC_I2C_CNFG_HS_EXT_EN_MASK (0x1 << 0)
315#define MAX77759_PMIC_I2C_CNFG_HS_EXT_EN_CLEAR (~(0x1 << 0))
316
317MAX77759_BFF(pmic_i2c_cnfg_spr_7,7,7)
318MAX77759_BFF(pmic_i2c_cnfg_pair,6,4)
319MAX77759_BFF(pmic_i2c_cnfg_spr_3_1,3,1)
320MAX77759_BFF(pmic_i2c_cnfg_hs_ext_en,0,0)
321static inline const char *
322max77759_pmic_i2c_cnfg_cstr(char *buff, size_t len, int val)
323{
324#ifdef SCNPRINTF
325 int i = 0;
326
327 i += SCNPRINTF(&buff[i], len - i, " SPR_7=%x",
328 FIELD2VALUE(MAX77759_PMIC_I2C_CNFG_SPR_7, val));
329 i += SCNPRINTF(&buff[i], len - i, " PAIR=%x",
330 FIELD2VALUE(MAX77759_PMIC_I2C_CNFG_PAIR, val));
331 i += SCNPRINTF(&buff[i], len - i, " SPR_3_1=%x",
332 FIELD2VALUE(MAX77759_PMIC_I2C_CNFG_SPR_3_1, val));
333 i += SCNPRINTF(&buff[i], len - i, " HS_EXT_EN=%x",
334 FIELD2VALUE(MAX77759_PMIC_I2C_CNFG_HS_EXT_EN, val));
335#else
336 buff[0] = 0;
337#endif
338 return buff;
339}
340
341/*
342 * SWRESET,0x50,0b00000000,0x00
343 * VIO_OK_MASK,IC_RST_MASK,SWR_RST[5:0],,,,
344 */
345#define MAX77759_PMIC_SWRESET 0x50
346#define MAX77759_PMIC_SWRESET_VIO_OK_MASK (0x1 << 7)
347#define MAX77759_PMIC_SWRESET_IC_RST_MASK (0x1 << 6)
348
349#define MAX77759_PMIC_SWRESET_VIO_OK_MASK_SHIFT 7
350#define MAX77759_PMIC_SWRESET_VIO_OK_MASK_MASK (0x1 << 7)
351#define MAX77759_PMIC_SWRESET_VIO_OK_MASK_CLEAR (~(0x1 << 7))
352#define MAX77759_PMIC_SWRESET_IC_RST_MASK_SHIFT 6
353#define MAX77759_PMIC_SWRESET_IC_RST_MASK_MASK (0x1 << 6)
354#define MAX77759_PMIC_SWRESET_IC_RST_MASK_CLEAR (~(0x1 << 6))
355#define MAX77759_PMIC_SWRESET_SWR_RST_SHIFT 0
356#define MAX77759_PMIC_SWRESET_SWR_RST_MASK (0x3f << 0)
357#define MAX77759_PMIC_SWRESET_SWR_RST_CLEAR (~(0x3f << 0))
358
359MAX77759_BFF(pmic_swreset_vio_ok_mask,7,7)
360MAX77759_BFF(pmic_swreset_ic_rst_mask,6,6)
361MAX77759_BFF(pmic_swreset_swr_rst,5,0)
362static inline const char *
363max77759_pmic_swreset_cstr(char *buff, size_t len, int val)
364{
365#ifdef SCNPRINTF
366 int i = 0;
367
368 i += SCNPRINTF(&buff[i], len - i, " VIO_OK_MASK=%x",
369 FIELD2VALUE(MAX77759_PMIC_SWRESET_VIO_OK_MASK, val));
370 i += SCNPRINTF(&buff[i], len - i, " IC_RST_MASK=%x",
371 FIELD2VALUE(MAX77759_PMIC_SWRESET_IC_RST_MASK, val));
372 i += SCNPRINTF(&buff[i], len - i, " SWR_RST=%x",
373 FIELD2VALUE(MAX77759_PMIC_SWRESET_SWR_RST, val));
374#else
375 buff[0] = 0;
376#endif
377 return buff;
378}
379
380/*
381 * CONTROL_FG,0x51,0b00010000,0x10
382 * SPR_7_5[2:0],,,TSHDN_DIS,SPR_3_0[1:0],,THMIO_MUX[1:0]
383 */
384#define MAX77759_PMIC_CONTROL_FG 0x51
385#define MAX77759_PMIC_CONTROL_FG_TSHDN_DIS (0x1 << 4)
386
387#define MAX77759_PMIC_CONTROL_FG_SPR_7_5_SHIFT 5
388#define MAX77759_PMIC_CONTROL_FG_SPR_7_5_MASK (0x7 << 5)
389#define MAX77759_PMIC_CONTROL_FG_SPR_7_5_CLEAR (~(0x7 << 5))
390#define MAX77759_PMIC_CONTROL_FG_TSHDN_DIS_SHIFT 4
391#define MAX77759_PMIC_CONTROL_FG_TSHDN_DIS_MASK (0x1 << 4)
392#define MAX77759_PMIC_CONTROL_FG_TSHDN_DIS_CLEAR (~(0x1 << 4))
393#define MAX77759_PMIC_CONTROL_FG_SPR_3_0_SHIFT 2
394#define MAX77759_PMIC_CONTROL_FG_SPR_3_0_MASK (0x3 << 2)
395#define MAX77759_PMIC_CONTROL_FG_SPR_3_0_CLEAR (~(0x3 << 2))
396#define MAX77759_PMIC_CONTROL_FG_THMIO_MUX_SHIFT 0
397#define MAX77759_PMIC_CONTROL_FG_THMIO_MUX_MASK (0x3 << 0)
398#define MAX77759_PMIC_CONTROL_FG_THMIO_MUX_CLEAR (~(0x3 << 0))
399
400MAX77759_BFF(pmic_control_fg_spr_7_5,7,5)
401MAX77759_BFF(pmic_control_fg_tshdn_dis,4,4)
402MAX77759_BFF(pmic_control_fg_spr_3_0,3,2)
403MAX77759_BFF(pmic_control_fg_thmio_mux,1,0)
404static inline const char *
405max77759_pmic_control_fg_cstr(char *buff, size_t len, int val)
406{
407#ifdef SCNPRINTF
408 int i = 0;
409
410 i += SCNPRINTF(&buff[i], len - i, " SPR_7_5=%x",
411 FIELD2VALUE(MAX77759_PMIC_CONTROL_FG_SPR_7_5, val));
412 i += SCNPRINTF(&buff[i], len - i, " TSHDN_DIS=%x",
413 FIELD2VALUE(MAX77759_PMIC_CONTROL_FG_TSHDN_DIS, val));
414 i += SCNPRINTF(&buff[i], len - i, " SPR_3_0=%x",
415 FIELD2VALUE(MAX77759_PMIC_CONTROL_FG_SPR_3_0, val));
416 i += SCNPRINTF(&buff[i], len - i, " THMIO_MUX=%x",
417 FIELD2VALUE(MAX77759_PMIC_CONTROL_FG_THMIO_MUX, val));
418#else
419 buff[0] = 0;
420#endif
421 return buff;
422}
423
424/*
425 * DEVICE_ID,0x60,0b01011001,0x59
426 * DeviceID[7:0],,,,,,
427 */
428#define MAX77759_PMIC_DEVICE_ID 0x60
429
430/*
431 * DEVICE_REV,0x61,0b00000010,0x02
432 * DeviceRev[7:0],,,,,,
433 */
434#define MAX77759_PMIC_DEVICE_REV 0x61
435
436/*
437 * FW_REV,0x62,0b00000000,0x00
438 * FwRev[7:0],,,,,,
439 */
440#define MAX77759_PMIC_FW_REV 0x62
441
442/*
443 * FW_SUB_REV,0x63,0b00000000,0x00
444 * FwSubRev[7:0],,,,,,
445 */
446#define MAX77759_PMIC_FW_SUB_REV 0x63
447
448/*
449 * UIC_INT1,0x64,0b00000000,0x00
450 * APCmdResI,SysMsgI,UIC_INT1I[3:0],,,,GPIO6I
451 */
452#define MAX77759_PMIC_UIC_INT1 0x64
453#define MAX77759_PMIC_UIC_INT1_APCMDRESI (0x1 << 7)
454#define MAX77759_PMIC_UIC_INT1_SYSMSGI (0x1 << 6)
455#define MAX77759_PMIC_UIC_INT1_GPIO6I (0x1 << 1)
456#define MAX77759_PMIC_UIC_INT1_GPIO5I (0x1 << 0)
457
458#define MAX77759_PMIC_UIC_INT1_APCMDRESI_SHIFT 7
459#define MAX77759_PMIC_UIC_INT1_APCMDRESI_MASK (0x1 << 7)
460#define MAX77759_PMIC_UIC_INT1_APCMDRESI_CLEAR (~(0x1 << 7))
461#define MAX77759_PMIC_UIC_INT1_SYSMSGI_SHIFT 6
462#define MAX77759_PMIC_UIC_INT1_SYSMSGI_MASK (0x1 << 6)
463#define MAX77759_PMIC_UIC_INT1_SYSMSGI_CLEAR (~(0x1 << 6))
464#define MAX77759_PMIC_UIC_INT1_UIC_INT1I_SHIFT 2
465#define MAX77759_PMIC_UIC_INT1_UIC_INT1I_MASK (0xf << 2)
466#define MAX77759_PMIC_UIC_INT1_UIC_INT1I_CLEAR (~(0xf << 2))
467#define MAX77759_PMIC_UIC_INT1_GPIO6I_SHIFT 1
468#define MAX77759_PMIC_UIC_INT1_GPIO6I_MASK (0x1 << 1)
469#define MAX77759_PMIC_UIC_INT1_GPIO6I_CLEAR (~(0x1 << 1))
470#define MAX77759_PMIC_UIC_INT1_GPIO5I_SHIFT 0
471#define MAX77759_PMIC_UIC_INT1_GPIO5I_MASK (0x1 << 0)
472#define MAX77759_PMIC_UIC_INT1_GPIO5I_CLEAR (~(0x1 << 0))
473
474MAX77759_BFF(pmic_uic_int1_apcmdresi,7,7)
475MAX77759_BFF(pmic_uic_int1_sysmsgi,6,6)
476MAX77759_BFF(pmic_uic_int1_uic_int1i,5,2)
477MAX77759_BFF(pmic_uic_int1_gpio6i,1,1)
478MAX77759_BFF(pmic_uic_int1_gpio5i,0,0)
479static inline const char *
480max77759_pmic_uic_int1_cstr(char *buff, size_t len, int val)
481{
482#ifdef SCNPRINTF
483 int i = 0;
484
485 i += SCNPRINTF(&buff[i], len - i, " APCMDRESI=%x",
486 FIELD2VALUE(MAX77759_PMIC_UIC_INT1_APCMDRESI, val));
487 i += SCNPRINTF(&buff[i], len - i, " SYSMSGI=%x",
488 FIELD2VALUE(MAX77759_PMIC_UIC_INT1_SYSMSGI, val));
489 i += SCNPRINTF(&buff[i], len - i, " UIC_INT1I=%x",
490 FIELD2VALUE(MAX77759_PMIC_UIC_INT1_UIC_INT1I, val));
491 i += SCNPRINTF(&buff[i], len - i, " GPIO6I=%x",
492 FIELD2VALUE(MAX77759_PMIC_UIC_INT1_GPIO6I, val));
493 i += SCNPRINTF(&buff[i], len - i, " GPIO5I=%x",
494 FIELD2VALUE(MAX77759_PMIC_UIC_INT1_GPIO5I, val));
495#else
496 buff[0] = 0;
497#endif
498 return buff;
499}
500
501/*
502 * UIC_INT2,0x65,0b00000000,0x00
503 * UIC_INT2I[7:0],,,,,,
504 */
505#define MAX77759_PMIC_UIC_INT2 0x65
506
507/*
508 * UIC_INT3,0x66,0b00000000,0x00
509 * UIC_INT3I[7:0],,,,,,
510 */
511#define MAX77759_PMIC_UIC_INT3 0x66
512
513/*
514 * UIC_INT4,0x67,0b00000000,0x00
515 * UIC_INT4I[7:0],,,,,,
516 */
517#define MAX77759_PMIC_UIC_INT4 0x67
518
519/*
520 * UIC_STATUS1,0x68,0b00000000,0x00
521 * UIC_STATUS1[7:0],,,,,,
522 */
523#define MAX77759_PMIC_UIC_STATUS1 0x68
524
525/*
526 * UIC_STATUS2,0x69,0b00000000,0x00
527 * SysMsg[7:0],,,,,,
528 */
529#define MAX77759_PMIC_UIC_STATUS2 0x69
530
531/*
532 * UIC_STATUS3,0x6A,0b00000000,0x00
533 * UIC_STATUS3[7:0],,,,,,
534 */
535#define MAX77759_PMIC_UIC_STATUS3 0x6A
536
537/*
538 * UIC_STATUS4,0x6B,0b00000000,0x00
539 * UIC_STATUS4[7:0],,,,,,
540 */
541#define MAX77759_PMIC_UIC_STATUS4 0x6B
542
543/*
544 * UIC_STATUS5,0x6C,0b00000000,0x00
545 * UIC_STATUS5[5:0],,,,,,ShB_MUX_EN
546 */
547#define MAX77759_PMIC_UIC_STATUS5 0x6C
548#define MAX77759_PMIC_UIC_STATUS5_SHB_MUX_EN (0x1 << 1)
549#define MAX77759_PMIC_UIC_STATUS5_I2C_MUX_EN (0x1 << 0)
550
551#define MAX77759_PMIC_UIC_STATUS5_UIC_STATUS5_SHIFT 2
552#define MAX77759_PMIC_UIC_STATUS5_UIC_STATUS5_MASK (0x3f << 2)
553#define MAX77759_PMIC_UIC_STATUS5_UIC_STATUS5_CLEAR (~(0x3f << 2))
554#define MAX77759_PMIC_UIC_STATUS5_SHB_MUX_EN_SHIFT 1
555#define MAX77759_PMIC_UIC_STATUS5_SHB_MUX_EN_MASK (0x1 << 1)
556#define MAX77759_PMIC_UIC_STATUS5_SHB_MUX_EN_CLEAR (~(0x1 << 1))
557#define MAX77759_PMIC_UIC_STATUS5_I2C_MUX_EN_SHIFT 0
558#define MAX77759_PMIC_UIC_STATUS5_I2C_MUX_EN_MASK (0x1 << 0)
559#define MAX77759_PMIC_UIC_STATUS5_I2C_MUX_EN_CLEAR (~(0x1 << 0))
560
561MAX77759_BFF(pmic_uic_status5_uic_status5,7,2)
562MAX77759_BFF(pmic_uic_status5_shb_mux_en,1,1)
563MAX77759_BFF(pmic_uic_status5_i2c_mux_en,0,0)
564static inline const char *
565max77759_pmic_uic_status5_cstr(char *buff, size_t len, int val)
566{
567#ifdef SCNPRINTF
568 int i = 0;
569
570 i += SCNPRINTF(&buff[i], len - i, " UIC_STATUS5=%x",
571 FIELD2VALUE(MAX77759_PMIC_UIC_STATUS5_UIC_STATUS5, val));
572 i += SCNPRINTF(&buff[i], len - i, " SHB_MUX_EN=%x",
573 FIELD2VALUE(MAX77759_PMIC_UIC_STATUS5_SHB_MUX_EN, val));
574 i += SCNPRINTF(&buff[i], len - i, " I2C_MUX_EN=%x",
575 FIELD2VALUE(MAX77759_PMIC_UIC_STATUS5_I2C_MUX_EN, val));
576#else
577 buff[0] = 0;
578#endif
579 return buff;
580}
581
582/*
583 * UIC_STATUS6,0x6D,0b00000000,0x00
584 * UIC_STATUS6[7:0],,,,,,
585 */
586#define MAX77759_PMIC_UIC_STATUS6 0x6D
587
588/*
589 * UIC_STATUS7,0x6E,0b00000000,0x00
590 * UIC_STATUS7[7:0],,,,,,
591 */
592#define MAX77759_PMIC_UIC_STATUS7 0x6E
593
594/*
595 * UIC_STATUS8,0x6F,0b00000000,0x00
596 * UIC_STATUS8[7:0],,,,,,
597 */
598#define MAX77759_PMIC_UIC_STATUS8 0x6F
599
600/*
601 * UIC_INT1_M,0x70,0b10111111,0xbf
602 * APCmdResM,SysMsgM,UIC_INT1_M[3:0],,,,GPIO6M
603 */
604#define MAX77759_PMIC_UIC_INT1_M 0x70
605#define MAX77759_PMIC_UIC_INT1_M_APCMDRESM (0x1 << 7)
606#define MAX77759_PMIC_UIC_INT1_M_SYSMSGM (0x1 << 6)
607#define MAX77759_PMIC_UIC_INT1_M_GPIO6M (0x1 << 1)
608#define MAX77759_PMIC_UIC_INT1_M_GPIO5M (0x1 << 0)
609
610#define MAX77759_PMIC_UIC_INT1_M_APCMDRESM_SHIFT 7
611#define MAX77759_PMIC_UIC_INT1_M_APCMDRESM_MASK (0x1 << 7)
612#define MAX77759_PMIC_UIC_INT1_M_APCMDRESM_CLEAR (~(0x1 << 7))
613#define MAX77759_PMIC_UIC_INT1_M_SYSMSGM_SHIFT 6
614#define MAX77759_PMIC_UIC_INT1_M_SYSMSGM_MASK (0x1 << 6)
615#define MAX77759_PMIC_UIC_INT1_M_SYSMSGM_CLEAR (~(0x1 << 6))
616#define MAX77759_PMIC_UIC_INT1_M_UIC_INT1_M_SHIFT 2
617#define MAX77759_PMIC_UIC_INT1_M_UIC_INT1_M_MASK (0xf << 2)
618#define MAX77759_PMIC_UIC_INT1_M_UIC_INT1_M_CLEAR (~(0xf << 2))
619#define MAX77759_PMIC_UIC_INT1_M_GPIO6M_SHIFT 1
620#define MAX77759_PMIC_UIC_INT1_M_GPIO6M_MASK (0x1 << 1)
621#define MAX77759_PMIC_UIC_INT1_M_GPIO6M_CLEAR (~(0x1 << 1))
622#define MAX77759_PMIC_UIC_INT1_M_GPIO5M_SHIFT 0
623#define MAX77759_PMIC_UIC_INT1_M_GPIO5M_MASK (0x1 << 0)
624#define MAX77759_PMIC_UIC_INT1_M_GPIO5M_CLEAR (~(0x1 << 0))
625
626MAX77759_BFF(pmic_uic_int1_m_apcmdresm,7,7)
627MAX77759_BFF(pmic_uic_int1_m_sysmsgm,6,6)
628MAX77759_BFF(pmic_uic_int1_m_uic_int1_m,5,2)
629MAX77759_BFF(pmic_uic_int1_m_gpio6m,1,1)
630MAX77759_BFF(pmic_uic_int1_m_gpio5m,0,0)
631static inline const char *
632max77759_pmic_uic_int1_m_cstr(char *buff, size_t len, int val)
633{
634#ifdef SCNPRINTF
635 int i = 0;
636
637 i += SCNPRINTF(&buff[i], len - i, " APCMDRESM=%x",
638 FIELD2VALUE(MAX77759_PMIC_UIC_INT1_M_APCMDRESM, val));
639 i += SCNPRINTF(&buff[i], len - i, " SYSMSGM=%x",
640 FIELD2VALUE(MAX77759_PMIC_UIC_INT1_M_SYSMSGM, val));
641 i += SCNPRINTF(&buff[i], len - i, " UIC_INT1_M=%x",
642 FIELD2VALUE(MAX77759_PMIC_UIC_INT1_M_UIC_INT1_M, val));
643 i += SCNPRINTF(&buff[i], len - i, " GPIO6M=%x",
644 FIELD2VALUE(MAX77759_PMIC_UIC_INT1_M_GPIO6M, val));
645 i += SCNPRINTF(&buff[i], len - i, " GPIO5M=%x",
646 FIELD2VALUE(MAX77759_PMIC_UIC_INT1_M_GPIO5M, val));
647#else
648 buff[0] = 0;
649#endif
650 return buff;
651}
652
653/*
654 * UIC_INT2_M,0x71,0b11111111,0xff
655 * UIC_INT2_M[7:0],,,,,,
656 */
657#define MAX77759_PMIC_UIC_INT2_M 0x71
658
659/*
660 * UIC_INT3_M,0x72,0b11111111,0xff
661 * UIC_INT3_M[7:0],,,,,,
662 */
663#define MAX77759_PMIC_UIC_INT3_M 0x72
664
665/*
666 * UIC_INT4_M,0x73,0b11111111,0xff
667 * UIC_INT4_M[7:0],,,,,,
668 */
669#define MAX77759_PMIC_UIC_INT4_M 0x73
670
671/*
672 * AP_DATAOUT0,0x81,0b00000000,0x00
673 * AP_REQUEST_OPCODE[7:0],,,,,,
674 */
675#define MAX77759_PMIC_AP_DATAOUT0 0x81
676
677/*
678 * AP_DATAOUT1,0x82,0b00000000,0x00
679 * OPCODE_DATAOUT_01[7:0],,,,,,
680 */
681#define MAX77759_PMIC_AP_DATAOUT1 0x82
682
683/*
684 * AP_DATAOUT2,0x83,0b00000000,0x00
685 * OPCODE_DATAOUT_02[7:0],,,,,,
686 */
687#define MAX77759_PMIC_AP_DATAOUT2 0x83
688
689/*
690 * AP_DATAOUT3,0x84,0b00000000,0x00
691 * OPCODE_DATAOUT_03[7:0],,,,,,
692 */
693#define MAX77759_PMIC_AP_DATAOUT3 0x84
694
695/*
696 * AP_DATAOUT4,0x85,0b00000000,0x00
697 * OPCODE_DATAOUT_04[7:0],,,,,,
698 */
699#define MAX77759_PMIC_AP_DATAOUT4 0x85
700
701/*
702 * AP_DATAOUT5,0x86,0b00000000,0x00
703 * OPCODE_DATAOUT_05[7:0],,,,,,
704 */
705#define MAX77759_PMIC_AP_DATAOUT5 0x86
706
707/*
708 * AP_DATAOUT6,0x87,0b00000000,0x00
709 * OPCODE_DATAOUT_06[7:0],,,,,,
710 */
711#define MAX77759_PMIC_AP_DATAOUT6 0x87
712
713/*
714 * AP_DATAOUT7,0x88,0b00000000,0x00
715 * OPCODE_DATAOUT_07[7:0],,,,,,
716 */
717#define MAX77759_PMIC_AP_DATAOUT7 0x88
718
719/*
720 * AP_DATAOUT8,0x89,0b00000000,0x00
721 * OPCODE_DATAOUT_08[7:0],,,,,,
722 */
723#define MAX77759_PMIC_AP_DATAOUT8 0x89
724
725/*
726 * AP_DATAOUT9,0x8A,0b00000000,0x00
727 * OPCODE_DATAOUT_09[7:0],,,,,,
728 */
729#define MAX77759_PMIC_AP_DATAOUT9 0x8A
730
731/*
732 * AP_DATAOUT10,0x8B,0b00000000,0x00
733 * OPCODE_DATAOUT_10[7:0],,,,,,
734 */
735#define MAX77759_PMIC_AP_DATAOUT10 0x8B
736
737/*
738 * AP_DATAOUT11,0x8C,0b00000000,0x00
739 * OPCODE_DATAOUT_11[7:0],,,,,,
740 */
741#define MAX77759_PMIC_AP_DATAOUT11 0x8C
742
743/*
744 * AP_DATAOUT12,0x8D,0b00000000,0x00
745 * OPCODE_DATAOUT_12[7:0],,,,,,
746 */
747#define MAX77759_PMIC_AP_DATAOUT12 0x8D
748
749/*
750 * AP_DATAOUT13,0x8E,0b00000000,0x00
751 * OPCODE_DATAOUT_13[7:0],,,,,,
752 */
753#define MAX77759_PMIC_AP_DATAOUT13 0x8E
754
755/*
756 * AP_DATAOUT14,0x8F,0b00000000,0x00
757 * OPCODE_DATAOUT_14[7:0],,,,,,
758 */
759#define MAX77759_PMIC_AP_DATAOUT14 0x8F
760
761/*
762 * AP_DATAOUT15,0x90,0b00000000,0x00
763 * OPCODE_DATAOUT_15[7:0],,,,,,
764 */
765#define MAX77759_PMIC_AP_DATAOUT15 0x90
766
767/*
768 * AP_DATAOUT16,0x91,0b00000000,0x00
769 * OPCODE_DATAOUT_16[7:0],,,,,,
770 */
771#define MAX77759_PMIC_AP_DATAOUT16 0x91
772
773/*
774 * AP_DATAOUT17,0x92,0b00000000,0x00
775 * OPCODE_DATAOUT_17[7:0],,,,,,
776 */
777#define MAX77759_PMIC_AP_DATAOUT17 0x92
778
779/*
780 * AP_DATAOUT18,0x93,0b00000000,0x00
781 * OPCODE_DATAOUT_18[7:0],,,,,,
782 */
783#define MAX77759_PMIC_AP_DATAOUT18 0x93
784
785/*
786 * AP_DATAOUT19,0x94,0b00000000,0x00
787 * OPCODE_DATAOUT_19[7:0],,,,,,
788 */
789#define MAX77759_PMIC_AP_DATAOUT19 0x94
790
791/*
792 * AP_DATAOUT20,0x95,0b00000000,0x00
793 * OPCODE_DATAOUT_20[7:0],,,,,,
794 */
795#define MAX77759_PMIC_AP_DATAOUT20 0x95
796
797/*
798 * AP_DATAOUT21,0x96,0b00000000,0x00
799 * OPCODE_DATAOUT_21[7:0],,,,,,
800 */
801#define MAX77759_PMIC_AP_DATAOUT21 0x96
802
803/*
804 * AP_DATAOUT22,0x97,0b00000000,0x00
805 * OPCODE_DATAOUT_22[7:0],,,,,,
806 */
807#define MAX77759_PMIC_AP_DATAOUT22 0x97
808
809/*
810 * AP_DATAOUT23,0x98,0b00000000,0x00
811 * OPCODE_DATAOUT_23[7:0],,,,,,
812 */
813#define MAX77759_PMIC_AP_DATAOUT23 0x98
814
815/*
816 * AP_DATAOUT24,0x99,0b00000000,0x00
817 * OPCODE_DATAOUT_24[7:0],,,,,,
818 */
819#define MAX77759_PMIC_AP_DATAOUT24 0x99
820
821/*
822 * AP_DATAOUT25,0x9A,0b00000000,0x00
823 * OPCODE_DATAOUT_25[7:0],,,,,,
824 */
825#define MAX77759_PMIC_AP_DATAOUT25 0x9A
826
827/*
828 * AP_DATAOUT26,0x9B,0b00000000,0x00
829 * OPCODE_DATAOUT_26[7:0],,,,,,
830 */
831#define MAX77759_PMIC_AP_DATAOUT26 0x9B
832
833/*
834 * AP_DATAOUT27,0x9C,0b00000000,0x00
835 * OPCODE_DATAOUT_27[7:0],,,,,,
836 */
837#define MAX77759_PMIC_AP_DATAOUT27 0x9C
838
839/*
840 * AP_DATAOUT28,0x9D,0b00000000,0x00
841 * OPCODE_DATAOUT_28[7:0],,,,,,
842 */
843#define MAX77759_PMIC_AP_DATAOUT28 0x9D
844
845/*
846 * AP_DATAOUT29,0x9E,0b00000000,0x00
847 * OPCODE_DATAOUT_29[7:0],,,,,,
848 */
849#define MAX77759_PMIC_AP_DATAOUT29 0x9E
850
851/*
852 * AP_DATAOUT30,0x9F,0b00000000,0x00
853 * OPCODE_DATAOUT_30[7:0],,,,,,
854 */
855#define MAX77759_PMIC_AP_DATAOUT30 0x9F
856
857/*
858 * AP_DATAOUT31,0xA0,0b00000000,0x00
859 * OPCODE_DATAOUT_31[7:0],,,,,,
860 */
861#define MAX77759_PMIC_AP_DATAOUT31 0xA0
862
863/*
864 * AP_DATAOUT32,0xA1,0b00000000,0x00
865 * OPCODE_DATAOUT_32[7:0],,,,,,
866 */
867#define MAX77759_PMIC_AP_DATAOUT32 0xA1
868
869/*
870 * AP_DATAIN0,0xB1,0b00000000,0x00
871 * MAXQ_RESPONSE_OPCODE[7:0],,,,,,
872 */
873#define MAX77759_PMIC_AP_DATAIN0 0xB1
874
875/*
876 * AP_DATAIN1,0xB2,0b00000000,0x00
877 * OPCODE_DATAIN_01[7:0],,,,,,
878 */
879#define MAX77759_PMIC_AP_DATAIN1 0xB2
880
881/*
882 * AP_DATAIN2,0xB3,0b00000000,0x00
883 * OPCODE_DATAIN_02[7:0],,,,,,
884 */
885#define MAX77759_PMIC_AP_DATAIN2 0xB3
886
887/*
888 * AP_DATAIN3,0xB4,0b00000000,0x00
889 * OPCODE_DATAIN_03[7:0],,,,,,
890 */
891#define MAX77759_PMIC_AP_DATAIN3 0xB4
892
893/*
894 * AP_DATAIN4,0xB5,0b00000000,0x00
895 * OPCODE_DATAIN_04[7:0],,,,,,
896 */
897#define MAX77759_PMIC_AP_DATAIN4 0xB5
898
899/*
900 * AP_DATAIN5,0xB6,0b00000000,0x00
901 * OPCODE_DATAIN_05[7:0],,,,,,
902 */
903#define MAX77759_PMIC_AP_DATAIN5 0xB6
904
905/*
906 * AP_DATAIN6,0xB7,0b00000000,0x00
907 * OPCODE_DATAIN_06[7:0],,,,,,
908 */
909#define MAX77759_PMIC_AP_DATAIN6 0xB7
910
911/*
912 * AP_DATAIN7,0xB8,0b00000000,0x00
913 * OPCODE_DATAIN_07[7:0],,,,,,
914 */
915#define MAX77759_PMIC_AP_DATAIN7 0xB8
916
917/*
918 * AP_DATAIN8,0xB9,0b00000000,0x00
919 * OPCODE_DATAIN_08[7:0],,,,,,
920 */
921#define MAX77759_PMIC_AP_DATAIN8 0xB9
922
923/*
924 * AP_DATAIN9,0xBA,0b00000000,0x00
925 * OPCODE_DATAIN_09[7:0],,,,,,
926 */
927#define MAX77759_PMIC_AP_DATAIN9 0xBA
928
929/*
930 * AP_DATAIN10,0xBB,0b00000000,0x00
931 * OPCODE_DATAIN_10[7:0],,,,,,
932 */
933#define MAX77759_PMIC_AP_DATAIN10 0xBB
934
935/*
936 * AP_DATAIN11,0xBC,0b00000000,0x00
937 * OPCODE_DATAIN_11[7:0],,,,,,
938 */
939#define MAX77759_PMIC_AP_DATAIN11 0xBC
940
941/*
942 * AP_DATAIN12,0xBD,0b00000000,0x00
943 * OPCODE_DATAIN_12[7:0],,,,,,
944 */
945#define MAX77759_PMIC_AP_DATAIN12 0xBD
946
947/*
948 * AP_DATAIN13,0xBE,0b00000000,0x00
949 * OPCODE_DATAIN_13[7:0],,,,,,
950 */
951#define MAX77759_PMIC_AP_DATAIN13 0xBE
952
953/*
954 * AP_DATAIN14,0xBF,0b00000000,0x00
955 * OPCODE_DATAIN_14[7:0],,,,,,
956 */
957#define MAX77759_PMIC_AP_DATAIN14 0xBF
958
959/*
960 * AP_DATAIN15,0xC0,0b00000000,0x00
961 * OPCODE_DATAIN_15[7:0],,,,,,
962 */
963#define MAX77759_PMIC_AP_DATAIN15 0xC0
964
965/*
966 * AP_DATAIN16,0xC1,0b00000000,0x00
967 * OPCODE_DATAIN_16[7:0],,,,,,
968 */
969#define MAX77759_PMIC_AP_DATAIN16 0xC1
970
971/*
972 * AP_DATAIN17,0xC2,0b00000000,0x00
973 * OPCODE_DATAIN_17[7:0],,,,,,
974 */
975#define MAX77759_PMIC_AP_DATAIN17 0xC2
976
977/*
978 * AP_DATAIN18,0xC3,0b00000000,0x00
979 * OPCODE_DATAIN_18[7:0],,,,,,
980 */
981#define MAX77759_PMIC_AP_DATAIN18 0xC3
982
983/*
984 * AP_DATAIN19,0xC4,0b00000000,0x00
985 * OPCODE_DATAIN_19[7:0],,,,,,
986 */
987#define MAX77759_PMIC_AP_DATAIN19 0xC4
988
989/*
990 * AP_DATAIN20,0xC5,0b00000000,0x00
991 * OPCODE_DATAIN_20[7:0],,,,,,
992 */
993#define MAX77759_PMIC_AP_DATAIN20 0xC5
994
995/*
996 * AP_DATAIN21,0xC6,0b00000000,0x00
997 * OPCODE_DATAIN_21[7:0],,,,,,
998 */
999#define MAX77759_PMIC_AP_DATAIN21 0xC6
1000
1001/*
1002 * AP_DATAIN22,0xC7,0b00000000,0x00
1003 * OPCODE_DATAIN_22[7:0],,,,,,
1004 */
1005#define MAX77759_PMIC_AP_DATAIN22 0xC7
1006
1007/*
1008 * AP_DATAIN23,0xC8,0b00000000,0x00
1009 * OPCODE_DATAIN_23[7:0],,,,,,
1010 */
1011#define MAX77759_PMIC_AP_DATAIN23 0xC8
1012
1013/*
1014 * AP_DATAIN24,0xC9,0b00000000,0x00
1015 * OPCODE_DATAIN_24[7:0],,,,,,
1016 */
1017#define MAX77759_PMIC_AP_DATAIN24 0xC9
1018
1019/*
1020 * AP_DATAIN25,0xCA,0b00000000,0x00
1021 * OPCODE_DATAIN_25[7:0],,,,,,
1022 */
1023#define MAX77759_PMIC_AP_DATAIN25 0xCA
1024
1025/*
1026 * AP_DATAIN26,0xCB,0b00000000,0x00
1027 * OPCODE_DATAIN_26[7:0],,,,,,
1028 */
1029#define MAX77759_PMIC_AP_DATAIN26 0xCB
1030
1031/*
1032 * AP_DATAIN27,0xCC,0b00000000,0x00
1033 * OPCODE_DATAIN_27[7:0],,,,,,
1034 */
1035#define MAX77759_PMIC_AP_DATAIN27 0xCC
1036
1037/*
1038 * AP_DATAIN28,0xCD,0b00000000,0x00
1039 * OPCODE_DATAIN_28[7:0],,,,,,
1040 */
1041#define MAX77759_PMIC_AP_DATAIN28 0xCD
1042
1043/*
1044 * AP_DATAIN29,0xCE,0b00000000,0x00
1045 * OPCODE_DATAIN_29[7:0],,,,,,
1046 */
1047#define MAX77759_PMIC_AP_DATAIN29 0xCE
1048
1049/*
1050 * AP_DATAIN30,0xCF,0b00000000,0x00
1051 * OPCODE_DATAIN_30[7:0],,,,,,
1052 */
1053#define MAX77759_PMIC_AP_DATAIN30 0xCF
1054
1055/*
1056 * AP_DATAIN31,0xD0,0b00000000,0x00
1057 * OPCODE_DATAIN_31[7:0],,,,,,
1058 */
1059#define MAX77759_PMIC_AP_DATAIN31 0xD0
1060
1061/*
1062 * AP_DATAIN32,0xD1,0b00000000,0x00
1063 * OPCODE_DATAIN_32[7:0],,,,,,
1064 */
1065#define MAX77759_PMIC_AP_DATAIN32 0xD1
1066
1067/*
1068 * UIC_SWRST,0xE0,0b00000000,0x00
1069 * UIC_SWRST[7:0],,,,,,
1070 */
1071#define MAX77759_PMIC_UIC_SWRST 0xE0
1072
1073/* section: Charger */
1074
1075/*
1076 * CHG_INT,0xB0,0b00000000,0x00
1077 * AICL_I,CHGIN_I,WCIN_I,CHG_I,BAT_I,INLIM_I,THM2_I
1078 */
1079#define MAX77759_CHG_INT 0xB0
1080#define MAX77759_CHG_INT_AICL_I (0x1 << 7)
1081#define MAX77759_CHG_INT_CHGIN_I (0x1 << 6)
1082#define MAX77759_CHG_INT_WCIN_I (0x1 << 5)
1083#define MAX77759_CHG_INT_CHG_I (0x1 << 4)
1084#define MAX77759_CHG_INT_BAT_I (0x1 << 3)
1085#define MAX77759_CHG_INT_INLIM_I (0x1 << 2)
1086#define MAX77759_CHG_INT_THM2_I (0x1 << 1)
1087#define MAX77759_CHG_INT_BYP_I (0x1 << 0)
1088
1089#define MAX77759_CHG_INT_AICL_I_SHIFT 7
1090#define MAX77759_CHG_INT_AICL_I_MASK (0x1 << 7)
1091#define MAX77759_CHG_INT_AICL_I_CLEAR (~(0x1 << 7))
1092#define MAX77759_CHG_INT_CHGIN_I_SHIFT 6
1093#define MAX77759_CHG_INT_CHGIN_I_MASK (0x1 << 6)
1094#define MAX77759_CHG_INT_CHGIN_I_CLEAR (~(0x1 << 6))
1095#define MAX77759_CHG_INT_WCIN_I_SHIFT 5
1096#define MAX77759_CHG_INT_WCIN_I_MASK (0x1 << 5)
1097#define MAX77759_CHG_INT_WCIN_I_CLEAR (~(0x1 << 5))
1098#define MAX77759_CHG_INT_CHG_I_SHIFT 4
1099#define MAX77759_CHG_INT_CHG_I_MASK (0x1 << 4)
1100#define MAX77759_CHG_INT_CHG_I_CLEAR (~(0x1 << 4))
1101#define MAX77759_CHG_INT_BAT_I_SHIFT 3
1102#define MAX77759_CHG_INT_BAT_I_MASK (0x1 << 3)
1103#define MAX77759_CHG_INT_BAT_I_CLEAR (~(0x1 << 3))
1104#define MAX77759_CHG_INT_INLIM_I_SHIFT 2
1105#define MAX77759_CHG_INT_INLIM_I_MASK (0x1 << 2)
1106#define MAX77759_CHG_INT_INLIM_I_CLEAR (~(0x1 << 2))
1107#define MAX77759_CHG_INT_THM2_I_SHIFT 1
1108#define MAX77759_CHG_INT_THM2_I_MASK (0x1 << 1)
1109#define MAX77759_CHG_INT_THM2_I_CLEAR (~(0x1 << 1))
1110#define MAX77759_CHG_INT_BYP_I_SHIFT 0
1111#define MAX77759_CHG_INT_BYP_I_MASK (0x1 << 0)
1112#define MAX77759_CHG_INT_BYP_I_CLEAR (~(0x1 << 0))
1113
1114MAX77759_BFF(chg_int_aicl_i,7,7)
1115MAX77759_BFF(chg_int_chgin_i,6,6)
1116MAX77759_BFF(chg_int_wcin_i,5,5)
1117MAX77759_BFF(chg_int_chg_i,4,4)
1118MAX77759_BFF(chg_int_bat_i,3,3)
1119MAX77759_BFF(chg_int_inlim_i,2,2)
1120MAX77759_BFF(chg_int_thm2_i,1,1)
1121MAX77759_BFF(chg_int_byp_i,0,0)
1122static inline const char *
1123max77759_chg_int_cstr(char *buff, size_t len, int val)
1124{
1125#ifdef SCNPRINTF
1126 int i = 0;
1127
1128 i += SCNPRINTF(&buff[i], len - i, " AICL_I=%x",
1129 FIELD2VALUE(MAX77759_CHG_INT_AICL_I, val));
1130 i += SCNPRINTF(&buff[i], len - i, " CHGIN_I=%x",
1131 FIELD2VALUE(MAX77759_CHG_INT_CHGIN_I, val));
1132 i += SCNPRINTF(&buff[i], len - i, " WCIN_I=%x",
1133 FIELD2VALUE(MAX77759_CHG_INT_WCIN_I, val));
1134 i += SCNPRINTF(&buff[i], len - i, " CHG_I=%x",
1135 FIELD2VALUE(MAX77759_CHG_INT_CHG_I, val));
1136 i += SCNPRINTF(&buff[i], len - i, " BAT_I=%x",
1137 FIELD2VALUE(MAX77759_CHG_INT_BAT_I, val));
1138 i += SCNPRINTF(&buff[i], len - i, " INLIM_I=%x",
1139 FIELD2VALUE(MAX77759_CHG_INT_INLIM_I, val));
1140 i += SCNPRINTF(&buff[i], len - i, " THM2_I=%x",
1141 FIELD2VALUE(MAX77759_CHG_INT_THM2_I, val));
1142 i += SCNPRINTF(&buff[i], len - i, " BYP_I=%x",
1143 FIELD2VALUE(MAX77759_CHG_INT_BYP_I, val));
1144#else
1145 buff[0] = 0;
1146#endif
1147 return buff;
1148}
1149
1150/*
1151 * CHG_INT2,0xB1,0b00000000,0x00
1152 * INSEL_I,SYS_UVLO1_I,SYS_UVLO2_I,BAT_OILO_I,CHG_STA_CC_I,CHG_STA_CV_I,CHG_STA_TO_I
1153 */
1154#define MAX77759_CHG_INT2 0xB1
1155#define MAX77759_CHG_INT2_INSEL_I (0x1 << 7)
1156#define MAX77759_CHG_INT2_SYS_UVLO1_I (0x1 << 6)
1157#define MAX77759_CHG_INT2_SYS_UVLO2_I (0x1 << 5)
1158#define MAX77759_CHG_INT2_BAT_OILO_I (0x1 << 4)
1159#define MAX77759_CHG_INT2_CHG_STA_CC_I (0x1 << 3)
1160#define MAX77759_CHG_INT2_CHG_STA_CV_I (0x1 << 2)
1161#define MAX77759_CHG_INT2_CHG_STA_TO_I (0x1 << 1)
1162#define MAX77759_CHG_INT2_CHG_STA_DONE_I (0x1 << 0)
1163
1164#define MAX77759_CHG_INT2_INSEL_I_SHIFT 7
1165#define MAX77759_CHG_INT2_INSEL_I_MASK (0x1 << 7)
1166#define MAX77759_CHG_INT2_INSEL_I_CLEAR (~(0x1 << 7))
1167#define MAX77759_CHG_INT2_SYS_UVLO1_I_SHIFT 6
1168#define MAX77759_CHG_INT2_SYS_UVLO1_I_MASK (0x1 << 6)
1169#define MAX77759_CHG_INT2_SYS_UVLO1_I_CLEAR (~(0x1 << 6))
1170#define MAX77759_CHG_INT2_SYS_UVLO2_I_SHIFT 5
1171#define MAX77759_CHG_INT2_SYS_UVLO2_I_MASK (0x1 << 5)
1172#define MAX77759_CHG_INT2_SYS_UVLO2_I_CLEAR (~(0x1 << 5))
1173#define MAX77759_CHG_INT2_BAT_OILO_I_SHIFT 4
1174#define MAX77759_CHG_INT2_BAT_OILO_I_MASK (0x1 << 4)
1175#define MAX77759_CHG_INT2_BAT_OILO_I_CLEAR (~(0x1 << 4))
1176#define MAX77759_CHG_INT2_CHG_STA_CC_I_SHIFT 3
1177#define MAX77759_CHG_INT2_CHG_STA_CC_I_MASK (0x1 << 3)
1178#define MAX77759_CHG_INT2_CHG_STA_CC_I_CLEAR (~(0x1 << 3))
1179#define MAX77759_CHG_INT2_CHG_STA_CV_I_SHIFT 2
1180#define MAX77759_CHG_INT2_CHG_STA_CV_I_MASK (0x1 << 2)
1181#define MAX77759_CHG_INT2_CHG_STA_CV_I_CLEAR (~(0x1 << 2))
1182#define MAX77759_CHG_INT2_CHG_STA_TO_I_SHIFT 1
1183#define MAX77759_CHG_INT2_CHG_STA_TO_I_MASK (0x1 << 1)
1184#define MAX77759_CHG_INT2_CHG_STA_TO_I_CLEAR (~(0x1 << 1))
1185#define MAX77759_CHG_INT2_CHG_STA_DONE_I_SHIFT 0
1186#define MAX77759_CHG_INT2_CHG_STA_DONE_I_MASK (0x1 << 0)
1187#define MAX77759_CHG_INT2_CHG_STA_DONE_I_CLEAR (~(0x1 << 0))
1188
1189MAX77759_BFF(chg_int2_insel_i,7,7)
1190MAX77759_BFF(chg_int2_sys_uvlo1_i,6,6)
1191MAX77759_BFF(chg_int2_sys_uvlo2_i,5,5)
1192MAX77759_BFF(chg_int2_bat_oilo_i,4,4)
1193MAX77759_BFF(chg_int2_chg_sta_cc_i,3,3)
1194MAX77759_BFF(chg_int2_chg_sta_cv_i,2,2)
1195MAX77759_BFF(chg_int2_chg_sta_to_i,1,1)
1196MAX77759_BFF(chg_int2_chg_sta_done_i,0,0)
1197static inline const char *
1198max77759_chg_int2_cstr(char *buff, size_t len, int val)
1199{
1200#ifdef SCNPRINTF
1201 int i = 0;
1202
1203 i += SCNPRINTF(&buff[i], len - i, " INSEL_I=%x",
1204 FIELD2VALUE(MAX77759_CHG_INT2_INSEL_I, val));
1205 i += SCNPRINTF(&buff[i], len - i, " SYS_UVLO1_I=%x",
1206 FIELD2VALUE(MAX77759_CHG_INT2_SYS_UVLO1_I, val));
1207 i += SCNPRINTF(&buff[i], len - i, " SYS_UVLO2_I=%x",
1208 FIELD2VALUE(MAX77759_CHG_INT2_SYS_UVLO2_I, val));
1209 i += SCNPRINTF(&buff[i], len - i, " BAT_OILO_I=%x",
1210 FIELD2VALUE(MAX77759_CHG_INT2_BAT_OILO_I, val));
1211 i += SCNPRINTF(&buff[i], len - i, " CHG_STA_CC_I=%x",
1212 FIELD2VALUE(MAX77759_CHG_INT2_CHG_STA_CC_I, val));
1213 i += SCNPRINTF(&buff[i], len - i, " CHG_STA_CV_I=%x",
1214 FIELD2VALUE(MAX77759_CHG_INT2_CHG_STA_CV_I, val));
1215 i += SCNPRINTF(&buff[i], len - i, " CHG_STA_TO_I=%x",
1216 FIELD2VALUE(MAX77759_CHG_INT2_CHG_STA_TO_I, val));
1217 i += SCNPRINTF(&buff[i], len - i, " CHG_STA_DONE_I=%x",
1218 FIELD2VALUE(MAX77759_CHG_INT2_CHG_STA_DONE_I, val));
1219#else
1220 buff[0] = 0;
1221#endif
1222 return buff;
1223}
1224
1225/*
1226 * CHG_INT_MASK,0xB2,0b11111111,0xff
1227 * AICL_M,CHGIN_M,WCIN_M,CHG_M,BAT_M,INLIM_M,THM2_M
1228 */
1229#define MAX77759_CHG_INT_MASK 0xB2
1230#define MAX77759_CHG_INT_MASK_AICL_M (0x1 << 7)
1231#define MAX77759_CHG_INT_MASK_CHGIN_M (0x1 << 6)
1232#define MAX77759_CHG_INT_MASK_WCIN_M (0x1 << 5)
1233#define MAX77759_CHG_INT_MASK_CHG_M (0x1 << 4)
1234#define MAX77759_CHG_INT_MASK_BAT_M (0x1 << 3)
1235#define MAX77759_CHG_INT_MASK_INLIM_M (0x1 << 2)
1236#define MAX77759_CHG_INT_MASK_THM2_M (0x1 << 1)
1237#define MAX77759_CHG_INT_MASK_BYP_M (0x1 << 0)
1238
1239#define MAX77759_CHG_INT_MASK_AICL_M_SHIFT 7
1240#define MAX77759_CHG_INT_MASK_AICL_M_MASK (0x1 << 7)
1241#define MAX77759_CHG_INT_MASK_AICL_M_CLEAR (~(0x1 << 7))
1242#define MAX77759_CHG_INT_MASK_CHGIN_M_SHIFT 6
1243#define MAX77759_CHG_INT_MASK_CHGIN_M_MASK (0x1 << 6)
1244#define MAX77759_CHG_INT_MASK_CHGIN_M_CLEAR (~(0x1 << 6))
1245#define MAX77759_CHG_INT_MASK_WCIN_M_SHIFT 5
1246#define MAX77759_CHG_INT_MASK_WCIN_M_MASK (0x1 << 5)
1247#define MAX77759_CHG_INT_MASK_WCIN_M_CLEAR (~(0x1 << 5))
1248#define MAX77759_CHG_INT_MASK_CHG_M_SHIFT 4
1249#define MAX77759_CHG_INT_MASK_CHG_M_MASK (0x1 << 4)
1250#define MAX77759_CHG_INT_MASK_CHG_M_CLEAR (~(0x1 << 4))
1251#define MAX77759_CHG_INT_MASK_BAT_M_SHIFT 3
1252#define MAX77759_CHG_INT_MASK_BAT_M_MASK (0x1 << 3)
1253#define MAX77759_CHG_INT_MASK_BAT_M_CLEAR (~(0x1 << 3))
1254#define MAX77759_CHG_INT_MASK_INLIM_M_SHIFT 2
1255#define MAX77759_CHG_INT_MASK_INLIM_M_MASK (0x1 << 2)
1256#define MAX77759_CHG_INT_MASK_INLIM_M_CLEAR (~(0x1 << 2))
1257#define MAX77759_CHG_INT_MASK_THM2_M_SHIFT 1
1258#define MAX77759_CHG_INT_MASK_THM2_M_MASK (0x1 << 1)
1259#define MAX77759_CHG_INT_MASK_THM2_M_CLEAR (~(0x1 << 1))
1260#define MAX77759_CHG_INT_MASK_BYP_M_SHIFT 0
1261#define MAX77759_CHG_INT_MASK_BYP_M_MASK (0x1 << 0)
1262#define MAX77759_CHG_INT_MASK_BYP_M_CLEAR (~(0x1 << 0))
1263
1264MAX77759_BFF(chg_int_mask_aicl_m,7,7)
1265MAX77759_BFF(chg_int_mask_chgin_m,6,6)
1266MAX77759_BFF(chg_int_mask_wcin_m,5,5)
1267MAX77759_BFF(chg_int_mask_chg_m,4,4)
1268MAX77759_BFF(chg_int_mask_bat_m,3,3)
1269MAX77759_BFF(chg_int_mask_inlim_m,2,2)
1270MAX77759_BFF(chg_int_mask_thm2_m,1,1)
1271MAX77759_BFF(chg_int_mask_byp_m,0,0)
1272static inline const char *
1273max77759_chg_int_mask_cstr(char *buff, size_t len, int val)
1274{
1275#ifdef SCNPRINTF
1276 int i = 0;
1277
1278 i += SCNPRINTF(&buff[i], len - i, " AICL_M=%x",
1279 FIELD2VALUE(MAX77759_CHG_INT_MASK_AICL_M, val));
1280 i += SCNPRINTF(&buff[i], len - i, " CHGIN_M=%x",
1281 FIELD2VALUE(MAX77759_CHG_INT_MASK_CHGIN_M, val));
1282 i += SCNPRINTF(&buff[i], len - i, " WCIN_M=%x",
1283 FIELD2VALUE(MAX77759_CHG_INT_MASK_WCIN_M, val));
1284 i += SCNPRINTF(&buff[i], len - i, " CHG_M=%x",
1285 FIELD2VALUE(MAX77759_CHG_INT_MASK_CHG_M, val));
1286 i += SCNPRINTF(&buff[i], len - i, " BAT_M=%x",
1287 FIELD2VALUE(MAX77759_CHG_INT_MASK_BAT_M, val));
1288 i += SCNPRINTF(&buff[i], len - i, " INLIM_M=%x",
1289 FIELD2VALUE(MAX77759_CHG_INT_MASK_INLIM_M, val));
1290 i += SCNPRINTF(&buff[i], len - i, " THM2_M=%x",
1291 FIELD2VALUE(MAX77759_CHG_INT_MASK_THM2_M, val));
1292 i += SCNPRINTF(&buff[i], len - i, " BYP_M=%x",
1293 FIELD2VALUE(MAX77759_CHG_INT_MASK_BYP_M, val));
1294#else
1295 buff[0] = 0;
1296#endif
1297 return buff;
1298}
1299
1300/*
1301 * CHG_INT2_MASK,0xB3,0b11111111,0xff
1302 * INSEL_M,SYS_UVLO1_M,SYS_UVLO2_M,BAT_OILO_M,CHG_STA_CC_M,CHG_STA_CV_M,CHG_STA_TO_M
1303 */
1304#define MAX77759_CHG_INT2_MASK 0xB3
1305#define MAX77759_CHG_INT2_MASK_INSEL_M (0x1 << 7)
1306#define MAX77759_CHG_INT2_MASK_SYS_UVLO1_M (0x1 << 6)
1307#define MAX77759_CHG_INT2_MASK_SYS_UVLO2_M (0x1 << 5)
1308#define MAX77759_CHG_INT2_MASK_BAT_OILO_M (0x1 << 4)
1309#define MAX77759_CHG_INT2_MASK_CHG_STA_CC_M (0x1 << 3)
1310#define MAX77759_CHG_INT2_MASK_CHG_STA_CV_M (0x1 << 2)
1311#define MAX77759_CHG_INT2_MASK_CHG_STA_TO_M (0x1 << 1)
1312#define MAX77759_CHG_INT2_MASK_CHG_STA_DONE_M (0x1 << 0)
1313
1314#define MAX77759_CHG_INT2_MASK_INSEL_M_SHIFT 7
1315#define MAX77759_CHG_INT2_MASK_INSEL_M_MASK (0x1 << 7)
1316#define MAX77759_CHG_INT2_MASK_INSEL_M_CLEAR (~(0x1 << 7))
1317#define MAX77759_CHG_INT2_MASK_SYS_UVLO1_M_SHIFT 6
1318#define MAX77759_CHG_INT2_MASK_SYS_UVLO1_M_MASK (0x1 << 6)
1319#define MAX77759_CHG_INT2_MASK_SYS_UVLO1_M_CLEAR (~(0x1 << 6))
1320#define MAX77759_CHG_INT2_MASK_SYS_UVLO2_M_SHIFT 5
1321#define MAX77759_CHG_INT2_MASK_SYS_UVLO2_M_MASK (0x1 << 5)
1322#define MAX77759_CHG_INT2_MASK_SYS_UVLO2_M_CLEAR (~(0x1 << 5))
1323#define MAX77759_CHG_INT2_MASK_BAT_OILO_M_SHIFT 4
1324#define MAX77759_CHG_INT2_MASK_BAT_OILO_M_MASK (0x1 << 4)
1325#define MAX77759_CHG_INT2_MASK_BAT_OILO_M_CLEAR (~(0x1 << 4))
1326#define MAX77759_CHG_INT2_MASK_CHG_STA_CC_M_SHIFT 3
1327#define MAX77759_CHG_INT2_MASK_CHG_STA_CC_M_MASK (0x1 << 3)
1328#define MAX77759_CHG_INT2_MASK_CHG_STA_CC_M_CLEAR (~(0x1 << 3))
1329#define MAX77759_CHG_INT2_MASK_CHG_STA_CV_M_SHIFT 2
1330#define MAX77759_CHG_INT2_MASK_CHG_STA_CV_M_MASK (0x1 << 2)
1331#define MAX77759_CHG_INT2_MASK_CHG_STA_CV_M_CLEAR (~(0x1 << 2))
1332#define MAX77759_CHG_INT2_MASK_CHG_STA_TO_M_SHIFT 1
1333#define MAX77759_CHG_INT2_MASK_CHG_STA_TO_M_MASK (0x1 << 1)
1334#define MAX77759_CHG_INT2_MASK_CHG_STA_TO_M_CLEAR (~(0x1 << 1))
1335#define MAX77759_CHG_INT2_MASK_CHG_STA_DONE_M_SHIFT 0
1336#define MAX77759_CHG_INT2_MASK_CHG_STA_DONE_M_MASK (0x1 << 0)
1337#define MAX77759_CHG_INT2_MASK_CHG_STA_DONE_M_CLEAR (~(0x1 << 0))
1338
1339MAX77759_BFF(chg_int2_mask_insel_m,7,7)
1340MAX77759_BFF(chg_int2_mask_sys_uvlo1_m,6,6)
1341MAX77759_BFF(chg_int2_mask_sys_uvlo2_m,5,5)
1342MAX77759_BFF(chg_int2_mask_bat_oilo_m,4,4)
1343MAX77759_BFF(chg_int2_mask_chg_sta_cc_m,3,3)
1344MAX77759_BFF(chg_int2_mask_chg_sta_cv_m,2,2)
1345MAX77759_BFF(chg_int2_mask_chg_sta_to_m,1,1)
1346MAX77759_BFF(chg_int2_mask_chg_sta_done_m,0,0)
1347static inline const char *
1348max77759_chg_int2_mask_cstr(char *buff, size_t len, int val)
1349{
1350#ifdef SCNPRINTF
1351 int i = 0;
1352
1353 i += SCNPRINTF(&buff[i], len - i, " INSEL_M=%x",
1354 FIELD2VALUE(MAX77759_CHG_INT2_MASK_INSEL_M, val));
1355 i += SCNPRINTF(&buff[i], len - i, " SYS_UVLO1_M=%x",
1356 FIELD2VALUE(MAX77759_CHG_INT2_MASK_SYS_UVLO1_M, val));
1357 i += SCNPRINTF(&buff[i], len - i, " SYS_UVLO2_M=%x",
1358 FIELD2VALUE(MAX77759_CHG_INT2_MASK_SYS_UVLO2_M, val));
1359 i += SCNPRINTF(&buff[i], len - i, " BAT_OILO_M=%x",
1360 FIELD2VALUE(MAX77759_CHG_INT2_MASK_BAT_OILO_M, val));
1361 i += SCNPRINTF(&buff[i], len - i, " CHG_STA_CC_M=%x",
1362 FIELD2VALUE(MAX77759_CHG_INT2_MASK_CHG_STA_CC_M, val));
1363 i += SCNPRINTF(&buff[i], len - i, " CHG_STA_CV_M=%x",
1364 FIELD2VALUE(MAX77759_CHG_INT2_MASK_CHG_STA_CV_M, val));
1365 i += SCNPRINTF(&buff[i], len - i, " CHG_STA_TO_M=%x",
1366 FIELD2VALUE(MAX77759_CHG_INT2_MASK_CHG_STA_TO_M, val));
1367 i += SCNPRINTF(&buff[i], len - i, " CHG_STA_DONE_M=%x",
1368 FIELD2VALUE(MAX77759_CHG_INT2_MASK_CHG_STA_DONE_M, val));
1369#else
1370 buff[0] = 0;
1371#endif
1372 return buff;
1373}
1374
1375/*
1376 * CHG_INT_OK,0xB4,0b10011111,0x9f
1377 * AICL_OK,CHGIN_OK,WCIN_OK,CHG_OK,BAT_OK,INLIM_OK,THM2_OK
1378 */
1379#define MAX77759_CHG_INT_OK 0xB4
1380#define MAX77759_CHG_INT_OK_AICL_OK (0x1 << 7)
1381#define MAX77759_CHG_INT_OK_CHGIN_OK (0x1 << 6)
1382#define MAX77759_CHG_INT_OK_WCIN_OK (0x1 << 5)
1383#define MAX77759_CHG_INT_OK_CHG_OK (0x1 << 4)
1384#define MAX77759_CHG_INT_OK_BAT_OK (0x1 << 3)
1385#define MAX77759_CHG_INT_OK_INLIM_OK (0x1 << 2)
1386#define MAX77759_CHG_INT_OK_THM2_OK (0x1 << 1)
1387#define MAX77759_CHG_INT_OK_BYP_OK (0x1 << 0)
1388
1389#define MAX77759_CHG_INT_OK_AICL_OK_SHIFT 7
1390#define MAX77759_CHG_INT_OK_AICL_OK_MASK (0x1 << 7)
1391#define MAX77759_CHG_INT_OK_AICL_OK_CLEAR (~(0x1 << 7))
1392#define MAX77759_CHG_INT_OK_CHGIN_OK_SHIFT 6
1393#define MAX77759_CHG_INT_OK_CHGIN_OK_MASK (0x1 << 6)
1394#define MAX77759_CHG_INT_OK_CHGIN_OK_CLEAR (~(0x1 << 6))
1395#define MAX77759_CHG_INT_OK_WCIN_OK_SHIFT 5
1396#define MAX77759_CHG_INT_OK_WCIN_OK_MASK (0x1 << 5)
1397#define MAX77759_CHG_INT_OK_WCIN_OK_CLEAR (~(0x1 << 5))
1398#define MAX77759_CHG_INT_OK_CHG_OK_SHIFT 4
1399#define MAX77759_CHG_INT_OK_CHG_OK_MASK (0x1 << 4)
1400#define MAX77759_CHG_INT_OK_CHG_OK_CLEAR (~(0x1 << 4))
1401#define MAX77759_CHG_INT_OK_BAT_OK_SHIFT 3
1402#define MAX77759_CHG_INT_OK_BAT_OK_MASK (0x1 << 3)
1403#define MAX77759_CHG_INT_OK_BAT_OK_CLEAR (~(0x1 << 3))
1404#define MAX77759_CHG_INT_OK_INLIM_OK_SHIFT 2
1405#define MAX77759_CHG_INT_OK_INLIM_OK_MASK (0x1 << 2)
1406#define MAX77759_CHG_INT_OK_INLIM_OK_CLEAR (~(0x1 << 2))
1407#define MAX77759_CHG_INT_OK_THM2_OK_SHIFT 1
1408#define MAX77759_CHG_INT_OK_THM2_OK_MASK (0x1 << 1)
1409#define MAX77759_CHG_INT_OK_THM2_OK_CLEAR (~(0x1 << 1))
1410#define MAX77759_CHG_INT_OK_BYP_OK_SHIFT 0
1411#define MAX77759_CHG_INT_OK_BYP_OK_MASK (0x1 << 0)
1412#define MAX77759_CHG_INT_OK_BYP_OK_CLEAR (~(0x1 << 0))
1413
1414MAX77759_BFF(chg_int_ok_aicl_ok,7,7)
1415MAX77759_BFF(chg_int_ok_chgin_ok,6,6)
1416MAX77759_BFF(chg_int_ok_wcin_ok,5,5)
1417MAX77759_BFF(chg_int_ok_chg_ok,4,4)
1418MAX77759_BFF(chg_int_ok_bat_ok,3,3)
1419MAX77759_BFF(chg_int_ok_inlim_ok,2,2)
1420MAX77759_BFF(chg_int_ok_thm2_ok,1,1)
1421MAX77759_BFF(chg_int_ok_byp_ok,0,0)
1422static inline const char *
1423max77759_chg_int_ok_cstr(char *buff, size_t len, int val)
1424{
1425#ifdef SCNPRINTF
1426 int i = 0;
1427
1428 i += SCNPRINTF(&buff[i], len - i, " AICL_OK=%x",
1429 FIELD2VALUE(MAX77759_CHG_INT_OK_AICL_OK, val));
1430 i += SCNPRINTF(&buff[i], len - i, " CHGIN_OK=%x",
1431 FIELD2VALUE(MAX77759_CHG_INT_OK_CHGIN_OK, val));
1432 i += SCNPRINTF(&buff[i], len - i, " WCIN_OK=%x",
1433 FIELD2VALUE(MAX77759_CHG_INT_OK_WCIN_OK, val));
1434 i += SCNPRINTF(&buff[i], len - i, " CHG_OK=%x",
1435 FIELD2VALUE(MAX77759_CHG_INT_OK_CHG_OK, val));
1436 i += SCNPRINTF(&buff[i], len - i, " BAT_OK=%x",
1437 FIELD2VALUE(MAX77759_CHG_INT_OK_BAT_OK, val));
1438 i += SCNPRINTF(&buff[i], len - i, " INLIM_OK=%x",
1439 FIELD2VALUE(MAX77759_CHG_INT_OK_INLIM_OK, val));
1440 i += SCNPRINTF(&buff[i], len - i, " THM2_OK=%x",
1441 FIELD2VALUE(MAX77759_CHG_INT_OK_THM2_OK, val));
1442 i += SCNPRINTF(&buff[i], len - i, " BYP_OK=%x",
1443 FIELD2VALUE(MAX77759_CHG_INT_OK_BYP_OK, val));
1444#else
1445 buff[0] = 0;
1446#endif
1447 return buff;
1448}
1449
1450/*
1451 * CHG_DETAILS_00,0xB5,0b00000000,0x00
1452 * RSVD,CHGIN_DTLS[1:0],,WCIN_DTLS[1:0],,SPSN_DTLS[1:0],
1453 */
1454#define MAX77759_CHG_DETAILS_00 0xB5
1455#define MAX77759_CHG_DETAILS_00_RSVD (0x1 << 7)
1456#define MAX77759_CHG_DETAILS_00_TREG (0x1 << 0)
1457
1458#define MAX77759_CHG_DETAILS_00_RSVD_SHIFT 7
1459#define MAX77759_CHG_DETAILS_00_RSVD_MASK (0x1 << 7)
1460#define MAX77759_CHG_DETAILS_00_RSVD_CLEAR (~(0x1 << 7))
1461#define MAX77759_CHG_DETAILS_00_CHGIN_DTLS_SHIFT 5
1462#define MAX77759_CHG_DETAILS_00_CHGIN_DTLS_MASK (0x3 << 5)
1463#define MAX77759_CHG_DETAILS_00_CHGIN_DTLS_CLEAR (~(0x3 << 5))
1464#define MAX77759_CHG_DETAILS_00_WCIN_DTLS_SHIFT 3
1465#define MAX77759_CHG_DETAILS_00_WCIN_DTLS_MASK (0x3 << 3)
1466#define MAX77759_CHG_DETAILS_00_WCIN_DTLS_CLEAR (~(0x3 << 3))
1467#define MAX77759_CHG_DETAILS_00_SPSN_DTLS_SHIFT 1
1468#define MAX77759_CHG_DETAILS_00_SPSN_DTLS_MASK (0x3 << 1)
1469#define MAX77759_CHG_DETAILS_00_SPSN_DTLS_CLEAR (~(0x3 << 1))
1470#define MAX77759_CHG_DETAILS_00_TREG_SHIFT 0
1471#define MAX77759_CHG_DETAILS_00_TREG_MASK (0x1 << 0)
1472#define MAX77759_CHG_DETAILS_00_TREG_CLEAR (~(0x1 << 0))
1473
1474MAX77759_BFF(chg_details_00_rsvd,7,7)
1475MAX77759_BFF(chg_details_00_chgin_dtls,6,5)
1476MAX77759_BFF(chg_details_00_wcin_dtls,4,3)
1477MAX77759_BFF(chg_details_00_spsn_dtls,2,1)
1478MAX77759_BFF(chg_details_00_treg,0,0)
1479static inline const char *
1480max77759_chg_details_00_cstr(char *buff, size_t len, int val)
1481{
1482#ifdef SCNPRINTF
1483 int i = 0;
1484
1485 i += SCNPRINTF(&buff[i], len - i, " RSVD=%x",
1486 FIELD2VALUE(MAX77759_CHG_DETAILS_00_RSVD, val));
1487 i += SCNPRINTF(&buff[i], len - i, " CHGIN_DTLS=%x",
1488 FIELD2VALUE(MAX77759_CHG_DETAILS_00_CHGIN_DTLS, val));
1489 i += SCNPRINTF(&buff[i], len - i, " WCIN_DTLS=%x",
1490 FIELD2VALUE(MAX77759_CHG_DETAILS_00_WCIN_DTLS, val));
1491 i += SCNPRINTF(&buff[i], len - i, " SPSN_DTLS=%x",
1492 FIELD2VALUE(MAX77759_CHG_DETAILS_00_SPSN_DTLS, val));
1493 i += SCNPRINTF(&buff[i], len - i, " TREG=%x",
1494 FIELD2VALUE(MAX77759_CHG_DETAILS_00_TREG, val));
1495#else
1496 buff[0] = 0;
1497#endif
1498 return buff;
1499}
1500
1501/*
1502 * CHG_DETAILS_01,0xB6,0b11111000,0xf8
1503 * VDROOP2_OK,BAT_DTLS[2:0],,,CHG_DTLS[3:0],,
1504 */
1505#define MAX77759_CHG_DETAILS_01 0xB6
1506#define MAX77759_CHG_DETAILS_01_VDROOP2_OK (0x1 << 7)
1507
1508#define MAX77759_CHG_DETAILS_01_VDROOP2_OK_SHIFT 7
1509#define MAX77759_CHG_DETAILS_01_VDROOP2_OK_MASK (0x1 << 7)
1510#define MAX77759_CHG_DETAILS_01_VDROOP2_OK_CLEAR (~(0x1 << 7))
1511#define MAX77759_CHG_DETAILS_01_BAT_DTLS_SHIFT 4
1512#define MAX77759_CHG_DETAILS_01_BAT_DTLS_MASK (0x7 << 4)
1513#define MAX77759_CHG_DETAILS_01_BAT_DTLS_CLEAR (~(0x7 << 4))
1514#define MAX77759_CHG_DETAILS_01_CHG_DTLS_SHIFT 0
1515#define MAX77759_CHG_DETAILS_01_CHG_DTLS_MASK (0xf << 0)
1516#define MAX77759_CHG_DETAILS_01_CHG_DTLS_CLEAR (~(0xf << 0))
1517
1518MAX77759_BFF(chg_details_01_vdroop2_ok,7,7)
1519MAX77759_BFF(chg_details_01_bat_dtls,6,4)
1520MAX77759_BFF(chg_details_01_chg_dtls,3,0)
1521static inline const char *
1522max77759_chg_details_01_cstr(char *buff, size_t len, int val)
1523{
1524#ifdef SCNPRINTF
1525 int i = 0;
1526
1527 i += SCNPRINTF(&buff[i], len - i, " VDROOP2_OK=%x",
1528 FIELD2VALUE(MAX77759_CHG_DETAILS_01_VDROOP2_OK, val));
1529 i += SCNPRINTF(&buff[i], len - i, " BAT_DTLS=%x",
1530 FIELD2VALUE(MAX77759_CHG_DETAILS_01_BAT_DTLS, val));
1531 i += SCNPRINTF(&buff[i], len - i, " CHG_DTLS=%x",
1532 FIELD2VALUE(MAX77759_CHG_DETAILS_01_CHG_DTLS, val));
1533#else
1534 buff[0] = 0;
1535#endif
1536 return buff;
1537}
1538
1539/*
1540 * CHG_DETAILS_02,0xB7,0b00000000,0x00
1541 * RSVD[1:0],,CHGIN_STS,WCIN_STS,BYP_DTLS[3:0],,
1542 */
1543#define MAX77759_CHG_DETAILS_02 0xB7
1544#define MAX77759_CHG_DETAILS_02_CHGIN_STS (0x1 << 5)
1545#define MAX77759_CHG_DETAILS_02_WCIN_STS (0x1 << 4)
1546
1547#define MAX77759_CHG_DETAILS_02_RSVD_SHIFT 6
1548#define MAX77759_CHG_DETAILS_02_RSVD_MASK (0x3 << 6)
1549#define MAX77759_CHG_DETAILS_02_RSVD_CLEAR (~(0x3 << 6))
1550#define MAX77759_CHG_DETAILS_02_CHGIN_STS_SHIFT 5
1551#define MAX77759_CHG_DETAILS_02_CHGIN_STS_MASK (0x1 << 5)
1552#define MAX77759_CHG_DETAILS_02_CHGIN_STS_CLEAR (~(0x1 << 5))
1553#define MAX77759_CHG_DETAILS_02_WCIN_STS_SHIFT 4
1554#define MAX77759_CHG_DETAILS_02_WCIN_STS_MASK (0x1 << 4)
1555#define MAX77759_CHG_DETAILS_02_WCIN_STS_CLEAR (~(0x1 << 4))
1556#define MAX77759_CHG_DETAILS_02_BYP_DTLS_SHIFT 0
1557#define MAX77759_CHG_DETAILS_02_BYP_DTLS_MASK (0xf << 0)
1558#define MAX77759_CHG_DETAILS_02_BYP_DTLS_CLEAR (~(0xf << 0))
1559
1560MAX77759_BFF(chg_details_02_rsvd,7,6)
1561MAX77759_BFF(chg_details_02_chgin_sts,5,5)
1562MAX77759_BFF(chg_details_02_wcin_sts,4,4)
1563MAX77759_BFF(chg_details_02_byp_dtls,3,0)
1564static inline const char *
1565max77759_chg_details_02_cstr(char *buff, size_t len, int val)
1566{
1567#ifdef SCNPRINTF
1568 int i = 0;
1569
1570 i += SCNPRINTF(&buff[i], len - i, " RSVD=%x",
1571 FIELD2VALUE(MAX77759_CHG_DETAILS_02_RSVD, val));
1572 i += SCNPRINTF(&buff[i], len - i, " CHGIN_STS=%x",
1573 FIELD2VALUE(MAX77759_CHG_DETAILS_02_CHGIN_STS, val));
1574 i += SCNPRINTF(&buff[i], len - i, " WCIN_STS=%x",
1575 FIELD2VALUE(MAX77759_CHG_DETAILS_02_WCIN_STS, val));
1576 i += SCNPRINTF(&buff[i], len - i, " BYP_DTLS=%x",
1577 FIELD2VALUE(MAX77759_CHG_DETAILS_02_BYP_DTLS, val));
1578#else
1579 buff[0] = 0;
1580#endif
1581 return buff;
1582}
1583
1584/*
1585 * CHG_DETAILS_03,0xB8,0b00000010,0x02
1586 * FSHIP_EXIT_DTLS[1:0],,MD_DTLS[1:0],,RSVD,THM_DTLS[2:0],
1587 */
1588#define MAX77759_CHG_DETAILS_03 0xB8
1589#define MAX77759_CHG_DETAILS_03_RSVD (0x1 << 3)
1590
1591#define MAX77759_CHG_DETAILS_03_FSHIP_EXIT_DTLS_SHIFT 6
1592#define MAX77759_CHG_DETAILS_03_FSHIP_EXIT_DTLS_MASK (0x3 << 6)
1593#define MAX77759_CHG_DETAILS_03_FSHIP_EXIT_DTLS_CLEAR (~(0x3 << 6))
1594#define MAX77759_CHG_DETAILS_03_MD_DTLS_SHIFT 4
1595#define MAX77759_CHG_DETAILS_03_MD_DTLS_MASK (0x3 << 4)
1596#define MAX77759_CHG_DETAILS_03_MD_DTLS_CLEAR (~(0x3 << 4))
1597#define MAX77759_CHG_DETAILS_03_RSVD_SHIFT 3
1598#define MAX77759_CHG_DETAILS_03_RSVD_MASK (0x1 << 3)
1599#define MAX77759_CHG_DETAILS_03_RSVD_CLEAR (~(0x1 << 3))
1600#define MAX77759_CHG_DETAILS_03_THM_DTLS_SHIFT 0
1601#define MAX77759_CHG_DETAILS_03_THM_DTLS_MASK (0x7 << 0)
1602#define MAX77759_CHG_DETAILS_03_THM_DTLS_CLEAR (~(0x7 << 0))
1603
1604MAX77759_BFF(chg_details_03_fship_exit_dtls,7,6)
1605MAX77759_BFF(chg_details_03_md_dtls,5,4)
1606MAX77759_BFF(chg_details_03_rsvd,3,3)
1607MAX77759_BFF(chg_details_03_thm_dtls,2,0)
1608static inline const char *
1609max77759_chg_details_03_cstr(char *buff, size_t len, int val)
1610{
1611#ifdef SCNPRINTF
1612 int i = 0;
1613
1614 i += SCNPRINTF(&buff[i], len - i, " FSHIP_EXIT_DTLS=%x",
1615 FIELD2VALUE(MAX77759_CHG_DETAILS_03_FSHIP_EXIT_DTLS, val));
1616 i += SCNPRINTF(&buff[i], len - i, " MD_DTLS=%x",
1617 FIELD2VALUE(MAX77759_CHG_DETAILS_03_MD_DTLS, val));
1618 i += SCNPRINTF(&buff[i], len - i, " RSVD=%x",
1619 FIELD2VALUE(MAX77759_CHG_DETAILS_03_RSVD, val));
1620 i += SCNPRINTF(&buff[i], len - i, " THM_DTLS=%x",
1621 FIELD2VALUE(MAX77759_CHG_DETAILS_03_THM_DTLS, val));
1622#else
1623 buff[0] = 0;
1624#endif
1625 return buff;
1626}
1627
1628/*
1629 * CHG_CNFG_00,0xB9,0b00000100,0x04
1630 * WDTCLR[1:0],,CP_EN,BYPV_RAMP_BYPASS,MODE[3:0],,
1631 */
1632#define MAX77759_CHG_CNFG_00 0xB9
1633#define MAX77759_CHG_CNFG_00_CP_EN (0x1 << 5)
1634#define MAX77759_CHG_CNFG_00_BYPV_RAMP_BYPASS (0x1 << 4)
1635
1636#define MAX77759_CHG_CNFG_00_WDTCLR_SHIFT 6
1637#define MAX77759_CHG_CNFG_00_WDTCLR_MASK (0x3 << 6)
1638#define MAX77759_CHG_CNFG_00_WDTCLR_CLEAR (~(0x3 << 6))
1639#define MAX77759_CHG_CNFG_00_CP_EN_SHIFT 5
1640#define MAX77759_CHG_CNFG_00_CP_EN_MASK (0x1 << 5)
1641#define MAX77759_CHG_CNFG_00_CP_EN_CLEAR (~(0x1 << 5))
1642#define MAX77759_CHG_CNFG_00_BYPV_RAMP_BYPASS_SHIFT 4
1643#define MAX77759_CHG_CNFG_00_BYPV_RAMP_BYPASS_MASK (0x1 << 4)
1644#define MAX77759_CHG_CNFG_00_BYPV_RAMP_BYPASS_CLEAR (~(0x1 << 4))
1645#define MAX77759_CHG_CNFG_00_MODE_SHIFT 0
1646#define MAX77759_CHG_CNFG_00_MODE_MASK (0xf << 0)
1647#define MAX77759_CHG_CNFG_00_MODE_CLEAR (~(0xf << 0))
1648
1649MAX77759_BFF(chg_cnfg_00_wdtclr,7,6)
1650MAX77759_BFF(chg_cnfg_00_cp_en,5,5)
1651MAX77759_BFF(chg_cnfg_00_bypv_ramp_bypass,4,4)
1652MAX77759_BFF(chg_cnfg_00_mode,3,0)
1653static inline const char *
1654max77759_chg_cnfg_00_cstr(char *buff, size_t len, int val)
1655{
1656#ifdef SCNPRINTF
1657 int i = 0;
1658
1659 i += SCNPRINTF(&buff[i], len - i, " WDTCLR=%x",
1660 FIELD2VALUE(MAX77759_CHG_CNFG_00_WDTCLR, val));
1661 i += SCNPRINTF(&buff[i], len - i, " CP_EN=%x",
1662 FIELD2VALUE(MAX77759_CHG_CNFG_00_CP_EN, val));
1663 i += SCNPRINTF(&buff[i], len - i, " BYPV_RAMP_BYPASS=%x",
1664 FIELD2VALUE(MAX77759_CHG_CNFG_00_BYPV_RAMP_BYPASS, val));
1665 i += SCNPRINTF(&buff[i], len - i, " MODE=%x",
1666 FIELD2VALUE(MAX77759_CHG_CNFG_00_MODE, val));
1667#else
1668 buff[0] = 0;
1669#endif
1670 return buff;
1671}
1672
1673/*
1674 * CHG_CNFG_01,0xBA,0b10011001,0x99
1675 * PQEN,LSEL,CHG_RSTRT[1:0],,RECYCLE_EN,FCHGTIME[2:0],
1676 */
1677#define MAX77759_CHG_CNFG_01 0xBA
1678#define MAX77759_CHG_CNFG_01_PQEN (0x1 << 7)
1679#define MAX77759_CHG_CNFG_01_LSEL (0x1 << 6)
1680#define MAX77759_CHG_CNFG_01_RECYCLE_EN (0x1 << 3)
1681
1682#define MAX77759_CHG_CNFG_01_PQEN_SHIFT 7
1683#define MAX77759_CHG_CNFG_01_PQEN_MASK (0x1 << 7)
1684#define MAX77759_CHG_CNFG_01_PQEN_CLEAR (~(0x1 << 7))
1685#define MAX77759_CHG_CNFG_01_LSEL_SHIFT 6
1686#define MAX77759_CHG_CNFG_01_LSEL_MASK (0x1 << 6)
1687#define MAX77759_CHG_CNFG_01_LSEL_CLEAR (~(0x1 << 6))
1688#define MAX77759_CHG_CNFG_01_CHG_RSTRT_SHIFT 4
1689#define MAX77759_CHG_CNFG_01_CHG_RSTRT_MASK (0x3 << 4)
1690#define MAX77759_CHG_CNFG_01_CHG_RSTRT_CLEAR (~(0x3 << 4))
1691#define MAX77759_CHG_CNFG_01_RECYCLE_EN_SHIFT 3
1692#define MAX77759_CHG_CNFG_01_RECYCLE_EN_MASK (0x1 << 3)
1693#define MAX77759_CHG_CNFG_01_RECYCLE_EN_CLEAR (~(0x1 << 3))
1694#define MAX77759_CHG_CNFG_01_FCHGTIME_SHIFT 0
1695#define MAX77759_CHG_CNFG_01_FCHGTIME_MASK (0x7 << 0)
1696#define MAX77759_CHG_CNFG_01_FCHGTIME_CLEAR (~(0x7 << 0))
1697
1698MAX77759_BFF(chg_cnfg_01_pqen,7,7)
1699MAX77759_BFF(chg_cnfg_01_lsel,6,6)
1700MAX77759_BFF(chg_cnfg_01_chg_rstrt,5,4)
1701MAX77759_BFF(chg_cnfg_01_recycle_en,3,3)
1702MAX77759_BFF(chg_cnfg_01_fchgtime,2,0)
1703static inline const char *
1704max77759_chg_cnfg_01_cstr(char *buff, size_t len, int val)
1705{
1706#ifdef SCNPRINTF
1707 int i = 0;
1708
1709 i += SCNPRINTF(&buff[i], len - i, " PQEN=%x",
1710 FIELD2VALUE(MAX77759_CHG_CNFG_01_PQEN, val));
1711 i += SCNPRINTF(&buff[i], len - i, " LSEL=%x",
1712 FIELD2VALUE(MAX77759_CHG_CNFG_01_LSEL, val));
1713 i += SCNPRINTF(&buff[i], len - i, " CHG_RSTRT=%x",
1714 FIELD2VALUE(MAX77759_CHG_CNFG_01_CHG_RSTRT, val));
1715 i += SCNPRINTF(&buff[i], len - i, " RECYCLE_EN=%x",
1716 FIELD2VALUE(MAX77759_CHG_CNFG_01_RECYCLE_EN, val));
1717 i += SCNPRINTF(&buff[i], len - i, " FCHGTIME=%x",
1718 FIELD2VALUE(MAX77759_CHG_CNFG_01_FCHGTIME, val));
1719#else
1720 buff[0] = 0;
1721#endif
1722 return buff;
1723}
1724
1725/*
1726 * CHG_CNFG_02,0xBB,0b00000111,0x07
1727 * SPR_7_6[1:0],,CHGCC[5:0],,,,
1728 */
1729#define MAX77759_CHG_CNFG_02 0xBB
1730
1731#define MAX77759_CHG_CNFG_02_SPR_7_6_SHIFT 6
1732#define MAX77759_CHG_CNFG_02_SPR_7_6_MASK (0x3 << 6)
1733#define MAX77759_CHG_CNFG_02_SPR_7_6_CLEAR (~(0x3 << 6))
1734#define MAX77759_CHG_CNFG_02_CHGCC_SHIFT 0
1735#define MAX77759_CHG_CNFG_02_CHGCC_MASK (0x3f << 0)
1736#define MAX77759_CHG_CNFG_02_CHGCC_CLEAR (~(0x3f << 0))
1737
1738MAX77759_BFF(chg_cnfg_02_spr_7_6,7,6)
1739MAX77759_BFF(chg_cnfg_02_chgcc,5,0)
1740static inline const char *
1741max77759_chg_cnfg_02_cstr(char *buff, size_t len, int val)
1742{
1743#ifdef SCNPRINTF
1744 int i = 0;
1745
1746 i += SCNPRINTF(&buff[i], len - i, " SPR_7_6=%x",
1747 FIELD2VALUE(MAX77759_CHG_CNFG_02_SPR_7_6, val));
1748 i += SCNPRINTF(&buff[i], len - i, " CHGCC=%x",
1749 FIELD2VALUE(MAX77759_CHG_CNFG_02_CHGCC, val));
1750#else
1751 buff[0] = 0;
1752#endif
1753 return buff;
1754}
1755
1756/*
1757 * CHG_CNFG_03,0xBC,0b10011001,0x99
1758 * SYS_TRACK_DIS,AUTO_FSHIP_MODE_EN,TO_TIME[2:0],,,TO_ITH[2:0],
1759 */
1760#define MAX77759_CHG_CNFG_03 0xBC
1761#define MAX77759_CHG_CNFG_03_SYS_TRACK_DIS (0x1 << 7)
1762#define MAX77759_CHG_CNFG_03_AUTO_FSHIP_MODE_EN (0x1 << 6)
1763
1764#define MAX77759_CHG_CNFG_03_SYS_TRACK_DIS_SHIFT 7
1765#define MAX77759_CHG_CNFG_03_SYS_TRACK_DIS_MASK (0x1 << 7)
1766#define MAX77759_CHG_CNFG_03_SYS_TRACK_DIS_CLEAR (~(0x1 << 7))
1767#define MAX77759_CHG_CNFG_03_AUTO_FSHIP_MODE_EN_SHIFT 6
1768#define MAX77759_CHG_CNFG_03_AUTO_FSHIP_MODE_EN_MASK (0x1 << 6)
1769#define MAX77759_CHG_CNFG_03_AUTO_FSHIP_MODE_EN_CLEAR (~(0x1 << 6))
1770#define MAX77759_CHG_CNFG_03_TO_TIME_SHIFT 3
1771#define MAX77759_CHG_CNFG_03_TO_TIME_MASK (0x7 << 3)
1772#define MAX77759_CHG_CNFG_03_TO_TIME_CLEAR (~(0x7 << 3))
1773#define MAX77759_CHG_CNFG_03_TO_ITH_SHIFT 0
1774#define MAX77759_CHG_CNFG_03_TO_ITH_MASK (0x7 << 0)
1775#define MAX77759_CHG_CNFG_03_TO_ITH_CLEAR (~(0x7 << 0))
1776
1777MAX77759_BFF(chg_cnfg_03_sys_track_dis,7,7)
1778MAX77759_BFF(chg_cnfg_03_auto_fship_mode_en,6,6)
1779MAX77759_BFF(chg_cnfg_03_to_time,5,3)
1780MAX77759_BFF(chg_cnfg_03_to_ith,2,0)
1781static inline const char *
1782max77759_chg_cnfg_03_cstr(char *buff, size_t len, int val)
1783{
1784#ifdef SCNPRINTF
1785 int i = 0;
1786
1787 i += SCNPRINTF(&buff[i], len - i, " SYS_TRACK_DIS=%x",
1788 FIELD2VALUE(MAX77759_CHG_CNFG_03_SYS_TRACK_DIS, val));
1789 i += SCNPRINTF(&buff[i], len - i, " AUTO_FSHIP_MODE_EN=%x",
1790 FIELD2VALUE(MAX77759_CHG_CNFG_03_AUTO_FSHIP_MODE_EN, val));
1791 i += SCNPRINTF(&buff[i], len - i, " TO_TIME=%x",
1792 FIELD2VALUE(MAX77759_CHG_CNFG_03_TO_TIME, val));
1793 i += SCNPRINTF(&buff[i], len - i, " TO_ITH=%x",
1794 FIELD2VALUE(MAX77759_CHG_CNFG_03_TO_ITH, val));
1795#else
1796 buff[0] = 0;
1797#endif
1798 return buff;
1799}
1800
1801/*
1802 * CHG_CNFG_04,0xBD,0b00010100,0x14
1803 * SPR_7_6[1:0],,CHG_CV_PRM[5:0],,,,
1804 */
1805#define MAX77759_CHG_CNFG_04 0xBD
1806
1807#define MAX77759_CHG_CNFG_04_SPR_7_6_SHIFT 6
1808#define MAX77759_CHG_CNFG_04_SPR_7_6_MASK (0x3 << 6)
1809#define MAX77759_CHG_CNFG_04_SPR_7_6_CLEAR (~(0x3 << 6))
1810#define MAX77759_CHG_CNFG_04_CHG_CV_PRM_SHIFT 0
1811#define MAX77759_CHG_CNFG_04_CHG_CV_PRM_MASK (0x3f << 0)
1812#define MAX77759_CHG_CNFG_04_CHG_CV_PRM_CLEAR (~(0x3f << 0))
1813
1814MAX77759_BFF(chg_cnfg_04_spr_7_6,7,6)
1815MAX77759_BFF(chg_cnfg_04_chg_cv_prm,5,0)
1816static inline const char *
1817max77759_chg_cnfg_04_cstr(char *buff, size_t len, int val)
1818{
1819#ifdef SCNPRINTF
1820 int i = 0;
1821
1822 i += SCNPRINTF(&buff[i], len - i, " SPR_7_6=%x",
1823 FIELD2VALUE(MAX77759_CHG_CNFG_04_SPR_7_6, val));
1824 i += SCNPRINTF(&buff[i], len - i, " CHG_CV_PRM=%x",
1825 FIELD2VALUE(MAX77759_CHG_CNFG_04_CHG_CV_PRM, val));
1826#else
1827 buff[0] = 0;
1828#endif
1829 return buff;
1830}
1831
1832/*
1833 * CHG_CNFG_05,0xBE,0b00110110,0x36
1834 * UNO_ILIM[3:0],,,,OTG_ILIM[3:0],,
1835 */
1836#define MAX77759_CHG_CNFG_05 0xBE
1837
1838#define MAX77759_CHG_CNFG_05_UNO_ILIM_SHIFT 4
1839#define MAX77759_CHG_CNFG_05_UNO_ILIM_MASK (0xf << 4)
1840#define MAX77759_CHG_CNFG_05_UNO_ILIM_CLEAR (~(0xf << 4))
1841#define MAX77759_CHG_CNFG_05_OTG_ILIM_SHIFT 0
1842#define MAX77759_CHG_CNFG_05_OTG_ILIM_MASK (0xf << 0)
1843#define MAX77759_CHG_CNFG_05_OTG_ILIM_CLEAR (~(0xf << 0))
1844
1845MAX77759_BFF(chg_cnfg_05_uno_ilim,7,4)
1846MAX77759_BFF(chg_cnfg_05_otg_ilim,3,0)
1847static inline const char *
1848max77759_chg_cnfg_05_cstr(char *buff, size_t len, int val)
1849{
1850#ifdef SCNPRINTF
1851 int i = 0;
1852
1853 i += SCNPRINTF(&buff[i], len - i, " UNO_ILIM=%x",
1854 FIELD2VALUE(MAX77759_CHG_CNFG_05_UNO_ILIM, val));
1855 i += SCNPRINTF(&buff[i], len - i, " OTG_ILIM=%x",
1856 FIELD2VALUE(MAX77759_CHG_CNFG_05_OTG_ILIM, val));
1857#else
1858 buff[0] = 0;
1859#endif
1860 return buff;
1861}
1862
1863/*
1864 * CHG_CNFG_06,0xBF,0b00000000,0x00
1865 * SPR_7_4[3:0],,,,CHGPROT[1:0],,SPR_1_0[1:0]
1866 */
1867#define MAX77759_CHG_CNFG_06 0xBF
1868
1869#define MAX77759_CHG_CNFG_06_SPR_7_4_SHIFT 4
1870#define MAX77759_CHG_CNFG_06_SPR_7_4_MASK (0xf << 4)
1871#define MAX77759_CHG_CNFG_06_SPR_7_4_CLEAR (~(0xf << 4))
1872#define MAX77759_CHG_CNFG_06_CHGPROT_SHIFT 2
1873#define MAX77759_CHG_CNFG_06_CHGPROT_MASK (0x3 << 2)
1874#define MAX77759_CHG_CNFG_06_CHGPROT_CLEAR (~(0x3 << 2))
1875#define MAX77759_CHG_CNFG_06_SPR_1_0_SHIFT 0
1876#define MAX77759_CHG_CNFG_06_SPR_1_0_MASK (0x3 << 0)
1877#define MAX77759_CHG_CNFG_06_SPR_1_0_CLEAR (~(0x3 << 0))
1878
1879MAX77759_BFF(chg_cnfg_06_spr_7_4,7,4)
1880MAX77759_BFF(chg_cnfg_06_chgprot,3,2)
1881MAX77759_BFF(chg_cnfg_06_spr_1_0,1,0)
1882static inline const char *
1883max77759_chg_cnfg_06_cstr(char *buff, size_t len, int val)
1884{
1885#ifdef SCNPRINTF
1886 int i = 0;
1887
1888 i += SCNPRINTF(&buff[i], len - i, " SPR_7_4=%x",
1889 FIELD2VALUE(MAX77759_CHG_CNFG_06_SPR_7_4, val));
1890 i += SCNPRINTF(&buff[i], len - i, " CHGPROT=%x",
1891 FIELD2VALUE(MAX77759_CHG_CNFG_06_CHGPROT, val));
1892 i += SCNPRINTF(&buff[i], len - i, " SPR_1_0=%x",
1893 FIELD2VALUE(MAX77759_CHG_CNFG_06_SPR_1_0, val));
1894#else
1895 buff[0] = 0;
1896#endif
1897 return buff;
1898}
1899
1900/*
1901 * CHG_CNFG_07,0xC0,0b00110000,0x30
1902 * WD_QBATOFF,REGTEMP[3:0],,,,SPR_2,FGSRC
1903 */
1904#define MAX77759_CHG_CNFG_07 0xC0
1905#define MAX77759_CHG_CNFG_07_WD_QBATOFF (0x1 << 7)
1906#define MAX77759_CHG_CNFG_07_SPR_2 (0x1 << 2)
1907#define MAX77759_CHG_CNFG_07_FGSRC (0x1 << 1)
1908#define MAX77759_CHG_CNFG_07_FSHIP_MODE (0x1 << 0)
1909
1910#define MAX77759_CHG_CNFG_07_WD_QBATOFF_SHIFT 7
1911#define MAX77759_CHG_CNFG_07_WD_QBATOFF_MASK (0x1 << 7)
1912#define MAX77759_CHG_CNFG_07_WD_QBATOFF_CLEAR (~(0x1 << 7))
1913#define MAX77759_CHG_CNFG_07_REGTEMP_SHIFT 3
1914#define MAX77759_CHG_CNFG_07_REGTEMP_MASK (0xf << 3)
1915#define MAX77759_CHG_CNFG_07_REGTEMP_CLEAR (~(0xf << 3))
1916#define MAX77759_CHG_CNFG_07_SPR_2_SHIFT 2
1917#define MAX77759_CHG_CNFG_07_SPR_2_MASK (0x1 << 2)
1918#define MAX77759_CHG_CNFG_07_SPR_2_CLEAR (~(0x1 << 2))
1919#define MAX77759_CHG_CNFG_07_FGSRC_SHIFT 1
1920#define MAX77759_CHG_CNFG_07_FGSRC_MASK (0x1 << 1)
1921#define MAX77759_CHG_CNFG_07_FGSRC_CLEAR (~(0x1 << 1))
1922#define MAX77759_CHG_CNFG_07_FSHIP_MODE_SHIFT 0
1923#define MAX77759_CHG_CNFG_07_FSHIP_MODE_MASK (0x1 << 0)
1924#define MAX77759_CHG_CNFG_07_FSHIP_MODE_CLEAR (~(0x1 << 0))
1925
1926MAX77759_BFF(chg_cnfg_07_wd_qbatoff,7,7)
1927MAX77759_BFF(chg_cnfg_07_regtemp,6,3)
1928MAX77759_BFF(chg_cnfg_07_spr_2,2,2)
1929MAX77759_BFF(chg_cnfg_07_fgsrc,1,1)
1930MAX77759_BFF(chg_cnfg_07_fship_mode,0,0)
1931static inline const char *
1932max77759_chg_cnfg_07_cstr(char *buff, size_t len, int val)
1933{
1934#ifdef SCNPRINTF
1935 int i = 0;
1936
1937 i += SCNPRINTF(&buff[i], len - i, " WD_QBATOFF=%x",
1938 FIELD2VALUE(MAX77759_CHG_CNFG_07_WD_QBATOFF, val));
1939 i += SCNPRINTF(&buff[i], len - i, " REGTEMP=%x",
1940 FIELD2VALUE(MAX77759_CHG_CNFG_07_REGTEMP, val));
1941 i += SCNPRINTF(&buff[i], len - i, " SPR_2=%x",
1942 FIELD2VALUE(MAX77759_CHG_CNFG_07_SPR_2, val));
1943 i += SCNPRINTF(&buff[i], len - i, " FGSRC=%x",
1944 FIELD2VALUE(MAX77759_CHG_CNFG_07_FGSRC, val));
1945 i += SCNPRINTF(&buff[i], len - i, " FSHIP_MODE=%x",
1946 FIELD2VALUE(MAX77759_CHG_CNFG_07_FSHIP_MODE, val));
1947#else
1948 buff[0] = 0;
1949#endif
1950 return buff;
1951}
1952
1953/*
1954 * CHG_CNFG_08,0xC1,0b00000101,0x05
1955 * SPR_7,VCHGCV_WARM,ICHGCC_WARM,VCHGCV_COOL,ICHGCC_COOL,JEITA_EN,FSW[1:0]
1956 */
1957#define MAX77759_CHG_CNFG_08 0xC1
1958#define MAX77759_CHG_CNFG_08_SPR_7 (0x1 << 7)
1959#define MAX77759_CHG_CNFG_08_VCHGCV_WARM (0x1 << 6)
1960#define MAX77759_CHG_CNFG_08_ICHGCC_WARM (0x1 << 5)
1961#define MAX77759_CHG_CNFG_08_VCHGCV_COOL (0x1 << 4)
1962#define MAX77759_CHG_CNFG_08_ICHGCC_COOL (0x1 << 3)
1963#define MAX77759_CHG_CNFG_08_JEITA_EN (0x1 << 2)
1964
1965#define MAX77759_CHG_CNFG_08_SPR_7_SHIFT 7
1966#define MAX77759_CHG_CNFG_08_SPR_7_MASK (0x1 << 7)
1967#define MAX77759_CHG_CNFG_08_SPR_7_CLEAR (~(0x1 << 7))
1968#define MAX77759_CHG_CNFG_08_VCHGCV_WARM_SHIFT 6
1969#define MAX77759_CHG_CNFG_08_VCHGCV_WARM_MASK (0x1 << 6)
1970#define MAX77759_CHG_CNFG_08_VCHGCV_WARM_CLEAR (~(0x1 << 6))
1971#define MAX77759_CHG_CNFG_08_ICHGCC_WARM_SHIFT 5
1972#define MAX77759_CHG_CNFG_08_ICHGCC_WARM_MASK (0x1 << 5)
1973#define MAX77759_CHG_CNFG_08_ICHGCC_WARM_CLEAR (~(0x1 << 5))
1974#define MAX77759_CHG_CNFG_08_VCHGCV_COOL_SHIFT 4
1975#define MAX77759_CHG_CNFG_08_VCHGCV_COOL_MASK (0x1 << 4)
1976#define MAX77759_CHG_CNFG_08_VCHGCV_COOL_CLEAR (~(0x1 << 4))
1977#define MAX77759_CHG_CNFG_08_ICHGCC_COOL_SHIFT 3
1978#define MAX77759_CHG_CNFG_08_ICHGCC_COOL_MASK (0x1 << 3)
1979#define MAX77759_CHG_CNFG_08_ICHGCC_COOL_CLEAR (~(0x1 << 3))
1980#define MAX77759_CHG_CNFG_08_JEITA_EN_SHIFT 2
1981#define MAX77759_CHG_CNFG_08_JEITA_EN_MASK (0x1 << 2)
1982#define MAX77759_CHG_CNFG_08_JEITA_EN_CLEAR (~(0x1 << 2))
1983#define MAX77759_CHG_CNFG_08_FSW_SHIFT 0
1984#define MAX77759_CHG_CNFG_08_FSW_MASK (0x3 << 0)
1985#define MAX77759_CHG_CNFG_08_FSW_CLEAR (~(0x3 << 0))
1986
1987MAX77759_BFF(chg_cnfg_08_spr_7,7,7)
1988MAX77759_BFF(chg_cnfg_08_vchgcv_warm,6,6)
1989MAX77759_BFF(chg_cnfg_08_ichgcc_warm,5,5)
1990MAX77759_BFF(chg_cnfg_08_vchgcv_cool,4,4)
1991MAX77759_BFF(chg_cnfg_08_ichgcc_cool,3,3)
1992MAX77759_BFF(chg_cnfg_08_jeita_en,2,2)
1993MAX77759_BFF(chg_cnfg_08_fsw,1,0)
1994static inline const char *
1995max77759_chg_cnfg_08_cstr(char *buff, size_t len, int val)
1996{
1997#ifdef SCNPRINTF
1998 int i = 0;
1999
2000 i += SCNPRINTF(&buff[i], len - i, " SPR_7=%x",
2001 FIELD2VALUE(MAX77759_CHG_CNFG_08_SPR_7, val));
2002 i += SCNPRINTF(&buff[i], len - i, " VCHGCV_WARM=%x",
2003 FIELD2VALUE(MAX77759_CHG_CNFG_08_VCHGCV_WARM, val));
2004 i += SCNPRINTF(&buff[i], len - i, " ICHGCC_WARM=%x",
2005 FIELD2VALUE(MAX77759_CHG_CNFG_08_ICHGCC_WARM, val));
2006 i += SCNPRINTF(&buff[i], len - i, " VCHGCV_COOL=%x",
2007 FIELD2VALUE(MAX77759_CHG_CNFG_08_VCHGCV_COOL, val));
2008 i += SCNPRINTF(&buff[i], len - i, " ICHGCC_COOL=%x",
2009 FIELD2VALUE(MAX77759_CHG_CNFG_08_ICHGCC_COOL, val));
2010 i += SCNPRINTF(&buff[i], len - i, " JEITA_EN=%x",
2011 FIELD2VALUE(MAX77759_CHG_CNFG_08_JEITA_EN, val));
2012 i += SCNPRINTF(&buff[i], len - i, " FSW=%x",
2013 FIELD2VALUE(MAX77759_CHG_CNFG_08_FSW, val));
2014#else
2015 buff[0] = 0;
2016#endif
2017 return buff;
2018}
2019
2020/*
2021 * CHG_CNFG_09,0xC2,0b00010011,0x13
2022 * NO_AUTOIBUS,CHGIN_ILIM[6:0],,,,,
2023 */
2024#define MAX77759_CHG_CNFG_09 0xC2
2025#define MAX77759_CHG_CNFG_09_NO_AUTOIBUS (0x1 << 7)
2026
2027#define MAX77759_CHG_CNFG_09_NO_AUTOIBUS_SHIFT 7
2028#define MAX77759_CHG_CNFG_09_NO_AUTOIBUS_MASK (0x1 << 7)
2029#define MAX77759_CHG_CNFG_09_NO_AUTOIBUS_CLEAR (~(0x1 << 7))
2030#define MAX77759_CHG_CNFG_09_CHGIN_ILIM_SHIFT 0
2031#define MAX77759_CHG_CNFG_09_CHGIN_ILIM_MASK (0x7f << 0)
2032#define MAX77759_CHG_CNFG_09_CHGIN_ILIM_CLEAR (~(0x7f << 0))
2033
2034MAX77759_BFF(chg_cnfg_09_no_autoibus,7,7)
2035MAX77759_BFF(chg_cnfg_09_chgin_ilim,6,0)
2036static inline const char *
2037max77759_chg_cnfg_09_cstr(char *buff, size_t len, int val)
2038{
2039#ifdef SCNPRINTF
2040 int i = 0;
2041
2042 i += SCNPRINTF(&buff[i], len - i, " NO_AUTOIBUS=%x",
2043 FIELD2VALUE(MAX77759_CHG_CNFG_09_NO_AUTOIBUS, val));
2044 i += SCNPRINTF(&buff[i], len - i, " CHGIN_ILIM=%x",
2045 FIELD2VALUE(MAX77759_CHG_CNFG_09_CHGIN_ILIM, val));
2046#else
2047 buff[0] = 0;
2048#endif
2049 return buff;
2050}
2051
2052/*
2053 * CHG_CNFG_10,0xC3,0b00001111,0x0f
2054 * INPUT_MASK_CLR,SPR_6,WCIN_ILIM[5:0],,,,
2055 */
2056#define MAX77759_CHG_CNFG_10 0xC3
2057#define MAX77759_CHG_CNFG_10_INPUT_MASK_CLR (0x1 << 7)
2058#define MAX77759_CHG_CNFG_10_SPR_6 (0x1 << 6)
2059
2060#define MAX77759_CHG_CNFG_10_INPUT_MASK_CLR_SHIFT 7
2061#define MAX77759_CHG_CNFG_10_INPUT_MASK_CLR_MASK (0x1 << 7)
2062#define MAX77759_CHG_CNFG_10_INPUT_MASK_CLR_CLEAR (~(0x1 << 7))
2063#define MAX77759_CHG_CNFG_10_SPR_6_SHIFT 6
2064#define MAX77759_CHG_CNFG_10_SPR_6_MASK (0x1 << 6)
2065#define MAX77759_CHG_CNFG_10_SPR_6_CLEAR (~(0x1 << 6))
2066#define MAX77759_CHG_CNFG_10_WCIN_ILIM_SHIFT 0
2067#define MAX77759_CHG_CNFG_10_WCIN_ILIM_MASK (0x3f << 0)
2068#define MAX77759_CHG_CNFG_10_WCIN_ILIM_CLEAR (~(0x3f << 0))
2069
2070MAX77759_BFF(chg_cnfg_10_input_mask_clr,7,7)
2071MAX77759_BFF(chg_cnfg_10_spr_6,6,6)
2072MAX77759_BFF(chg_cnfg_10_wcin_ilim,5,0)
2073static inline const char *
2074max77759_chg_cnfg_10_cstr(char *buff, size_t len, int val)
2075{
2076#ifdef SCNPRINTF
2077 int i = 0;
2078
2079 i += SCNPRINTF(&buff[i], len - i, " INPUT_MASK_CLR=%x",
2080 FIELD2VALUE(MAX77759_CHG_CNFG_10_INPUT_MASK_CLR, val));
2081 i += SCNPRINTF(&buff[i], len - i, " SPR_6=%x",
2082 FIELD2VALUE(MAX77759_CHG_CNFG_10_SPR_6, val));
2083 i += SCNPRINTF(&buff[i], len - i, " WCIN_ILIM=%x",
2084 FIELD2VALUE(MAX77759_CHG_CNFG_10_WCIN_ILIM, val));
2085#else
2086 buff[0] = 0;
2087#endif
2088 return buff;
2089}
2090
2091/*
2092 * CHG_CNFG_11,0xC4,0b00000000,0x00
2093 * VBYPSET[7:0],,,,,,
2094 */
2095#define MAX77759_CHG_CNFG_11 0xC4
2096
2097/*
2098 * CHG_CNFG_12,0xC5,0b01101010,0x6a
2099 * CHG_EN,WCINSEL,CHGINSEL,VCHGIN_REG[1:0],,WCIN_REG[1:0],
2100 */
2101#define MAX77759_CHG_CNFG_12 0xC5
2102#define MAX77759_CHG_CNFG_12_CHG_EN (0x1 << 7)
2103#define MAX77759_CHG_CNFG_12_WCINSEL (0x1 << 6)
2104#define MAX77759_CHG_CNFG_12_CHGINSEL (0x1 << 5)
2105#define MAX77759_CHG_CNFG_12_DISKIP (0x1 << 0)
2106
2107#define MAX77759_CHG_CNFG_12_CHG_EN_SHIFT 7
2108#define MAX77759_CHG_CNFG_12_CHG_EN_MASK (0x1 << 7)
2109#define MAX77759_CHG_CNFG_12_CHG_EN_CLEAR (~(0x1 << 7))
2110#define MAX77759_CHG_CNFG_12_WCINSEL_SHIFT 6
2111#define MAX77759_CHG_CNFG_12_WCINSEL_MASK (0x1 << 6)
2112#define MAX77759_CHG_CNFG_12_WCINSEL_CLEAR (~(0x1 << 6))
2113#define MAX77759_CHG_CNFG_12_CHGINSEL_SHIFT 5
2114#define MAX77759_CHG_CNFG_12_CHGINSEL_MASK (0x1 << 5)
2115#define MAX77759_CHG_CNFG_12_CHGINSEL_CLEAR (~(0x1 << 5))
2116#define MAX77759_CHG_CNFG_12_VCHGIN_REG_SHIFT 3
2117#define MAX77759_CHG_CNFG_12_VCHGIN_REG_MASK (0x3 << 3)
2118#define MAX77759_CHG_CNFG_12_VCHGIN_REG_CLEAR (~(0x3 << 3))
2119#define MAX77759_CHG_CNFG_12_WCIN_REG_SHIFT 1
2120#define MAX77759_CHG_CNFG_12_WCIN_REG_MASK (0x3 << 1)
2121#define MAX77759_CHG_CNFG_12_WCIN_REG_CLEAR (~(0x3 << 1))
2122#define MAX77759_CHG_CNFG_12_DISKIP_SHIFT 0
2123#define MAX77759_CHG_CNFG_12_DISKIP_MASK (0x1 << 0)
2124#define MAX77759_CHG_CNFG_12_DISKIP_CLEAR (~(0x1 << 0))
2125
2126MAX77759_BFF(chg_cnfg_12_chg_en,7,7)
2127MAX77759_BFF(chg_cnfg_12_wcinsel,6,6)
2128MAX77759_BFF(chg_cnfg_12_chginsel,5,5)
2129MAX77759_BFF(chg_cnfg_12_vchgin_reg,4,3)
2130MAX77759_BFF(chg_cnfg_12_wcin_reg,2,1)
2131MAX77759_BFF(chg_cnfg_12_diskip,0,0)
2132static inline const char *
2133max77759_chg_cnfg_12_cstr(char *buff, size_t len, int val)
2134{
2135#ifdef SCNPRINTF
2136 int i = 0;
2137
2138 i += SCNPRINTF(&buff[i], len - i, " CHG_EN=%x",
2139 FIELD2VALUE(MAX77759_CHG_CNFG_12_CHG_EN, val));
2140 i += SCNPRINTF(&buff[i], len - i, " WCINSEL=%x",
2141 FIELD2VALUE(MAX77759_CHG_CNFG_12_WCINSEL, val));
2142 i += SCNPRINTF(&buff[i], len - i, " CHGINSEL=%x",
2143 FIELD2VALUE(MAX77759_CHG_CNFG_12_CHGINSEL, val));
2144 i += SCNPRINTF(&buff[i], len - i, " VCHGIN_REG=%x",
2145 FIELD2VALUE(MAX77759_CHG_CNFG_12_VCHGIN_REG, val));
2146 i += SCNPRINTF(&buff[i], len - i, " WCIN_REG=%x",
2147 FIELD2VALUE(MAX77759_CHG_CNFG_12_WCIN_REG, val));
2148 i += SCNPRINTF(&buff[i], len - i, " DISKIP=%x",
2149 FIELD2VALUE(MAX77759_CHG_CNFG_12_DISKIP, val));
2150#else
2151 buff[0] = 0;
2152#endif
2153 return buff;
2154}
2155
2156/*
2157 * CHG_CNFG_13,0xC6,0b00000011,0x03
2158 * EN_FG_ILIM_CTRL,THM_CHR_RSTART,THM_CC_HZ,THM_BUCK_DIS,THM2_HW_CTRL,USB_TEMP[2:0],
2159 */
2160#define MAX77759_CHG_CNFG_13 0xC6
2161#define MAX77759_CHG_CNFG_13_EN_FG_ILIM_CTRL (0x1 << 7)
2162#define MAX77759_CHG_CNFG_13_THM_CHR_RSTART (0x1 << 6)
2163#define MAX77759_CHG_CNFG_13_THM_CC_HZ (0x1 << 5)
2164#define MAX77759_CHG_CNFG_13_THM_BUCK_DIS (0x1 << 4)
2165#define MAX77759_CHG_CNFG_13_THM2_HW_CTRL (0x1 << 3)
2166
2167#define MAX77759_CHG_CNFG_13_EN_FG_ILIM_CTRL_SHIFT 7
2168#define MAX77759_CHG_CNFG_13_EN_FG_ILIM_CTRL_MASK (0x1 << 7)
2169#define MAX77759_CHG_CNFG_13_EN_FG_ILIM_CTRL_CLEAR (~(0x1 << 7))
2170#define MAX77759_CHG_CNFG_13_THM_CHR_RSTART_SHIFT 6
2171#define MAX77759_CHG_CNFG_13_THM_CHR_RSTART_MASK (0x1 << 6)
2172#define MAX77759_CHG_CNFG_13_THM_CHR_RSTART_CLEAR (~(0x1 << 6))
2173#define MAX77759_CHG_CNFG_13_THM_CC_HZ_SHIFT 5
2174#define MAX77759_CHG_CNFG_13_THM_CC_HZ_MASK (0x1 << 5)
2175#define MAX77759_CHG_CNFG_13_THM_CC_HZ_CLEAR (~(0x1 << 5))
2176#define MAX77759_CHG_CNFG_13_THM_BUCK_DIS_SHIFT 4
2177#define MAX77759_CHG_CNFG_13_THM_BUCK_DIS_MASK (0x1 << 4)
2178#define MAX77759_CHG_CNFG_13_THM_BUCK_DIS_CLEAR (~(0x1 << 4))
2179#define MAX77759_CHG_CNFG_13_THM2_HW_CTRL_SHIFT 3
2180#define MAX77759_CHG_CNFG_13_THM2_HW_CTRL_MASK (0x1 << 3)
2181#define MAX77759_CHG_CNFG_13_THM2_HW_CTRL_CLEAR (~(0x1 << 3))
2182#define MAX77759_CHG_CNFG_13_USB_TEMP_SHIFT 0
2183#define MAX77759_CHG_CNFG_13_USB_TEMP_MASK (0x7 << 0)
2184#define MAX77759_CHG_CNFG_13_USB_TEMP_CLEAR (~(0x7 << 0))
2185
2186MAX77759_BFF(chg_cnfg_13_en_fg_ilim_ctrl,7,7)
2187MAX77759_BFF(chg_cnfg_13_thm_chr_rstart,6,6)
2188MAX77759_BFF(chg_cnfg_13_thm_cc_hz,5,5)
2189MAX77759_BFF(chg_cnfg_13_thm_buck_dis,4,4)
2190MAX77759_BFF(chg_cnfg_13_thm2_hw_ctrl,3,3)
2191MAX77759_BFF(chg_cnfg_13_usb_temp,2,0)
2192static inline const char *
2193max77759_chg_cnfg_13_cstr(char *buff, size_t len, int val)
2194{
2195#ifdef SCNPRINTF
2196 int i = 0;
2197
2198 i += SCNPRINTF(&buff[i], len - i, " EN_FG_ILIM_CTRL=%x",
2199 FIELD2VALUE(MAX77759_CHG_CNFG_13_EN_FG_ILIM_CTRL, val));
2200 i += SCNPRINTF(&buff[i], len - i, " THM_CHR_RSTART=%x",
2201 FIELD2VALUE(MAX77759_CHG_CNFG_13_THM_CHR_RSTART, val));
2202 i += SCNPRINTF(&buff[i], len - i, " THM_CC_HZ=%x",
2203 FIELD2VALUE(MAX77759_CHG_CNFG_13_THM_CC_HZ, val));
2204 i += SCNPRINTF(&buff[i], len - i, " THM_BUCK_DIS=%x",
2205 FIELD2VALUE(MAX77759_CHG_CNFG_13_THM_BUCK_DIS, val));
2206 i += SCNPRINTF(&buff[i], len - i, " THM2_HW_CTRL=%x",
2207 FIELD2VALUE(MAX77759_CHG_CNFG_13_THM2_HW_CTRL, val));
2208 i += SCNPRINTF(&buff[i], len - i, " USB_TEMP=%x",
2209 FIELD2VALUE(MAX77759_CHG_CNFG_13_USB_TEMP, val));
2210#else
2211 buff[0] = 0;
2212#endif
2213 return buff;
2214}
2215
2216/*
2217 * CHG_CNFG_14,0xC7,0b00000110,0x06
2218 * BAT_OILO_REL[1:0],,BAT_OPEN_TO[1:0],,BAT_OILO[3:0],,
2219 */
2220#define MAX77759_CHG_CNFG_14 0xC7
2221
2222#define MAX77759_CHG_CNFG_14_BAT_OILO_REL_SHIFT 6
2223#define MAX77759_CHG_CNFG_14_BAT_OILO_REL_MASK (0x3 << 6)
2224#define MAX77759_CHG_CNFG_14_BAT_OILO_REL_CLEAR (~(0x3 << 6))
2225#define MAX77759_CHG_CNFG_14_BAT_OPEN_TO_SHIFT 4
2226#define MAX77759_CHG_CNFG_14_BAT_OPEN_TO_MASK (0x3 << 4)
2227#define MAX77759_CHG_CNFG_14_BAT_OPEN_TO_CLEAR (~(0x3 << 4))
2228#define MAX77759_CHG_CNFG_14_BAT_OILO_SHIFT 0
2229#define MAX77759_CHG_CNFG_14_BAT_OILO_MASK (0xf << 0)
2230#define MAX77759_CHG_CNFG_14_BAT_OILO_CLEAR (~(0xf << 0))
2231
2232MAX77759_BFF(chg_cnfg_14_bat_oilo_rel,7,6)
2233MAX77759_BFF(chg_cnfg_14_bat_open_to,5,4)
2234MAX77759_BFF(chg_cnfg_14_bat_oilo,3,0)
2235static inline const char *
2236max77759_chg_cnfg_14_cstr(char *buff, size_t len, int val)
2237{
2238#ifdef SCNPRINTF
2239 int i = 0;
2240
2241 i += SCNPRINTF(&buff[i], len - i, " BAT_OILO_REL=%x",
2242 FIELD2VALUE(MAX77759_CHG_CNFG_14_BAT_OILO_REL, val));
2243 i += SCNPRINTF(&buff[i], len - i, " BAT_OPEN_TO=%x",
2244 FIELD2VALUE(MAX77759_CHG_CNFG_14_BAT_OPEN_TO, val));
2245 i += SCNPRINTF(&buff[i], len - i, " BAT_OILO=%x",
2246 FIELD2VALUE(MAX77759_CHG_CNFG_14_BAT_OILO, val));
2247#else
2248 buff[0] = 0;
2249#endif
2250 return buff;
2251}
2252
2253/*
2254 * CHG_CNFG_15,0xC8,0b00001000,0x08
2255 * SYS_UVLO1_REL[1:0],,SYS_UVLO1_HYST[1:0],,SYS_UVLO1[3:0],,
2256 */
2257#define MAX77759_CHG_CNFG_15 0xC8
2258
2259#define MAX77759_CHG_CNFG_15_SYS_UVLO1_REL_SHIFT 6
2260#define MAX77759_CHG_CNFG_15_SYS_UVLO1_REL_MASK (0x3 << 6)
2261#define MAX77759_CHG_CNFG_15_SYS_UVLO1_REL_CLEAR (~(0x3 << 6))
2262#define MAX77759_CHG_CNFG_15_SYS_UVLO1_HYST_SHIFT 4
2263#define MAX77759_CHG_CNFG_15_SYS_UVLO1_HYST_MASK (0x3 << 4)
2264#define MAX77759_CHG_CNFG_15_SYS_UVLO1_HYST_CLEAR (~(0x3 << 4))
2265#define MAX77759_CHG_CNFG_15_SYS_UVLO1_SHIFT 0
2266#define MAX77759_CHG_CNFG_15_SYS_UVLO1_MASK (0xf << 0)
2267#define MAX77759_CHG_CNFG_15_SYS_UVLO1_CLEAR (~(0xf << 0))
2268
2269MAX77759_BFF(chg_cnfg_15_sys_uvlo1_rel,7,6)
2270MAX77759_BFF(chg_cnfg_15_sys_uvlo1_hyst,5,4)
2271MAX77759_BFF(chg_cnfg_15_sys_uvlo1,3,0)
2272static inline const char *
2273max77759_chg_cnfg_15_cstr(char *buff, size_t len, int val)
2274{
2275#ifdef SCNPRINTF
2276 int i = 0;
2277
2278 i += SCNPRINTF(&buff[i], len - i, " SYS_UVLO1_REL=%x",
2279 FIELD2VALUE(MAX77759_CHG_CNFG_15_SYS_UVLO1_REL, val));
2280 i += SCNPRINTF(&buff[i], len - i, " SYS_UVLO1_HYST=%x",
2281 FIELD2VALUE(MAX77759_CHG_CNFG_15_SYS_UVLO1_HYST, val));
2282 i += SCNPRINTF(&buff[i], len - i, " SYS_UVLO1=%x",
2283 FIELD2VALUE(MAX77759_CHG_CNFG_15_SYS_UVLO1, val));
2284#else
2285 buff[0] = 0;
2286#endif
2287 return buff;
2288}
2289
2290/*
2291 * CHG_CNFG_16,0xC9,0b00000100,0x04
2292 * SYS_UVLO2_REL[1:0],,SYS_UVLO2_HYST[1:0],,SYS_UVLO2[3:0],,
2293 */
2294#define MAX77759_CHG_CNFG_16 0xC9
2295
2296#define MAX77759_CHG_CNFG_16_SYS_UVLO2_REL_SHIFT 6
2297#define MAX77759_CHG_CNFG_16_SYS_UVLO2_REL_MASK (0x3 << 6)
2298#define MAX77759_CHG_CNFG_16_SYS_UVLO2_REL_CLEAR (~(0x3 << 6))
2299#define MAX77759_CHG_CNFG_16_SYS_UVLO2_HYST_SHIFT 4
2300#define MAX77759_CHG_CNFG_16_SYS_UVLO2_HYST_MASK (0x3 << 4)
2301#define MAX77759_CHG_CNFG_16_SYS_UVLO2_HYST_CLEAR (~(0x3 << 4))
2302#define MAX77759_CHG_CNFG_16_SYS_UVLO2_SHIFT 0
2303#define MAX77759_CHG_CNFG_16_SYS_UVLO2_MASK (0xf << 0)
2304#define MAX77759_CHG_CNFG_16_SYS_UVLO2_CLEAR (~(0xf << 0))
2305
2306MAX77759_BFF(chg_cnfg_16_sys_uvlo2_rel,7,6)
2307MAX77759_BFF(chg_cnfg_16_sys_uvlo2_hyst,5,4)
2308MAX77759_BFF(chg_cnfg_16_sys_uvlo2,3,0)
2309static inline const char *
2310max77759_chg_cnfg_16_cstr(char *buff, size_t len, int val)
2311{
2312#ifdef SCNPRINTF
2313 int i = 0;
2314
2315 i += SCNPRINTF(&buff[i], len - i, " SYS_UVLO2_REL=%x",
2316 FIELD2VALUE(MAX77759_CHG_CNFG_16_SYS_UVLO2_REL, val));
2317 i += SCNPRINTF(&buff[i], len - i, " SYS_UVLO2_HYST=%x",
2318 FIELD2VALUE(MAX77759_CHG_CNFG_16_SYS_UVLO2_HYST, val));
2319 i += SCNPRINTF(&buff[i], len - i, " SYS_UVLO2=%x",
2320 FIELD2VALUE(MAX77759_CHG_CNFG_16_SYS_UVLO2, val));
2321#else
2322 buff[0] = 0;
2323#endif
2324 return buff;
2325}
2326
2327/*
2328 * CHG_CNFG_17,0xCA,0b01000000,0x40
2329 * AICL[1:0],,SPR_5_3[2:0],,,BAT_OILO_DET,SYS_UVLO2_DET
2330 */
2331#define MAX77759_CHG_CNFG_17 0xCA
2332#define MAX77759_CHG_CNFG_17_BAT_OILO_DET (0x1 << 2)
2333#define MAX77759_CHG_CNFG_17_SYS_UVLO2_DET (0x1 << 1)
2334#define MAX77759_CHG_CNFG_17_SYS_UVLO1_DET (0x1 << 0)
2335
2336#define MAX77759_CHG_CNFG_17_AICL_SHIFT 6
2337#define MAX77759_CHG_CNFG_17_AICL_MASK (0x3 << 6)
2338#define MAX77759_CHG_CNFG_17_AICL_CLEAR (~(0x3 << 6))
2339#define MAX77759_CHG_CNFG_17_SPR_5_3_SHIFT 3
2340#define MAX77759_CHG_CNFG_17_SPR_5_3_MASK (0x7 << 3)
2341#define MAX77759_CHG_CNFG_17_SPR_5_3_CLEAR (~(0x7 << 3))
2342#define MAX77759_CHG_CNFG_17_BAT_OILO_DET_SHIFT 2
2343#define MAX77759_CHG_CNFG_17_BAT_OILO_DET_MASK (0x1 << 2)
2344#define MAX77759_CHG_CNFG_17_BAT_OILO_DET_CLEAR (~(0x1 << 2))
2345#define MAX77759_CHG_CNFG_17_SYS_UVLO2_DET_SHIFT 1
2346#define MAX77759_CHG_CNFG_17_SYS_UVLO2_DET_MASK (0x1 << 1)
2347#define MAX77759_CHG_CNFG_17_SYS_UVLO2_DET_CLEAR (~(0x1 << 1))
2348#define MAX77759_CHG_CNFG_17_SYS_UVLO1_DET_SHIFT 0
2349#define MAX77759_CHG_CNFG_17_SYS_UVLO1_DET_MASK (0x1 << 0)
2350#define MAX77759_CHG_CNFG_17_SYS_UVLO1_DET_CLEAR (~(0x1 << 0))
2351
2352MAX77759_BFF(chg_cnfg_17_aicl,7,6)
2353MAX77759_BFF(chg_cnfg_17_spr_5_3,5,3)
2354MAX77759_BFF(chg_cnfg_17_bat_oilo_det,2,2)
2355MAX77759_BFF(chg_cnfg_17_sys_uvlo2_det,1,1)
2356MAX77759_BFF(chg_cnfg_17_sys_uvlo1_det,0,0)
2357static inline const char *
2358max77759_chg_cnfg_17_cstr(char *buff, size_t len, int val)
2359{
2360#ifdef SCNPRINTF
2361 int i = 0;
2362
2363 i += SCNPRINTF(&buff[i], len - i, " AICL=%x",
2364 FIELD2VALUE(MAX77759_CHG_CNFG_17_AICL, val));
2365 i += SCNPRINTF(&buff[i], len - i, " SPR_5_3=%x",
2366 FIELD2VALUE(MAX77759_CHG_CNFG_17_SPR_5_3, val));
2367 i += SCNPRINTF(&buff[i], len - i, " BAT_OILO_DET=%x",
2368 FIELD2VALUE(MAX77759_CHG_CNFG_17_BAT_OILO_DET, val));
2369 i += SCNPRINTF(&buff[i], len - i, " SYS_UVLO2_DET=%x",
2370 FIELD2VALUE(MAX77759_CHG_CNFG_17_SYS_UVLO2_DET, val));
2371 i += SCNPRINTF(&buff[i], len - i, " SYS_UVLO1_DET=%x",
2372 FIELD2VALUE(MAX77759_CHG_CNFG_17_SYS_UVLO1_DET, val));
2373#else
2374 buff[0] = 0;
2375#endif
2376 return buff;
2377}
2378
2379/*
2380 * CHG_CNFG_18,0xCB,0b11000000,0xc0
2381 * VDP1_STP_BST,VDP2_STP_BST,MINVSYS[1:0],,OTG_V_PGM,SPSN_DET_EN,MASTER_DC
2382 */
2383#define MAX77759_CHG_CNFG_18 0xCB
2384#define MAX77759_CHG_CNFG_18_VDP1_STP_BST (0x1 << 7)
2385#define MAX77759_CHG_CNFG_18_VDP2_STP_BST (0x1 << 6)
2386#define MAX77759_CHG_CNFG_18_OTG_V_PGM (0x1 << 3)
2387#define MAX77759_CHG_CNFG_18_SPSN_DET_EN (0x1 << 2)
2388#define MAX77759_CHG_CNFG_18_MASTER_DC (0x1 << 1)
2389#define MAX77759_CHG_CNFG_18_WDTEN (0x1 << 0)
2390
2391#define MAX77759_CHG_CNFG_18_VDP1_STP_BST_SHIFT 7
2392#define MAX77759_CHG_CNFG_18_VDP1_STP_BST_MASK (0x1 << 7)
2393#define MAX77759_CHG_CNFG_18_VDP1_STP_BST_CLEAR (~(0x1 << 7))
2394#define MAX77759_CHG_CNFG_18_VDP2_STP_BST_SHIFT 6
2395#define MAX77759_CHG_CNFG_18_VDP2_STP_BST_MASK (0x1 << 6)
2396#define MAX77759_CHG_CNFG_18_VDP2_STP_BST_CLEAR (~(0x1 << 6))
2397#define MAX77759_CHG_CNFG_18_MINVSYS_SHIFT 4
2398#define MAX77759_CHG_CNFG_18_MINVSYS_MASK (0x3 << 4)
2399#define MAX77759_CHG_CNFG_18_MINVSYS_CLEAR (~(0x3 << 4))
2400#define MAX77759_CHG_CNFG_18_OTG_V_PGM_SHIFT 3
2401#define MAX77759_CHG_CNFG_18_OTG_V_PGM_MASK (0x1 << 3)
2402#define MAX77759_CHG_CNFG_18_OTG_V_PGM_CLEAR (~(0x1 << 3))
2403#define MAX77759_CHG_CNFG_18_SPSN_DET_EN_SHIFT 2
2404#define MAX77759_CHG_CNFG_18_SPSN_DET_EN_MASK (0x1 << 2)
2405#define MAX77759_CHG_CNFG_18_SPSN_DET_EN_CLEAR (~(0x1 << 2))
2406#define MAX77759_CHG_CNFG_18_MASTER_DC_SHIFT 1
2407#define MAX77759_CHG_CNFG_18_MASTER_DC_MASK (0x1 << 1)
2408#define MAX77759_CHG_CNFG_18_MASTER_DC_CLEAR (~(0x1 << 1))
2409#define MAX77759_CHG_CNFG_18_WDTEN_SHIFT 0
2410#define MAX77759_CHG_CNFG_18_WDTEN_MASK (0x1 << 0)
2411#define MAX77759_CHG_CNFG_18_WDTEN_CLEAR (~(0x1 << 0))
2412
2413MAX77759_BFF(chg_cnfg_18_vdp1_stp_bst,7,7)
2414MAX77759_BFF(chg_cnfg_18_vdp2_stp_bst,6,6)
2415MAX77759_BFF(chg_cnfg_18_minvsys,5,4)
2416MAX77759_BFF(chg_cnfg_18_otg_v_pgm,3,3)
2417MAX77759_BFF(chg_cnfg_18_spsn_det_en,2,2)
2418MAX77759_BFF(chg_cnfg_18_master_dc,1,1)
2419MAX77759_BFF(chg_cnfg_18_wdten,0,0)
2420static inline const char *
2421max77759_chg_cnfg_18_cstr(char *buff, size_t len, int val)
2422{
2423#ifdef SCNPRINTF
2424 int i = 0;
2425
2426 i += SCNPRINTF(&buff[i], len - i, " VDP1_STP_BST=%x",
2427 FIELD2VALUE(MAX77759_CHG_CNFG_18_VDP1_STP_BST, val));
2428 i += SCNPRINTF(&buff[i], len - i, " VDP2_STP_BST=%x",
2429 FIELD2VALUE(MAX77759_CHG_CNFG_18_VDP2_STP_BST, val));
2430 i += SCNPRINTF(&buff[i], len - i, " MINVSYS=%x",
2431 FIELD2VALUE(MAX77759_CHG_CNFG_18_MINVSYS, val));
2432 i += SCNPRINTF(&buff[i], len - i, " OTG_V_PGM=%x",
2433 FIELD2VALUE(MAX77759_CHG_CNFG_18_OTG_V_PGM, val));
2434 i += SCNPRINTF(&buff[i], len - i, " SPSN_DET_EN=%x",
2435 FIELD2VALUE(MAX77759_CHG_CNFG_18_SPSN_DET_EN, val));
2436 i += SCNPRINTF(&buff[i], len - i, " MASTER_DC=%x",
2437 FIELD2VALUE(MAX77759_CHG_CNFG_18_MASTER_DC, val));
2438 i += SCNPRINTF(&buff[i], len - i, " WDTEN=%x",
2439 FIELD2VALUE(MAX77759_CHG_CNFG_18_WDTEN, val));
2440#else
2441 buff[0] = 0;
2442#endif
2443 return buff;
2444}
2445
2446/*
2447 * CHG_CNFG_19,0xCC,0b00010000,0x10
2448 * SPR_7_5[2:0],,,INLIM_CLK[1:0],,DIS_IR_CTRL,SLOWLX[1:0]
2449 */
2450#define MAX77759_CHG_CNFG_19 0xCC
2451
2452/* section: FuelGauge */
2453#define MAX77759_CHG_CNFG_19_DIS_IR_CTRL (0x1 << 2)
2454
2455#define MAX77759_CHG_CNFG_19_SPR_7_5_SHIFT 5
2456#define MAX77759_CHG_CNFG_19_SPR_7_5_MASK (0x7 << 5)
2457#define MAX77759_CHG_CNFG_19_SPR_7_5_CLEAR (~(0x7 << 5))
2458#define MAX77759_CHG_CNFG_19_INLIM_CLK_SHIFT 3
2459#define MAX77759_CHG_CNFG_19_INLIM_CLK_MASK (0x3 << 3)
2460#define MAX77759_CHG_CNFG_19_INLIM_CLK_CLEAR (~(0x3 << 3))
2461#define MAX77759_CHG_CNFG_19_DIS_IR_CTRL_SHIFT 2
2462#define MAX77759_CHG_CNFG_19_DIS_IR_CTRL_MASK (0x1 << 2)
2463#define MAX77759_CHG_CNFG_19_DIS_IR_CTRL_CLEAR (~(0x1 << 2))
2464#define MAX77759_CHG_CNFG_19_SLOWLX_SHIFT 0
2465#define MAX77759_CHG_CNFG_19_SLOWLX_MASK (0x3 << 0)
2466#define MAX77759_CHG_CNFG_19_SLOWLX_CLEAR (~(0x3 << 0))
2467
2468MAX77759_BFF(chg_cnfg_19_spr_7_5,7,5)
2469MAX77759_BFF(chg_cnfg_19_inlim_clk,4,3)
2470MAX77759_BFF(chg_cnfg_19_dis_ir_ctrl,2,2)
2471MAX77759_BFF(chg_cnfg_19_slowlx,1,0)
2472static inline const char *
2473max77759_chg_cnfg_19_cstr(char *buff, size_t len, int val)
2474{
2475#ifdef SCNPRINTF
2476 int i = 0;
2477
2478 i += SCNPRINTF(&buff[i], len - i, " SPR_7_5=%x",
2479 FIELD2VALUE(MAX77759_CHG_CNFG_19_SPR_7_5, val));
2480 i += SCNPRINTF(&buff[i], len - i, " INLIM_CLK=%x",
2481 FIELD2VALUE(MAX77759_CHG_CNFG_19_INLIM_CLK, val));
2482 i += SCNPRINTF(&buff[i], len - i, " DIS_IR_CTRL=%x",
2483 FIELD2VALUE(MAX77759_CHG_CNFG_19_DIS_IR_CTRL, val));
2484 i += SCNPRINTF(&buff[i], len - i, " SLOWLX=%x",
2485 FIELD2VALUE(MAX77759_CHG_CNFG_19_SLOWLX, val));
2486#else
2487 buff[0] = 0;
2488#endif
2489 return buff;
2490}
2491
2492/*
2493 * Status,0x0,0b00000010,0x02
2494 * Br,Smx,Tmx,Vmx,Bi,Smn,Tmn
2495 */
2496#define MAX77759_FG_STATUS 0x0
2497#define MAX77759_FG_STATUS_BR (0x1 << 15)
2498#define MAX77759_FG_STATUS_SMX (0x1 << 14)
2499#define MAX77759_FG_STATUS_TMX (0x1 << 13)
2500#define MAX77759_FG_STATUS_VMX (0x1 << 12)
2501#define MAX77759_FG_STATUS_BI (0x1 << 11)
2502#define MAX77759_FG_STATUS_SMN (0x1 << 10)
2503#define MAX77759_FG_STATUS_TMN (0x1 << 9)
2504#define MAX77759_FG_STATUS_VMN (0x1 << 8)
2505#define MAX77759_FG_STATUS_DSOCI (0x1 << 7)
2506#define MAX77759_FG_STATUS_THMHOT (0x1 << 6)
2507#define MAX77759_FG_STATUS_SPR_5 (0x1 << 5)
2508#define MAX77759_FG_STATUS_ISYSMX (0x1 << 4)
2509#define MAX77759_FG_STATUS_BST (0x1 << 3)
2510#define MAX77759_FG_STATUS_SPR_2 (0x1 << 2)
2511#define MAX77759_FG_STATUS_POR (0x1 << 1)
2512#define MAX77759_FG_STATUS_IMN (0x1 << 0)
2513
2514#define MAX77759_FG_STATUS_BR_SHIFT 15
2515#define MAX77759_FG_STATUS_BR_MASK (0x1 << 15)
2516#define MAX77759_FG_STATUS_BR_CLEAR (~(0x1 << 15))
2517#define MAX77759_FG_STATUS_SMX_SHIFT 14
2518#define MAX77759_FG_STATUS_SMX_MASK (0x1 << 14)
2519#define MAX77759_FG_STATUS_SMX_CLEAR (~(0x1 << 14))
2520#define MAX77759_FG_STATUS_TMX_SHIFT 13
2521#define MAX77759_FG_STATUS_TMX_MASK (0x1 << 13)
2522#define MAX77759_FG_STATUS_TMX_CLEAR (~(0x1 << 13))
2523#define MAX77759_FG_STATUS_VMX_SHIFT 12
2524#define MAX77759_FG_STATUS_VMX_MASK (0x1 << 12)
2525#define MAX77759_FG_STATUS_VMX_CLEAR (~(0x1 << 12))
2526#define MAX77759_FG_STATUS_BI_SHIFT 11
2527#define MAX77759_FG_STATUS_BI_MASK (0x1 << 11)
2528#define MAX77759_FG_STATUS_BI_CLEAR (~(0x1 << 11))
2529#define MAX77759_FG_STATUS_SMN_SHIFT 10
2530#define MAX77759_FG_STATUS_SMN_MASK (0x1 << 10)
2531#define MAX77759_FG_STATUS_SMN_CLEAR (~(0x1 << 10))
2532#define MAX77759_FG_STATUS_TMN_SHIFT 9
2533#define MAX77759_FG_STATUS_TMN_MASK (0x1 << 9)
2534#define MAX77759_FG_STATUS_TMN_CLEAR (~(0x1 << 9))
2535#define MAX77759_FG_STATUS_VMN_SHIFT 8
2536#define MAX77759_FG_STATUS_VMN_MASK (0x1 << 8)
2537#define MAX77759_FG_STATUS_VMN_CLEAR (~(0x1 << 8))
2538#define MAX77759_FG_STATUS_DSOCI_SHIFT 7
2539#define MAX77759_FG_STATUS_DSOCI_MASK (0x1 << 7)
2540#define MAX77759_FG_STATUS_DSOCI_CLEAR (~(0x1 << 7))
2541#define MAX77759_FG_STATUS_THMHOT_SHIFT 6
2542#define MAX77759_FG_STATUS_THMHOT_MASK (0x1 << 6)
2543#define MAX77759_FG_STATUS_THMHOT_CLEAR (~(0x1 << 6))
2544#define MAX77759_FG_STATUS_SPR_5_SHIFT 5
2545#define MAX77759_FG_STATUS_SPR_5_MASK (0x1 << 5)
2546#define MAX77759_FG_STATUS_SPR_5_CLEAR (~(0x1 << 5))
2547#define MAX77759_FG_STATUS_ISYSMX_SHIFT 4
2548#define MAX77759_FG_STATUS_ISYSMX_MASK (0x1 << 4)
2549#define MAX77759_FG_STATUS_ISYSMX_CLEAR (~(0x1 << 4))
2550#define MAX77759_FG_STATUS_BST_SHIFT 3
2551#define MAX77759_FG_STATUS_BST_MASK (0x1 << 3)
2552#define MAX77759_FG_STATUS_BST_CLEAR (~(0x1 << 3))
2553#define MAX77759_FG_STATUS_SPR_2_SHIFT 2
2554#define MAX77759_FG_STATUS_SPR_2_MASK (0x1 << 2)
2555#define MAX77759_FG_STATUS_SPR_2_CLEAR (~(0x1 << 2))
2556#define MAX77759_FG_STATUS_POR_SHIFT 1
2557#define MAX77759_FG_STATUS_POR_MASK (0x1 << 1)
2558#define MAX77759_FG_STATUS_POR_CLEAR (~(0x1 << 1))
2559#define MAX77759_FG_STATUS_IMN_SHIFT 0
2560#define MAX77759_FG_STATUS_IMN_MASK (0x1 << 0)
2561#define MAX77759_FG_STATUS_IMN_CLEAR (~(0x1 << 0))
2562
2563MAX77759_BFF(fg_status_br,15,15)
2564MAX77759_BFF(fg_status_smx,14,14)
2565MAX77759_BFF(fg_status_tmx,13,13)
2566MAX77759_BFF(fg_status_vmx,12,12)
2567MAX77759_BFF(fg_status_bi,11,11)
2568MAX77759_BFF(fg_status_smn,10,10)
2569MAX77759_BFF(fg_status_tmn,9,9)
2570MAX77759_BFF(fg_status_vmn,8,8)
2571MAX77759_BFF(fg_status_dsoci,7,7)
2572MAX77759_BFF(fg_status_thmhot,6,6)
2573MAX77759_BFF(fg_status_spr_5,5,5)
2574MAX77759_BFF(fg_status_isysmx,4,4)
2575MAX77759_BFF(fg_status_bst,3,3)
2576MAX77759_BFF(fg_status_spr_2,2,2)
2577MAX77759_BFF(fg_status_por,1,1)
2578MAX77759_BFF(fg_status_imn,0,0)
2579static inline const char *
2580max77759_fg_status_cstr(char *buff, size_t len, int val)
2581{
2582#ifdef SCNPRINTF
2583 int i = 0;
2584
2585 i += SCNPRINTF(&buff[i], len - i, " BR=%x",
2586 FIELD2VALUE(MAX77759_FG_STATUS_BR, val));
2587 i += SCNPRINTF(&buff[i], len - i, " SMX=%x",
2588 FIELD2VALUE(MAX77759_FG_STATUS_SMX, val));
2589 i += SCNPRINTF(&buff[i], len - i, " TMX=%x",
2590 FIELD2VALUE(MAX77759_FG_STATUS_TMX, val));
2591 i += SCNPRINTF(&buff[i], len - i, " VMX=%x",
2592 FIELD2VALUE(MAX77759_FG_STATUS_VMX, val));
2593 i += SCNPRINTF(&buff[i], len - i, " BI=%x",
2594 FIELD2VALUE(MAX77759_FG_STATUS_BI, val));
2595 i += SCNPRINTF(&buff[i], len - i, " SMN=%x",
2596 FIELD2VALUE(MAX77759_FG_STATUS_SMN, val));
2597 i += SCNPRINTF(&buff[i], len - i, " TMN=%x",
2598 FIELD2VALUE(MAX77759_FG_STATUS_TMN, val));
2599 i += SCNPRINTF(&buff[i], len - i, " VMN=%x",
2600 FIELD2VALUE(MAX77759_FG_STATUS_VMN, val));
2601 i += SCNPRINTF(&buff[i], len - i, " DSOCI=%x",
2602 FIELD2VALUE(MAX77759_FG_STATUS_DSOCI, val));
2603 i += SCNPRINTF(&buff[i], len - i, " THMHOT=%x",
2604 FIELD2VALUE(MAX77759_FG_STATUS_THMHOT, val));
2605 i += SCNPRINTF(&buff[i], len - i, " SPR_5=%x",
2606 FIELD2VALUE(MAX77759_FG_STATUS_SPR_5, val));
2607 i += SCNPRINTF(&buff[i], len - i, " ISYSMX=%x",
2608 FIELD2VALUE(MAX77759_FG_STATUS_ISYSMX, val));
2609 i += SCNPRINTF(&buff[i], len - i, " BST=%x",
2610 FIELD2VALUE(MAX77759_FG_STATUS_BST, val));
2611 i += SCNPRINTF(&buff[i], len - i, " SPR_2=%x",
2612 FIELD2VALUE(MAX77759_FG_STATUS_SPR_2, val));
2613 i += SCNPRINTF(&buff[i], len - i, " POR=%x",
2614 FIELD2VALUE(MAX77759_FG_STATUS_POR, val));
2615 i += SCNPRINTF(&buff[i], len - i, " IMN=%x",
2616 FIELD2VALUE(MAX77759_FG_STATUS_IMN, val));
2617#else
2618 buff[0] = 0;
2619#endif
2620 return buff;
2621}
2622
2623/*
2624 * VAlrtTh,0x1,0b1111111100000000,0xff00
2625 * MaxVoltageAlrt[7:0],,,,,,
2626 */
2627#define MAX77759_FG_VALRTTH 0x1
2628
2629#define MAX77759_FG_VALRTTH_MAXVOLTAGEALRT_SHIFT 8
2630#define MAX77759_FG_VALRTTH_MAXVOLTAGEALRT_MASK (0xff << 8)
2631#define MAX77759_FG_VALRTTH_MAXVOLTAGEALRT_CLEAR (~(0xff << 8))
2632#define MAX77759_FG_VALRTTH_MINVOLTAGEALRT_SHIFT 0
2633#define MAX77759_FG_VALRTTH_MINVOLTAGEALRT_MASK (0xff << 0)
2634#define MAX77759_FG_VALRTTH_MINVOLTAGEALRT_CLEAR (~(0xff << 0))
2635
2636MAX77759_BFF(fg_valrtth_maxvoltagealrt,15,8)
2637MAX77759_BFF(fg_valrtth_minvoltagealrt,7,0)
2638static inline const char *
2639max77759_fg_valrtth_cstr(char *buff, size_t len, int val)
2640{
2641#ifdef SCNPRINTF
2642 int i = 0;
2643
2644 i += SCNPRINTF(&buff[i], len - i, " MAXVOLTAGEALRT=%x",
2645 FIELD2VALUE(MAX77759_FG_VALRTTH_MAXVOLTAGEALRT, val));
2646 i += SCNPRINTF(&buff[i], len - i, " MINVOLTAGEALRT=%x",
2647 FIELD2VALUE(MAX77759_FG_VALRTTH_MINVOLTAGEALRT, val));
2648#else
2649 buff[0] = 0;
2650#endif
2651 return buff;
2652}
2653
2654/*
2655 * TAlrtTh,0x2,0b111111110000000,0x7f80
2656 * MaxTempAlrt[7:0],,,,,,
2657 */
2658#define MAX77759_FG_TALRTTH 0x2
2659
2660#define MAX77759_FG_TALRTTH_MAXTEMPALRT_SHIFT 8
2661#define MAX77759_FG_TALRTTH_MAXTEMPALRT_MASK (0xff << 8)
2662#define MAX77759_FG_TALRTTH_MAXTEMPALRT_CLEAR (~(0xff << 8))
2663#define MAX77759_FG_TALRTTH_MINTEMPALRT_SHIFT 0
2664#define MAX77759_FG_TALRTTH_MINTEMPALRT_MASK (0xff << 0)
2665#define MAX77759_FG_TALRTTH_MINTEMPALRT_CLEAR (~(0xff << 0))
2666
2667MAX77759_BFF(fg_talrtth_maxtempalrt,15,8)
2668MAX77759_BFF(fg_talrtth_mintempalrt,7,0)
2669static inline const char *
2670max77759_fg_talrtth_cstr(char *buff, size_t len, int val)
2671{
2672#ifdef SCNPRINTF
2673 int i = 0;
2674
2675 i += SCNPRINTF(&buff[i], len - i, " MAXTEMPALRT=%x",
2676 FIELD2VALUE(MAX77759_FG_TALRTTH_MAXTEMPALRT, val));
2677 i += SCNPRINTF(&buff[i], len - i, " MINTEMPALRT=%x",
2678 FIELD2VALUE(MAX77759_FG_TALRTTH_MINTEMPALRT, val));
2679#else
2680 buff[0] = 0;
2681#endif
2682 return buff;
2683}
2684
2685/*
2686 * SAlrtTh,0x3,0b1111111100000000,0xff00
2687 * MaxSocAlrt[7:0],,,,,,
2688 */
2689#define MAX77759_FG_SALRTTH 0x3
2690
2691#define MAX77759_FG_SALRTTH_MAXSOCALRT_SHIFT 8
2692#define MAX77759_FG_SALRTTH_MAXSOCALRT_MASK (0xff << 8)
2693#define MAX77759_FG_SALRTTH_MAXSOCALRT_CLEAR (~(0xff << 8))
2694#define MAX77759_FG_SALRTTH_MINSOCALRT_SHIFT 0
2695#define MAX77759_FG_SALRTTH_MINSOCALRT_MASK (0xff << 0)
2696#define MAX77759_FG_SALRTTH_MINSOCALRT_CLEAR (~(0xff << 0))
2697
2698MAX77759_BFF(fg_salrtth_maxsocalrt,15,8)
2699MAX77759_BFF(fg_salrtth_minsocalrt,7,0)
2700static inline const char *
2701max77759_fg_salrtth_cstr(char *buff, size_t len, int val)
2702{
2703#ifdef SCNPRINTF
2704 int i = 0;
2705
2706 i += SCNPRINTF(&buff[i], len - i, " MAXSOCALRT=%x",
2707 FIELD2VALUE(MAX77759_FG_SALRTTH_MAXSOCALRT, val));
2708 i += SCNPRINTF(&buff[i], len - i, " MINSOCALRT=%x",
2709 FIELD2VALUE(MAX77759_FG_SALRTTH_MINSOCALRT, val));
2710#else
2711 buff[0] = 0;
2712#endif
2713 return buff;
2714}
2715
2716/*
2717 * AtRate,0x4,0b00000000,0x00
2718 * AtRate[15:8],,,,,,
2719 */
2720#define MAX77759_FG_ATRATE 0x4
2721
2722/*
2723 * RepCap,0x5,0b10111011100,0x5dc
2724 * RepCap[15:8],,,,,,
2725 */
2726#define MAX77759_FG_REPCAP 0x5
2727
2728/*
2729 * RepSOC,0x6,0b11001000000000,0x3200
2730 * RepSOC[15:8],,,,,,
2731 */
2732#define MAX77759_FG_REPSOC 0x6
2733
2734/*
2735 * Age,0x7,0b110010000000000,0x6400
2736 * Age[15:8],,,,,,
2737 */
2738#define MAX77759_FG_AGE 0x7
2739
2740/*
2741 * Temp,0x8,0b1011000000000,0x1600
2742 * TEMP[15:8],,,,,,
2743 */
2744#define MAX77759_FG_TEMP 0x8
2745
2746/*
2747 * Vcell,0x9,0b1011010000000000,0xb400
2748 * VCELL[15:8],,,,,,
2749 */
2750#define MAX77759_FG_VCELL 0x9
2751
2752/*
2753 * Current,0xA,0b00000000,0x00
2754 * Current[15:8],,,,,,
2755 */
2756#define MAX77759_FG_CURRENT 0xA
2757
2758/*
2759 * AvgCurrent,0xB,0b00000000,0x00
2760 * AvgCurrent[15:8],,,,,,
2761 */
2762#define MAX77759_FG_AVGCURRENT 0xB
2763
2764/*
2765 * QResidual,0xC,0b00000000,0x00
2766 * Qresidual[15:8],,,,,,
2767 */
2768#define MAX77759_FG_QRESIDUAL 0xC
2769
2770/*
2771 * MixSOC,0xD,0b11001000000000,0x3200
2772 * MixSOC[15:8],,,,,,
2773 */
2774#define MAX77759_FG_MIXSOC 0xD
2775
2776/*
2777 * AvSOC,0xE,0b11001000000000,0x3200
2778 * AvSOC[15:8],,,,,,
2779 */
2780#define MAX77759_FG_AVSOC 0xE
2781
2782/*
2783 * MixCap,0xF,0b10111011100,0x5dc
2784 * MixCapH[15:8],,,,,,
2785 */
2786#define MAX77759_FG_MIXCAP 0xF
2787
2788/*
2789 * FullCap,0x10,0b101110111000,0xbb8
2790 * FullCAP[15:8],,,,,,
2791 */
2792#define MAX77759_FG_FULLCAP 0x10
2793
2794/*
2795 * TTE,0x11,0b00000000,0x00
2796 * hr[5:0],,,,,,mn[5:4]
2797 */
2798#define MAX77759_FG_TTE 0x11
2799
2800#define MAX77759_FG_TTE_HR_SHIFT 10
2801#define MAX77759_FG_TTE_HR_MASK (0x3f << 10)
2802#define MAX77759_FG_TTE_HR_CLEAR (~(0x3f << 10))
2803#define MAX77759_FG_TTE_MN_SHIFT 4
2804#define MAX77759_FG_TTE_MN_MASK (0x3f << 4)
2805#define MAX77759_FG_TTE_MN_CLEAR (~(0x3f << 4))
2806#define MAX77759_FG_TTE_SEC_SHIFT 0
2807#define MAX77759_FG_TTE_SEC_MASK (0xf << 0)
2808#define MAX77759_FG_TTE_SEC_CLEAR (~(0xf << 0))
2809
2810MAX77759_BFF(fg_tte_hr,15,10)
2811MAX77759_BFF(fg_tte_mn,9,4)
2812MAX77759_BFF(fg_tte_sec,3,0)
2813static inline const char *
2814max77759_fg_tte_cstr(char *buff, size_t len, int val)
2815{
2816#ifdef SCNPRINTF
2817 int i = 0;
2818
2819 i += SCNPRINTF(&buff[i], len - i, " HR=%x",
2820 FIELD2VALUE(MAX77759_FG_TTE_HR, val));
2821 i += SCNPRINTF(&buff[i], len - i, " MN=%x",
2822 FIELD2VALUE(MAX77759_FG_TTE_MN, val));
2823 i += SCNPRINTF(&buff[i], len - i, " SEC=%x",
2824 FIELD2VALUE(MAX77759_FG_TTE_SEC, val));
2825#else
2826 buff[0] = 0;
2827#endif
2828 return buff;
2829}
2830
2831/*
2832 * QRTable00,0x12,0b11110000000000,0x3c00
2833 * QRTable00[15:8],,,,,,
2834 */
2835#define MAX77759_FG_QRTABLE00 0x12
2836
2837/*
2838 * FullSocThr,0x13,0b101000000000000,0x5000
2839 * FullSOCThr[15:8],,,,,,
2840 */
2841#define MAX77759_FG_FULLSOCTHR 0x13
2842
2843/*
2844 * Rslow,0x14,0b1010010000,0x290
2845 * RSLOW[15:8],,,,,,
2846 */
2847#define MAX77759_FG_RSLOW 0x14
2848
2849/*
2850 * RFast,0x15,0b101001000,0x148
2851 * RFAST[15:8],,,,,,
2852 */
2853#define MAX77759_FG_RFAST 0x15
2854
2855/*
2856 * AvgTA,0x16,0b1011000000000,0x1600
2857 * AvgTA[15:8],,,,,,
2858 */
2859#define MAX77759_FG_AVGTA 0x16
2860
2861/*
2862 * Cycles,0x17,0b00000000,0x00
2863 * Cycles[15:8],,,,,,
2864 */
2865#define MAX77759_FG_CYCLES 0x17
2866
2867/*
2868 * DesignCap,0x18,0b101110111000,0xbb8
2869 * DesignCap[15:8],,,,,,
2870 */
2871#define MAX77759_FG_DESIGNCAP 0x18
2872
2873/*
2874 * AvgVCell,0x19,0b1011010000000000,0xb400
2875 * AvgVCELL[15:8],,,,,,
2876 */
2877#define MAX77759_FG_AVGVCELL 0x19
2878
2879/*
2880 * MaxMinTemp,0x1A,0b1000000001111111,0x807f
2881 * MaxTemperature[7:0],,,,,,
2882 */
2883#define MAX77759_FG_MAXMINTEMP 0x1A
2884
2885#define MAX77759_FG_MAXMINTEMP_MAXTEMPERATURE_SHIFT 8
2886#define MAX77759_FG_MAXMINTEMP_MAXTEMPERATURE_MASK (0xff << 8)
2887#define MAX77759_FG_MAXMINTEMP_MAXTEMPERATURE_CLEAR (~(0xff << 8))
2888#define MAX77759_FG_MAXMINTEMP_MINTEMPERATURE_SHIFT 0
2889#define MAX77759_FG_MAXMINTEMP_MINTEMPERATURE_MASK (0xff << 0)
2890#define MAX77759_FG_MAXMINTEMP_MINTEMPERATURE_CLEAR (~(0xff << 0))
2891
2892MAX77759_BFF(fg_maxmintemp_maxtemperature,15,8)
2893MAX77759_BFF(fg_maxmintemp_mintemperature,7,0)
2894static inline const char *
2895max77759_fg_maxmintemp_cstr(char *buff, size_t len, int val)
2896{
2897#ifdef SCNPRINTF
2898 int i = 0;
2899
2900 i += SCNPRINTF(&buff[i], len - i, " MAXTEMPERATURE=%x",
2901 FIELD2VALUE(MAX77759_FG_MAXMINTEMP_MAXTEMPERATURE, val));
2902 i += SCNPRINTF(&buff[i], len - i, " MINTEMPERATURE=%x",
2903 FIELD2VALUE(MAX77759_FG_MAXMINTEMP_MINTEMPERATURE, val));
2904#else
2905 buff[0] = 0;
2906#endif
2907 return buff;
2908}
2909
2910/*
2911 * MaxMinVolt,0x1B,0b11111111,0xff
2912 * MaxVoltage[7:0],,,,,,
2913 */
2914#define MAX77759_FG_MAXMINVOLT 0x1B
2915
2916#define MAX77759_FG_MAXMINVOLT_MAXVOLTAGE_SHIFT 8
2917#define MAX77759_FG_MAXMINVOLT_MAXVOLTAGE_MASK (0xff << 8)
2918#define MAX77759_FG_MAXMINVOLT_MAXVOLTAGE_CLEAR (~(0xff << 8))
2919#define MAX77759_FG_MAXMINVOLT_MINVOLTAGE_SHIFT 0
2920#define MAX77759_FG_MAXMINVOLT_MINVOLTAGE_MASK (0xff << 0)
2921#define MAX77759_FG_MAXMINVOLT_MINVOLTAGE_CLEAR (~(0xff << 0))
2922
2923MAX77759_BFF(fg_maxminvolt_maxvoltage,15,8)
2924MAX77759_BFF(fg_maxminvolt_minvoltage,7,0)
2925static inline const char *
2926max77759_fg_maxminvolt_cstr(char *buff, size_t len, int val)
2927{
2928#ifdef SCNPRINTF
2929 int i = 0;
2930
2931 i += SCNPRINTF(&buff[i], len - i, " MAXVOLTAGE=%x",
2932 FIELD2VALUE(MAX77759_FG_MAXMINVOLT_MAXVOLTAGE, val));
2933 i += SCNPRINTF(&buff[i], len - i, " MINVOLTAGE=%x",
2934 FIELD2VALUE(MAX77759_FG_MAXMINVOLT_MINVOLTAGE, val));
2935#else
2936 buff[0] = 0;
2937#endif
2938 return buff;
2939}
2940
2941/*
2942 * MaxMinCurr,0x1C,0b1000000001111111,0x807f
2943 * MaxChargeCurrent[7:0],,,,,,
2944 */
2945#define MAX77759_FG_MAXMINCURR 0x1C
2946
2947#define MAX77759_FG_MAXMINCURR_MAXCHARGECURRENT_SHIFT 8
2948#define MAX77759_FG_MAXMINCURR_MAXCHARGECURRENT_MASK (0xff << 8)
2949#define MAX77759_FG_MAXMINCURR_MAXCHARGECURRENT_CLEAR (~(0xff << 8))
2950#define MAX77759_FG_MAXMINCURR_MAXDISCURRENT_SHIFT 0
2951#define MAX77759_FG_MAXMINCURR_MAXDISCURRENT_MASK (0xff << 0)
2952#define MAX77759_FG_MAXMINCURR_MAXDISCURRENT_CLEAR (~(0xff << 0))
2953
2954MAX77759_BFF(fg_maxmincurr_maxchargecurrent,15,8)
2955MAX77759_BFF(fg_maxmincurr_maxdiscurrent,7,0)
2956static inline const char *
2957max77759_fg_maxmincurr_cstr(char *buff, size_t len, int val)
2958{
2959#ifdef SCNPRINTF
2960 int i = 0;
2961
2962 i += SCNPRINTF(&buff[i], len - i, " MAXCHARGECURRENT=%x",
2963 FIELD2VALUE(MAX77759_FG_MAXMINCURR_MAXCHARGECURRENT, val));
2964 i += SCNPRINTF(&buff[i], len - i, " MAXDISCURRENT=%x",
2965 FIELD2VALUE(MAX77759_FG_MAXMINCURR_MAXDISCURRENT, val));
2966#else
2967 buff[0] = 0;
2968#endif
2969 return buff;
2970}
2971
2972/*
2973 * Config,0x1D,0b10001101010000,0x2350
2974 * SPR_15,Ss,Ts,Vs,SPR_11,AINSH,Ten
2975 */
2976#define MAX77759_FG_CONFIG 0x1D
2977#define MAX77759_FG_CONFIG_SPR_15 (0x1 << 15)
2978#define MAX77759_FG_CONFIG_SS (0x1 << 14)
2979#define MAX77759_FG_CONFIG_TS (0x1 << 13)
2980#define MAX77759_FG_CONFIG_VS (0x1 << 12)
2981#define MAX77759_FG_CONFIG_SPR_11 (0x1 << 11)
2982#define MAX77759_FG_CONFIG_AINSH (0x1 << 10)
2983#define MAX77759_FG_CONFIG_TEN (0x1 << 9)
2984#define MAX77759_FG_CONFIG_TEX (0x1 << 8)
2985#define MAX77759_FG_CONFIG_SHDN (0x1 << 7)
2986#define MAX77759_FG_CONFIG_I2CSH (0x1 << 6)
2987#define MAX77759_FG_CONFIG_SPR_5 (0x1 << 5)
2988#define MAX77759_FG_CONFIG_ETHRM (0x1 << 4)
2989#define MAX77759_FG_CONFIG_FTHRM (0x1 << 3)
2990#define MAX77759_FG_CONFIG_AEN (0x1 << 2)
2991#define MAX77759_FG_CONFIG_BEI (0x1 << 1)
2992#define MAX77759_FG_CONFIG_BER (0x1 << 0)
2993
2994#define MAX77759_FG_CONFIG_SPR_15_SHIFT 15
2995#define MAX77759_FG_CONFIG_SPR_15_MASK (0x1 << 15)
2996#define MAX77759_FG_CONFIG_SPR_15_CLEAR (~(0x1 << 15))
2997#define MAX77759_FG_CONFIG_SS_SHIFT 14
2998#define MAX77759_FG_CONFIG_SS_MASK (0x1 << 14)
2999#define MAX77759_FG_CONFIG_SS_CLEAR (~(0x1 << 14))
3000#define MAX77759_FG_CONFIG_TS_SHIFT 13
3001#define MAX77759_FG_CONFIG_TS_MASK (0x1 << 13)
3002#define MAX77759_FG_CONFIG_TS_CLEAR (~(0x1 << 13))
3003#define MAX77759_FG_CONFIG_VS_SHIFT 12
3004#define MAX77759_FG_CONFIG_VS_MASK (0x1 << 12)
3005#define MAX77759_FG_CONFIG_VS_CLEAR (~(0x1 << 12))
3006#define MAX77759_FG_CONFIG_SPR_11_SHIFT 11
3007#define MAX77759_FG_CONFIG_SPR_11_MASK (0x1 << 11)
3008#define MAX77759_FG_CONFIG_SPR_11_CLEAR (~(0x1 << 11))
3009#define MAX77759_FG_CONFIG_AINSH_SHIFT 10
3010#define MAX77759_FG_CONFIG_AINSH_MASK (0x1 << 10)
3011#define MAX77759_FG_CONFIG_AINSH_CLEAR (~(0x1 << 10))
3012#define MAX77759_FG_CONFIG_TEN_SHIFT 9
3013#define MAX77759_FG_CONFIG_TEN_MASK (0x1 << 9)
3014#define MAX77759_FG_CONFIG_TEN_CLEAR (~(0x1 << 9))
3015#define MAX77759_FG_CONFIG_TEX_SHIFT 8
3016#define MAX77759_FG_CONFIG_TEX_MASK (0x1 << 8)
3017#define MAX77759_FG_CONFIG_TEX_CLEAR (~(0x1 << 8))
3018#define MAX77759_FG_CONFIG_SHDN_SHIFT 7
3019#define MAX77759_FG_CONFIG_SHDN_MASK (0x1 << 7)
3020#define MAX77759_FG_CONFIG_SHDN_CLEAR (~(0x1 << 7))
3021#define MAX77759_FG_CONFIG_I2CSH_SHIFT 6
3022#define MAX77759_FG_CONFIG_I2CSH_MASK (0x1 << 6)
3023#define MAX77759_FG_CONFIG_I2CSH_CLEAR (~(0x1 << 6))
3024#define MAX77759_FG_CONFIG_SPR_5_SHIFT 5
3025#define MAX77759_FG_CONFIG_SPR_5_MASK (0x1 << 5)
3026#define MAX77759_FG_CONFIG_SPR_5_CLEAR (~(0x1 << 5))
3027#define MAX77759_FG_CONFIG_ETHRM_SHIFT 4
3028#define MAX77759_FG_CONFIG_ETHRM_MASK (0x1 << 4)
3029#define MAX77759_FG_CONFIG_ETHRM_CLEAR (~(0x1 << 4))
3030#define MAX77759_FG_CONFIG_FTHRM_SHIFT 3
3031#define MAX77759_FG_CONFIG_FTHRM_MASK (0x1 << 3)
3032#define MAX77759_FG_CONFIG_FTHRM_CLEAR (~(0x1 << 3))
3033#define MAX77759_FG_CONFIG_AEN_SHIFT 2
3034#define MAX77759_FG_CONFIG_AEN_MASK (0x1 << 2)
3035#define MAX77759_FG_CONFIG_AEN_CLEAR (~(0x1 << 2))
3036#define MAX77759_FG_CONFIG_BEI_SHIFT 1
3037#define MAX77759_FG_CONFIG_BEI_MASK (0x1 << 1)
3038#define MAX77759_FG_CONFIG_BEI_CLEAR (~(0x1 << 1))
3039#define MAX77759_FG_CONFIG_BER_SHIFT 0
3040#define MAX77759_FG_CONFIG_BER_MASK (0x1 << 0)
3041#define MAX77759_FG_CONFIG_BER_CLEAR (~(0x1 << 0))
3042
3043MAX77759_BFF(fg_config_spr_15,15,15)
3044MAX77759_BFF(fg_config_ss,14,14)
3045MAX77759_BFF(fg_config_ts,13,13)
3046MAX77759_BFF(fg_config_vs,12,12)
3047MAX77759_BFF(fg_config_spr_11,11,11)
3048MAX77759_BFF(fg_config_ainsh,10,10)
3049MAX77759_BFF(fg_config_ten,9,9)
3050MAX77759_BFF(fg_config_tex,8,8)
3051MAX77759_BFF(fg_config_shdn,7,7)
3052MAX77759_BFF(fg_config_i2csh,6,6)
3053MAX77759_BFF(fg_config_spr_5,5,5)
3054MAX77759_BFF(fg_config_ethrm,4,4)
3055MAX77759_BFF(fg_config_fthrm,3,3)
3056MAX77759_BFF(fg_config_aen,2,2)
3057MAX77759_BFF(fg_config_bei,1,1)
3058MAX77759_BFF(fg_config_ber,0,0)
3059static inline const char *
3060max77759_fg_config_cstr(char *buff, size_t len, int val)
3061{
3062#ifdef SCNPRINTF
3063 int i = 0;
3064
3065 i += SCNPRINTF(&buff[i], len - i, " SPR_15=%x",
3066 FIELD2VALUE(MAX77759_FG_CONFIG_SPR_15, val));
3067 i += SCNPRINTF(&buff[i], len - i, " SS=%x",
3068 FIELD2VALUE(MAX77759_FG_CONFIG_SS, val));
3069 i += SCNPRINTF(&buff[i], len - i, " TS=%x",
3070 FIELD2VALUE(MAX77759_FG_CONFIG_TS, val));
3071 i += SCNPRINTF(&buff[i], len - i, " VS=%x",
3072 FIELD2VALUE(MAX77759_FG_CONFIG_VS, val));
3073 i += SCNPRINTF(&buff[i], len - i, " SPR_11=%x",
3074 FIELD2VALUE(MAX77759_FG_CONFIG_SPR_11, val));
3075 i += SCNPRINTF(&buff[i], len - i, " AINSH=%x",
3076 FIELD2VALUE(MAX77759_FG_CONFIG_AINSH, val));
3077 i += SCNPRINTF(&buff[i], len - i, " TEN=%x",
3078 FIELD2VALUE(MAX77759_FG_CONFIG_TEN, val));
3079 i += SCNPRINTF(&buff[i], len - i, " TEX=%x",
3080 FIELD2VALUE(MAX77759_FG_CONFIG_TEX, val));
3081 i += SCNPRINTF(&buff[i], len - i, " SHDN=%x",
3082 FIELD2VALUE(MAX77759_FG_CONFIG_SHDN, val));
3083 i += SCNPRINTF(&buff[i], len - i, " I2CSH=%x",
3084 FIELD2VALUE(MAX77759_FG_CONFIG_I2CSH, val));
3085 i += SCNPRINTF(&buff[i], len - i, " SPR_5=%x",
3086 FIELD2VALUE(MAX77759_FG_CONFIG_SPR_5, val));
3087 i += SCNPRINTF(&buff[i], len - i, " ETHRM=%x",
3088 FIELD2VALUE(MAX77759_FG_CONFIG_ETHRM, val));
3089 i += SCNPRINTF(&buff[i], len - i, " FTHRM=%x",
3090 FIELD2VALUE(MAX77759_FG_CONFIG_FTHRM, val));
3091 i += SCNPRINTF(&buff[i], len - i, " AEN=%x",
3092 FIELD2VALUE(MAX77759_FG_CONFIG_AEN, val));
3093 i += SCNPRINTF(&buff[i], len - i, " BEI=%x",
3094 FIELD2VALUE(MAX77759_FG_CONFIG_BEI, val));
3095 i += SCNPRINTF(&buff[i], len - i, " BER=%x",
3096 FIELD2VALUE(MAX77759_FG_CONFIG_BER, val));
3097#else
3098 buff[0] = 0;
3099#endif
3100 return buff;
3101}
3102
3103/*
3104 * IChgTerm,0x1E,0b1111000000,0x3c0
3105 * ICHGTerm[15:8],,,,,,
3106 */
3107#define MAX77759_FG_ICHGTERM 0x1E
3108
3109/*
3110 * AvCap,0x1F,0b10111011100,0x5dc
3111 * AvCap[15:8],,,,,,
3112 */
3113#define MAX77759_FG_AVCAP 0x1F
3114
3115/*
3116 * TTF,0x20,0b1111111111111111,0xffff
3117 * hr[5:0],,,,,,mn[5:4]
3118 */
3119#define MAX77759_FG_TTF 0x20
3120
3121#define MAX77759_FG_TTF_HR_SHIFT 10
3122#define MAX77759_FG_TTF_HR_MASK (0x3f << 10)
3123#define MAX77759_FG_TTF_HR_CLEAR (~(0x3f << 10))
3124#define MAX77759_FG_TTF_MN_SHIFT 4
3125#define MAX77759_FG_TTF_MN_MASK (0x3f << 4)
3126#define MAX77759_FG_TTF_MN_CLEAR (~(0x3f << 4))
3127#define MAX77759_FG_TTF_SEC_SHIFT 0
3128#define MAX77759_FG_TTF_SEC_MASK (0xf << 0)
3129#define MAX77759_FG_TTF_SEC_CLEAR (~(0xf << 0))
3130
3131MAX77759_BFF(fg_ttf_hr,15,10)
3132MAX77759_BFF(fg_ttf_mn,9,4)
3133MAX77759_BFF(fg_ttf_sec,3,0)
3134static inline const char *
3135max77759_fg_ttf_cstr(char *buff, size_t len, int val)
3136{
3137#ifdef SCNPRINTF
3138 int i = 0;
3139
3140 i += SCNPRINTF(&buff[i], len - i, " HR=%x",
3141 FIELD2VALUE(MAX77759_FG_TTF_HR, val));
3142 i += SCNPRINTF(&buff[i], len - i, " MN=%x",
3143 FIELD2VALUE(MAX77759_FG_TTF_MN, val));
3144 i += SCNPRINTF(&buff[i], len - i, " SEC=%x",
3145 FIELD2VALUE(MAX77759_FG_TTF_SEC, val));
3146#else
3147 buff[0] = 0;
3148#endif
3149 return buff;
3150}
3151
3152/*
3153 * DevName,0x21,0b110001000000000,0x6200
3154 * DevName[15:8],,,,,,
3155 */
3156#define MAX77759_FG_DEVNAME 0x21
3157
3158/*
3159 * QRTable10,0x22,0b1101110000000,0x1b80
3160 * QRTable10[15:8],,,,,,
3161 */
3162#define MAX77759_FG_QRTABLE10 0x22
3163
3164/*
3165 * FullCapNom,0x23,0b101110111000,0xbb8
3166 * FullCapNom[15:8],,,,,,
3167 */
3168#define MAX77759_FG_FULLCAPNOM 0x23
3169
3170/*
3171 * TempNom,0x24,0b1010000000000,0x1400
3172 * TempNom[9:2],,,,,,
3173 */
3174#define MAX77759_FG_TEMPNOM 0x24
3175
3176#define MAX77759_FG_TEMPNOM_TEMPNOM_SHIFT 6
3177#define MAX77759_FG_TEMPNOM_TEMPNOM_MASK (0x3ff << 6)
3178#define MAX77759_FG_TEMPNOM_TEMPNOM_CLEAR (~(0x3ff << 6))
3179#define MAX77759_FG_TEMPNOM_SPR_5_0_SHIFT 0
3180#define MAX77759_FG_TEMPNOM_SPR_5_0_MASK (0x3f << 0)
3181#define MAX77759_FG_TEMPNOM_SPR_5_0_CLEAR (~(0x3f << 0))
3182
3183MAX77759_BFF(fg_tempnom_tempnom,15,6)
3184MAX77759_BFF(fg_tempnom_spr_5_0,5,0)
3185static inline const char *
3186max77759_fg_tempnom_cstr(char *buff, size_t len, int val)
3187{
3188#ifdef SCNPRINTF
3189 int i = 0;
3190
3191 i += SCNPRINTF(&buff[i], len - i, " TEMPNOM=%x",
3192 FIELD2VALUE(MAX77759_FG_TEMPNOM_TEMPNOM, val));
3193 i += SCNPRINTF(&buff[i], len - i, " SPR_5_0=%x",
3194 FIELD2VALUE(MAX77759_FG_TEMPNOM_SPR_5_0, val));
3195#else
3196 buff[0] = 0;
3197#endif
3198 return buff;
3199}
3200
3201/*
3202 * TempLim,0x25,0b10001100000101,0x2305
3203 * TempHot[7:0],,,,,,
3204 */
3205#define MAX77759_FG_TEMPLIM 0x25
3206
3207#define MAX77759_FG_TEMPLIM_TEMPHOT_SHIFT 8
3208#define MAX77759_FG_TEMPLIM_TEMPHOT_MASK (0xff << 8)
3209#define MAX77759_FG_TEMPLIM_TEMPHOT_CLEAR (~(0xff << 8))
3210#define MAX77759_FG_TEMPLIM_TEMPCOLD_SHIFT 0
3211#define MAX77759_FG_TEMPLIM_TEMPCOLD_MASK (0xff << 0)
3212#define MAX77759_FG_TEMPLIM_TEMPCOLD_CLEAR (~(0xff << 0))
3213
3214MAX77759_BFF(fg_templim_temphot,15,8)
3215MAX77759_BFF(fg_templim_tempcold,7,0)
3216static inline const char *
3217max77759_fg_templim_cstr(char *buff, size_t len, int val)
3218{
3219#ifdef SCNPRINTF
3220 int i = 0;
3221
3222 i += SCNPRINTF(&buff[i], len - i, " TEMPHOT=%x",
3223 FIELD2VALUE(MAX77759_FG_TEMPLIM_TEMPHOT, val));
3224 i += SCNPRINTF(&buff[i], len - i, " TEMPCOLD=%x",
3225 FIELD2VALUE(MAX77759_FG_TEMPLIM_TEMPCOLD, val));
3226#else
3227 buff[0] = 0;
3228#endif
3229 return buff;
3230}
3231
3232/*
3233 * AvgTA0,0x26,0b1011000000000,0x1600
3234 * AvgTA0[15:8],,,,,,
3235 */
3236#define MAX77759_FG_AVGTA0 0x26
3237
3238/*
3239 * AIN0,0x27,0b1000100011010000,0x88d0
3240 * AIN0[15:8],,,,,,
3241 */
3242#define MAX77759_FG_AIN0 0x27
3243
3244/*
3245 * LearnCfg,0x28,0b10011000000011,0x2603
3246 * LearnRCOMP[2:0],,,LearnTCO[2:0],,,FCLrn[1:0]
3247 */
3248#define MAX77759_FG_LEARNCFG 0x28
3249#define MAX77759_FG_LEARNCFG_SPR_7 (0x1 << 7)
3250#define MAX77759_FG_LEARNCFG_SPR_3 (0x1 << 3)
3251#define MAX77759_FG_LEARNCFG_FILLEMPTY (0x1 << 2)
3252#define MAX77759_FG_LEARNCFG_RESERVED_1 (0x1 << 1)
3253#define MAX77759_FG_LEARNCFG_SPR_0 (0x1 << 0)
3254
3255#define MAX77759_FG_LEARNCFG_LEARNRCOMP_SHIFT 13
3256#define MAX77759_FG_LEARNCFG_LEARNRCOMP_MASK (0x7 << 13)
3257#define MAX77759_FG_LEARNCFG_LEARNRCOMP_CLEAR (~(0x7 << 13))
3258#define MAX77759_FG_LEARNCFG_LEARNTCO_SHIFT 10
3259#define MAX77759_FG_LEARNCFG_LEARNTCO_MASK (0x7 << 10)
3260#define MAX77759_FG_LEARNCFG_LEARNTCO_CLEAR (~(0x7 << 10))
3261#define MAX77759_FG_LEARNCFG_FCLRN_SHIFT 8
3262#define MAX77759_FG_LEARNCFG_FCLRN_MASK (0x3 << 8)
3263#define MAX77759_FG_LEARNCFG_FCLRN_CLEAR (~(0x3 << 8))
3264#define MAX77759_FG_LEARNCFG_SPR_7_SHIFT 7
3265#define MAX77759_FG_LEARNCFG_SPR_7_MASK (0x1 << 7)
3266#define MAX77759_FG_LEARNCFG_SPR_7_CLEAR (~(0x1 << 7))
3267#define MAX77759_FG_LEARNCFG_FCLRNSTAGE_SHIFT 4
3268#define MAX77759_FG_LEARNCFG_FCLRNSTAGE_MASK (0x7 << 4)
3269#define MAX77759_FG_LEARNCFG_FCLRNSTAGE_CLEAR (~(0x7 << 4))
3270#define MAX77759_FG_LEARNCFG_SPR_3_SHIFT 3
3271#define MAX77759_FG_LEARNCFG_SPR_3_MASK (0x1 << 3)
3272#define MAX77759_FG_LEARNCFG_SPR_3_CLEAR (~(0x1 << 3))
3273#define MAX77759_FG_LEARNCFG_FILLEMPTY_SHIFT 2
3274#define MAX77759_FG_LEARNCFG_FILLEMPTY_MASK (0x1 << 2)
3275#define MAX77759_FG_LEARNCFG_FILLEMPTY_CLEAR (~(0x1 << 2))
3276#define MAX77759_FG_LEARNCFG_RESERVED_1_SHIFT 1
3277#define MAX77759_FG_LEARNCFG_RESERVED_1_MASK (0x1 << 1)
3278#define MAX77759_FG_LEARNCFG_RESERVED_1_CLEAR (~(0x1 << 1))
3279#define MAX77759_FG_LEARNCFG_SPR_0_SHIFT 0
3280#define MAX77759_FG_LEARNCFG_SPR_0_MASK (0x1 << 0)
3281#define MAX77759_FG_LEARNCFG_SPR_0_CLEAR (~(0x1 << 0))
3282
3283MAX77759_BFF(fg_learncfg_learnrcomp,15,13)
3284MAX77759_BFF(fg_learncfg_learntco,12,10)
3285MAX77759_BFF(fg_learncfg_fclrn,9,8)
3286MAX77759_BFF(fg_learncfg_spr_7,7,7)
3287MAX77759_BFF(fg_learncfg_fclrnstage,6,4)
3288MAX77759_BFF(fg_learncfg_spr_3,3,3)
3289MAX77759_BFF(fg_learncfg_fillempty,2,2)
3290MAX77759_BFF(fg_learncfg_reserved_1,1,1)
3291MAX77759_BFF(fg_learncfg_spr_0,0,0)
3292static inline const char *
3293max77759_fg_learncfg_cstr(char *buff, size_t len, int val)
3294{
3295#ifdef SCNPRINTF
3296 int i = 0;
3297
3298 i += SCNPRINTF(&buff[i], len - i, " LEARNRCOMP=%x",
3299 FIELD2VALUE(MAX77759_FG_LEARNCFG_LEARNRCOMP, val));
3300 i += SCNPRINTF(&buff[i], len - i, " LEARNTCO=%x",
3301 FIELD2VALUE(MAX77759_FG_LEARNCFG_LEARNTCO, val));
3302 i += SCNPRINTF(&buff[i], len - i, " FCLRN=%x",
3303 FIELD2VALUE(MAX77759_FG_LEARNCFG_FCLRN, val));
3304 i += SCNPRINTF(&buff[i], len - i, " SPR_7=%x",
3305 FIELD2VALUE(MAX77759_FG_LEARNCFG_SPR_7, val));
3306 i += SCNPRINTF(&buff[i], len - i, " FCLRNSTAGE=%x",
3307 FIELD2VALUE(MAX77759_FG_LEARNCFG_FCLRNSTAGE, val));
3308 i += SCNPRINTF(&buff[i], len - i, " SPR_3=%x",
3309 FIELD2VALUE(MAX77759_FG_LEARNCFG_SPR_3, val));
3310 i += SCNPRINTF(&buff[i], len - i, " FILLEMPTY=%x",
3311 FIELD2VALUE(MAX77759_FG_LEARNCFG_FILLEMPTY, val));
3312 i += SCNPRINTF(&buff[i], len - i, " RESERVED_1=%x",
3313 FIELD2VALUE(MAX77759_FG_LEARNCFG_RESERVED_1, val));
3314 i += SCNPRINTF(&buff[i], len - i, " SPR_0=%x",
3315 FIELD2VALUE(MAX77759_FG_LEARNCFG_SPR_0, val));
3316#else
3317 buff[0] = 0;
3318#endif
3319 return buff;
3320}
3321
3322/*
3323 * FilterCfg,0x29,0b1100111010100100,0xcea4
3324 * SPR_15_14[1:0],,NTEMP[2:0],,,NMIX[3:1],
3325 */
3326#define MAX77759_FG_FILTERCFG 0x29
3327
3328#define MAX77759_FG_FILTERCFG_SPR_15_14_SHIFT 14
3329#define MAX77759_FG_FILTERCFG_SPR_15_14_MASK (0x3 << 14)
3330#define MAX77759_FG_FILTERCFG_SPR_15_14_CLEAR (~(0x3 << 14))
3331#define MAX77759_FG_FILTERCFG_NTEMP_SHIFT 11
3332#define MAX77759_FG_FILTERCFG_NTEMP_MASK (0x7 << 11)
3333#define MAX77759_FG_FILTERCFG_NTEMP_CLEAR (~(0x7 << 11))
3334#define MAX77759_FG_FILTERCFG_NMIX_SHIFT 8
3335#define MAX77759_FG_FILTERCFG_NMIX_MASK (0x7 << 8)
3336#define MAX77759_FG_FILTERCFG_NMIX_CLEAR (~(0x7 << 8))
3337#define MAX77759_FG_FILTERCFG_NAVGCELL_SHIFT 5
3338#define MAX77759_FG_FILTERCFG_NAVGCELL_MASK (0x7 << 5)
3339#define MAX77759_FG_FILTERCFG_NAVGCELL_CLEAR (~(0x7 << 5))
3340#define MAX77759_FG_FILTERCFG_NCURR_SHIFT 1
3341#define MAX77759_FG_FILTERCFG_NCURR_MASK (0xf << 1)
3342#define MAX77759_FG_FILTERCFG_NCURR_CLEAR (~(0xf << 1))
3343
3344MAX77759_BFF(fg_filtercfg_spr_15_14,15,14)
3345MAX77759_BFF(fg_filtercfg_ntemp,13,11)
3346MAX77759_BFF(fg_filtercfg_nmix,10,8)
3347MAX77759_BFF(fg_filtercfg_navgcell,7,5)
3348MAX77759_BFF(fg_filtercfg_ncurr,4,1)
3349static inline const char *
3350max77759_fg_filtercfg_cstr(char *buff, size_t len, int val)
3351{
3352#ifdef SCNPRINTF
3353 int i = 0;
3354
3355 i += SCNPRINTF(&buff[i], len - i, " SPR_15_14=%x",
3356 FIELD2VALUE(MAX77759_FG_FILTERCFG_SPR_15_14, val));
3357 i += SCNPRINTF(&buff[i], len - i, " NTEMP=%x",
3358 FIELD2VALUE(MAX77759_FG_FILTERCFG_NTEMP, val));
3359 i += SCNPRINTF(&buff[i], len - i, " NMIX=%x",
3360 FIELD2VALUE(MAX77759_FG_FILTERCFG_NMIX, val));
3361 i += SCNPRINTF(&buff[i], len - i, " NAVGCELL=%x",
3362 FIELD2VALUE(MAX77759_FG_FILTERCFG_NAVGCELL, val));
3363 i += SCNPRINTF(&buff[i], len - i, " NCURR=%x",
3364 FIELD2VALUE(MAX77759_FG_FILTERCFG_NCURR, val));
3365#else
3366 buff[0] = 0;
3367#endif
3368 return buff;
3369}
3370
3371/*
3372 * RelaxCfg,0x2A,0b10000011001001,0x20c9
3373 * LoadThr[6:0],,,,,,
3374 */
3375#define MAX77759_FG_RELAXCFG 0x2A
3376
3377#define MAX77759_FG_RELAXCFG_LOADTHR_SHIFT 9
3378#define MAX77759_FG_RELAXCFG_LOADTHR_MASK (0x7f << 9)
3379#define MAX77759_FG_RELAXCFG_LOADTHR_CLEAR (~(0x7f << 9))
3380#define MAX77759_FG_RELAXCFG_DVTHR_SHIFT 4
3381#define MAX77759_FG_RELAXCFG_DVTHR_MASK (0xf << 4)
3382#define MAX77759_FG_RELAXCFG_DVTHR_CLEAR (~(0xf << 4))
3383#define MAX77759_FG_RELAXCFG_DTTHR_SHIFT 0
3384#define MAX77759_FG_RELAXCFG_DTTHR_MASK (0xf << 0)
3385#define MAX77759_FG_RELAXCFG_DTTHR_CLEAR (~(0xf << 0))
3386
3387MAX77759_BFF(fg_relaxcfg_loadthr,15,9)
3388MAX77759_BFF(fg_relaxcfg_dvthr,7,4)
3389MAX77759_BFF(fg_relaxcfg_dtthr,3,0)
3390static inline const char *
3391max77759_fg_relaxcfg_cstr(char *buff, size_t len, int val)
3392{
3393#ifdef SCNPRINTF
3394 int i = 0;
3395
3396 i += SCNPRINTF(&buff[i], len - i, " LOADTHR=%x",
3397 FIELD2VALUE(MAX77759_FG_RELAXCFG_LOADTHR, val));
3398 i += SCNPRINTF(&buff[i], len - i, " DVTHR=%x",
3399 FIELD2VALUE(MAX77759_FG_RELAXCFG_DVTHR, val));
3400 i += SCNPRINTF(&buff[i], len - i, " DTTHR=%x",
3401 FIELD2VALUE(MAX77759_FG_RELAXCFG_DTTHR, val));
3402#else
3403 buff[0] = 0;
3404#endif
3405 return buff;
3406}
3407
3408/*
3409 * MiscCfg,0x2B,0b100111010000,0x9d0
3410 * FUS[3:0],,,,EnBi1,InitVFG,MixRate[4:3]
3411 */
3412#define MAX77759_FG_MISCCFG 0x2B
3413#define MAX77759_FG_MISCCFG_ENBI1 (0x1 << 11)
3414#define MAX77759_FG_MISCCFG_INITVFG (0x1 << 10)
3415#define MAX77759_FG_MISCCFG_RDFCLRN (0x1 << 4)
3416#define MAX77759_FG_MISCCFG_VTTL (0x1 << 3)
3417#define MAX77759_FG_MISCCFG_VEX (0x1 << 2)
3418
3419#define MAX77759_FG_MISCCFG_FUS_SHIFT 12
3420#define MAX77759_FG_MISCCFG_FUS_MASK (0xf << 12)
3421#define MAX77759_FG_MISCCFG_FUS_CLEAR (~(0xf << 12))
3422#define MAX77759_FG_MISCCFG_ENBI1_SHIFT 11
3423#define MAX77759_FG_MISCCFG_ENBI1_MASK (0x1 << 11)
3424#define MAX77759_FG_MISCCFG_ENBI1_CLEAR (~(0x1 << 11))
3425#define MAX77759_FG_MISCCFG_INITVFG_SHIFT 10
3426#define MAX77759_FG_MISCCFG_INITVFG_MASK (0x1 << 10)
3427#define MAX77759_FG_MISCCFG_INITVFG_CLEAR (~(0x1 << 10))
3428#define MAX77759_FG_MISCCFG_MIXRATE_SHIFT 5
3429#define MAX77759_FG_MISCCFG_MIXRATE_MASK (0x1f << 5)
3430#define MAX77759_FG_MISCCFG_MIXRATE_CLEAR (~(0x1f << 5))
3431#define MAX77759_FG_MISCCFG_RDFCLRN_SHIFT 4
3432#define MAX77759_FG_MISCCFG_RDFCLRN_MASK (0x1 << 4)
3433#define MAX77759_FG_MISCCFG_RDFCLRN_CLEAR (~(0x1 << 4))
3434#define MAX77759_FG_MISCCFG_VTTL_SHIFT 3
3435#define MAX77759_FG_MISCCFG_VTTL_MASK (0x1 << 3)
3436#define MAX77759_FG_MISCCFG_VTTL_CLEAR (~(0x1 << 3))
3437#define MAX77759_FG_MISCCFG_VEX_SHIFT 2
3438#define MAX77759_FG_MISCCFG_VEX_MASK (0x1 << 2)
3439#define MAX77759_FG_MISCCFG_VEX_CLEAR (~(0x1 << 2))
3440#define MAX77759_FG_MISCCFG_SACFG_SHIFT 0
3441#define MAX77759_FG_MISCCFG_SACFG_MASK (0x3 << 0)
3442#define MAX77759_FG_MISCCFG_SACFG_CLEAR (~(0x3 << 0))
3443
3444MAX77759_BFF(fg_misccfg_fus,15,12)
3445MAX77759_BFF(fg_misccfg_enbi1,11,11)
3446MAX77759_BFF(fg_misccfg_initvfg,10,10)
3447MAX77759_BFF(fg_misccfg_mixrate,9,5)
3448MAX77759_BFF(fg_misccfg_rdfclrn,4,4)
3449MAX77759_BFF(fg_misccfg_vttl,3,3)
3450MAX77759_BFF(fg_misccfg_vex,2,2)
3451MAX77759_BFF(fg_misccfg_sacfg,1,0)
3452static inline const char *
3453max77759_fg_misccfg_cstr(char *buff, size_t len, int val)
3454{
3455#ifdef SCNPRINTF
3456 int i = 0;
3457
3458 i += SCNPRINTF(&buff[i], len - i, " FUS=%x",
3459 FIELD2VALUE(MAX77759_FG_MISCCFG_FUS, val));
3460 i += SCNPRINTF(&buff[i], len - i, " ENBI1=%x",
3461 FIELD2VALUE(MAX77759_FG_MISCCFG_ENBI1, val));
3462 i += SCNPRINTF(&buff[i], len - i, " INITVFG=%x",
3463 FIELD2VALUE(MAX77759_FG_MISCCFG_INITVFG, val));
3464 i += SCNPRINTF(&buff[i], len - i, " MIXRATE=%x",
3465 FIELD2VALUE(MAX77759_FG_MISCCFG_MIXRATE, val));
3466 i += SCNPRINTF(&buff[i], len - i, " RDFCLRN=%x",
3467 FIELD2VALUE(MAX77759_FG_MISCCFG_RDFCLRN, val));
3468 i += SCNPRINTF(&buff[i], len - i, " VTTL=%x",
3469 FIELD2VALUE(MAX77759_FG_MISCCFG_VTTL, val));
3470 i += SCNPRINTF(&buff[i], len - i, " VEX=%x",
3471 FIELD2VALUE(MAX77759_FG_MISCCFG_VEX, val));
3472 i += SCNPRINTF(&buff[i], len - i, " SACFG=%x",
3473 FIELD2VALUE(MAX77759_FG_MISCCFG_SACFG, val));
3474#else
3475 buff[0] = 0;
3476#endif
3477 return buff;
3478}
3479
3480/*
3481 * TGain,0x2C,0b1110101110001101,0xeb8d
3482 * TGAIN[15:8],,,,,,
3483 */
3484#define MAX77759_FG_TGAIN 0x2C
3485
3486/*
3487 * TOff,0x2D,0b10000010101010,0x20aa
3488 * TOFF[15:8],,,,,,
3489 */
3490#define MAX77759_FG_TOFF 0x2D
3491
3492/*
3493 * CGain,0x2E,0b10000000000,0x400
3494 * CGAIN[15:8],,,,,,
3495 */
3496#define MAX77759_FG_CGAIN 0x2E
3497
3498/*
3499 * COff,0x2F,0b00000000,0x00
3500 * COFF[15:8],,,,,,
3501 */
3502#define MAX77759_FG_COFF 0x2F
3503
3504/*
3505 * dV_acc,0x30,0b10000000000,0x400
3506 * dV_acc[15:8],,,,,,
3507 */
3508#define MAX77759_FG_DV_ACC 0x30
3509
3510/*
3511 * dI_acc,0x31,0b11001000000,0x640
3512 * dI_acc[15:8],,,,,,
3513 */
3514#define MAX77759_FG_DI_ACC 0x31
3515
3516/*
3517 * QRTable20,0x32,0b101100000100,0xb04
3518 * QRTable20[15:8],,,,,,
3519 */
3520#define MAX77759_FG_QRTABLE20 0x32
3521
3522/*
3523 * AtTTF,0x33,0b1111111111111111,0xffff
3524 * AtTTF[15:8],,,,,,
3525 */
3526#define MAX77759_FG_ATTTF 0x33
3527
3528/*
3529 * TConvert,0x34,0b1011000000000,0x1600
3530 * TConvert[15:8],,,,,,
3531 */
3532#define MAX77759_FG_TCONVERT 0x34
3533
3534/*
3535 * FullCapRep,0x35,0b101110111000,0xbb8
3536 * FullCapRep[15:8],,,,,,
3537 */
3538#define MAX77759_FG_FULLCAPREP 0x35
3539
3540/*
3541 * IAvgEmpty,0x36,0b1111010001001000,0xf448
3542 * Iavg_empty[15:8],,,,,,
3543 */
3544#define MAX77759_FG_IAVGEMPTY 0x36
3545
3546/*
3547 * FCTC,0x37,0b10111100000,0x5e0
3548 * RSRVD[15:8],,,,,,
3549 */
3550#define MAX77759_FG_FCTC 0x37
3551
3552/*
3553 * RComp0,0x38,0b01110000,0x70
3554 * SPR_15_8[7:0],,,,,,
3555 */
3556#define MAX77759_FG_RCOMP0 0x38
3557
3558#define MAX77759_FG_RCOMP0_SPR_15_8_SHIFT 8
3559#define MAX77759_FG_RCOMP0_SPR_15_8_MASK (0xff << 8)
3560#define MAX77759_FG_RCOMP0_SPR_15_8_CLEAR (~(0xff << 8))
3561#define MAX77759_FG_RCOMP0_RCOMP0_SHIFT 0
3562#define MAX77759_FG_RCOMP0_RCOMP0_MASK (0xff << 0)
3563#define MAX77759_FG_RCOMP0_RCOMP0_CLEAR (~(0xff << 0))
3564
3565MAX77759_BFF(fg_rcomp0_spr_15_8,15,8)
3566MAX77759_BFF(fg_rcomp0_rcomp0,7,0)
3567static inline const char *
3568max77759_fg_rcomp0_cstr(char *buff, size_t len, int val)
3569{
3570#ifdef SCNPRINTF
3571 int i = 0;
3572
3573 i += SCNPRINTF(&buff[i], len - i, " SPR_15_8=%x",
3574 FIELD2VALUE(MAX77759_FG_RCOMP0_SPR_15_8, val));
3575 i += SCNPRINTF(&buff[i], len - i, " RCOMP0=%x",
3576 FIELD2VALUE(MAX77759_FG_RCOMP0_RCOMP0, val));
3577#else
3578 buff[0] = 0;
3579#endif
3580 return buff;
3581}
3582
3583/*
3584 * TempCo,0x39,0b10011000111101,0x263d
3585 * TempCoHot[7:0],,,,,,
3586 */
3587#define MAX77759_FG_TEMPCO 0x39
3588
3589#define MAX77759_FG_TEMPCO_TEMPCOHOT_SHIFT 8
3590#define MAX77759_FG_TEMPCO_TEMPCOHOT_MASK (0xff << 8)
3591#define MAX77759_FG_TEMPCO_TEMPCOHOT_CLEAR (~(0xff << 8))
3592#define MAX77759_FG_TEMPCO_TEMPCOCOLD_SHIFT 0
3593#define MAX77759_FG_TEMPCO_TEMPCOCOLD_MASK (0xff << 0)
3594#define MAX77759_FG_TEMPCO_TEMPCOCOLD_CLEAR (~(0xff << 0))
3595
3596MAX77759_BFF(fg_tempco_tempcohot,15,8)
3597MAX77759_BFF(fg_tempco_tempcocold,7,0)
3598static inline const char *
3599max77759_fg_tempco_cstr(char *buff, size_t len, int val)
3600{
3601#ifdef SCNPRINTF
3602 int i = 0;
3603
3604 i += SCNPRINTF(&buff[i], len - i, " TEMPCOHOT=%x",
3605 FIELD2VALUE(MAX77759_FG_TEMPCO_TEMPCOHOT, val));
3606 i += SCNPRINTF(&buff[i], len - i, " TEMPCOCOLD=%x",
3607 FIELD2VALUE(MAX77759_FG_TEMPCO_TEMPCOCOLD, val));
3608#else
3609 buff[0] = 0;
3610#endif
3611 return buff;
3612}
3613
3614/*
3615 * VEmpty,0x3A,0b1010010101100001,0xa561
3616 * V_Empty[8:1],,,,,,
3617 */
3618#define MAX77759_FG_VEMPTY 0x3A
3619
3620#define MAX77759_FG_VEMPTY_V_EMPTY_SHIFT 8
3621#define MAX77759_FG_VEMPTY_V_EMPTY_MASK (0xff << 8)
3622#define MAX77759_FG_VEMPTY_V_EMPTY_CLEAR (~(0xff << 8))
3623#define MAX77759_FG_VEMPTY_V_RECOVER_SHIFT 1
3624#define MAX77759_FG_VEMPTY_V_RECOVER_MASK (0x7f << 1)
3625#define MAX77759_FG_VEMPTY_V_RECOVER_CLEAR (~(0x7f << 1))
3626
3627MAX77759_BFF(fg_vempty_v_empty,15,8)
3628MAX77759_BFF(fg_vempty_v_recover,7,1)
3629static inline const char *
3630max77759_fg_vempty_cstr(char *buff, size_t len, int val)
3631{
3632#ifdef SCNPRINTF
3633 int i = 0;
3634
3635 i += SCNPRINTF(&buff[i], len - i, " V_EMPTY=%x",
3636 FIELD2VALUE(MAX77759_FG_VEMPTY_V_EMPTY, val));
3637 i += SCNPRINTF(&buff[i], len - i, " V_RECOVER=%x",
3638 FIELD2VALUE(MAX77759_FG_VEMPTY_V_RECOVER, val));
3639#else
3640 buff[0] = 0;
3641#endif
3642 return buff;
3643}
3644
3645/*
3646 * AvgCurrent0,0x3B,0b111111111111111,0x7fff
3647 * AvgCurrent0[15:8],,,,,,
3648 */
3649#define MAX77759_FG_AVGCURRENT0 0x3B
3650
3651/*
3652 * TaskPeriod,0x3C,0b1011010000000,0x1680
3653 * TaskPeriod[15:8],,,,,,
3654 */
3655#define MAX77759_FG_TASKPERIOD 0x3C
3656
3657/*
3658 * FStat,0x3D,0b00000001,0x01
3659 * SPR_15,RDF,SPR_13,DeBn,SRP_11,Relck,RelDt
3660 */
3661#define MAX77759_FG_FSTAT 0x3D
3662#define MAX77759_FG_FSTAT_SPR_15 (0x1 << 15)
3663#define MAX77759_FG_FSTAT_RDF (0x1 << 14)
3664#define MAX77759_FG_FSTAT_SPR_13 (0x1 << 13)
3665#define MAX77759_FG_FSTAT_DEBN (0x1 << 12)
3666#define MAX77759_FG_FSTAT_SRP_11 (0x1 << 11)
3667#define MAX77759_FG_FSTAT_RELCK (0x1 << 10)
3668#define MAX77759_FG_FSTAT_RELDT (0x1 << 9)
3669#define MAX77759_FG_FSTAT_EDET (0x1 << 8)
3670#define MAX77759_FG_FSTAT_FQ (0x1 << 7)
3671#define MAX77759_FG_FSTAT_RELDT2 (0x1 << 6)
3672#define MAX77759_FG_FSTAT_TIMER_START (0x1 << 5)
3673#define MAX77759_FG_FSTAT_SPR_4 (0x1 << 4)
3674#define MAX77759_FG_FSTAT_ACCEN (0x1 << 3)
3675#define MAX77759_FG_FSTAT_WK (0x1 << 2)
3676#define MAX77759_FG_FSTAT_LDMDL (0x1 << 1)
3677#define MAX77759_FG_FSTAT_DNR (0x1 << 0)
3678
3679#define MAX77759_FG_FSTAT_SPR_15_SHIFT 15
3680#define MAX77759_FG_FSTAT_SPR_15_MASK (0x1 << 15)
3681#define MAX77759_FG_FSTAT_SPR_15_CLEAR (~(0x1 << 15))
3682#define MAX77759_FG_FSTAT_RDF_SHIFT 14
3683#define MAX77759_FG_FSTAT_RDF_MASK (0x1 << 14)
3684#define MAX77759_FG_FSTAT_RDF_CLEAR (~(0x1 << 14))
3685#define MAX77759_FG_FSTAT_SPR_13_SHIFT 13
3686#define MAX77759_FG_FSTAT_SPR_13_MASK (0x1 << 13)
3687#define MAX77759_FG_FSTAT_SPR_13_CLEAR (~(0x1 << 13))
3688#define MAX77759_FG_FSTAT_DEBN_SHIFT 12
3689#define MAX77759_FG_FSTAT_DEBN_MASK (0x1 << 12)
3690#define MAX77759_FG_FSTAT_DEBN_CLEAR (~(0x1 << 12))
3691#define MAX77759_FG_FSTAT_SRP_11_SHIFT 11
3692#define MAX77759_FG_FSTAT_SRP_11_MASK (0x1 << 11)
3693#define MAX77759_FG_FSTAT_SRP_11_CLEAR (~(0x1 << 11))
3694#define MAX77759_FG_FSTAT_RELCK_SHIFT 10
3695#define MAX77759_FG_FSTAT_RELCK_MASK (0x1 << 10)
3696#define MAX77759_FG_FSTAT_RELCK_CLEAR (~(0x1 << 10))
3697#define MAX77759_FG_FSTAT_RELDT_SHIFT 9
3698#define MAX77759_FG_FSTAT_RELDT_MASK (0x1 << 9)
3699#define MAX77759_FG_FSTAT_RELDT_CLEAR (~(0x1 << 9))
3700#define MAX77759_FG_FSTAT_EDET_SHIFT 8
3701#define MAX77759_FG_FSTAT_EDET_MASK (0x1 << 8)
3702#define MAX77759_FG_FSTAT_EDET_CLEAR (~(0x1 << 8))
3703#define MAX77759_FG_FSTAT_FQ_SHIFT 7
3704#define MAX77759_FG_FSTAT_FQ_MASK (0x1 << 7)
3705#define MAX77759_FG_FSTAT_FQ_CLEAR (~(0x1 << 7))
3706#define MAX77759_FG_FSTAT_RELDT2_SHIFT 6
3707#define MAX77759_FG_FSTAT_RELDT2_MASK (0x1 << 6)
3708#define MAX77759_FG_FSTAT_RELDT2_CLEAR (~(0x1 << 6))
3709#define MAX77759_FG_FSTAT_TIMER_START_SHIFT 5
3710#define MAX77759_FG_FSTAT_TIMER_START_MASK (0x1 << 5)
3711#define MAX77759_FG_FSTAT_TIMER_START_CLEAR (~(0x1 << 5))
3712#define MAX77759_FG_FSTAT_SPR_4_SHIFT 4
3713#define MAX77759_FG_FSTAT_SPR_4_MASK (0x1 << 4)
3714#define MAX77759_FG_FSTAT_SPR_4_CLEAR (~(0x1 << 4))
3715#define MAX77759_FG_FSTAT_ACCEN_SHIFT 3
3716#define MAX77759_FG_FSTAT_ACCEN_MASK (0x1 << 3)
3717#define MAX77759_FG_FSTAT_ACCEN_CLEAR (~(0x1 << 3))
3718#define MAX77759_FG_FSTAT_WK_SHIFT 2
3719#define MAX77759_FG_FSTAT_WK_MASK (0x1 << 2)
3720#define MAX77759_FG_FSTAT_WK_CLEAR (~(0x1 << 2))
3721#define MAX77759_FG_FSTAT_LDMDL_SHIFT 1
3722#define MAX77759_FG_FSTAT_LDMDL_MASK (0x1 << 1)
3723#define MAX77759_FG_FSTAT_LDMDL_CLEAR (~(0x1 << 1))
3724#define MAX77759_FG_FSTAT_DNR_SHIFT 0
3725#define MAX77759_FG_FSTAT_DNR_MASK (0x1 << 0)
3726#define MAX77759_FG_FSTAT_DNR_CLEAR (~(0x1 << 0))
3727
3728MAX77759_BFF(fg_fstat_spr_15,15,15)
3729MAX77759_BFF(fg_fstat_rdf,14,14)
3730MAX77759_BFF(fg_fstat_spr_13,13,13)
3731MAX77759_BFF(fg_fstat_debn,12,12)
3732MAX77759_BFF(fg_fstat_srp_11,11,11)
3733MAX77759_BFF(fg_fstat_relck,10,10)
3734MAX77759_BFF(fg_fstat_reldt,9,9)
3735MAX77759_BFF(fg_fstat_edet,8,8)
3736MAX77759_BFF(fg_fstat_fq,7,7)
3737MAX77759_BFF(fg_fstat_reldt2,6,6)
3738MAX77759_BFF(fg_fstat_timer_start,5,5)
3739MAX77759_BFF(fg_fstat_spr_4,4,4)
3740MAX77759_BFF(fg_fstat_accen,3,3)
3741MAX77759_BFF(fg_fstat_wk,2,2)
3742MAX77759_BFF(fg_fstat_ldmdl,1,1)
3743MAX77759_BFF(fg_fstat_dnr,0,0)
3744static inline const char *
3745max77759_fg_fstat_cstr(char *buff, size_t len, int val)
3746{
3747#ifdef SCNPRINTF
3748 int i = 0;
3749
3750 i += SCNPRINTF(&buff[i], len - i, " SPR_15=%x",
3751 FIELD2VALUE(MAX77759_FG_FSTAT_SPR_15, val));
3752 i += SCNPRINTF(&buff[i], len - i, " RDF=%x",
3753 FIELD2VALUE(MAX77759_FG_FSTAT_RDF, val));
3754 i += SCNPRINTF(&buff[i], len - i, " SPR_13=%x",
3755 FIELD2VALUE(MAX77759_FG_FSTAT_SPR_13, val));
3756 i += SCNPRINTF(&buff[i], len - i, " DEBN=%x",
3757 FIELD2VALUE(MAX77759_FG_FSTAT_DEBN, val));
3758 i += SCNPRINTF(&buff[i], len - i, " SRP_11=%x",
3759 FIELD2VALUE(MAX77759_FG_FSTAT_SRP_11, val));
3760 i += SCNPRINTF(&buff[i], len - i, " RELCK=%x",
3761 FIELD2VALUE(MAX77759_FG_FSTAT_RELCK, val));
3762 i += SCNPRINTF(&buff[i], len - i, " RELDT=%x",
3763 FIELD2VALUE(MAX77759_FG_FSTAT_RELDT, val));
3764 i += SCNPRINTF(&buff[i], len - i, " EDET=%x",
3765 FIELD2VALUE(MAX77759_FG_FSTAT_EDET, val));
3766 i += SCNPRINTF(&buff[i], len - i, " FQ=%x",
3767 FIELD2VALUE(MAX77759_FG_FSTAT_FQ, val));
3768 i += SCNPRINTF(&buff[i], len - i, " RELDT2=%x",
3769 FIELD2VALUE(MAX77759_FG_FSTAT_RELDT2, val));
3770 i += SCNPRINTF(&buff[i], len - i, " TIMER_START=%x",
3771 FIELD2VALUE(MAX77759_FG_FSTAT_TIMER_START, val));
3772 i += SCNPRINTF(&buff[i], len - i, " SPR_4=%x",
3773 FIELD2VALUE(MAX77759_FG_FSTAT_SPR_4, val));
3774 i += SCNPRINTF(&buff[i], len - i, " ACCEN=%x",
3775 FIELD2VALUE(MAX77759_FG_FSTAT_ACCEN, val));
3776 i += SCNPRINTF(&buff[i], len - i, " WK=%x",
3777 FIELD2VALUE(MAX77759_FG_FSTAT_WK, val));
3778 i += SCNPRINTF(&buff[i], len - i, " LDMDL=%x",
3779 FIELD2VALUE(MAX77759_FG_FSTAT_LDMDL, val));
3780 i += SCNPRINTF(&buff[i], len - i, " DNR=%x",
3781 FIELD2VALUE(MAX77759_FG_FSTAT_DNR, val));
3782#else
3783 buff[0] = 0;
3784#endif
3785 return buff;
3786}
3787
3788/*
3789 * Timer,0x3E,0b00000000,0x00
3790 * TIMER[15:8],,,,,,
3791 */
3792#define MAX77759_FG_TIMER 0x3E
3793
3794/*
3795 * ShdnTimer,0x3F,0b1110000000000000,0xe000
3796 * SHDN_THR[2:0],,,SHDNCTR[12:8],,,
3797 */
3798#define MAX77759_FG_SHDNTIMER 0x3F
3799
3800#define MAX77759_FG_SHDNTIMER_SHDN_THR_SHIFT 13
3801#define MAX77759_FG_SHDNTIMER_SHDN_THR_MASK (0x7 << 13)
3802#define MAX77759_FG_SHDNTIMER_SHDN_THR_CLEAR (~(0x7 << 13))
3803#define MAX77759_FG_SHDNTIMER_SHDNCTR_SHIFT 0
3804#define MAX77759_FG_SHDNTIMER_SHDNCTR_MASK (0x1fff << 0)
3805#define MAX77759_FG_SHDNTIMER_SHDNCTR_CLEAR (~(0x1fff << 0))
3806
3807MAX77759_BFF(fg_shdntimer_shdn_thr,15,13)
3808MAX77759_BFF(fg_shdntimer_shdnctr,12,0)
3809static inline const char *
3810max77759_fg_shdntimer_cstr(char *buff, size_t len, int val)
3811{
3812#ifdef SCNPRINTF
3813 int i = 0;
3814
3815 i += SCNPRINTF(&buff[i], len - i, " SHDN_THR=%x",
3816 FIELD2VALUE(MAX77759_FG_SHDNTIMER_SHDN_THR, val));
3817 i += SCNPRINTF(&buff[i], len - i, " SHDNCTR=%x",
3818 FIELD2VALUE(MAX77759_FG_SHDNTIMER_SHDNCTR, val));
3819#else
3820 buff[0] = 0;
3821#endif
3822 return buff;
3823}
3824
3825/*
3826 * THMHOT,0x40,0b11111111100,0x7fc
3827 * VR[4:0],,,,,Vhys[2:0],
3828 */
3829#define MAX77759_FG_THMHOT 0x40
3830
3831#define MAX77759_FG_THMHOT_VR_SHIFT 11
3832#define MAX77759_FG_THMHOT_VR_MASK (0x1f << 11)
3833#define MAX77759_FG_THMHOT_VR_CLEAR (~(0x1f << 11))
3834#define MAX77759_FG_THMHOT_VHYS_SHIFT 8
3835#define MAX77759_FG_THMHOT_VHYS_MASK (0x7 << 8)
3836#define MAX77759_FG_THMHOT_VHYS_CLEAR (~(0x7 << 8))
3837#define MAX77759_FG_THMHOT_TR_SHIFT 3
3838#define MAX77759_FG_THMHOT_TR_MASK (0x1f << 3)
3839#define MAX77759_FG_THMHOT_TR_CLEAR (~(0x1f << 3))
3840#define MAX77759_FG_THMHOT_THYS_SHIFT 0
3841#define MAX77759_FG_THMHOT_THYS_MASK (0x7 << 0)
3842#define MAX77759_FG_THMHOT_THYS_CLEAR (~(0x7 << 0))
3843
3844MAX77759_BFF(fg_thmhot_vr,15,11)
3845MAX77759_BFF(fg_thmhot_vhys,10,8)
3846MAX77759_BFF(fg_thmhot_tr,7,3)
3847MAX77759_BFF(fg_thmhot_thys,2,0)
3848static inline const char *
3849max77759_fg_thmhot_cstr(char *buff, size_t len, int val)
3850{
3851#ifdef SCNPRINTF
3852 int i = 0;
3853
3854 i += SCNPRINTF(&buff[i], len - i, " VR=%x",
3855 FIELD2VALUE(MAX77759_FG_THMHOT_VR, val));
3856 i += SCNPRINTF(&buff[i], len - i, " VHYS=%x",
3857 FIELD2VALUE(MAX77759_FG_THMHOT_VHYS, val));
3858 i += SCNPRINTF(&buff[i], len - i, " TR=%x",
3859 FIELD2VALUE(MAX77759_FG_THMHOT_TR, val));
3860 i += SCNPRINTF(&buff[i], len - i, " THYS=%x",
3861 FIELD2VALUE(MAX77759_FG_THMHOT_THYS, val));
3862#else
3863 buff[0] = 0;
3864#endif
3865 return buff;
3866}
3867
3868/*
3869 * CTESample,0x41,0b00000000,0x00
3870 * CTESample[15:8],,,,,,
3871 */
3872#define MAX77759_FG_CTESAMPLE 0x41
3873
3874/*
3875 * QRTable30,0x42,0b100010000101,0x885
3876 * QRTable30[15:8],,,,,,
3877 */
3878#define MAX77759_FG_QRTABLE30 0x42
3879
3880/*
3881 * ISys,0x43,0b00000000,0x00
3882 * ISYS[15:8],,,,,,
3883 */
3884#define MAX77759_FG_ISYS 0x43
3885
3886/*
3887 * AvgVCell0,0x44,0b1000000000000000,0x8000
3888 * AvgVCELL0[15:8],,,,,,
3889 */
3890#define MAX77759_FG_AVGVCELL0 0x44
3891
3892/*
3893 * dQAcc,0x45,0b00010111,0x17
3894 * dQacc[15:8],,,,,,
3895 */
3896#define MAX77759_FG_DQACC 0x45
3897
3898/*
3899 * dPAcc,0x46,0b110010000,0x190
3900 * dPacc[15:8],,,,,,
3901 */
3902#define MAX77759_FG_DPACC 0x46
3903
3904/*
3905 * RlxSOC,0x47,0b00000000,0x00
3906 * RlxSOC[15:8],,,,,,
3907 */
3908#define MAX77759_FG_RLXSOC 0x47
3909
3910/*
3911 * VFSOC0,0x48,0b11001000000000,0x3200
3912 * VFSOC0[15:8],,,,,,
3913 */
3914#define MAX77759_FG_VFSOC0 0x48
3915
3916/*
3917 * ConvgCfg,0x49,0b10001001000001,0x2241
3918 * RepLow[3:0],,,,VoltLowOff[4:1],,
3919 */
3920#define MAX77759_FG_CONVGCFG 0x49
3921
3922#define MAX77759_FG_CONVGCFG_REPLOW_SHIFT 12
3923#define MAX77759_FG_CONVGCFG_REPLOW_MASK (0xf << 12)
3924#define MAX77759_FG_CONVGCFG_REPLOW_CLEAR (~(0xf << 12))
3925#define MAX77759_FG_CONVGCFG_VOLTLOWOFF_SHIFT 8
3926#define MAX77759_FG_CONVGCFG_VOLTLOWOFF_MASK (0xf << 8)
3927#define MAX77759_FG_CONVGCFG_VOLTLOWOFF_CLEAR (~(0xf << 8))
3928#define MAX77759_FG_CONVGCFG_MINSLOPEX_SHIFT 4
3929#define MAX77759_FG_CONVGCFG_MINSLOPEX_MASK (0xf << 4)
3930#define MAX77759_FG_CONVGCFG_MINSLOPEX_CLEAR (~(0xf << 4))
3931#define MAX77759_FG_CONVGCFG_REPL_PER_STAGE_SHIFT 1
3932#define MAX77759_FG_CONVGCFG_REPL_PER_STAGE_MASK (0x7 << 1)
3933#define MAX77759_FG_CONVGCFG_REPL_PER_STAGE_CLEAR (~(0x7 << 1))
3934
3935MAX77759_BFF(fg_convgcfg_replow,15,12)
3936MAX77759_BFF(fg_convgcfg_voltlowoff,11,8)
3937MAX77759_BFF(fg_convgcfg_minslopex,7,4)
3938MAX77759_BFF(fg_convgcfg_repl_per_stage,3,1)
3939static inline const char *
3940max77759_fg_convgcfg_cstr(char *buff, size_t len, int val)
3941{
3942#ifdef SCNPRINTF
3943 int i = 0;
3944
3945 i += SCNPRINTF(&buff[i], len - i, " REPLOW=%x",
3946 FIELD2VALUE(MAX77759_FG_CONVGCFG_REPLOW, val));
3947 i += SCNPRINTF(&buff[i], len - i, " VOLTLOWOFF=%x",
3948 FIELD2VALUE(MAX77759_FG_CONVGCFG_VOLTLOWOFF, val));
3949 i += SCNPRINTF(&buff[i], len - i, " MINSLOPEX=%x",
3950 FIELD2VALUE(MAX77759_FG_CONVGCFG_MINSLOPEX, val));
3951 i += SCNPRINTF(&buff[i], len - i, " REPL_PER_STAGE=%x",
3952 FIELD2VALUE(MAX77759_FG_CONVGCFG_REPL_PER_STAGE, val));
3953#else
3954 buff[0] = 0;
3955#endif
3956 return buff;
3957}
3958
3959/*
3960 * VFRemCap,0x4A,0b10111011100,0x5dc
3961 * VFRemCap[15:8],,,,,,
3962 */
3963#define MAX77759_FG_VFREMCAP 0x4A
3964
3965/*
3966 * AvgISys,0x4B,0b00000000,0x00
3967 * AVGISYS[15:8],,,,,,
3968 */
3969#define MAX77759_FG_AVGISYS 0x4B
3970
3971/*
3972 * QH0,0x4C,0b00000000,0x00
3973 * QH0[15:8],,,,,,
3974 */
3975#define MAX77759_FG_QH0 0x4C
3976
3977/*
3978 * QH,0x4D,0b00000000,0x00
3979 * QH[15:8],,,,,,
3980 */
3981#define MAX77759_FG_QH 0x4D
3982
3983/*
3984 * QL,0x4E,0b00000000,0x00
3985 * QL[15:8],,,,,,
3986 */
3987#define MAX77759_FG_QL 0x4E
3988
3989/*
3990 * MixAtFull,0x4F,0b101110111000,0xbb8
3991 * Reserved[15:8],,,,,,
3992 */
3993#define MAX77759_FG_MIXATFULL 0x4F
3994
3995/*
3996 * Status2,0xB0,0b00000000,0x00
3997 * SPR_15_6[9:2],,,,,,
3998 */
3999#define MAX77759_FG_STATUS2 0xB0
4000#define MAX77759_FG_STATUS2_FULLDET (0x1 << 5)
4001#define MAX77759_FG_STATUS2_HIB (0x1 << 1)
4002#define MAX77759_FG_STATUS2_SPR_0 (0x1 << 0)
4003
4004#define MAX77759_FG_STATUS2_SPR_15_6_SHIFT 6
4005#define MAX77759_FG_STATUS2_SPR_15_6_MASK (0x3ff << 6)
4006#define MAX77759_FG_STATUS2_SPR_15_6_CLEAR (~(0x3ff << 6))
4007#define MAX77759_FG_STATUS2_FULLDET_SHIFT 5
4008#define MAX77759_FG_STATUS2_FULLDET_MASK (0x1 << 5)
4009#define MAX77759_FG_STATUS2_FULLDET_CLEAR (~(0x1 << 5))
4010#define MAX77759_FG_STATUS2_SPR_4_2_SHIFT 2
4011#define MAX77759_FG_STATUS2_SPR_4_2_MASK (0x7 << 2)
4012#define MAX77759_FG_STATUS2_SPR_4_2_CLEAR (~(0x7 << 2))
4013#define MAX77759_FG_STATUS2_HIB_SHIFT 1
4014#define MAX77759_FG_STATUS2_HIB_MASK (0x1 << 1)
4015#define MAX77759_FG_STATUS2_HIB_CLEAR (~(0x1 << 1))
4016#define MAX77759_FG_STATUS2_SPR_0_SHIFT 0
4017#define MAX77759_FG_STATUS2_SPR_0_MASK (0x1 << 0)
4018#define MAX77759_FG_STATUS2_SPR_0_CLEAR (~(0x1 << 0))
4019
4020MAX77759_BFF(fg_status2_spr_15_6,15,6)
4021MAX77759_BFF(fg_status2_fulldet,5,5)
4022MAX77759_BFF(fg_status2_spr_4_2,4,2)
4023MAX77759_BFF(fg_status2_hib,1,1)
4024MAX77759_BFF(fg_status2_spr_0,0,0)
4025static inline const char *
4026max77759_fg_status2_cstr(char *buff, size_t len, int val)
4027{
4028#ifdef SCNPRINTF
4029 int i = 0;
4030
4031 i += SCNPRINTF(&buff[i], len - i, " SPR_15_6=%x",
4032 FIELD2VALUE(MAX77759_FG_STATUS2_SPR_15_6, val));
4033 i += SCNPRINTF(&buff[i], len - i, " FULLDET=%x",
4034 FIELD2VALUE(MAX77759_FG_STATUS2_FULLDET, val));
4035 i += SCNPRINTF(&buff[i], len - i, " SPR_4_2=%x",
4036 FIELD2VALUE(MAX77759_FG_STATUS2_SPR_4_2, val));
4037 i += SCNPRINTF(&buff[i], len - i, " HIB=%x",
4038 FIELD2VALUE(MAX77759_FG_STATUS2_HIB, val));
4039 i += SCNPRINTF(&buff[i], len - i, " SPR_0=%x",
4040 FIELD2VALUE(MAX77759_FG_STATUS2_SPR_0, val));
4041#else
4042 buff[0] = 0;
4043#endif
4044 return buff;
4045}
4046
4047/*
4048 * VSys,0xB1,0b00000000,0x00
4049 * VSys[15:8],,,,,,
4050 */
4051#define MAX77759_FG_VSYS 0xB1
4052
4053/*
4054 * TAlrtTh2,0xB2,0b111111110000000,0x7f80
4055 * Reserved[15:8],,,,,,
4056 */
4057#define MAX77759_FG_TALRTTH2 0xB2
4058
4059/*
4060 * VByp,0xB3,0b00000000,0x00
4061 * VByp[15:8],,,,,,
4062 */
4063#define MAX77759_FG_VBYP 0xB3
4064
4065/*
4066 * IAlrtTh,0xB4,0b111111110000000,0x7f80
4067 * ISYSOCP_TH[7:0],,,,,,
4068 */
4069#define MAX77759_FG_IALRTTH 0xB4
4070
4071#define MAX77759_FG_IALRTTH_ISYSOCP_TH_SHIFT 8
4072#define MAX77759_FG_IALRTTH_ISYSOCP_TH_MASK (0xff << 8)
4073#define MAX77759_FG_IALRTTH_ISYSOCP_TH_CLEAR (~(0xff << 8))
4074#define MAX77759_FG_IALRTTH_IBATTMIN_TH_SHIFT 0
4075#define MAX77759_FG_IALRTTH_IBATTMIN_TH_MASK (0xff << 0)
4076#define MAX77759_FG_IALRTTH_IBATTMIN_TH_CLEAR (~(0xff << 0))
4077
4078MAX77759_BFF(fg_ialrtth_isysocp_th,15,8)
4079MAX77759_BFF(fg_ialrtth_ibattmin_th,7,0)
4080static inline const char *
4081max77759_fg_ialrtth_cstr(char *buff, size_t len, int val)
4082{
4083#ifdef SCNPRINTF
4084 int i = 0;
4085
4086 i += SCNPRINTF(&buff[i], len - i, " ISYSOCP_TH=%x",
4087 FIELD2VALUE(MAX77759_FG_IALRTTH_ISYSOCP_TH, val));
4088 i += SCNPRINTF(&buff[i], len - i, " IBATTMIN_TH=%x",
4089 FIELD2VALUE(MAX77759_FG_IALRTTH_IBATTMIN_TH, val));
4090#else
4091 buff[0] = 0;
4092#endif
4093 return buff;
4094}
4095
4096/*
4097 * TTF_CFG,0xB5,0b00000101,0x05
4098 * SPR_15_3[12:5],,,,,,
4099 */
4100#define MAX77759_FG_TTF_CFG 0xB5
4101
4102#define MAX77759_FG_TTF_CFG_SPR_15_3_SHIFT 3
4103#define MAX77759_FG_TTF_CFG_SPR_15_3_MASK (0x1fff << 3)
4104#define MAX77759_FG_TTF_CFG_SPR_15_3_CLEAR (~(0x1fff << 3))
4105#define MAX77759_FG_TTF_CFG_TTF_CFG_SHIFT 0
4106#define MAX77759_FG_TTF_CFG_TTF_CFG_MASK (0x7 << 0)
4107#define MAX77759_FG_TTF_CFG_TTF_CFG_CLEAR (~(0x7 << 0))
4108
4109MAX77759_BFF(fg_ttf_cfg_spr_15_3,15,3)
4110MAX77759_BFF(fg_ttf_cfg_ttf_cfg,2,0)
4111static inline const char *
4112max77759_fg_ttf_cfg_cstr(char *buff, size_t len, int val)
4113{
4114#ifdef SCNPRINTF
4115 int i = 0;
4116
4117 i += SCNPRINTF(&buff[i], len - i, " SPR_15_3=%x",
4118 FIELD2VALUE(MAX77759_FG_TTF_CFG_SPR_15_3, val));
4119 i += SCNPRINTF(&buff[i], len - i, " TTF_CFG=%x",
4120 FIELD2VALUE(MAX77759_FG_TTF_CFG_TTF_CFG, val));
4121#else
4122 buff[0] = 0;
4123#endif
4124 return buff;
4125}
4126
4127/*
4128 * CV_MixCap,0xB6,0b100011001010,0x8ca
4129 * CV_MixCap[15:8],,,,,,
4130 */
4131#define MAX77759_FG_CV_MIXCAP 0xB6
4132
4133/*
4134 * CV_HalfTime,0xB7,0b101000000000,0xa00
4135 * CV_Halftime[15:8],,,,,,
4136 */
4137#define MAX77759_FG_CV_HALFTIME 0xB7
4138
4139/*
4140 * CGTempCo,0xB8,0b00000000,0x00
4141 * Reserved[15:8],,,,,,
4142 */
4143#define MAX77759_FG_CGTEMPCO 0xB8
4144
4145/*
4146 * Curve,0xB9,0b01101011,0x6b
4147 * Reserved[7:0],,,,,,
4148 */
4149#define MAX77759_FG_CURVE 0xB9
4150
4151#define MAX77759_FG_CURVE_RESERVED_SHIFT 8
4152#define MAX77759_FG_CURVE_RESERVED_MASK (0xff << 8)
4153#define MAX77759_FG_CURVE_RESERVED_CLEAR (~(0xff << 8))
4154#define MAX77759_FG_CURVE_TCURVE_SHIFT 0
4155#define MAX77759_FG_CURVE_TCURVE_MASK (0xff << 0)
4156#define MAX77759_FG_CURVE_TCURVE_CLEAR (~(0xff << 0))
4157
4158MAX77759_BFF(fg_curve_reserved,15,8)
4159MAX77759_BFF(fg_curve_tcurve,7,0)
4160static inline const char *
4161max77759_fg_curve_cstr(char *buff, size_t len, int val)
4162{
4163#ifdef SCNPRINTF
4164 int i = 0;
4165
4166 i += SCNPRINTF(&buff[i], len - i, " RESERVED=%x",
4167 FIELD2VALUE(MAX77759_FG_CURVE_RESERVED, val));
4168 i += SCNPRINTF(&buff[i], len - i, " TCURVE=%x",
4169 FIELD2VALUE(MAX77759_FG_CURVE_TCURVE, val));
4170#else
4171 buff[0] = 0;
4172#endif
4173 return buff;
4174}
4175
4176/*
4177 * HibCfg,0xBA,0b100100001100,0x90c
4178 * EnHib,HibEnterTime[2:0],,,HibThreshold[3:0],,
4179 */
4180#define MAX77759_FG_HIBCFG 0xBA
4181#define MAX77759_FG_HIBCFG_ENHIB (0x1 << 15)
4182
4183#define MAX77759_FG_HIBCFG_ENHIB_SHIFT 15
4184#define MAX77759_FG_HIBCFG_ENHIB_MASK (0x1 << 15)
4185#define MAX77759_FG_HIBCFG_ENHIB_CLEAR (~(0x1 << 15))
4186#define MAX77759_FG_HIBCFG_HIBENTERTIME_SHIFT 12
4187#define MAX77759_FG_HIBCFG_HIBENTERTIME_MASK (0x7 << 12)
4188#define MAX77759_FG_HIBCFG_HIBENTERTIME_CLEAR (~(0x7 << 12))
4189#define MAX77759_FG_HIBCFG_HIBTHRESHOLD_SHIFT 8
4190#define MAX77759_FG_HIBCFG_HIBTHRESHOLD_MASK (0xf << 8)
4191#define MAX77759_FG_HIBCFG_HIBTHRESHOLD_CLEAR (~(0xf << 8))
4192#define MAX77759_FG_HIBCFG_SPR_7_5_SHIFT 5
4193#define MAX77759_FG_HIBCFG_SPR_7_5_MASK (0x7 << 5)
4194#define MAX77759_FG_HIBCFG_SPR_7_5_CLEAR (~(0x7 << 5))
4195#define MAX77759_FG_HIBCFG_HIBEXITTIME_SHIFT 3
4196#define MAX77759_FG_HIBCFG_HIBEXITTIME_MASK (0x3 << 3)
4197#define MAX77759_FG_HIBCFG_HIBEXITTIME_CLEAR (~(0x3 << 3))
4198#define MAX77759_FG_HIBCFG_HIBSCALAR_SHIFT 0
4199#define MAX77759_FG_HIBCFG_HIBSCALAR_MASK (0x7 << 0)
4200#define MAX77759_FG_HIBCFG_HIBSCALAR_CLEAR (~(0x7 << 0))
4201
4202MAX77759_BFF(fg_hibcfg_enhib,15,15)
4203MAX77759_BFF(fg_hibcfg_hibentertime,14,12)
4204MAX77759_BFF(fg_hibcfg_hibthreshold,11,8)
4205MAX77759_BFF(fg_hibcfg_spr_7_5,7,5)
4206MAX77759_BFF(fg_hibcfg_hibexittime,4,3)
4207MAX77759_BFF(fg_hibcfg_hibscalar,2,0)
4208static inline const char *
4209max77759_fg_hibcfg_cstr(char *buff, size_t len, int val)
4210{
4211#ifdef SCNPRINTF
4212 int i = 0;
4213
4214 i += SCNPRINTF(&buff[i], len - i, " ENHIB=%x",
4215 FIELD2VALUE(MAX77759_FG_HIBCFG_ENHIB, val));
4216 i += SCNPRINTF(&buff[i], len - i, " HIBENTERTIME=%x",
4217 FIELD2VALUE(MAX77759_FG_HIBCFG_HIBENTERTIME, val));
4218 i += SCNPRINTF(&buff[i], len - i, " HIBTHRESHOLD=%x",
4219 FIELD2VALUE(MAX77759_FG_HIBCFG_HIBTHRESHOLD, val));
4220 i += SCNPRINTF(&buff[i], len - i, " SPR_7_5=%x",
4221 FIELD2VALUE(MAX77759_FG_HIBCFG_SPR_7_5, val));
4222 i += SCNPRINTF(&buff[i], len - i, " HIBEXITTIME=%x",
4223 FIELD2VALUE(MAX77759_FG_HIBCFG_HIBEXITTIME, val));
4224 i += SCNPRINTF(&buff[i], len - i, " HIBSCALAR=%x",
4225 FIELD2VALUE(MAX77759_FG_HIBCFG_HIBSCALAR, val));
4226#else
4227 buff[0] = 0;
4228#endif
4229 return buff;
4230}
4231
4232/*
4233 * Config2,0xBB,0b01010000,0x50
4234 * SPR_15_11[4:0],,,,,FCThmHot,ThmHotEn
4235 */
4236#define MAX77759_FG_CONFIG2 0xBB
4237#define MAX77759_FG_CONFIG2_FCTHMHOT (0x1 << 10)
4238#define MAX77759_FG_CONFIG2_THMHOTEN (0x1 << 9)
4239#define MAX77759_FG_CONFIG2_THMHOTALRTEN (0x1 << 8)
4240#define MAX77759_FG_CONFIG2_DSOCEN (0x1 << 7)
4241#define MAX77759_FG_CONFIG2_TALRTEN (0x1 << 6)
4242#define MAX77759_FG_CONFIG2_LDMDL (0x1 << 5)
4243#define MAX77759_FG_CONFIG2_OCVQEN (0x1 << 4)
4244
4245#define MAX77759_FG_CONFIG2_SPR_15_11_SHIFT 11
4246#define MAX77759_FG_CONFIG2_SPR_15_11_MASK (0x1f << 11)
4247#define MAX77759_FG_CONFIG2_SPR_15_11_CLEAR (~(0x1f << 11))
4248#define MAX77759_FG_CONFIG2_FCTHMHOT_SHIFT 10
4249#define MAX77759_FG_CONFIG2_FCTHMHOT_MASK (0x1 << 10)
4250#define MAX77759_FG_CONFIG2_FCTHMHOT_CLEAR (~(0x1 << 10))
4251#define MAX77759_FG_CONFIG2_THMHOTEN_SHIFT 9
4252#define MAX77759_FG_CONFIG2_THMHOTEN_MASK (0x1 << 9)
4253#define MAX77759_FG_CONFIG2_THMHOTEN_CLEAR (~(0x1 << 9))
4254#define MAX77759_FG_CONFIG2_THMHOTALRTEN_SHIFT 8
4255#define MAX77759_FG_CONFIG2_THMHOTALRTEN_MASK (0x1 << 8)
4256#define MAX77759_FG_CONFIG2_THMHOTALRTEN_CLEAR (~(0x1 << 8))
4257#define MAX77759_FG_CONFIG2_DSOCEN_SHIFT 7
4258#define MAX77759_FG_CONFIG2_DSOCEN_MASK (0x1 << 7)
4259#define MAX77759_FG_CONFIG2_DSOCEN_CLEAR (~(0x1 << 7))
4260#define MAX77759_FG_CONFIG2_TALRTEN_SHIFT 6
4261#define MAX77759_FG_CONFIG2_TALRTEN_MASK (0x1 << 6)
4262#define MAX77759_FG_CONFIG2_TALRTEN_CLEAR (~(0x1 << 6))
4263#define MAX77759_FG_CONFIG2_LDMDL_SHIFT 5
4264#define MAX77759_FG_CONFIG2_LDMDL_MASK (0x1 << 5)
4265#define MAX77759_FG_CONFIG2_LDMDL_CLEAR (~(0x1 << 5))
4266#define MAX77759_FG_CONFIG2_OCVQEN_SHIFT 4
4267#define MAX77759_FG_CONFIG2_OCVQEN_MASK (0x1 << 4)
4268#define MAX77759_FG_CONFIG2_OCVQEN_CLEAR (~(0x1 << 4))
4269#define MAX77759_FG_CONFIG2_ISYSNCURR_SHIFT 0
4270#define MAX77759_FG_CONFIG2_ISYSNCURR_MASK (0xf << 0)
4271#define MAX77759_FG_CONFIG2_ISYSNCURR_CLEAR (~(0xf << 0))
4272
4273MAX77759_BFF(fg_config2_spr_15_11,15,11)
4274MAX77759_BFF(fg_config2_fcthmhot,10,10)
4275MAX77759_BFF(fg_config2_thmhoten,9,9)
4276MAX77759_BFF(fg_config2_thmhotalrten,8,8)
4277MAX77759_BFF(fg_config2_dsocen,7,7)
4278MAX77759_BFF(fg_config2_talrten,6,6)
4279MAX77759_BFF(fg_config2_ldmdl,5,5)
4280MAX77759_BFF(fg_config2_ocvqen,4,4)
4281MAX77759_BFF(fg_config2_isysncurr,3,0)
4282static inline const char *
4283max77759_fg_config2_cstr(char *buff, size_t len, int val)
4284{
4285#ifdef SCNPRINTF
4286 int i = 0;
4287
4288 i += SCNPRINTF(&buff[i], len - i, " SPR_15_11=%x",
4289 FIELD2VALUE(MAX77759_FG_CONFIG2_SPR_15_11, val));
4290 i += SCNPRINTF(&buff[i], len - i, " FCTHMHOT=%x",
4291 FIELD2VALUE(MAX77759_FG_CONFIG2_FCTHMHOT, val));
4292 i += SCNPRINTF(&buff[i], len - i, " THMHOTEN=%x",
4293 FIELD2VALUE(MAX77759_FG_CONFIG2_THMHOTEN, val));
4294 i += SCNPRINTF(&buff[i], len - i, " THMHOTALRTEN=%x",
4295 FIELD2VALUE(MAX77759_FG_CONFIG2_THMHOTALRTEN, val));
4296 i += SCNPRINTF(&buff[i], len - i, " DSOCEN=%x",
4297 FIELD2VALUE(MAX77759_FG_CONFIG2_DSOCEN, val));
4298 i += SCNPRINTF(&buff[i], len - i, " TALRTEN=%x",
4299 FIELD2VALUE(MAX77759_FG_CONFIG2_TALRTEN, val));
4300 i += SCNPRINTF(&buff[i], len - i, " LDMDL=%x",
4301 FIELD2VALUE(MAX77759_FG_CONFIG2_LDMDL, val));
4302 i += SCNPRINTF(&buff[i], len - i, " OCVQEN=%x",
4303 FIELD2VALUE(MAX77759_FG_CONFIG2_OCVQEN, val));
4304 i += SCNPRINTF(&buff[i], len - i, " ISYSNCURR=%x",
4305 FIELD2VALUE(MAX77759_FG_CONFIG2_ISYSNCURR, val));
4306#else
4307 buff[0] = 0;
4308#endif
4309 return buff;
4310}
4311
4312/*
4313 * VRipple,0xBC,0b00000000,0x00
4314 * Vripple[15:8],,,,,,
4315 */
4316#define MAX77759_FG_VRIPPLE 0xBC
4317
4318/*
4319 * RippleCfg,0xBD,0b1000000100,0x204
4320 * kDV[12:5],,,,,,
4321 */
4322#define MAX77759_FG_RIPPLECFG 0xBD
4323
4324#define MAX77759_FG_RIPPLECFG_KDV_SHIFT 3
4325#define MAX77759_FG_RIPPLECFG_KDV_MASK (0x1fff << 3)
4326#define MAX77759_FG_RIPPLECFG_KDV_CLEAR (~(0x1fff << 3))
4327#define MAX77759_FG_RIPPLECFG_NR_SHIFT 0
4328#define MAX77759_FG_RIPPLECFG_NR_MASK (0x7 << 0)
4329#define MAX77759_FG_RIPPLECFG_NR_CLEAR (~(0x7 << 0))
4330
4331MAX77759_BFF(fg_ripplecfg_kdv,15,3)
4332MAX77759_BFF(fg_ripplecfg_nr,2,0)
4333static inline const char *
4334max77759_fg_ripplecfg_cstr(char *buff, size_t len, int val)
4335{
4336#ifdef SCNPRINTF
4337 int i = 0;
4338
4339 i += SCNPRINTF(&buff[i], len - i, " KDV=%x",
4340 FIELD2VALUE(MAX77759_FG_RIPPLECFG_KDV, val));
4341 i += SCNPRINTF(&buff[i], len - i, " NR=%x",
4342 FIELD2VALUE(MAX77759_FG_RIPPLECFG_NR, val));
4343#else
4344 buff[0] = 0;
4345#endif
4346 return buff;
4347}
4348
4349/*
4350 * TimerH,0xBE,0b00000000,0x00
4351 * TIMERH[15:8],,,,,,
4352 */
4353#define MAX77759_FG_TIMERH 0xBE
4354
4355/*
4356 * IIn,0xD0,0b00000000,0x00
4357 * ,,,,,,
4358 */
4359#define MAX77759_FG_IIN 0xD0
4360
4361/*
4362 * AtQresidual,0xDC,0b00000000,0x00
4363 * AtQresidual[15:8],,,,,,
4364 */
4365#define MAX77759_FG_ATQRESIDUAL 0xDC
4366
4367/*
4368 * AtTTE,0xDD,0b00000000,0x00
4369 * AtTTE[15:8],,,,,,
4370 */
4371#define MAX77759_FG_ATTTE 0xDD
4372
4373/*
4374 * AtAvSOC,0xDE,0b00000000,0x00
4375 * AtAvSOC[15:8],,,,,,
4376 */
4377#define MAX77759_FG_ATAVSOC 0xDE
4378
4379/*
4380 * AtAvCap,0xDF,0b00000000,0x00
4381 * AtAvCap[15:8],,,,,,
4382 */
4383#define MAX77759_FG_ATAVCAP 0xDF
4384
4385/*
4386 * VFOCV,0xFB,0b00000000,0x00
4387 * VFOCV[15:8],,,,,,
4388 */
4389#define MAX77759_FG_VFOCV 0xFB
4390
4391/*
4392 * VFSOC,0xFF,0b00000000,0x00
4393 * VFSOC[15:8],,,,,,
4394 */
4395#define MAX77759_FG_VFSOC 0xFF
4396
4397/* section: USB */
4398
4399/*
4400 * VENDOR_ID_L,0x0,0b01101010,0x6a
4401 * VENDOR_ID_L[7:0],,,,,,
4402 */
4403#define MAX77759_USB_VENDOR_ID_L 0x0
4404
4405/*
4406 * VENDOR_ID_H,0x1,0b00001011,0x0b
4407 * VENDOR_ID_H[7:0],,,,,,
4408 */
4409#define MAX77759_USB_VENDOR_ID_H 0x1
4410
4411/*
4412 * PRODUCT_ID_L,0x2,0b01011001,0x59
4413 * PRODUCT_ID_L[7:0],,,,,,
4414 */
4415#define MAX77759_USB_PRODUCT_ID_L 0x2
4416
4417/*
4418 * PRODUCT_ID_H,0x3,0b01110111,0x77
4419 * PRODUCT_ID_H[7:0],,,,,,
4420 */
4421#define MAX77759_USB_PRODUCT_ID_H 0x3
4422
4423/*
4424 * DEVICE_ID_L,0x4,0b00000010,0x02
4425 * DEVICE_ID_L[7:0],,,,,,
4426 */
4427#define MAX77759_USB_DEVICE_ID_L 0x4
4428
4429/*
4430 * DEVICE_ID_H,0x5,0b00000000,0x00
4431 * DEVICE_ID_H[7:0],,,,,,
4432 */
4433#define MAX77759_USB_DEVICE_ID_H 0x5
4434
4435/*
4436 * USBTYPEC_REV_L,0x6,0b00010011,0x13
4437 * TYPEC_REV_L[7:0],,,,,,
4438 */
4439#define MAX77759_USB_USBTYPEC_REV_L 0x6
4440
4441/*
4442 * USBTYPEC_REV_H,0x7,0b00000000,0x00
4443 * TYPEC_REV_H[7:0],,,,,,
4444 */
4445#define MAX77759_USB_USBTYPEC_REV_H 0x7
4446
4447/*
4448 * USBPD_REV_VER_L,0x8,0b00010010,0x12
4449 * PD_VER[7:0],,,,,,
4450 */
4451#define MAX77759_USB_USBPD_REV_VER_L 0x8
4452
4453/*
4454 * USBPD_REV_VER_H,0x9,0b00110000,0x30
4455 * PD_REV[7:0],,,,,,
4456 */
4457#define MAX77759_USB_USBPD_REV_VER_H 0x9
4458
4459/*
4460 * PD_INTERFACE_REV_L,0xA,0b00010001,0x11
4461 * PD_IF_REV_L[7:0],,,,,,
4462 */
4463#define MAX77759_USB_PD_INTERFACE_REV_L 0xA
4464
4465/*
4466 * PD_INTERFACE_REV_H,0xB,0b00100000,0x20
4467 * PD_IF_REV_H[7:0],,,,,,
4468 */
4469#define MAX77759_USB_PD_INTERFACE_REV_H 0xB
4470
4471/*
4472 * ALERT_L,0x10,0b00000000,0x00
4473 * VBUS_ALARM_HI,TX_SOP_MSG_SUCC,TX_SOP_MSG_DISCRD,TX_SOP_MSG_FAIL,RX_HARD_RST,RX_SOP_MSG_STAT,PWR_STAT
4474 */
4475#define MAX77759_USB_ALERT_L 0x10
4476#define MAX77759_USB_ALERT_L_VBUS_ALARM_HI (0x1 << 7)
4477#define MAX77759_USB_ALERT_L_TX_SOP_MSG_SUCC (0x1 << 6)
4478#define MAX77759_USB_ALERT_L_TX_SOP_MSG_DISCRD (0x1 << 5)
4479#define MAX77759_USB_ALERT_L_TX_SOP_MSG_FAIL (0x1 << 4)
4480#define MAX77759_USB_ALERT_L_RX_HARD_RST (0x1 << 3)
4481#define MAX77759_USB_ALERT_L_RX_SOP_MSG_STAT (0x1 << 2)
4482#define MAX77759_USB_ALERT_L_PWR_STAT (0x1 << 1)
4483#define MAX77759_USB_ALERT_L_CC_STAT (0x1 << 0)
4484
4485#define MAX77759_USB_ALERT_L_VBUS_ALARM_HI_SHIFT 7
4486#define MAX77759_USB_ALERT_L_VBUS_ALARM_HI_MASK (0x1 << 7)
4487#define MAX77759_USB_ALERT_L_VBUS_ALARM_HI_CLEAR (~(0x1 << 7))
4488#define MAX77759_USB_ALERT_L_TX_SOP_MSG_SUCC_SHIFT 6
4489#define MAX77759_USB_ALERT_L_TX_SOP_MSG_SUCC_MASK (0x1 << 6)
4490#define MAX77759_USB_ALERT_L_TX_SOP_MSG_SUCC_CLEAR (~(0x1 << 6))
4491#define MAX77759_USB_ALERT_L_TX_SOP_MSG_DISCRD_SHIFT 5
4492#define MAX77759_USB_ALERT_L_TX_SOP_MSG_DISCRD_MASK (0x1 << 5)
4493#define MAX77759_USB_ALERT_L_TX_SOP_MSG_DISCRD_CLEAR (~(0x1 << 5))
4494#define MAX77759_USB_ALERT_L_TX_SOP_MSG_FAIL_SHIFT 4
4495#define MAX77759_USB_ALERT_L_TX_SOP_MSG_FAIL_MASK (0x1 << 4)
4496#define MAX77759_USB_ALERT_L_TX_SOP_MSG_FAIL_CLEAR (~(0x1 << 4))
4497#define MAX77759_USB_ALERT_L_RX_HARD_RST_SHIFT 3
4498#define MAX77759_USB_ALERT_L_RX_HARD_RST_MASK (0x1 << 3)
4499#define MAX77759_USB_ALERT_L_RX_HARD_RST_CLEAR (~(0x1 << 3))
4500#define MAX77759_USB_ALERT_L_RX_SOP_MSG_STAT_SHIFT 2
4501#define MAX77759_USB_ALERT_L_RX_SOP_MSG_STAT_MASK (0x1 << 2)
4502#define MAX77759_USB_ALERT_L_RX_SOP_MSG_STAT_CLEAR (~(0x1 << 2))
4503#define MAX77759_USB_ALERT_L_PWR_STAT_SHIFT 1
4504#define MAX77759_USB_ALERT_L_PWR_STAT_MASK (0x1 << 1)
4505#define MAX77759_USB_ALERT_L_PWR_STAT_CLEAR (~(0x1 << 1))
4506#define MAX77759_USB_ALERT_L_CC_STAT_SHIFT 0
4507#define MAX77759_USB_ALERT_L_CC_STAT_MASK (0x1 << 0)
4508#define MAX77759_USB_ALERT_L_CC_STAT_CLEAR (~(0x1 << 0))
4509
4510MAX77759_BFF(usb_alert_l_vbus_alarm_hi,7,7)
4511MAX77759_BFF(usb_alert_l_tx_sop_msg_succ,6,6)
4512MAX77759_BFF(usb_alert_l_tx_sop_msg_discrd,5,5)
4513MAX77759_BFF(usb_alert_l_tx_sop_msg_fail,4,4)
4514MAX77759_BFF(usb_alert_l_rx_hard_rst,3,3)
4515MAX77759_BFF(usb_alert_l_rx_sop_msg_stat,2,2)
4516MAX77759_BFF(usb_alert_l_pwr_stat,1,1)
4517MAX77759_BFF(usb_alert_l_cc_stat,0,0)
4518static inline const char *
4519max77759_usb_alert_l_cstr(char *buff, size_t len, int val)
4520{
4521#ifdef SCNPRINTF
4522 int i = 0;
4523
4524 i += SCNPRINTF(&buff[i], len - i, " VBUS_ALARM_HI=%x",
4525 FIELD2VALUE(MAX77759_USB_ALERT_L_VBUS_ALARM_HI, val));
4526 i += SCNPRINTF(&buff[i], len - i, " TX_SOP_MSG_SUCC=%x",
4527 FIELD2VALUE(MAX77759_USB_ALERT_L_TX_SOP_MSG_SUCC, val));
4528 i += SCNPRINTF(&buff[i], len - i, " TX_SOP_MSG_DISCRD=%x",
4529 FIELD2VALUE(MAX77759_USB_ALERT_L_TX_SOP_MSG_DISCRD, val));
4530 i += SCNPRINTF(&buff[i], len - i, " TX_SOP_MSG_FAIL=%x",
4531 FIELD2VALUE(MAX77759_USB_ALERT_L_TX_SOP_MSG_FAIL, val));
4532 i += SCNPRINTF(&buff[i], len - i, " RX_HARD_RST=%x",
4533 FIELD2VALUE(MAX77759_USB_ALERT_L_RX_HARD_RST, val));
4534 i += SCNPRINTF(&buff[i], len - i, " RX_SOP_MSG_STAT=%x",
4535 FIELD2VALUE(MAX77759_USB_ALERT_L_RX_SOP_MSG_STAT, val));
4536 i += SCNPRINTF(&buff[i], len - i, " PWR_STAT=%x",
4537 FIELD2VALUE(MAX77759_USB_ALERT_L_PWR_STAT, val));
4538 i += SCNPRINTF(&buff[i], len - i, " CC_STAT=%x",
4539 FIELD2VALUE(MAX77759_USB_ALERT_L_CC_STAT, val));
4540#else
4541 buff[0] = 0;
4542#endif
4543 return buff;
4544}
4545
4546/*
4547 * ALERT_H,0x11,0b00000000,0x00
4548 * VNDR_ALRT,ALERT_EXTND,EXTND_STAT,RSVD_4,VBUS_SNK_DISC_DET,RX_BUFF_OVRFL,FAULT_STAT
4549 */
4550#define MAX77759_USB_ALERT_H 0x11
4551#define MAX77759_USB_ALERT_H_VNDR_ALRT (0x1 << 7)
4552#define MAX77759_USB_ALERT_H_ALERT_EXTND (0x1 << 6)
4553#define MAX77759_USB_ALERT_H_EXTND_STAT (0x1 << 5)
4554#define MAX77759_USB_ALERT_H_RSVD_4 (0x1 << 4)
4555#define MAX77759_USB_ALERT_H_VBUS_SNK_DISC_DET (0x1 << 3)
4556#define MAX77759_USB_ALERT_H_RX_BUFF_OVRFL (0x1 << 2)
4557#define MAX77759_USB_ALERT_H_FAULT_STAT (0x1 << 1)
4558#define MAX77759_USB_ALERT_H_VBUS_ALARM_LO (0x1 << 0)
4559
4560#define MAX77759_USB_ALERT_H_VNDR_ALRT_SHIFT 7
4561#define MAX77759_USB_ALERT_H_VNDR_ALRT_MASK (0x1 << 7)
4562#define MAX77759_USB_ALERT_H_VNDR_ALRT_CLEAR (~(0x1 << 7))
4563#define MAX77759_USB_ALERT_H_ALERT_EXTND_SHIFT 6
4564#define MAX77759_USB_ALERT_H_ALERT_EXTND_MASK (0x1 << 6)
4565#define MAX77759_USB_ALERT_H_ALERT_EXTND_CLEAR (~(0x1 << 6))
4566#define MAX77759_USB_ALERT_H_EXTND_STAT_SHIFT 5
4567#define MAX77759_USB_ALERT_H_EXTND_STAT_MASK (0x1 << 5)
4568#define MAX77759_USB_ALERT_H_EXTND_STAT_CLEAR (~(0x1 << 5))
4569#define MAX77759_USB_ALERT_H_RSVD_4_SHIFT 4
4570#define MAX77759_USB_ALERT_H_RSVD_4_MASK (0x1 << 4)
4571#define MAX77759_USB_ALERT_H_RSVD_4_CLEAR (~(0x1 << 4))
4572#define MAX77759_USB_ALERT_H_VBUS_SNK_DISC_DET_SHIFT 3
4573#define MAX77759_USB_ALERT_H_VBUS_SNK_DISC_DET_MASK (0x1 << 3)
4574#define MAX77759_USB_ALERT_H_VBUS_SNK_DISC_DET_CLEAR (~(0x1 << 3))
4575#define MAX77759_USB_ALERT_H_RX_BUFF_OVRFL_SHIFT 2
4576#define MAX77759_USB_ALERT_H_RX_BUFF_OVRFL_MASK (0x1 << 2)
4577#define MAX77759_USB_ALERT_H_RX_BUFF_OVRFL_CLEAR (~(0x1 << 2))
4578#define MAX77759_USB_ALERT_H_FAULT_STAT_SHIFT 1
4579#define MAX77759_USB_ALERT_H_FAULT_STAT_MASK (0x1 << 1)
4580#define MAX77759_USB_ALERT_H_FAULT_STAT_CLEAR (~(0x1 << 1))
4581#define MAX77759_USB_ALERT_H_VBUS_ALARM_LO_SHIFT 0
4582#define MAX77759_USB_ALERT_H_VBUS_ALARM_LO_MASK (0x1 << 0)
4583#define MAX77759_USB_ALERT_H_VBUS_ALARM_LO_CLEAR (~(0x1 << 0))
4584
4585MAX77759_BFF(usb_alert_h_vndr_alrt,7,7)
4586MAX77759_BFF(usb_alert_h_alert_extnd,6,6)
4587MAX77759_BFF(usb_alert_h_extnd_stat,5,5)
4588MAX77759_BFF(usb_alert_h_rsvd_4,4,4)
4589MAX77759_BFF(usb_alert_h_vbus_snk_disc_det,3,3)
4590MAX77759_BFF(usb_alert_h_rx_buff_ovrfl,2,2)
4591MAX77759_BFF(usb_alert_h_fault_stat,1,1)
4592MAX77759_BFF(usb_alert_h_vbus_alarm_lo,0,0)
4593static inline const char *
4594max77759_usb_alert_h_cstr(char *buff, size_t len, int val)
4595{
4596#ifdef SCNPRINTF
4597 int i = 0;
4598
4599 i += SCNPRINTF(&buff[i], len - i, " VNDR_ALRT=%x",
4600 FIELD2VALUE(MAX77759_USB_ALERT_H_VNDR_ALRT, val));
4601 i += SCNPRINTF(&buff[i], len - i, " ALERT_EXTND=%x",
4602 FIELD2VALUE(MAX77759_USB_ALERT_H_ALERT_EXTND, val));
4603 i += SCNPRINTF(&buff[i], len - i, " EXTND_STAT=%x",
4604 FIELD2VALUE(MAX77759_USB_ALERT_H_EXTND_STAT, val));
4605 i += SCNPRINTF(&buff[i], len - i, " RSVD_4=%x",
4606 FIELD2VALUE(MAX77759_USB_ALERT_H_RSVD_4, val));
4607 i += SCNPRINTF(&buff[i], len - i, " VBUS_SNK_DISC_DET=%x",
4608 FIELD2VALUE(MAX77759_USB_ALERT_H_VBUS_SNK_DISC_DET, val));
4609 i += SCNPRINTF(&buff[i], len - i, " RX_BUFF_OVRFL=%x",
4610 FIELD2VALUE(MAX77759_USB_ALERT_H_RX_BUFF_OVRFL, val));
4611 i += SCNPRINTF(&buff[i], len - i, " FAULT_STAT=%x",
4612 FIELD2VALUE(MAX77759_USB_ALERT_H_FAULT_STAT, val));
4613 i += SCNPRINTF(&buff[i], len - i, " VBUS_ALARM_LO=%x",
4614 FIELD2VALUE(MAX77759_USB_ALERT_H_VBUS_ALARM_LO, val));
4615#else
4616 buff[0] = 0;
4617#endif
4618 return buff;
4619}
4620
4621/*
4622 * ALERT_MASK_L,0x12,0b11111111,0xff
4623 * MSK_VBUS_V_ALRM_HI,MSK_TX_SOP_MSG_SUCC,MSK_TX_SOP_MSG_DISCRD,MSK_TX_SOP_MSG_FAIL,MSK_RX_HARD_RST,MSK_RX_SOP_MSG_STAT,MSK_PWR_STAT
4624 */
4625#define MAX77759_USB_ALERT_MASK_L 0x12
4626#define MAX77759_USB_ALERT_MASK_L_MSK_VBUS_V_ALRM_HI (0x1 << 7)
4627#define MAX77759_USB_ALERT_MASK_L_MSK_TX_SOP_MSG_SUCC (0x1 << 6)
4628#define MAX77759_USB_ALERT_MASK_L_MSK_TX_SOP_MSG_DISCRD (0x1 << 5)
4629#define MAX77759_USB_ALERT_MASK_L_MSK_TX_SOP_MSG_FAIL (0x1 << 4)
4630#define MAX77759_USB_ALERT_MASK_L_MSK_RX_HARD_RST (0x1 << 3)
4631#define MAX77759_USB_ALERT_MASK_L_MSK_RX_SOP_MSG_STAT (0x1 << 2)
4632#define MAX77759_USB_ALERT_MASK_L_MSK_PWR_STAT (0x1 << 1)
4633#define MAX77759_USB_ALERT_MASK_L_MSK_CC_STAT (0x1 << 0)
4634
4635#define MAX77759_USB_ALERT_MASK_L_MSK_VBUS_V_ALRM_HI_SHIFT 7
4636#define MAX77759_USB_ALERT_MASK_L_MSK_VBUS_V_ALRM_HI_MASK (0x1 << 7)
4637#define MAX77759_USB_ALERT_MASK_L_MSK_VBUS_V_ALRM_HI_CLEAR (~(0x1 << 7))
4638#define MAX77759_USB_ALERT_MASK_L_MSK_TX_SOP_MSG_SUCC_SHIFT 6
4639#define MAX77759_USB_ALERT_MASK_L_MSK_TX_SOP_MSG_SUCC_MASK (0x1 << 6)
4640#define MAX77759_USB_ALERT_MASK_L_MSK_TX_SOP_MSG_SUCC_CLEAR (~(0x1 << 6))
4641#define MAX77759_USB_ALERT_MASK_L_MSK_TX_SOP_MSG_DISCRD_SHIFT 5
4642#define MAX77759_USB_ALERT_MASK_L_MSK_TX_SOP_MSG_DISCRD_MASK (0x1 << 5)
4643#define MAX77759_USB_ALERT_MASK_L_MSK_TX_SOP_MSG_DISCRD_CLEAR (~(0x1 << 5))
4644#define MAX77759_USB_ALERT_MASK_L_MSK_TX_SOP_MSG_FAIL_SHIFT 4
4645#define MAX77759_USB_ALERT_MASK_L_MSK_TX_SOP_MSG_FAIL_MASK (0x1 << 4)
4646#define MAX77759_USB_ALERT_MASK_L_MSK_TX_SOP_MSG_FAIL_CLEAR (~(0x1 << 4))
4647#define MAX77759_USB_ALERT_MASK_L_MSK_RX_HARD_RST_SHIFT 3
4648#define MAX77759_USB_ALERT_MASK_L_MSK_RX_HARD_RST_MASK (0x1 << 3)
4649#define MAX77759_USB_ALERT_MASK_L_MSK_RX_HARD_RST_CLEAR (~(0x1 << 3))
4650#define MAX77759_USB_ALERT_MASK_L_MSK_RX_SOP_MSG_STAT_SHIFT 2
4651#define MAX77759_USB_ALERT_MASK_L_MSK_RX_SOP_MSG_STAT_MASK (0x1 << 2)
4652#define MAX77759_USB_ALERT_MASK_L_MSK_RX_SOP_MSG_STAT_CLEAR (~(0x1 << 2))
4653#define MAX77759_USB_ALERT_MASK_L_MSK_PWR_STAT_SHIFT 1
4654#define MAX77759_USB_ALERT_MASK_L_MSK_PWR_STAT_MASK (0x1 << 1)
4655#define MAX77759_USB_ALERT_MASK_L_MSK_PWR_STAT_CLEAR (~(0x1 << 1))
4656#define MAX77759_USB_ALERT_MASK_L_MSK_CC_STAT_SHIFT 0
4657#define MAX77759_USB_ALERT_MASK_L_MSK_CC_STAT_MASK (0x1 << 0)
4658#define MAX77759_USB_ALERT_MASK_L_MSK_CC_STAT_CLEAR (~(0x1 << 0))
4659
4660MAX77759_BFF(usb_alert_mask_l_msk_vbus_v_alrm_hi,7,7)
4661MAX77759_BFF(usb_alert_mask_l_msk_tx_sop_msg_succ,6,6)
4662MAX77759_BFF(usb_alert_mask_l_msk_tx_sop_msg_discrd,5,5)
4663MAX77759_BFF(usb_alert_mask_l_msk_tx_sop_msg_fail,4,4)
4664MAX77759_BFF(usb_alert_mask_l_msk_rx_hard_rst,3,3)
4665MAX77759_BFF(usb_alert_mask_l_msk_rx_sop_msg_stat,2,2)
4666MAX77759_BFF(usb_alert_mask_l_msk_pwr_stat,1,1)
4667MAX77759_BFF(usb_alert_mask_l_msk_cc_stat,0,0)
4668static inline const char *
4669max77759_usb_alert_mask_l_cstr(char *buff, size_t len, int val)
4670{
4671#ifdef SCNPRINTF
4672 int i = 0;
4673
4674 i += SCNPRINTF(&buff[i], len - i, " MSK_VBUS_V_ALRM_HI=%x",
4675 FIELD2VALUE(MAX77759_USB_ALERT_MASK_L_MSK_VBUS_V_ALRM_HI, val));
4676 i += SCNPRINTF(&buff[i], len - i, " MSK_TX_SOP_MSG_SUCC=%x",
4677 FIELD2VALUE(MAX77759_USB_ALERT_MASK_L_MSK_TX_SOP_MSG_SUCC, val));
4678 i += SCNPRINTF(&buff[i], len - i, " MSK_TX_SOP_MSG_DISCRD=%x",
4679 FIELD2VALUE(MAX77759_USB_ALERT_MASK_L_MSK_TX_SOP_MSG_DISCRD, val));
4680 i += SCNPRINTF(&buff[i], len - i, " MSK_TX_SOP_MSG_FAIL=%x",
4681 FIELD2VALUE(MAX77759_USB_ALERT_MASK_L_MSK_TX_SOP_MSG_FAIL, val));
4682 i += SCNPRINTF(&buff[i], len - i, " MSK_RX_HARD_RST=%x",
4683 FIELD2VALUE(MAX77759_USB_ALERT_MASK_L_MSK_RX_HARD_RST, val));
4684 i += SCNPRINTF(&buff[i], len - i, " MSK_RX_SOP_MSG_STAT=%x",
4685 FIELD2VALUE(MAX77759_USB_ALERT_MASK_L_MSK_RX_SOP_MSG_STAT, val));
4686 i += SCNPRINTF(&buff[i], len - i, " MSK_PWR_STAT=%x",
4687 FIELD2VALUE(MAX77759_USB_ALERT_MASK_L_MSK_PWR_STAT, val));
4688 i += SCNPRINTF(&buff[i], len - i, " MSK_CC_STAT=%x",
4689 FIELD2VALUE(MAX77759_USB_ALERT_MASK_L_MSK_CC_STAT, val));
4690#else
4691 buff[0] = 0;
4692#endif
4693 return buff;
4694}
4695
4696/*
4697 * ALERT_MASK_H,0x13,0b01101111,0x6f
4698 * MSK_VNDR_ALRT,MSK_ALRT_EXTND,MSK_EXTND_STAT,RSVD_4,MSK_VBUS_SNK_DISC_DET,MSK_RX_BUFF_OVRFL,MSK_FAULT_STAT
4699 */
4700#define MAX77759_USB_ALERT_MASK_H 0x13
4701#define MAX77759_USB_ALERT_MASK_H_MSK_VNDR_ALRT (0x1 << 7)
4702#define MAX77759_USB_ALERT_MASK_H_MSK_ALRT_EXTND (0x1 << 6)
4703#define MAX77759_USB_ALERT_MASK_H_MSK_EXTND_STAT (0x1 << 5)
4704#define MAX77759_USB_ALERT_MASK_H_RSVD_4 (0x1 << 4)
4705#define MAX77759_USB_ALERT_MASK_H_MSK_VBUS_SNK_DISC_DET (0x1 << 3)
4706#define MAX77759_USB_ALERT_MASK_H_MSK_RX_BUFF_OVRFL (0x1 << 2)
4707#define MAX77759_USB_ALERT_MASK_H_MSK_FAULT_STAT (0x1 << 1)
4708#define MAX77759_USB_ALERT_MASK_H_MSK_VBUS_V_ALRM_LO (0x1 << 0)
4709
4710#define MAX77759_USB_ALERT_MASK_H_MSK_VNDR_ALRT_SHIFT 7
4711#define MAX77759_USB_ALERT_MASK_H_MSK_VNDR_ALRT_MASK (0x1 << 7)
4712#define MAX77759_USB_ALERT_MASK_H_MSK_VNDR_ALRT_CLEAR (~(0x1 << 7))
4713#define MAX77759_USB_ALERT_MASK_H_MSK_ALRT_EXTND_SHIFT 6
4714#define MAX77759_USB_ALERT_MASK_H_MSK_ALRT_EXTND_MASK (0x1 << 6)
4715#define MAX77759_USB_ALERT_MASK_H_MSK_ALRT_EXTND_CLEAR (~(0x1 << 6))
4716#define MAX77759_USB_ALERT_MASK_H_MSK_EXTND_STAT_SHIFT 5
4717#define MAX77759_USB_ALERT_MASK_H_MSK_EXTND_STAT_MASK (0x1 << 5)
4718#define MAX77759_USB_ALERT_MASK_H_MSK_EXTND_STAT_CLEAR (~(0x1 << 5))
4719#define MAX77759_USB_ALERT_MASK_H_RSVD_4_SHIFT 4
4720#define MAX77759_USB_ALERT_MASK_H_RSVD_4_MASK (0x1 << 4)
4721#define MAX77759_USB_ALERT_MASK_H_RSVD_4_CLEAR (~(0x1 << 4))
4722#define MAX77759_USB_ALERT_MASK_H_MSK_VBUS_SNK_DISC_DET_SHIFT 3
4723#define MAX77759_USB_ALERT_MASK_H_MSK_VBUS_SNK_DISC_DET_MASK (0x1 << 3)
4724#define MAX77759_USB_ALERT_MASK_H_MSK_VBUS_SNK_DISC_DET_CLEAR (~(0x1 << 3))
4725#define MAX77759_USB_ALERT_MASK_H_MSK_RX_BUFF_OVRFL_SHIFT 2
4726#define MAX77759_USB_ALERT_MASK_H_MSK_RX_BUFF_OVRFL_MASK (0x1 << 2)
4727#define MAX77759_USB_ALERT_MASK_H_MSK_RX_BUFF_OVRFL_CLEAR (~(0x1 << 2))
4728#define MAX77759_USB_ALERT_MASK_H_MSK_FAULT_STAT_SHIFT 1
4729#define MAX77759_USB_ALERT_MASK_H_MSK_FAULT_STAT_MASK (0x1 << 1)
4730#define MAX77759_USB_ALERT_MASK_H_MSK_FAULT_STAT_CLEAR (~(0x1 << 1))
4731#define MAX77759_USB_ALERT_MASK_H_MSK_VBUS_V_ALRM_LO_SHIFT 0
4732#define MAX77759_USB_ALERT_MASK_H_MSK_VBUS_V_ALRM_LO_MASK (0x1 << 0)
4733#define MAX77759_USB_ALERT_MASK_H_MSK_VBUS_V_ALRM_LO_CLEAR (~(0x1 << 0))
4734
4735MAX77759_BFF(usb_alert_mask_h_msk_vndr_alrt,7,7)
4736MAX77759_BFF(usb_alert_mask_h_msk_alrt_extnd,6,6)
4737MAX77759_BFF(usb_alert_mask_h_msk_extnd_stat,5,5)
4738MAX77759_BFF(usb_alert_mask_h_rsvd_4,4,4)
4739MAX77759_BFF(usb_alert_mask_h_msk_vbus_snk_disc_det,3,3)
4740MAX77759_BFF(usb_alert_mask_h_msk_rx_buff_ovrfl,2,2)
4741MAX77759_BFF(usb_alert_mask_h_msk_fault_stat,1,1)
4742MAX77759_BFF(usb_alert_mask_h_msk_vbus_v_alrm_lo,0,0)
4743static inline const char *
4744max77759_usb_alert_mask_h_cstr(char *buff, size_t len, int val)
4745{
4746#ifdef SCNPRINTF
4747 int i = 0;
4748
4749 i += SCNPRINTF(&buff[i], len - i, " MSK_VNDR_ALRT=%x",
4750 FIELD2VALUE(MAX77759_USB_ALERT_MASK_H_MSK_VNDR_ALRT, val));
4751 i += SCNPRINTF(&buff[i], len - i, " MSK_ALRT_EXTND=%x",
4752 FIELD2VALUE(MAX77759_USB_ALERT_MASK_H_MSK_ALRT_EXTND, val));
4753 i += SCNPRINTF(&buff[i], len - i, " MSK_EXTND_STAT=%x",
4754 FIELD2VALUE(MAX77759_USB_ALERT_MASK_H_MSK_EXTND_STAT, val));
4755 i += SCNPRINTF(&buff[i], len - i, " RSVD_4=%x",
4756 FIELD2VALUE(MAX77759_USB_ALERT_MASK_H_RSVD_4, val));
4757 i += SCNPRINTF(&buff[i], len - i, " MSK_VBUS_SNK_DISC_DET=%x",
4758 FIELD2VALUE(MAX77759_USB_ALERT_MASK_H_MSK_VBUS_SNK_DISC_DET, val));
4759 i += SCNPRINTF(&buff[i], len - i, " MSK_RX_BUFF_OVRFL=%x",
4760 FIELD2VALUE(MAX77759_USB_ALERT_MASK_H_MSK_RX_BUFF_OVRFL, val));
4761 i += SCNPRINTF(&buff[i], len - i, " MSK_FAULT_STAT=%x",
4762 FIELD2VALUE(MAX77759_USB_ALERT_MASK_H_MSK_FAULT_STAT, val));
4763 i += SCNPRINTF(&buff[i], len - i, " MSK_VBUS_V_ALRM_LO=%x",
4764 FIELD2VALUE(MAX77759_USB_ALERT_MASK_H_MSK_VBUS_V_ALRM_LO, val));
4765#else
4766 buff[0] = 0;
4767#endif
4768 return buff;
4769}
4770
4771/*
4772 * POWER_STATUS_MASK_REG,0x14,0b11111111,0xff
4773 * MSK_DEBG_ACC_CONN_STAT,MSK_TCPC_INIT_STAT,MSK_SRC_HI_V_STAT,MSK_SRC_VBUS_STAT,MSK_VBUS_DET_STAT,MSK_VBUS_PRSN_STAT,MSK_VCONN_PRSN_STAT
4774 */
4775#define MAX77759_USB_POWER_STATUS_MASK_REG 0x14
4776#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_DEBG_ACC_CONN_STAT (0x1 << 7)
4777#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_TCPC_INIT_STAT (0x1 << 6)
4778#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_SRC_HI_V_STAT (0x1 << 5)
4779#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_SRC_VBUS_STAT (0x1 << 4)
4780#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_VBUS_DET_STAT (0x1 << 3)
4781#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_VBUS_PRSN_STAT (0x1 << 2)
4782#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_VCONN_PRSN_STAT (0x1 << 1)
4783#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_SNK_VBUS_STAT (0x1 << 0)
4784
4785#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_DEBG_ACC_CONN_STAT_SHIFT 7
4786#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_DEBG_ACC_CONN_STAT_MASK (0x1 << 7)
4787#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_DEBG_ACC_CONN_STAT_CLEAR (~(0x1 << 7))
4788#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_TCPC_INIT_STAT_SHIFT 6
4789#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_TCPC_INIT_STAT_MASK (0x1 << 6)
4790#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_TCPC_INIT_STAT_CLEAR (~(0x1 << 6))
4791#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_SRC_HI_V_STAT_SHIFT 5
4792#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_SRC_HI_V_STAT_MASK (0x1 << 5)
4793#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_SRC_HI_V_STAT_CLEAR (~(0x1 << 5))
4794#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_SRC_VBUS_STAT_SHIFT 4
4795#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_SRC_VBUS_STAT_MASK (0x1 << 4)
4796#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_SRC_VBUS_STAT_CLEAR (~(0x1 << 4))
4797#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_VBUS_DET_STAT_SHIFT 3
4798#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_VBUS_DET_STAT_MASK (0x1 << 3)
4799#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_VBUS_DET_STAT_CLEAR (~(0x1 << 3))
4800#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_VBUS_PRSN_STAT_SHIFT 2
4801#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_VBUS_PRSN_STAT_MASK (0x1 << 2)
4802#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_VBUS_PRSN_STAT_CLEAR (~(0x1 << 2))
4803#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_VCONN_PRSN_STAT_SHIFT 1
4804#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_VCONN_PRSN_STAT_MASK (0x1 << 1)
4805#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_VCONN_PRSN_STAT_CLEAR (~(0x1 << 1))
4806#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_SNK_VBUS_STAT_SHIFT 0
4807#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_SNK_VBUS_STAT_MASK (0x1 << 0)
4808#define MAX77759_USB_POWER_STATUS_MASK_REG_MSK_SNK_VBUS_STAT_CLEAR (~(0x1 << 0))
4809
4810MAX77759_BFF(usb_power_status_mask_reg_msk_debg_acc_conn_stat,7,7)
4811MAX77759_BFF(usb_power_status_mask_reg_msk_tcpc_init_stat,6,6)
4812MAX77759_BFF(usb_power_status_mask_reg_msk_src_hi_v_stat,5,5)
4813MAX77759_BFF(usb_power_status_mask_reg_msk_src_vbus_stat,4,4)
4814MAX77759_BFF(usb_power_status_mask_reg_msk_vbus_det_stat,3,3)
4815MAX77759_BFF(usb_power_status_mask_reg_msk_vbus_prsn_stat,2,2)
4816MAX77759_BFF(usb_power_status_mask_reg_msk_vconn_prsn_stat,1,1)
4817MAX77759_BFF(usb_power_status_mask_reg_msk_snk_vbus_stat,0,0)
4818static inline const char *
4819max77759_usb_power_status_mask_reg_cstr(char *buff, size_t len, int val)
4820{
4821#ifdef SCNPRINTF
4822 int i = 0;
4823
4824 i += SCNPRINTF(&buff[i], len - i, " MSK_DEBG_ACC_CONN_STAT=%x",
4825 FIELD2VALUE(MAX77759_USB_POWER_STATUS_MASK_REG_MSK_DEBG_ACC_CONN_STAT, val));
4826 i += SCNPRINTF(&buff[i], len - i, " MSK_TCPC_INIT_STAT=%x",
4827 FIELD2VALUE(MAX77759_USB_POWER_STATUS_MASK_REG_MSK_TCPC_INIT_STAT, val));
4828 i += SCNPRINTF(&buff[i], len - i, " MSK_SRC_HI_V_STAT=%x",
4829 FIELD2VALUE(MAX77759_USB_POWER_STATUS_MASK_REG_MSK_SRC_HI_V_STAT, val));
4830 i += SCNPRINTF(&buff[i], len - i, " MSK_SRC_VBUS_STAT=%x",
4831 FIELD2VALUE(MAX77759_USB_POWER_STATUS_MASK_REG_MSK_SRC_VBUS_STAT, val));
4832 i += SCNPRINTF(&buff[i], len - i, " MSK_VBUS_DET_STAT=%x",
4833 FIELD2VALUE(MAX77759_USB_POWER_STATUS_MASK_REG_MSK_VBUS_DET_STAT, val));
4834 i += SCNPRINTF(&buff[i], len - i, " MSK_VBUS_PRSN_STAT=%x",
4835 FIELD2VALUE(MAX77759_USB_POWER_STATUS_MASK_REG_MSK_VBUS_PRSN_STAT, val));
4836 i += SCNPRINTF(&buff[i], len - i, " MSK_VCONN_PRSN_STAT=%x",
4837 FIELD2VALUE(MAX77759_USB_POWER_STATUS_MASK_REG_MSK_VCONN_PRSN_STAT, val));
4838 i += SCNPRINTF(&buff[i], len - i, " MSK_SNK_VBUS_STAT=%x",
4839 FIELD2VALUE(MAX77759_USB_POWER_STATUS_MASK_REG_MSK_SNK_VBUS_STAT, val));
4840#else
4841 buff[0] = 0;
4842#endif
4843 return buff;
4844}
4845
4846/*
4847 * FAULT_STATUS_MASK_REG,0x15,0b11111111,0xff
4848 * MSK_All_REG_RST,MSK_FORC_VBUS,MSK_AUTO_DISCH_FAIL,MSK_FORC_DISCH_FAIL,MSK_VBUS_OCP,MSK_VBUS_OVP,MSK_VCONN_OCP
4849 */
4850#define MAX77759_USB_FAULT_STATUS_MASK_REG 0x15
4851#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_ALL_REG_RST (0x1 << 7)
4852#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_FORC_VBUS (0x1 << 6)
4853#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_AUTO_DISCH_FAIL (0x1 << 5)
4854#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_FORC_DISCH_FAIL (0x1 << 4)
4855#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_VBUS_OCP (0x1 << 3)
4856#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_VBUS_OVP (0x1 << 2)
4857#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_VCONN_OCP (0x1 << 1)
4858#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_I2C_ERR (0x1 << 0)
4859
4860#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_ALL_REG_RST_SHIFT 7
4861#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_ALL_REG_RST_MASK (0x1 << 7)
4862#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_ALL_REG_RST_CLEAR (~(0x1 << 7))
4863#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_FORC_VBUS_SHIFT 6
4864#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_FORC_VBUS_MASK (0x1 << 6)
4865#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_FORC_VBUS_CLEAR (~(0x1 << 6))
4866#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_AUTO_DISCH_FAIL_SHIFT 5
4867#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_AUTO_DISCH_FAIL_MASK (0x1 << 5)
4868#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_AUTO_DISCH_FAIL_CLEAR (~(0x1 << 5))
4869#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_FORC_DISCH_FAIL_SHIFT 4
4870#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_FORC_DISCH_FAIL_MASK (0x1 << 4)
4871#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_FORC_DISCH_FAIL_CLEAR (~(0x1 << 4))
4872#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_VBUS_OCP_SHIFT 3
4873#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_VBUS_OCP_MASK (0x1 << 3)
4874#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_VBUS_OCP_CLEAR (~(0x1 << 3))
4875#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_VBUS_OVP_SHIFT 2
4876#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_VBUS_OVP_MASK (0x1 << 2)
4877#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_VBUS_OVP_CLEAR (~(0x1 << 2))
4878#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_VCONN_OCP_SHIFT 1
4879#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_VCONN_OCP_MASK (0x1 << 1)
4880#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_VCONN_OCP_CLEAR (~(0x1 << 1))
4881#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_I2C_ERR_SHIFT 0
4882#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_I2C_ERR_MASK (0x1 << 0)
4883#define MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_I2C_ERR_CLEAR (~(0x1 << 0))
4884
4885MAX77759_BFF(usb_fault_status_mask_reg_msk_all_reg_rst,7,7)
4886MAX77759_BFF(usb_fault_status_mask_reg_msk_forc_vbus,6,6)
4887MAX77759_BFF(usb_fault_status_mask_reg_msk_auto_disch_fail,5,5)
4888MAX77759_BFF(usb_fault_status_mask_reg_msk_forc_disch_fail,4,4)
4889MAX77759_BFF(usb_fault_status_mask_reg_msk_vbus_ocp,3,3)
4890MAX77759_BFF(usb_fault_status_mask_reg_msk_vbus_ovp,2,2)
4891MAX77759_BFF(usb_fault_status_mask_reg_msk_vconn_ocp,1,1)
4892MAX77759_BFF(usb_fault_status_mask_reg_msk_i2c_err,0,0)
4893static inline const char *
4894max77759_usb_fault_status_mask_reg_cstr(char *buff, size_t len, int val)
4895{
4896#ifdef SCNPRINTF
4897 int i = 0;
4898
4899 i += SCNPRINTF(&buff[i], len - i, " MSK_ALL_REG_RST=%x",
4900 FIELD2VALUE(MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_ALL_REG_RST, val));
4901 i += SCNPRINTF(&buff[i], len - i, " MSK_FORC_VBUS=%x",
4902 FIELD2VALUE(MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_FORC_VBUS, val));
4903 i += SCNPRINTF(&buff[i], len - i, " MSK_AUTO_DISCH_FAIL=%x",
4904 FIELD2VALUE(MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_AUTO_DISCH_FAIL, val));
4905 i += SCNPRINTF(&buff[i], len - i, " MSK_FORC_DISCH_FAIL=%x",
4906 FIELD2VALUE(MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_FORC_DISCH_FAIL, val));
4907 i += SCNPRINTF(&buff[i], len - i, " MSK_VBUS_OCP=%x",
4908 FIELD2VALUE(MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_VBUS_OCP, val));
4909 i += SCNPRINTF(&buff[i], len - i, " MSK_VBUS_OVP=%x",
4910 FIELD2VALUE(MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_VBUS_OVP, val));
4911 i += SCNPRINTF(&buff[i], len - i, " MSK_VCONN_OCP=%x",
4912 FIELD2VALUE(MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_VCONN_OCP, val));
4913 i += SCNPRINTF(&buff[i], len - i, " MSK_I2C_ERR=%x",
4914 FIELD2VALUE(MAX77759_USB_FAULT_STATUS_MASK_REG_MSK_I2C_ERR, val));
4915#else
4916 buff[0] = 0;
4917#endif
4918 return buff;
4919}
4920
4921/*
4922 * EXTENDED_STATUS_MASK_REG,0x16,0b00000001,0x01
4923 * RSVD_7_1[6:0],,,,,,
4924 */
4925#define MAX77759_USB_EXTENDED_STATUS_MASK_REG 0x16
4926#define MAX77759_USB_EXTENDED_STATUS_MASK_REG_MSK_VSAFE0V (0x1 << 0)
4927
4928#define MAX77759_USB_EXTENDED_STATUS_MASK_REG_RSVD_7_1_SHIFT 1
4929#define MAX77759_USB_EXTENDED_STATUS_MASK_REG_RSVD_7_1_MASK (0x7f << 1)
4930#define MAX77759_USB_EXTENDED_STATUS_MASK_REG_RSVD_7_1_CLEAR (~(0x7f << 1))
4931#define MAX77759_USB_EXTENDED_STATUS_MASK_REG_MSK_VSAFE0V_SHIFT 0
4932#define MAX77759_USB_EXTENDED_STATUS_MASK_REG_MSK_VSAFE0V_MASK (0x1 << 0)
4933#define MAX77759_USB_EXTENDED_STATUS_MASK_REG_MSK_VSAFE0V_CLEAR (~(0x1 << 0))
4934
4935MAX77759_BFF(usb_extended_status_mask_reg_rsvd_7_1,7,1)
4936MAX77759_BFF(usb_extended_status_mask_reg_msk_vsafe0v,0,0)
4937static inline const char *
4938max77759_usb_extended_status_mask_reg_cstr(char *buff, size_t len, int val)
4939{
4940#ifdef SCNPRINTF
4941 int i = 0;
4942
4943 i += SCNPRINTF(&buff[i], len - i, " RSVD_7_1=%x",
4944 FIELD2VALUE(MAX77759_USB_EXTENDED_STATUS_MASK_REG_RSVD_7_1, val));
4945 i += SCNPRINTF(&buff[i], len - i, " MSK_VSAFE0V=%x",
4946 FIELD2VALUE(MAX77759_USB_EXTENDED_STATUS_MASK_REG_MSK_VSAFE0V, val));
4947#else
4948 buff[0] = 0;
4949#endif
4950 return buff;
4951}
4952
4953/*
4954 * ALERT_EXTENDED_MASK,0x17,0b00000001,0x01
4955 * RSVD_7_1[6:0],,,,,,
4956 */
4957#define MAX77759_USB_ALERT_EXTENDED_MASK 0x17
4958#define MAX77759_USB_ALERT_EXTENDED_MASK_MSK_SNK_FRS (0x1 << 0)
4959
4960#define MAX77759_USB_ALERT_EXTENDED_MASK_RSVD_7_1_SHIFT 1
4961#define MAX77759_USB_ALERT_EXTENDED_MASK_RSVD_7_1_MASK (0x7f << 1)
4962#define MAX77759_USB_ALERT_EXTENDED_MASK_RSVD_7_1_CLEAR (~(0x7f << 1))
4963#define MAX77759_USB_ALERT_EXTENDED_MASK_MSK_SNK_FRS_SHIFT 0
4964#define MAX77759_USB_ALERT_EXTENDED_MASK_MSK_SNK_FRS_MASK (0x1 << 0)
4965#define MAX77759_USB_ALERT_EXTENDED_MASK_MSK_SNK_FRS_CLEAR (~(0x1 << 0))
4966
4967MAX77759_BFF(usb_alert_extended_mask_rsvd_7_1,7,1)
4968MAX77759_BFF(usb_alert_extended_mask_msk_snk_frs,0,0)
4969static inline const char *
4970max77759_usb_alert_extended_mask_cstr(char *buff, size_t len, int val)
4971{
4972#ifdef SCNPRINTF
4973 int i = 0;
4974
4975 i += SCNPRINTF(&buff[i], len - i, " RSVD_7_1=%x",
4976 FIELD2VALUE(MAX77759_USB_ALERT_EXTENDED_MASK_RSVD_7_1, val));
4977 i += SCNPRINTF(&buff[i], len - i, " MSK_SNK_FRS=%x",
4978 FIELD2VALUE(MAX77759_USB_ALERT_EXTENDED_MASK_MSK_SNK_FRS, val));
4979#else
4980 buff[0] = 0;
4981#endif
4982 return buff;
4983}
4984
4985/*
4986 * CONFIG_STANDARD_OUTPUT,0x18,0b01000000,0x40
4987 * RSVD_7,DbgAccConn,RSVD_5,RSVD_4_3[1:0],,RSVD_2,RSVD_1
4988 */
4989#define MAX77759_USB_CONFIG_STANDARD_OUTPUT 0x18
4990#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_7 (0x1 << 7)
4991#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_DBGACCCONN (0x1 << 6)
4992#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_5 (0x1 << 5)
4993#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_2 (0x1 << 2)
4994#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_1 (0x1 << 1)
4995#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_0 (0x1 << 0)
4996
4997#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_7_SHIFT 7
4998#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_7_MASK (0x1 << 7)
4999#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_7_CLEAR (~(0x1 << 7))
5000#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_DBGACCCONN_SHIFT 6
5001#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_DBGACCCONN_MASK (0x1 << 6)
5002#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_DBGACCCONN_CLEAR (~(0x1 << 6))
5003#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_5_SHIFT 5
5004#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_5_MASK (0x1 << 5)
5005#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_5_CLEAR (~(0x1 << 5))
5006#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_4_3_SHIFT 3
5007#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_4_3_MASK (0x3 << 3)
5008#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_4_3_CLEAR (~(0x3 << 3))
5009#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_2_SHIFT 2
5010#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_2_MASK (0x1 << 2)
5011#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_2_CLEAR (~(0x1 << 2))
5012#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_1_SHIFT 1
5013#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_1_MASK (0x1 << 1)
5014#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_1_CLEAR (~(0x1 << 1))
5015#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_0_SHIFT 0
5016#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_0_MASK (0x1 << 0)
5017#define MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_0_CLEAR (~(0x1 << 0))
5018
5019MAX77759_BFF(usb_config_standard_output_rsvd_7,7,7)
5020MAX77759_BFF(usb_config_standard_output_dbgaccconn,6,6)
5021MAX77759_BFF(usb_config_standard_output_rsvd_5,5,5)
5022MAX77759_BFF(usb_config_standard_output_rsvd_4_3,4,3)
5023MAX77759_BFF(usb_config_standard_output_rsvd_2,2,2)
5024MAX77759_BFF(usb_config_standard_output_rsvd_1,1,1)
5025MAX77759_BFF(usb_config_standard_output_rsvd_0,0,0)
5026static inline const char *
5027max77759_usb_config_standard_output_cstr(char *buff, size_t len, int val)
5028{
5029#ifdef SCNPRINTF
5030 int i = 0;
5031
5032 i += SCNPRINTF(&buff[i], len - i, " RSVD_7=%x",
5033 FIELD2VALUE(MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_7, val));
5034 i += SCNPRINTF(&buff[i], len - i, " DBGACCCONN=%x",
5035 FIELD2VALUE(MAX77759_USB_CONFIG_STANDARD_OUTPUT_DBGACCCONN, val));
5036 i += SCNPRINTF(&buff[i], len - i, " RSVD_5=%x",
5037 FIELD2VALUE(MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_5, val));
5038 i += SCNPRINTF(&buff[i], len - i, " RSVD_4_3=%x",
5039 FIELD2VALUE(MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_4_3, val));
5040 i += SCNPRINTF(&buff[i], len - i, " RSVD_2=%x",
5041 FIELD2VALUE(MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_2, val));
5042 i += SCNPRINTF(&buff[i], len - i, " RSVD_1=%x",
5043 FIELD2VALUE(MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_1, val));
5044 i += SCNPRINTF(&buff[i], len - i, " RSVD_0=%x",
5045 FIELD2VALUE(MAX77759_USB_CONFIG_STANDARD_OUTPUT_RSVD_0, val));
5046#else
5047 buff[0] = 0;
5048#endif
5049 return buff;
5050}
5051
5052/*
5053 * TCPC_CONTROL_REG,0x19,0b00000000,0x00
5054 * RSVD_7,EN_LK4CONN_ALRT,EN_WD_TMR,DBG_ACC_CNTRL,RSVD_3_2[1:0],,BIST_TM
5055 */
5056#define MAX77759_USB_TCPC_CONTROL_REG 0x19
5057#define MAX77759_USB_TCPC_CONTROL_REG_RSVD_7 (0x1 << 7)
5058#define MAX77759_USB_TCPC_CONTROL_REG_EN_LK4CONN_ALRT (0x1 << 6)
5059#define MAX77759_USB_TCPC_CONTROL_REG_EN_WD_TMR (0x1 << 5)
5060#define MAX77759_USB_TCPC_CONTROL_REG_DBG_ACC_CNTRL (0x1 << 4)
5061#define MAX77759_USB_TCPC_CONTROL_REG_BIST_TM (0x1 << 1)
5062#define MAX77759_USB_TCPC_CONTROL_REG_PLUG_ORNT (0x1 << 0)
5063
5064#define MAX77759_USB_TCPC_CONTROL_REG_RSVD_7_SHIFT 7
5065#define MAX77759_USB_TCPC_CONTROL_REG_RSVD_7_MASK (0x1 << 7)
5066#define MAX77759_USB_TCPC_CONTROL_REG_RSVD_7_CLEAR (~(0x1 << 7))
5067#define MAX77759_USB_TCPC_CONTROL_REG_EN_LK4CONN_ALRT_SHIFT 6
5068#define MAX77759_USB_TCPC_CONTROL_REG_EN_LK4CONN_ALRT_MASK (0x1 << 6)
5069#define MAX77759_USB_TCPC_CONTROL_REG_EN_LK4CONN_ALRT_CLEAR (~(0x1 << 6))
5070#define MAX77759_USB_TCPC_CONTROL_REG_EN_WD_TMR_SHIFT 5
5071#define MAX77759_USB_TCPC_CONTROL_REG_EN_WD_TMR_MASK (0x1 << 5)
5072#define MAX77759_USB_TCPC_CONTROL_REG_EN_WD_TMR_CLEAR (~(0x1 << 5))
5073#define MAX77759_USB_TCPC_CONTROL_REG_DBG_ACC_CNTRL_SHIFT 4
5074#define MAX77759_USB_TCPC_CONTROL_REG_DBG_ACC_CNTRL_MASK (0x1 << 4)
5075#define MAX77759_USB_TCPC_CONTROL_REG_DBG_ACC_CNTRL_CLEAR (~(0x1 << 4))
5076#define MAX77759_USB_TCPC_CONTROL_REG_RSVD_3_2_SHIFT 2
5077#define MAX77759_USB_TCPC_CONTROL_REG_RSVD_3_2_MASK (0x3 << 2)
5078#define MAX77759_USB_TCPC_CONTROL_REG_RSVD_3_2_CLEAR (~(0x3 << 2))
5079#define MAX77759_USB_TCPC_CONTROL_REG_BIST_TM_SHIFT 1
5080#define MAX77759_USB_TCPC_CONTROL_REG_BIST_TM_MASK (0x1 << 1)
5081#define MAX77759_USB_TCPC_CONTROL_REG_BIST_TM_CLEAR (~(0x1 << 1))
5082#define MAX77759_USB_TCPC_CONTROL_REG_PLUG_ORNT_SHIFT 0
5083#define MAX77759_USB_TCPC_CONTROL_REG_PLUG_ORNT_MASK (0x1 << 0)
5084#define MAX77759_USB_TCPC_CONTROL_REG_PLUG_ORNT_CLEAR (~(0x1 << 0))
5085
5086MAX77759_BFF(usb_tcpc_control_reg_rsvd_7,7,7)
5087MAX77759_BFF(usb_tcpc_control_reg_en_lk4conn_alrt,6,6)
5088MAX77759_BFF(usb_tcpc_control_reg_en_wd_tmr,5,5)
5089MAX77759_BFF(usb_tcpc_control_reg_dbg_acc_cntrl,4,4)
5090MAX77759_BFF(usb_tcpc_control_reg_rsvd_3_2,3,2)
5091MAX77759_BFF(usb_tcpc_control_reg_bist_tm,1,1)
5092MAX77759_BFF(usb_tcpc_control_reg_plug_ornt,0,0)
5093static inline const char *
5094max77759_usb_tcpc_control_reg_cstr(char *buff, size_t len, int val)
5095{
5096#ifdef SCNPRINTF
5097 int i = 0;
5098
5099 i += SCNPRINTF(&buff[i], len - i, " RSVD_7=%x",
5100 FIELD2VALUE(MAX77759_USB_TCPC_CONTROL_REG_RSVD_7, val));
5101 i += SCNPRINTF(&buff[i], len - i, " EN_LK4CONN_ALRT=%x",
5102 FIELD2VALUE(MAX77759_USB_TCPC_CONTROL_REG_EN_LK4CONN_ALRT, val));
5103 i += SCNPRINTF(&buff[i], len - i, " EN_WD_TMR=%x",
5104 FIELD2VALUE(MAX77759_USB_TCPC_CONTROL_REG_EN_WD_TMR, val));
5105 i += SCNPRINTF(&buff[i], len - i, " DBG_ACC_CNTRL=%x",
5106 FIELD2VALUE(MAX77759_USB_TCPC_CONTROL_REG_DBG_ACC_CNTRL, val));
5107 i += SCNPRINTF(&buff[i], len - i, " RSVD_3_2=%x",
5108 FIELD2VALUE(MAX77759_USB_TCPC_CONTROL_REG_RSVD_3_2, val));
5109 i += SCNPRINTF(&buff[i], len - i, " BIST_TM=%x",
5110 FIELD2VALUE(MAX77759_USB_TCPC_CONTROL_REG_BIST_TM, val));
5111 i += SCNPRINTF(&buff[i], len - i, " PLUG_ORNT=%x",
5112 FIELD2VALUE(MAX77759_USB_TCPC_CONTROL_REG_PLUG_ORNT, val));
5113#else
5114 buff[0] = 0;
5115#endif
5116 return buff;
5117}
5118
5119/*
5120 * ROLE_CONTROL_REG,0x1A,0b00001010,0x0a
5121 * RSVD_7,DRP,RP_VAL[1:0],,CC2[1:0],,CC1[1:0]
5122 */
5123#define MAX77759_USB_ROLE_CONTROL_REG 0x1A
5124#define MAX77759_USB_ROLE_CONTROL_REG_RSVD_7 (0x1 << 7)
5125#define MAX77759_USB_ROLE_CONTROL_REG_DRP (0x1 << 6)
5126
5127#define MAX77759_USB_ROLE_CONTROL_REG_RSVD_7_SHIFT 7
5128#define MAX77759_USB_ROLE_CONTROL_REG_RSVD_7_MASK (0x1 << 7)
5129#define MAX77759_USB_ROLE_CONTROL_REG_RSVD_7_CLEAR (~(0x1 << 7))
5130#define MAX77759_USB_ROLE_CONTROL_REG_DRP_SHIFT 6
5131#define MAX77759_USB_ROLE_CONTROL_REG_DRP_MASK (0x1 << 6)
5132#define MAX77759_USB_ROLE_CONTROL_REG_DRP_CLEAR (~(0x1 << 6))
5133#define MAX77759_USB_ROLE_CONTROL_REG_RP_VAL_SHIFT 4
5134#define MAX77759_USB_ROLE_CONTROL_REG_RP_VAL_MASK (0x3 << 4)
5135#define MAX77759_USB_ROLE_CONTROL_REG_RP_VAL_CLEAR (~(0x3 << 4))
5136#define MAX77759_USB_ROLE_CONTROL_REG_CC2_SHIFT 2
5137#define MAX77759_USB_ROLE_CONTROL_REG_CC2_MASK (0x3 << 2)
5138#define MAX77759_USB_ROLE_CONTROL_REG_CC2_CLEAR (~(0x3 << 2))
5139#define MAX77759_USB_ROLE_CONTROL_REG_CC1_SHIFT 0
5140#define MAX77759_USB_ROLE_CONTROL_REG_CC1_MASK (0x3 << 0)
5141#define MAX77759_USB_ROLE_CONTROL_REG_CC1_CLEAR (~(0x3 << 0))
5142
5143MAX77759_BFF(usb_role_control_reg_rsvd_7,7,7)
5144MAX77759_BFF(usb_role_control_reg_drp,6,6)
5145MAX77759_BFF(usb_role_control_reg_rp_val,5,4)
5146MAX77759_BFF(usb_role_control_reg_cc2,3,2)
5147MAX77759_BFF(usb_role_control_reg_cc1,1,0)
5148static inline const char *
5149max77759_usb_role_control_reg_cstr(char *buff, size_t len, int val)
5150{
5151#ifdef SCNPRINTF
5152 int i = 0;
5153
5154 i += SCNPRINTF(&buff[i], len - i, " RSVD_7=%x",
5155 FIELD2VALUE(MAX77759_USB_ROLE_CONTROL_REG_RSVD_7, val));
5156 i += SCNPRINTF(&buff[i], len - i, " DRP=%x",
5157 FIELD2VALUE(MAX77759_USB_ROLE_CONTROL_REG_DRP, val));
5158 i += SCNPRINTF(&buff[i], len - i, " RP_VAL=%x",
5159 FIELD2VALUE(MAX77759_USB_ROLE_CONTROL_REG_RP_VAL, val));
5160 i += SCNPRINTF(&buff[i], len - i, " CC2=%x",
5161 FIELD2VALUE(MAX77759_USB_ROLE_CONTROL_REG_CC2, val));
5162 i += SCNPRINTF(&buff[i], len - i, " CC1=%x",
5163 FIELD2VALUE(MAX77759_USB_ROLE_CONTROL_REG_CC1, val));
5164#else
5165 buff[0] = 0;
5166#endif
5167 return buff;
5168}
5169
5170/*
5171 * FAULT_CONTROL_REG,0x1B,0b00000000,0x00
5172 * RSVD_7_5[2:0],,,RSVD_4,VBUS_DISCH_FAIL_DIS,RSVD_2,RSVD_1
5173 */
5174#define MAX77759_USB_FAULT_CONTROL_REG 0x1B
5175#define MAX77759_USB_FAULT_CONTROL_REG_RSVD_4 (0x1 << 4)
5176#define MAX77759_USB_FAULT_CONTROL_REG_VBUS_DISCH_FAIL_DIS (0x1 << 3)
5177#define MAX77759_USB_FAULT_CONTROL_REG_RSVD_2 (0x1 << 2)
5178#define MAX77759_USB_FAULT_CONTROL_REG_RSVD_1 (0x1 << 1)
5179#define MAX77759_USB_FAULT_CONTROL_REG_VCONN_OCP_FAULT_DIS (0x1 << 0)
5180
5181#define MAX77759_USB_FAULT_CONTROL_REG_RSVD_7_5_SHIFT 5
5182#define MAX77759_USB_FAULT_CONTROL_REG_RSVD_7_5_MASK (0x7 << 5)
5183#define MAX77759_USB_FAULT_CONTROL_REG_RSVD_7_5_CLEAR (~(0x7 << 5))
5184#define MAX77759_USB_FAULT_CONTROL_REG_RSVD_4_SHIFT 4
5185#define MAX77759_USB_FAULT_CONTROL_REG_RSVD_4_MASK (0x1 << 4)
5186#define MAX77759_USB_FAULT_CONTROL_REG_RSVD_4_CLEAR (~(0x1 << 4))
5187#define MAX77759_USB_FAULT_CONTROL_REG_VBUS_DISCH_FAIL_DIS_SHIFT 3
5188#define MAX77759_USB_FAULT_CONTROL_REG_VBUS_DISCH_FAIL_DIS_MASK (0x1 << 3)
5189#define MAX77759_USB_FAULT_CONTROL_REG_VBUS_DISCH_FAIL_DIS_CLEAR (~(0x1 << 3))
5190#define MAX77759_USB_FAULT_CONTROL_REG_RSVD_2_SHIFT 2
5191#define MAX77759_USB_FAULT_CONTROL_REG_RSVD_2_MASK (0x1 << 2)
5192#define MAX77759_USB_FAULT_CONTROL_REG_RSVD_2_CLEAR (~(0x1 << 2))
5193#define MAX77759_USB_FAULT_CONTROL_REG_RSVD_1_SHIFT 1
5194#define MAX77759_USB_FAULT_CONTROL_REG_RSVD_1_MASK (0x1 << 1)
5195#define MAX77759_USB_FAULT_CONTROL_REG_RSVD_1_CLEAR (~(0x1 << 1))
5196#define MAX77759_USB_FAULT_CONTROL_REG_VCONN_OCP_FAULT_DIS_SHIFT 0
5197#define MAX77759_USB_FAULT_CONTROL_REG_VCONN_OCP_FAULT_DIS_MASK (0x1 << 0)
5198#define MAX77759_USB_FAULT_CONTROL_REG_VCONN_OCP_FAULT_DIS_CLEAR (~(0x1 << 0))
5199
5200MAX77759_BFF(usb_fault_control_reg_rsvd_7_5,7,5)
5201MAX77759_BFF(usb_fault_control_reg_rsvd_4,4,4)
5202MAX77759_BFF(usb_fault_control_reg_vbus_disch_fail_dis,3,3)
5203MAX77759_BFF(usb_fault_control_reg_rsvd_2,2,2)
5204MAX77759_BFF(usb_fault_control_reg_rsvd_1,1,1)
5205MAX77759_BFF(usb_fault_control_reg_vconn_ocp_fault_dis,0,0)
5206static inline const char *
5207max77759_usb_fault_control_reg_cstr(char *buff, size_t len, int val)
5208{
5209#ifdef SCNPRINTF
5210 int i = 0;
5211
5212 i += SCNPRINTF(&buff[i], len - i, " RSVD_7_5=%x",
5213 FIELD2VALUE(MAX77759_USB_FAULT_CONTROL_REG_RSVD_7_5, val));
5214 i += SCNPRINTF(&buff[i], len - i, " RSVD_4=%x",
5215 FIELD2VALUE(MAX77759_USB_FAULT_CONTROL_REG_RSVD_4, val));
5216 i += SCNPRINTF(&buff[i], len - i, " VBUS_DISCH_FAIL_DIS=%x",
5217 FIELD2VALUE(MAX77759_USB_FAULT_CONTROL_REG_VBUS_DISCH_FAIL_DIS, val));
5218 i += SCNPRINTF(&buff[i], len - i, " RSVD_2=%x",
5219 FIELD2VALUE(MAX77759_USB_FAULT_CONTROL_REG_RSVD_2, val));
5220 i += SCNPRINTF(&buff[i], len - i, " RSVD_1=%x",
5221 FIELD2VALUE(MAX77759_USB_FAULT_CONTROL_REG_RSVD_1, val));
5222 i += SCNPRINTF(&buff[i], len - i, " VCONN_OCP_FAULT_DIS=%x",
5223 FIELD2VALUE(MAX77759_USB_FAULT_CONTROL_REG_VCONN_OCP_FAULT_DIS, val));
5224#else
5225 buff[0] = 0;
5226#endif
5227 return buff;
5228}
5229
5230/*
5231 * POWER_CONTROL_REG,0x1C,0b01100000,0x60
5232 * FAST_RSWP_EN,VBUS_VOLT_MON,DIS_VOLT_ALRM,AUTO_DISCH_DISC,EN_BLEED_DISCH,FORC_DISCH,RSVD_1
5233 */
5234#define MAX77759_USB_POWER_CONTROL_REG 0x1C
5235#define MAX77759_USB_POWER_CONTROL_REG_FAST_RSWP_EN (0x1 << 7)
5236#define MAX77759_USB_POWER_CONTROL_REG_VBUS_VOLT_MON (0x1 << 6)
5237#define MAX77759_USB_POWER_CONTROL_REG_DIS_VOLT_ALRM (0x1 << 5)
5238#define MAX77759_USB_POWER_CONTROL_REG_AUTO_DISCH_DISC (0x1 << 4)
5239#define MAX77759_USB_POWER_CONTROL_REG_EN_BLEED_DISCH (0x1 << 3)
5240#define MAX77759_USB_POWER_CONTROL_REG_FORC_DISCH (0x1 << 2)
5241#define MAX77759_USB_POWER_CONTROL_REG_RSVD_1 (0x1 << 1)
5242#define MAX77759_USB_POWER_CONTROL_REG_EN_VCONN (0x1 << 0)
5243
5244#define MAX77759_USB_POWER_CONTROL_REG_FAST_RSWP_EN_SHIFT 7
5245#define MAX77759_USB_POWER_CONTROL_REG_FAST_RSWP_EN_MASK (0x1 << 7)
5246#define MAX77759_USB_POWER_CONTROL_REG_FAST_RSWP_EN_CLEAR (~(0x1 << 7))
5247#define MAX77759_USB_POWER_CONTROL_REG_VBUS_VOLT_MON_SHIFT 6
5248#define MAX77759_USB_POWER_CONTROL_REG_VBUS_VOLT_MON_MASK (0x1 << 6)
5249#define MAX77759_USB_POWER_CONTROL_REG_VBUS_VOLT_MON_CLEAR (~(0x1 << 6))
5250#define MAX77759_USB_POWER_CONTROL_REG_DIS_VOLT_ALRM_SHIFT 5
5251#define MAX77759_USB_POWER_CONTROL_REG_DIS_VOLT_ALRM_MASK (0x1 << 5)
5252#define MAX77759_USB_POWER_CONTROL_REG_DIS_VOLT_ALRM_CLEAR (~(0x1 << 5))
5253#define MAX77759_USB_POWER_CONTROL_REG_AUTO_DISCH_DISC_SHIFT 4
5254#define MAX77759_USB_POWER_CONTROL_REG_AUTO_DISCH_DISC_MASK (0x1 << 4)
5255#define MAX77759_USB_POWER_CONTROL_REG_AUTO_DISCH_DISC_CLEAR (~(0x1 << 4))
5256#define MAX77759_USB_POWER_CONTROL_REG_EN_BLEED_DISCH_SHIFT 3
5257#define MAX77759_USB_POWER_CONTROL_REG_EN_BLEED_DISCH_MASK (0x1 << 3)
5258#define MAX77759_USB_POWER_CONTROL_REG_EN_BLEED_DISCH_CLEAR (~(0x1 << 3))
5259#define MAX77759_USB_POWER_CONTROL_REG_FORC_DISCH_SHIFT 2
5260#define MAX77759_USB_POWER_CONTROL_REG_FORC_DISCH_MASK (0x1 << 2)
5261#define MAX77759_USB_POWER_CONTROL_REG_FORC_DISCH_CLEAR (~(0x1 << 2))
5262#define MAX77759_USB_POWER_CONTROL_REG_RSVD_1_SHIFT 1
5263#define MAX77759_USB_POWER_CONTROL_REG_RSVD_1_MASK (0x1 << 1)
5264#define MAX77759_USB_POWER_CONTROL_REG_RSVD_1_CLEAR (~(0x1 << 1))
5265#define MAX77759_USB_POWER_CONTROL_REG_EN_VCONN_SHIFT 0
5266#define MAX77759_USB_POWER_CONTROL_REG_EN_VCONN_MASK (0x1 << 0)
5267#define MAX77759_USB_POWER_CONTROL_REG_EN_VCONN_CLEAR (~(0x1 << 0))
5268
5269MAX77759_BFF(usb_power_control_reg_fast_rswp_en,7,7)
5270MAX77759_BFF(usb_power_control_reg_vbus_volt_mon,6,6)
5271MAX77759_BFF(usb_power_control_reg_dis_volt_alrm,5,5)
5272MAX77759_BFF(usb_power_control_reg_auto_disch_disc,4,4)
5273MAX77759_BFF(usb_power_control_reg_en_bleed_disch,3,3)
5274MAX77759_BFF(usb_power_control_reg_forc_disch,2,2)
5275MAX77759_BFF(usb_power_control_reg_rsvd_1,1,1)
5276MAX77759_BFF(usb_power_control_reg_en_vconn,0,0)
5277static inline const char *
5278max77759_usb_power_control_reg_cstr(char *buff, size_t len, int val)
5279{
5280#ifdef SCNPRINTF
5281 int i = 0;
5282
5283 i += SCNPRINTF(&buff[i], len - i, " FAST_RSWP_EN=%x",
5284 FIELD2VALUE(MAX77759_USB_POWER_CONTROL_REG_FAST_RSWP_EN, val));
5285 i += SCNPRINTF(&buff[i], len - i, " VBUS_VOLT_MON=%x",
5286 FIELD2VALUE(MAX77759_USB_POWER_CONTROL_REG_VBUS_VOLT_MON, val));
5287 i += SCNPRINTF(&buff[i], len - i, " DIS_VOLT_ALRM=%x",
5288 FIELD2VALUE(MAX77759_USB_POWER_CONTROL_REG_DIS_VOLT_ALRM, val));
5289 i += SCNPRINTF(&buff[i], len - i, " AUTO_DISCH_DISC=%x",
5290 FIELD2VALUE(MAX77759_USB_POWER_CONTROL_REG_AUTO_DISCH_DISC, val));
5291 i += SCNPRINTF(&buff[i], len - i, " EN_BLEED_DISCH=%x",
5292 FIELD2VALUE(MAX77759_USB_POWER_CONTROL_REG_EN_BLEED_DISCH, val));
5293 i += SCNPRINTF(&buff[i], len - i, " FORC_DISCH=%x",
5294 FIELD2VALUE(MAX77759_USB_POWER_CONTROL_REG_FORC_DISCH, val));
5295 i += SCNPRINTF(&buff[i], len - i, " RSVD_1=%x",
5296 FIELD2VALUE(MAX77759_USB_POWER_CONTROL_REG_RSVD_1, val));
5297 i += SCNPRINTF(&buff[i], len - i, " EN_VCONN=%x",
5298 FIELD2VALUE(MAX77759_USB_POWER_CONTROL_REG_EN_VCONN, val));
5299#else
5300 buff[0] = 0;
5301#endif
5302 return buff;
5303}
5304
5305/*
5306 * CC_STATUS_REG,0x1D,0b00000000,0x00
5307 * RSVD_7_6[1:0],,LOOKING4CONN,CONN_RSLT,CC2_STATE[1:0],,CC1_STATE[1:0]
5308 */
5309#define MAX77759_USB_CC_STATUS_REG 0x1D
5310#define MAX77759_USB_CC_STATUS_REG_LOOKING4CONN (0x1 << 5)
5311#define MAX77759_USB_CC_STATUS_REG_CONN_RSLT (0x1 << 4)
5312
5313#define MAX77759_USB_CC_STATUS_REG_RSVD_7_6_SHIFT 6
5314#define MAX77759_USB_CC_STATUS_REG_RSVD_7_6_MASK (0x3 << 6)
5315#define MAX77759_USB_CC_STATUS_REG_RSVD_7_6_CLEAR (~(0x3 << 6))
5316#define MAX77759_USB_CC_STATUS_REG_LOOKING4CONN_SHIFT 5
5317#define MAX77759_USB_CC_STATUS_REG_LOOKING4CONN_MASK (0x1 << 5)
5318#define MAX77759_USB_CC_STATUS_REG_LOOKING4CONN_CLEAR (~(0x1 << 5))
5319#define MAX77759_USB_CC_STATUS_REG_CONN_RSLT_SHIFT 4
5320#define MAX77759_USB_CC_STATUS_REG_CONN_RSLT_MASK (0x1 << 4)
5321#define MAX77759_USB_CC_STATUS_REG_CONN_RSLT_CLEAR (~(0x1 << 4))
5322#define MAX77759_USB_CC_STATUS_REG_CC2_STATE_SHIFT 2
5323#define MAX77759_USB_CC_STATUS_REG_CC2_STATE_MASK (0x3 << 2)
5324#define MAX77759_USB_CC_STATUS_REG_CC2_STATE_CLEAR (~(0x3 << 2))
5325#define MAX77759_USB_CC_STATUS_REG_CC1_STATE_SHIFT 0
5326#define MAX77759_USB_CC_STATUS_REG_CC1_STATE_MASK (0x3 << 0)
5327#define MAX77759_USB_CC_STATUS_REG_CC1_STATE_CLEAR (~(0x3 << 0))
5328
5329MAX77759_BFF(usb_cc_status_reg_rsvd_7_6,7,6)
5330MAX77759_BFF(usb_cc_status_reg_looking4conn,5,5)
5331MAX77759_BFF(usb_cc_status_reg_conn_rslt,4,4)
5332MAX77759_BFF(usb_cc_status_reg_cc2_state,3,2)
5333MAX77759_BFF(usb_cc_status_reg_cc1_state,1,0)
5334static inline const char *
5335max77759_usb_cc_status_reg_cstr(char *buff, size_t len, int val)
5336{
5337#ifdef SCNPRINTF
5338 int i = 0;
5339
5340 i += SCNPRINTF(&buff[i], len - i, " RSVD_7_6=%x",
5341 FIELD2VALUE(MAX77759_USB_CC_STATUS_REG_RSVD_7_6, val));
5342 i += SCNPRINTF(&buff[i], len - i, " LOOKING4CONN=%x",
5343 FIELD2VALUE(MAX77759_USB_CC_STATUS_REG_LOOKING4CONN, val));
5344 i += SCNPRINTF(&buff[i], len - i, " CONN_RSLT=%x",
5345 FIELD2VALUE(MAX77759_USB_CC_STATUS_REG_CONN_RSLT, val));
5346 i += SCNPRINTF(&buff[i], len - i, " CC2_STATE=%x",
5347 FIELD2VALUE(MAX77759_USB_CC_STATUS_REG_CC2_STATE, val));
5348 i += SCNPRINTF(&buff[i], len - i, " CC1_STATE=%x",
5349 FIELD2VALUE(MAX77759_USB_CC_STATUS_REG_CC1_STATE, val));
5350#else
5351 buff[0] = 0;
5352#endif
5353 return buff;
5354}
5355
5356/*
5357 * POWER_STATUS_REG,0x1E,0b00001000,0x08
5358 * DBG_ACC_CONN,TCPC_INIT_STAT,SRC_HI_VOLT,SRC_VBUS,VBUS_DET_EN,VBUS_PRESENT,VCONN_PRESENT
5359 */
5360#define MAX77759_USB_POWER_STATUS_REG 0x1E
5361#define MAX77759_USB_POWER_STATUS_REG_DBG_ACC_CONN (0x1 << 7)
5362#define MAX77759_USB_POWER_STATUS_REG_TCPC_INIT_STAT (0x1 << 6)
5363#define MAX77759_USB_POWER_STATUS_REG_SRC_HI_VOLT (0x1 << 5)
5364#define MAX77759_USB_POWER_STATUS_REG_SRC_VBUS (0x1 << 4)
5365#define MAX77759_USB_POWER_STATUS_REG_VBUS_DET_EN (0x1 << 3)
5366#define MAX77759_USB_POWER_STATUS_REG_VBUS_PRESENT (0x1 << 2)
5367#define MAX77759_USB_POWER_STATUS_REG_VCONN_PRESENT (0x1 << 1)
5368#define MAX77759_USB_POWER_STATUS_REG_SNK_VBUS (0x1 << 0)
5369
5370#define MAX77759_USB_POWER_STATUS_REG_DBG_ACC_CONN_SHIFT 7
5371#define MAX77759_USB_POWER_STATUS_REG_DBG_ACC_CONN_MASK (0x1 << 7)
5372#define MAX77759_USB_POWER_STATUS_REG_DBG_ACC_CONN_CLEAR (~(0x1 << 7))
5373#define MAX77759_USB_POWER_STATUS_REG_TCPC_INIT_STAT_SHIFT 6
5374#define MAX77759_USB_POWER_STATUS_REG_TCPC_INIT_STAT_MASK (0x1 << 6)
5375#define MAX77759_USB_POWER_STATUS_REG_TCPC_INIT_STAT_CLEAR (~(0x1 << 6))
5376#define MAX77759_USB_POWER_STATUS_REG_SRC_HI_VOLT_SHIFT 5
5377#define MAX77759_USB_POWER_STATUS_REG_SRC_HI_VOLT_MASK (0x1 << 5)
5378#define MAX77759_USB_POWER_STATUS_REG_SRC_HI_VOLT_CLEAR (~(0x1 << 5))
5379#define MAX77759_USB_POWER_STATUS_REG_SRC_VBUS_SHIFT 4
5380#define MAX77759_USB_POWER_STATUS_REG_SRC_VBUS_MASK (0x1 << 4)
5381#define MAX77759_USB_POWER_STATUS_REG_SRC_VBUS_CLEAR (~(0x1 << 4))
5382#define MAX77759_USB_POWER_STATUS_REG_VBUS_DET_EN_SHIFT 3
5383#define MAX77759_USB_POWER_STATUS_REG_VBUS_DET_EN_MASK (0x1 << 3)
5384#define MAX77759_USB_POWER_STATUS_REG_VBUS_DET_EN_CLEAR (~(0x1 << 3))
5385#define MAX77759_USB_POWER_STATUS_REG_VBUS_PRESENT_SHIFT 2
5386#define MAX77759_USB_POWER_STATUS_REG_VBUS_PRESENT_MASK (0x1 << 2)
5387#define MAX77759_USB_POWER_STATUS_REG_VBUS_PRESENT_CLEAR (~(0x1 << 2))
5388#define MAX77759_USB_POWER_STATUS_REG_VCONN_PRESENT_SHIFT 1
5389#define MAX77759_USB_POWER_STATUS_REG_VCONN_PRESENT_MASK (0x1 << 1)
5390#define MAX77759_USB_POWER_STATUS_REG_VCONN_PRESENT_CLEAR (~(0x1 << 1))
5391#define MAX77759_USB_POWER_STATUS_REG_SNK_VBUS_SHIFT 0
5392#define MAX77759_USB_POWER_STATUS_REG_SNK_VBUS_MASK (0x1 << 0)
5393#define MAX77759_USB_POWER_STATUS_REG_SNK_VBUS_CLEAR (~(0x1 << 0))
5394
5395MAX77759_BFF(usb_power_status_reg_dbg_acc_conn,7,7)
5396MAX77759_BFF(usb_power_status_reg_tcpc_init_stat,6,6)
5397MAX77759_BFF(usb_power_status_reg_src_hi_volt,5,5)
5398MAX77759_BFF(usb_power_status_reg_src_vbus,4,4)
5399MAX77759_BFF(usb_power_status_reg_vbus_det_en,3,3)
5400MAX77759_BFF(usb_power_status_reg_vbus_present,2,2)
5401MAX77759_BFF(usb_power_status_reg_vconn_present,1,1)
5402MAX77759_BFF(usb_power_status_reg_snk_vbus,0,0)
5403static inline const char *
5404max77759_usb_power_status_reg_cstr(char *buff, size_t len, int val)
5405{
5406#ifdef SCNPRINTF
5407 int i = 0;
5408
5409 i += SCNPRINTF(&buff[i], len - i, " DBG_ACC_CONN=%x",
5410 FIELD2VALUE(MAX77759_USB_POWER_STATUS_REG_DBG_ACC_CONN, val));
5411 i += SCNPRINTF(&buff[i], len - i, " TCPC_INIT_STAT=%x",
5412 FIELD2VALUE(MAX77759_USB_POWER_STATUS_REG_TCPC_INIT_STAT, val));
5413 i += SCNPRINTF(&buff[i], len - i, " SRC_HI_VOLT=%x",
5414 FIELD2VALUE(MAX77759_USB_POWER_STATUS_REG_SRC_HI_VOLT, val));
5415 i += SCNPRINTF(&buff[i], len - i, " SRC_VBUS=%x",
5416 FIELD2VALUE(MAX77759_USB_POWER_STATUS_REG_SRC_VBUS, val));
5417 i += SCNPRINTF(&buff[i], len - i, " VBUS_DET_EN=%x",
5418 FIELD2VALUE(MAX77759_USB_POWER_STATUS_REG_VBUS_DET_EN, val));
5419 i += SCNPRINTF(&buff[i], len - i, " VBUS_PRESENT=%x",
5420 FIELD2VALUE(MAX77759_USB_POWER_STATUS_REG_VBUS_PRESENT, val));
5421 i += SCNPRINTF(&buff[i], len - i, " VCONN_PRESENT=%x",
5422 FIELD2VALUE(MAX77759_USB_POWER_STATUS_REG_VCONN_PRESENT, val));
5423 i += SCNPRINTF(&buff[i], len - i, " SNK_VBUS=%x",
5424 FIELD2VALUE(MAX77759_USB_POWER_STATUS_REG_SNK_VBUS, val));
5425#else
5426 buff[0] = 0;
5427#endif
5428 return buff;
5429}
5430
5431/*
5432 * FAULT_STATUS_REG,0x1F,0b10000000,0x80
5433 * ALL_REG_RST,RSVD_6,AUTO_DISCH_FAIL,FORCE_DISCH_FAIL,RSVD_3,RSVD_2,VCONN_OCP_FAULT
5434 */
5435#define MAX77759_USB_FAULT_STATUS_REG 0x1F
5436#define MAX77759_USB_FAULT_STATUS_REG_ALL_REG_RST (0x1 << 7)
5437#define MAX77759_USB_FAULT_STATUS_REG_RSVD_6 (0x1 << 6)
5438#define MAX77759_USB_FAULT_STATUS_REG_AUTO_DISCH_FAIL (0x1 << 5)
5439#define MAX77759_USB_FAULT_STATUS_REG_FORCE_DISCH_FAIL (0x1 << 4)
5440#define MAX77759_USB_FAULT_STATUS_REG_RSVD_3 (0x1 << 3)
5441#define MAX77759_USB_FAULT_STATUS_REG_RSVD_2 (0x1 << 2)
5442#define MAX77759_USB_FAULT_STATUS_REG_VCONN_OCP_FAULT (0x1 << 1)
5443#define MAX77759_USB_FAULT_STATUS_REG_I2C_ERR (0x1 << 0)
5444
5445#define MAX77759_USB_FAULT_STATUS_REG_ALL_REG_RST_SHIFT 7
5446#define MAX77759_USB_FAULT_STATUS_REG_ALL_REG_RST_MASK (0x1 << 7)
5447#define MAX77759_USB_FAULT_STATUS_REG_ALL_REG_RST_CLEAR (~(0x1 << 7))
5448#define MAX77759_USB_FAULT_STATUS_REG_RSVD_6_SHIFT 6
5449#define MAX77759_USB_FAULT_STATUS_REG_RSVD_6_MASK (0x1 << 6)
5450#define MAX77759_USB_FAULT_STATUS_REG_RSVD_6_CLEAR (~(0x1 << 6))
5451#define MAX77759_USB_FAULT_STATUS_REG_AUTO_DISCH_FAIL_SHIFT 5
5452#define MAX77759_USB_FAULT_STATUS_REG_AUTO_DISCH_FAIL_MASK (0x1 << 5)
5453#define MAX77759_USB_FAULT_STATUS_REG_AUTO_DISCH_FAIL_CLEAR (~(0x1 << 5))
5454#define MAX77759_USB_FAULT_STATUS_REG_FORCE_DISCH_FAIL_SHIFT 4
5455#define MAX77759_USB_FAULT_STATUS_REG_FORCE_DISCH_FAIL_MASK (0x1 << 4)
5456#define MAX77759_USB_FAULT_STATUS_REG_FORCE_DISCH_FAIL_CLEAR (~(0x1 << 4))
5457#define MAX77759_USB_FAULT_STATUS_REG_RSVD_3_SHIFT 3
5458#define MAX77759_USB_FAULT_STATUS_REG_RSVD_3_MASK (0x1 << 3)
5459#define MAX77759_USB_FAULT_STATUS_REG_RSVD_3_CLEAR (~(0x1 << 3))
5460#define MAX77759_USB_FAULT_STATUS_REG_RSVD_2_SHIFT 2
5461#define MAX77759_USB_FAULT_STATUS_REG_RSVD_2_MASK (0x1 << 2)
5462#define MAX77759_USB_FAULT_STATUS_REG_RSVD_2_CLEAR (~(0x1 << 2))
5463#define MAX77759_USB_FAULT_STATUS_REG_VCONN_OCP_FAULT_SHIFT 1
5464#define MAX77759_USB_FAULT_STATUS_REG_VCONN_OCP_FAULT_MASK (0x1 << 1)
5465#define MAX77759_USB_FAULT_STATUS_REG_VCONN_OCP_FAULT_CLEAR (~(0x1 << 1))
5466#define MAX77759_USB_FAULT_STATUS_REG_I2C_ERR_SHIFT 0
5467#define MAX77759_USB_FAULT_STATUS_REG_I2C_ERR_MASK (0x1 << 0)
5468#define MAX77759_USB_FAULT_STATUS_REG_I2C_ERR_CLEAR (~(0x1 << 0))
5469
5470MAX77759_BFF(usb_fault_status_reg_all_reg_rst,7,7)
5471MAX77759_BFF(usb_fault_status_reg_rsvd_6,6,6)
5472MAX77759_BFF(usb_fault_status_reg_auto_disch_fail,5,5)
5473MAX77759_BFF(usb_fault_status_reg_force_disch_fail,4,4)
5474MAX77759_BFF(usb_fault_status_reg_rsvd_3,3,3)
5475MAX77759_BFF(usb_fault_status_reg_rsvd_2,2,2)
5476MAX77759_BFF(usb_fault_status_reg_vconn_ocp_fault,1,1)
5477MAX77759_BFF(usb_fault_status_reg_i2c_err,0,0)
5478static inline const char *
5479max77759_usb_fault_status_reg_cstr(char *buff, size_t len, int val)
5480{
5481#ifdef SCNPRINTF
5482 int i = 0;
5483
5484 i += SCNPRINTF(&buff[i], len - i, " ALL_REG_RST=%x",
5485 FIELD2VALUE(MAX77759_USB_FAULT_STATUS_REG_ALL_REG_RST, val));
5486 i += SCNPRINTF(&buff[i], len - i, " RSVD_6=%x",
5487 FIELD2VALUE(MAX77759_USB_FAULT_STATUS_REG_RSVD_6, val));
5488 i += SCNPRINTF(&buff[i], len - i, " AUTO_DISCH_FAIL=%x",
5489 FIELD2VALUE(MAX77759_USB_FAULT_STATUS_REG_AUTO_DISCH_FAIL, val));
5490 i += SCNPRINTF(&buff[i], len - i, " FORCE_DISCH_FAIL=%x",
5491 FIELD2VALUE(MAX77759_USB_FAULT_STATUS_REG_FORCE_DISCH_FAIL, val));
5492 i += SCNPRINTF(&buff[i], len - i, " RSVD_3=%x",
5493 FIELD2VALUE(MAX77759_USB_FAULT_STATUS_REG_RSVD_3, val));
5494 i += SCNPRINTF(&buff[i], len - i, " RSVD_2=%x",
5495 FIELD2VALUE(MAX77759_USB_FAULT_STATUS_REG_RSVD_2, val));
5496 i += SCNPRINTF(&buff[i], len - i, " VCONN_OCP_FAULT=%x",
5497 FIELD2VALUE(MAX77759_USB_FAULT_STATUS_REG_VCONN_OCP_FAULT, val));
5498 i += SCNPRINTF(&buff[i], len - i, " I2C_ERR=%x",
5499 FIELD2VALUE(MAX77759_USB_FAULT_STATUS_REG_I2C_ERR, val));
5500#else
5501 buff[0] = 0;
5502#endif
5503 return buff;
5504}
5505
5506/*
5507 * EXTENDED_STATUS_REG,0x20,0b00000000,0x00
5508 * RSVD_7_1[6:0],,,,,,
5509 */
5510#define MAX77759_USB_EXTENDED_STATUS_REG 0x20
5511#define MAX77759_USB_EXTENDED_STATUS_REG_VSAFE0V (0x1 << 0)
5512
5513#define MAX77759_USB_EXTENDED_STATUS_REG_RSVD_7_1_SHIFT 1
5514#define MAX77759_USB_EXTENDED_STATUS_REG_RSVD_7_1_MASK (0x7f << 1)
5515#define MAX77759_USB_EXTENDED_STATUS_REG_RSVD_7_1_CLEAR (~(0x7f << 1))
5516#define MAX77759_USB_EXTENDED_STATUS_REG_VSAFE0V_SHIFT 0
5517#define MAX77759_USB_EXTENDED_STATUS_REG_VSAFE0V_MASK (0x1 << 0)
5518#define MAX77759_USB_EXTENDED_STATUS_REG_VSAFE0V_CLEAR (~(0x1 << 0))
5519
5520MAX77759_BFF(usb_extended_status_reg_rsvd_7_1,7,1)
5521MAX77759_BFF(usb_extended_status_reg_vsafe0v,0,0)
5522static inline const char *
5523max77759_usb_extended_status_reg_cstr(char *buff, size_t len, int val)
5524{
5525#ifdef SCNPRINTF
5526 int i = 0;
5527
5528 i += SCNPRINTF(&buff[i], len - i, " RSVD_7_1=%x",
5529 FIELD2VALUE(MAX77759_USB_EXTENDED_STATUS_REG_RSVD_7_1, val));
5530 i += SCNPRINTF(&buff[i], len - i, " VSAFE0V=%x",
5531 FIELD2VALUE(MAX77759_USB_EXTENDED_STATUS_REG_VSAFE0V, val));
5532#else
5533 buff[0] = 0;
5534#endif
5535 return buff;
5536}
5537
5538/*
5539 * ALERT_EXTENDED,0x21,0b00000000,0x00
5540 * RSVD_7_3[4:0],,,,,RSVD_2,RSVD_1
5541 */
5542#define MAX77759_USB_ALERT_EXTENDED 0x21
5543#define MAX77759_USB_ALERT_EXTENDED_RSVD_2 (0x1 << 2)
5544#define MAX77759_USB_ALERT_EXTENDED_RSVD_1 (0x1 << 1)
5545#define MAX77759_USB_ALERT_EXTENDED_SNK_FRS (0x1 << 0)
5546
5547#define MAX77759_USB_ALERT_EXTENDED_RSVD_7_3_SHIFT 3
5548#define MAX77759_USB_ALERT_EXTENDED_RSVD_7_3_MASK (0x1f << 3)
5549#define MAX77759_USB_ALERT_EXTENDED_RSVD_7_3_CLEAR (~(0x1f << 3))
5550#define MAX77759_USB_ALERT_EXTENDED_RSVD_2_SHIFT 2
5551#define MAX77759_USB_ALERT_EXTENDED_RSVD_2_MASK (0x1 << 2)
5552#define MAX77759_USB_ALERT_EXTENDED_RSVD_2_CLEAR (~(0x1 << 2))
5553#define MAX77759_USB_ALERT_EXTENDED_RSVD_1_SHIFT 1
5554#define MAX77759_USB_ALERT_EXTENDED_RSVD_1_MASK (0x1 << 1)
5555#define MAX77759_USB_ALERT_EXTENDED_RSVD_1_CLEAR (~(0x1 << 1))
5556#define MAX77759_USB_ALERT_EXTENDED_SNK_FRS_SHIFT 0
5557#define MAX77759_USB_ALERT_EXTENDED_SNK_FRS_MASK (0x1 << 0)
5558#define MAX77759_USB_ALERT_EXTENDED_SNK_FRS_CLEAR (~(0x1 << 0))
5559
5560MAX77759_BFF(usb_alert_extended_rsvd_7_3,7,3)
5561MAX77759_BFF(usb_alert_extended_rsvd_2,2,2)
5562MAX77759_BFF(usb_alert_extended_rsvd_1,1,1)
5563MAX77759_BFF(usb_alert_extended_snk_frs,0,0)
5564static inline const char *
5565max77759_usb_alert_extended_cstr(char *buff, size_t len, int val)
5566{
5567#ifdef SCNPRINTF
5568 int i = 0;
5569
5570 i += SCNPRINTF(&buff[i], len - i, " RSVD_7_3=%x",
5571 FIELD2VALUE(MAX77759_USB_ALERT_EXTENDED_RSVD_7_3, val));
5572 i += SCNPRINTF(&buff[i], len - i, " RSVD_2=%x",
5573 FIELD2VALUE(MAX77759_USB_ALERT_EXTENDED_RSVD_2, val));
5574 i += SCNPRINTF(&buff[i], len - i, " RSVD_1=%x",
5575 FIELD2VALUE(MAX77759_USB_ALERT_EXTENDED_RSVD_1, val));
5576 i += SCNPRINTF(&buff[i], len - i, " SNK_FRS=%x",
5577 FIELD2VALUE(MAX77759_USB_ALERT_EXTENDED_SNK_FRS, val));
5578#else
5579 buff[0] = 0;
5580#endif
5581 return buff;
5582}
5583
5584/*
5585 * COMMAND_REG,0x23,0b00000000,0x00
5586 * COMMAND[7:0],,,,,,
5587 */
5588#define MAX77759_USB_COMMAND_REG 0x23
5589
5590/*
5591 * DEVICE_CAPABILITIES_1_L,0x24,0b11011000,0xd8
5592 * PWR_ROLE_CAP[2:0],,,SOP_DBG_CAP,SRC_VCONN_CAP,SNK_VBUS_CAP,SRC_HI_VBUS_CAP
5593 */
5594#define MAX77759_USB_DEVICE_CAPABILITIES_1_L 0x24
5595#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_SOP_DBG_CAP (0x1 << 4)
5596#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_SRC_VCONN_CAP (0x1 << 3)
5597#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_SNK_VBUS_CAP (0x1 << 2)
5598#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_SRC_HI_VBUS_CAP (0x1 << 1)
5599#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_SRC_VBUS_CAP (0x1 << 0)
5600
5601#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_PWR_ROLE_CAP_SHIFT 5
5602#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_PWR_ROLE_CAP_MASK (0x7 << 5)
5603#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_PWR_ROLE_CAP_CLEAR (~(0x7 << 5))
5604#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_SOP_DBG_CAP_SHIFT 4
5605#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_SOP_DBG_CAP_MASK (0x1 << 4)
5606#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_SOP_DBG_CAP_CLEAR (~(0x1 << 4))
5607#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_SRC_VCONN_CAP_SHIFT 3
5608#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_SRC_VCONN_CAP_MASK (0x1 << 3)
5609#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_SRC_VCONN_CAP_CLEAR (~(0x1 << 3))
5610#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_SNK_VBUS_CAP_SHIFT 2
5611#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_SNK_VBUS_CAP_MASK (0x1 << 2)
5612#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_SNK_VBUS_CAP_CLEAR (~(0x1 << 2))
5613#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_SRC_HI_VBUS_CAP_SHIFT 1
5614#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_SRC_HI_VBUS_CAP_MASK (0x1 << 1)
5615#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_SRC_HI_VBUS_CAP_CLEAR (~(0x1 << 1))
5616#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_SRC_VBUS_CAP_SHIFT 0
5617#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_SRC_VBUS_CAP_MASK (0x1 << 0)
5618#define MAX77759_USB_DEVICE_CAPABILITIES_1_L_SRC_VBUS_CAP_CLEAR (~(0x1 << 0))
5619
5620MAX77759_BFF(usb_device_capabilities_1_l_pwr_role_cap,7,5)
5621MAX77759_BFF(usb_device_capabilities_1_l_sop_dbg_cap,4,4)
5622MAX77759_BFF(usb_device_capabilities_1_l_src_vconn_cap,3,3)
5623MAX77759_BFF(usb_device_capabilities_1_l_snk_vbus_cap,2,2)
5624MAX77759_BFF(usb_device_capabilities_1_l_src_hi_vbus_cap,1,1)
5625MAX77759_BFF(usb_device_capabilities_1_l_src_vbus_cap,0,0)
5626static inline const char *
5627max77759_usb_device_capabilities_1_l_cstr(char *buff, size_t len, int val)
5628{
5629#ifdef SCNPRINTF
5630 int i = 0;
5631
5632 i += SCNPRINTF(&buff[i], len - i, " PWR_ROLE_CAP=%x",
5633 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_1_L_PWR_ROLE_CAP, val));
5634 i += SCNPRINTF(&buff[i], len - i, " SOP_DBG_CAP=%x",
5635 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_1_L_SOP_DBG_CAP, val));
5636 i += SCNPRINTF(&buff[i], len - i, " SRC_VCONN_CAP=%x",
5637 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_1_L_SRC_VCONN_CAP, val));
5638 i += SCNPRINTF(&buff[i], len - i, " SNK_VBUS_CAP=%x",
5639 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_1_L_SNK_VBUS_CAP, val));
5640 i += SCNPRINTF(&buff[i], len - i, " SRC_HI_VBUS_CAP=%x",
5641 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_1_L_SRC_HI_VBUS_CAP, val));
5642 i += SCNPRINTF(&buff[i], len - i, " SRC_VBUS_CAP=%x",
5643 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_1_L_SRC_VBUS_CAP, val));
5644#else
5645 buff[0] = 0;
5646#endif
5647 return buff;
5648}
5649
5650/*
5651 * DEVICE_CAPABILITIES_1_H,0x25,0b00011110,0x1e
5652 * VBUS_HI_VOLT_TRGT_CAP,VBUS_OCP_RPT_CAP,VBUS_OVP_RPT_CAP,BLEED_DISCH_CAP,FORCE_DISCH_CAP,VBUS_MEAS_ALRM_CAP,SRC_RES_SUP_CAP[1:0]
5653 */
5654#define MAX77759_USB_DEVICE_CAPABILITIES_1_H 0x25
5655#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_VBUS_HI_VOLT_TRGT_CAP (0x1 << 7)
5656#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_VBUS_OCP_RPT_CAP (0x1 << 6)
5657#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_VBUS_OVP_RPT_CAP (0x1 << 5)
5658#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_BLEED_DISCH_CAP (0x1 << 4)
5659#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_FORCE_DISCH_CAP (0x1 << 3)
5660#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_VBUS_MEAS_ALRM_CAP (0x1 << 2)
5661
5662#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_VBUS_HI_VOLT_TRGT_CAP_SHIFT 7
5663#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_VBUS_HI_VOLT_TRGT_CAP_MASK (0x1 << 7)
5664#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_VBUS_HI_VOLT_TRGT_CAP_CLEAR (~(0x1 << 7))
5665#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_VBUS_OCP_RPT_CAP_SHIFT 6
5666#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_VBUS_OCP_RPT_CAP_MASK (0x1 << 6)
5667#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_VBUS_OCP_RPT_CAP_CLEAR (~(0x1 << 6))
5668#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_VBUS_OVP_RPT_CAP_SHIFT 5
5669#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_VBUS_OVP_RPT_CAP_MASK (0x1 << 5)
5670#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_VBUS_OVP_RPT_CAP_CLEAR (~(0x1 << 5))
5671#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_BLEED_DISCH_CAP_SHIFT 4
5672#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_BLEED_DISCH_CAP_MASK (0x1 << 4)
5673#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_BLEED_DISCH_CAP_CLEAR (~(0x1 << 4))
5674#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_FORCE_DISCH_CAP_SHIFT 3
5675#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_FORCE_DISCH_CAP_MASK (0x1 << 3)
5676#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_FORCE_DISCH_CAP_CLEAR (~(0x1 << 3))
5677#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_VBUS_MEAS_ALRM_CAP_SHIFT 2
5678#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_VBUS_MEAS_ALRM_CAP_MASK (0x1 << 2)
5679#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_VBUS_MEAS_ALRM_CAP_CLEAR (~(0x1 << 2))
5680#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_SRC_RES_SUP_CAP_SHIFT 0
5681#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_SRC_RES_SUP_CAP_MASK (0x3 << 0)
5682#define MAX77759_USB_DEVICE_CAPABILITIES_1_H_SRC_RES_SUP_CAP_CLEAR (~(0x3 << 0))
5683
5684MAX77759_BFF(usb_device_capabilities_1_h_vbus_hi_volt_trgt_cap,7,7)
5685MAX77759_BFF(usb_device_capabilities_1_h_vbus_ocp_rpt_cap,6,6)
5686MAX77759_BFF(usb_device_capabilities_1_h_vbus_ovp_rpt_cap,5,5)
5687MAX77759_BFF(usb_device_capabilities_1_h_bleed_disch_cap,4,4)
5688MAX77759_BFF(usb_device_capabilities_1_h_force_disch_cap,3,3)
5689MAX77759_BFF(usb_device_capabilities_1_h_vbus_meas_alrm_cap,2,2)
5690MAX77759_BFF(usb_device_capabilities_1_h_src_res_sup_cap,1,0)
5691static inline const char *
5692max77759_usb_device_capabilities_1_h_cstr(char *buff, size_t len, int val)
5693{
5694#ifdef SCNPRINTF
5695 int i = 0;
5696
5697 i += SCNPRINTF(&buff[i], len - i, " VBUS_HI_VOLT_TRGT_CAP=%x",
5698 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_1_H_VBUS_HI_VOLT_TRGT_CAP, val));
5699 i += SCNPRINTF(&buff[i], len - i, " VBUS_OCP_RPT_CAP=%x",
5700 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_1_H_VBUS_OCP_RPT_CAP, val));
5701 i += SCNPRINTF(&buff[i], len - i, " VBUS_OVP_RPT_CAP=%x",
5702 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_1_H_VBUS_OVP_RPT_CAP, val));
5703 i += SCNPRINTF(&buff[i], len - i, " BLEED_DISCH_CAP=%x",
5704 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_1_H_BLEED_DISCH_CAP, val));
5705 i += SCNPRINTF(&buff[i], len - i, " FORCE_DISCH_CAP=%x",
5706 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_1_H_FORCE_DISCH_CAP, val));
5707 i += SCNPRINTF(&buff[i], len - i, " VBUS_MEAS_ALRM_CAP=%x",
5708 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_1_H_VBUS_MEAS_ALRM_CAP, val));
5709 i += SCNPRINTF(&buff[i], len - i, " SRC_RES_SUP_CAP=%x",
5710 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_1_H_SRC_RES_SUP_CAP, val));
5711#else
5712 buff[0] = 0;
5713#endif
5714 return buff;
5715}
5716
5717/*
5718 * DEVICE_CAPABILITIES_2_L,0x26,0b11000001,0xc1
5719 * SNK_DISC_DET_CAP,STP_DISCH_THR_CAP,VBUS_VOLT_ALRM_LSB_CAP[1:0],,VCONN_PWR_CAP[2:0],,
5720 */
5721#define MAX77759_USB_DEVICE_CAPABILITIES_2_L 0x26
5722#define MAX77759_USB_DEVICE_CAPABILITIES_2_L_SNK_DISC_DET_CAP (0x1 << 7)
5723#define MAX77759_USB_DEVICE_CAPABILITIES_2_L_STP_DISCH_THR_CAP (0x1 << 6)
5724#define MAX77759_USB_DEVICE_CAPABILITIES_2_L_VCONN_OCP_CAP (0x1 << 0)
5725
5726#define MAX77759_USB_DEVICE_CAPABILITIES_2_L_SNK_DISC_DET_CAP_SHIFT 7
5727#define MAX77759_USB_DEVICE_CAPABILITIES_2_L_SNK_DISC_DET_CAP_MASK (0x1 << 7)
5728#define MAX77759_USB_DEVICE_CAPABILITIES_2_L_SNK_DISC_DET_CAP_CLEAR (~(0x1 << 7))
5729#define MAX77759_USB_DEVICE_CAPABILITIES_2_L_STP_DISCH_THR_CAP_SHIFT 6
5730#define MAX77759_USB_DEVICE_CAPABILITIES_2_L_STP_DISCH_THR_CAP_MASK (0x1 << 6)
5731#define MAX77759_USB_DEVICE_CAPABILITIES_2_L_STP_DISCH_THR_CAP_CLEAR (~(0x1 << 6))
5732#define MAX77759_USB_DEVICE_CAPABILITIES_2_L_VBUS_VOLT_ALRM_LSB_CAP_SHIFT 4
5733#define MAX77759_USB_DEVICE_CAPABILITIES_2_L_VBUS_VOLT_ALRM_LSB_CAP_MASK (0x3 << 4)
5734#define MAX77759_USB_DEVICE_CAPABILITIES_2_L_VBUS_VOLT_ALRM_LSB_CAP_CLEAR (~(0x3 << 4))
5735#define MAX77759_USB_DEVICE_CAPABILITIES_2_L_VCONN_PWR_CAP_SHIFT 1
5736#define MAX77759_USB_DEVICE_CAPABILITIES_2_L_VCONN_PWR_CAP_MASK (0x7 << 1)
5737#define MAX77759_USB_DEVICE_CAPABILITIES_2_L_VCONN_PWR_CAP_CLEAR (~(0x7 << 1))
5738#define MAX77759_USB_DEVICE_CAPABILITIES_2_L_VCONN_OCP_CAP_SHIFT 0
5739#define MAX77759_USB_DEVICE_CAPABILITIES_2_L_VCONN_OCP_CAP_MASK (0x1 << 0)
5740#define MAX77759_USB_DEVICE_CAPABILITIES_2_L_VCONN_OCP_CAP_CLEAR (~(0x1 << 0))
5741
5742MAX77759_BFF(usb_device_capabilities_2_l_snk_disc_det_cap,7,7)
5743MAX77759_BFF(usb_device_capabilities_2_l_stp_disch_thr_cap,6,6)
5744MAX77759_BFF(usb_device_capabilities_2_l_vbus_volt_alrm_lsb_cap,5,4)
5745MAX77759_BFF(usb_device_capabilities_2_l_vconn_pwr_cap,3,1)
5746MAX77759_BFF(usb_device_capabilities_2_l_vconn_ocp_cap,0,0)
5747static inline const char *
5748max77759_usb_device_capabilities_2_l_cstr(char *buff, size_t len, int val)
5749{
5750#ifdef SCNPRINTF
5751 int i = 0;
5752
5753 i += SCNPRINTF(&buff[i], len - i, " SNK_DISC_DET_CAP=%x",
5754 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_2_L_SNK_DISC_DET_CAP, val));
5755 i += SCNPRINTF(&buff[i], len - i, " STP_DISCH_THR_CAP=%x",
5756 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_2_L_STP_DISCH_THR_CAP, val));
5757 i += SCNPRINTF(&buff[i], len - i, " VBUS_VOLT_ALRM_LSB_CAP=%x",
5758 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_2_L_VBUS_VOLT_ALRM_LSB_CAP, val));
5759 i += SCNPRINTF(&buff[i], len - i, " VCONN_PWR_CAP=%x",
5760 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_2_L_VCONN_PWR_CAP, val));
5761 i += SCNPRINTF(&buff[i], len - i, " VCONN_OCP_CAP=%x",
5762 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_2_L_VCONN_OCP_CAP, val));
5763#else
5764 buff[0] = 0;
5765#endif
5766 return buff;
5767}
5768
5769/*
5770 * DEVICE_CAPABILITIES_2_H,0x27,0b00000011,0x03
5771 * RSVD_7,MSGDisDisc,GENERIC_TMR_CAP,LONG_MSG_CAP,SMB_PEC_CAP,SRC_FRS_CAP,SNK_FRS_CAP
5772 */
5773#define MAX77759_USB_DEVICE_CAPABILITIES_2_H 0x27
5774#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_RSVD_7 (0x1 << 7)
5775#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_MSGDISDISC (0x1 << 6)
5776#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_GENERIC_TMR_CAP (0x1 << 5)
5777#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_LONG_MSG_CAP (0x1 << 4)
5778#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_SMB_PEC_CAP (0x1 << 3)
5779#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_SRC_FRS_CAP (0x1 << 2)
5780#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_SNK_FRS_CAP (0x1 << 1)
5781#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_WDOG_TMR_CAP (0x1 << 0)
5782
5783#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_RSVD_7_SHIFT 7
5784#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_RSVD_7_MASK (0x1 << 7)
5785#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_RSVD_7_CLEAR (~(0x1 << 7))
5786#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_MSGDISDISC_SHIFT 6
5787#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_MSGDISDISC_MASK (0x1 << 6)
5788#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_MSGDISDISC_CLEAR (~(0x1 << 6))
5789#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_GENERIC_TMR_CAP_SHIFT 5
5790#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_GENERIC_TMR_CAP_MASK (0x1 << 5)
5791#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_GENERIC_TMR_CAP_CLEAR (~(0x1 << 5))
5792#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_LONG_MSG_CAP_SHIFT 4
5793#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_LONG_MSG_CAP_MASK (0x1 << 4)
5794#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_LONG_MSG_CAP_CLEAR (~(0x1 << 4))
5795#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_SMB_PEC_CAP_SHIFT 3
5796#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_SMB_PEC_CAP_MASK (0x1 << 3)
5797#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_SMB_PEC_CAP_CLEAR (~(0x1 << 3))
5798#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_SRC_FRS_CAP_SHIFT 2
5799#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_SRC_FRS_CAP_MASK (0x1 << 2)
5800#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_SRC_FRS_CAP_CLEAR (~(0x1 << 2))
5801#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_SNK_FRS_CAP_SHIFT 1
5802#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_SNK_FRS_CAP_MASK (0x1 << 1)
5803#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_SNK_FRS_CAP_CLEAR (~(0x1 << 1))
5804#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_WDOG_TMR_CAP_SHIFT 0
5805#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_WDOG_TMR_CAP_MASK (0x1 << 0)
5806#define MAX77759_USB_DEVICE_CAPABILITIES_2_H_WDOG_TMR_CAP_CLEAR (~(0x1 << 0))
5807
5808MAX77759_BFF(usb_device_capabilities_2_h_rsvd_7,7,7)
5809MAX77759_BFF(usb_device_capabilities_2_h_msgdisdisc,6,6)
5810MAX77759_BFF(usb_device_capabilities_2_h_generic_tmr_cap,5,5)
5811MAX77759_BFF(usb_device_capabilities_2_h_long_msg_cap,4,4)
5812MAX77759_BFF(usb_device_capabilities_2_h_smb_pec_cap,3,3)
5813MAX77759_BFF(usb_device_capabilities_2_h_src_frs_cap,2,2)
5814MAX77759_BFF(usb_device_capabilities_2_h_snk_frs_cap,1,1)
5815MAX77759_BFF(usb_device_capabilities_2_h_wdog_tmr_cap,0,0)
5816static inline const char *
5817max77759_usb_device_capabilities_2_h_cstr(char *buff, size_t len, int val)
5818{
5819#ifdef SCNPRINTF
5820 int i = 0;
5821
5822 i += SCNPRINTF(&buff[i], len - i, " RSVD_7=%x",
5823 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_2_H_RSVD_7, val));
5824 i += SCNPRINTF(&buff[i], len - i, " MSGDISDISC=%x",
5825 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_2_H_MSGDISDISC, val));
5826 i += SCNPRINTF(&buff[i], len - i, " GENERIC_TMR_CAP=%x",
5827 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_2_H_GENERIC_TMR_CAP, val));
5828 i += SCNPRINTF(&buff[i], len - i, " LONG_MSG_CAP=%x",
5829 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_2_H_LONG_MSG_CAP, val));
5830 i += SCNPRINTF(&buff[i], len - i, " SMB_PEC_CAP=%x",
5831 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_2_H_SMB_PEC_CAP, val));
5832 i += SCNPRINTF(&buff[i], len - i, " SRC_FRS_CAP=%x",
5833 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_2_H_SRC_FRS_CAP, val));
5834 i += SCNPRINTF(&buff[i], len - i, " SNK_FRS_CAP=%x",
5835 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_2_H_SNK_FRS_CAP, val));
5836 i += SCNPRINTF(&buff[i], len - i, " WDOG_TMR_CAP=%x",
5837 FIELD2VALUE(MAX77759_USB_DEVICE_CAPABILITIES_2_H_WDOG_TMR_CAP, val));
5838#else
5839 buff[0] = 0;
5840#endif
5841 return buff;
5842}
5843
5844/*
5845 * STANDARD_INPUT_CAPABILITIES_REG,0x28,0b00000000,0x00
5846 * RSVD_7_5[2:0],,,SRC_FRS_INP_CAP[1:0],,VBUS_EXT_OVP_CAP,VBUS_EXT_OCP_CAP
5847 */
5848#define MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG 0x28
5849#define MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_VBUS_EXT_OVP_CAP (0x1 << 2)
5850#define MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_VBUS_EXT_OCP_CAP (0x1 << 1)
5851#define MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_FRC_OFF_VBUS_CAP (0x1 << 0)
5852
5853#define MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_RSVD_7_5_SHIFT 5
5854#define MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_RSVD_7_5_MASK (0x7 << 5)
5855#define MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_RSVD_7_5_CLEAR (~(0x7 << 5))
5856#define MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_SRC_FRS_INP_CAP_SHIFT 3
5857#define MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_SRC_FRS_INP_CAP_MASK (0x3 << 3)
5858#define MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_SRC_FRS_INP_CAP_CLEAR (~(0x3 << 3))
5859#define MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_VBUS_EXT_OVP_CAP_SHIFT 2
5860#define MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_VBUS_EXT_OVP_CAP_MASK (0x1 << 2)
5861#define MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_VBUS_EXT_OVP_CAP_CLEAR (~(0x1 << 2))
5862#define MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_VBUS_EXT_OCP_CAP_SHIFT 1
5863#define MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_VBUS_EXT_OCP_CAP_MASK (0x1 << 1)
5864#define MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_VBUS_EXT_OCP_CAP_CLEAR (~(0x1 << 1))
5865#define MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_FRC_OFF_VBUS_CAP_SHIFT 0
5866#define MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_FRC_OFF_VBUS_CAP_MASK (0x1 << 0)
5867#define MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_FRC_OFF_VBUS_CAP_CLEAR (~(0x1 << 0))
5868
5869MAX77759_BFF(usb_standard_input_capabilities_reg_rsvd_7_5,7,5)
5870MAX77759_BFF(usb_standard_input_capabilities_reg_src_frs_inp_cap,4,3)
5871MAX77759_BFF(usb_standard_input_capabilities_reg_vbus_ext_ovp_cap,2,2)
5872MAX77759_BFF(usb_standard_input_capabilities_reg_vbus_ext_ocp_cap,1,1)
5873MAX77759_BFF(usb_standard_input_capabilities_reg_frc_off_vbus_cap,0,0)
5874static inline const char *
5875max77759_usb_standard_input_capabilities_reg_cstr(char *buff, size_t len, int val)
5876{
5877#ifdef SCNPRINTF
5878 int i = 0;
5879
5880 i += SCNPRINTF(&buff[i], len - i, " RSVD_7_5=%x",
5881 FIELD2VALUE(MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_RSVD_7_5, val));
5882 i += SCNPRINTF(&buff[i], len - i, " SRC_FRS_INP_CAP=%x",
5883 FIELD2VALUE(MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_SRC_FRS_INP_CAP, val));
5884 i += SCNPRINTF(&buff[i], len - i, " VBUS_EXT_OVP_CAP=%x",
5885 FIELD2VALUE(MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_VBUS_EXT_OVP_CAP, val));
5886 i += SCNPRINTF(&buff[i], len - i, " VBUS_EXT_OCP_CAP=%x",
5887 FIELD2VALUE(MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_VBUS_EXT_OCP_CAP, val));
5888 i += SCNPRINTF(&buff[i], len - i, " FRC_OFF_VBUS_CAP=%x",
5889 FIELD2VALUE(MAX77759_USB_STANDARD_INPUT_CAPABILITIES_REG_FRC_OFF_VBUS_CAP, val));
5890#else
5891 buff[0] = 0;
5892#endif
5893 return buff;
5894}
5895
5896/*
5897 * STANDARD_OUTPUT_CAPABILITIES_REG,0x29,0b01000000,0x40
5898 * VBUS_SNK_DIS_DET_CAP,DBG_ACC_CAP,VBUS_PRESENT_CAP,AUD_ACC_CAP,ACT_CBL_CAP,MUX_CONFG_CAP,CONN_PRESENT_CAP
5899 */
5900#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG 0x29
5901#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_VBUS_SNK_DIS_DET_CAP (0x1 << 7)
5902#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_DBG_ACC_CAP (0x1 << 6)
5903#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_VBUS_PRESENT_CAP (0x1 << 5)
5904#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_AUD_ACC_CAP (0x1 << 4)
5905#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_ACT_CBL_CAP (0x1 << 3)
5906#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_MUX_CONFG_CAP (0x1 << 2)
5907#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_CONN_PRESENT_CAP (0x1 << 1)
5908#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_CONN_ORIENT_CAP (0x1 << 0)
5909
5910#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_VBUS_SNK_DIS_DET_CAP_SHIFT 7
5911#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_VBUS_SNK_DIS_DET_CAP_MASK (0x1 << 7)
5912#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_VBUS_SNK_DIS_DET_CAP_CLEAR (~(0x1 << 7))
5913#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_DBG_ACC_CAP_SHIFT 6
5914#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_DBG_ACC_CAP_MASK (0x1 << 6)
5915#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_DBG_ACC_CAP_CLEAR (~(0x1 << 6))
5916#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_VBUS_PRESENT_CAP_SHIFT 5
5917#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_VBUS_PRESENT_CAP_MASK (0x1 << 5)
5918#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_VBUS_PRESENT_CAP_CLEAR (~(0x1 << 5))
5919#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_AUD_ACC_CAP_SHIFT 4
5920#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_AUD_ACC_CAP_MASK (0x1 << 4)
5921#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_AUD_ACC_CAP_CLEAR (~(0x1 << 4))
5922#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_ACT_CBL_CAP_SHIFT 3
5923#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_ACT_CBL_CAP_MASK (0x1 << 3)
5924#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_ACT_CBL_CAP_CLEAR (~(0x1 << 3))
5925#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_MUX_CONFG_CAP_SHIFT 2
5926#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_MUX_CONFG_CAP_MASK (0x1 << 2)
5927#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_MUX_CONFG_CAP_CLEAR (~(0x1 << 2))
5928#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_CONN_PRESENT_CAP_SHIFT 1
5929#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_CONN_PRESENT_CAP_MASK (0x1 << 1)
5930#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_CONN_PRESENT_CAP_CLEAR (~(0x1 << 1))
5931#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_CONN_ORIENT_CAP_SHIFT 0
5932#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_CONN_ORIENT_CAP_MASK (0x1 << 0)
5933#define MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_CONN_ORIENT_CAP_CLEAR (~(0x1 << 0))
5934
5935MAX77759_BFF(usb_standard_output_capabilities_reg_vbus_snk_dis_det_cap,7,7)
5936MAX77759_BFF(usb_standard_output_capabilities_reg_dbg_acc_cap,6,6)
5937MAX77759_BFF(usb_standard_output_capabilities_reg_vbus_present_cap,5,5)
5938MAX77759_BFF(usb_standard_output_capabilities_reg_aud_acc_cap,4,4)
5939MAX77759_BFF(usb_standard_output_capabilities_reg_act_cbl_cap,3,3)
5940MAX77759_BFF(usb_standard_output_capabilities_reg_mux_confg_cap,2,2)
5941MAX77759_BFF(usb_standard_output_capabilities_reg_conn_present_cap,1,1)
5942MAX77759_BFF(usb_standard_output_capabilities_reg_conn_orient_cap,0,0)
5943static inline const char *
5944max77759_usb_standard_output_capabilities_reg_cstr(char *buff, size_t len, int val)
5945{
5946#ifdef SCNPRINTF
5947 int i = 0;
5948
5949 i += SCNPRINTF(&buff[i], len - i, " VBUS_SNK_DIS_DET_CAP=%x",
5950 FIELD2VALUE(MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_VBUS_SNK_DIS_DET_CAP, val));
5951 i += SCNPRINTF(&buff[i], len - i, " DBG_ACC_CAP=%x",
5952 FIELD2VALUE(MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_DBG_ACC_CAP, val));
5953 i += SCNPRINTF(&buff[i], len - i, " VBUS_PRESENT_CAP=%x",
5954 FIELD2VALUE(MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_VBUS_PRESENT_CAP, val));
5955 i += SCNPRINTF(&buff[i], len - i, " AUD_ACC_CAP=%x",
5956 FIELD2VALUE(MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_AUD_ACC_CAP, val));
5957 i += SCNPRINTF(&buff[i], len - i, " ACT_CBL_CAP=%x",
5958 FIELD2VALUE(MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_ACT_CBL_CAP, val));
5959 i += SCNPRINTF(&buff[i], len - i, " MUX_CONFG_CAP=%x",
5960 FIELD2VALUE(MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_MUX_CONFG_CAP, val));
5961 i += SCNPRINTF(&buff[i], len - i, " CONN_PRESENT_CAP=%x",
5962 FIELD2VALUE(MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_CONN_PRESENT_CAP, val));
5963 i += SCNPRINTF(&buff[i], len - i, " CONN_ORIENT_CAP=%x",
5964 FIELD2VALUE(MAX77759_USB_STANDARD_OUTPUT_CAPABILITIES_REG_CONN_ORIENT_CAP, val));
5965#else
5966 buff[0] = 0;
5967#endif
5968 return buff;
5969}
5970
5971/*
5972 * CONFIG_EXTENDED1_REG,0x2A,0b00000000,0x00
5973 * RSVD_7_2[5:0],,,,,,RSVD_1
5974 */
5975#define MAX77759_USB_CONFIG_EXTENDED1_REG 0x2A
5976#define MAX77759_USB_CONFIG_EXTENDED1_REG_RSVD_1 (0x1 << 1)
5977#define MAX77759_USB_CONFIG_EXTENDED1_REG_RSVD_0 (0x1 << 0)
5978
5979#define MAX77759_USB_CONFIG_EXTENDED1_REG_RSVD_7_2_SHIFT 2
5980#define MAX77759_USB_CONFIG_EXTENDED1_REG_RSVD_7_2_MASK (0x3f << 2)
5981#define MAX77759_USB_CONFIG_EXTENDED1_REG_RSVD_7_2_CLEAR (~(0x3f << 2))
5982#define MAX77759_USB_CONFIG_EXTENDED1_REG_RSVD_1_SHIFT 1
5983#define MAX77759_USB_CONFIG_EXTENDED1_REG_RSVD_1_MASK (0x1 << 1)
5984#define MAX77759_USB_CONFIG_EXTENDED1_REG_RSVD_1_CLEAR (~(0x1 << 1))
5985#define MAX77759_USB_CONFIG_EXTENDED1_REG_RSVD_0_SHIFT 0
5986#define MAX77759_USB_CONFIG_EXTENDED1_REG_RSVD_0_MASK (0x1 << 0)
5987#define MAX77759_USB_CONFIG_EXTENDED1_REG_RSVD_0_CLEAR (~(0x1 << 0))
5988
5989MAX77759_BFF(usb_config_extended1_reg_rsvd_7_2,7,2)
5990MAX77759_BFF(usb_config_extended1_reg_rsvd_1,1,1)
5991MAX77759_BFF(usb_config_extended1_reg_rsvd_0,0,0)
5992static inline const char *
5993max77759_usb_config_extended1_reg_cstr(char *buff, size_t len, int val)
5994{
5995#ifdef SCNPRINTF
5996 int i = 0;
5997
5998 i += SCNPRINTF(&buff[i], len - i, " RSVD_7_2=%x",
5999 FIELD2VALUE(MAX77759_USB_CONFIG_EXTENDED1_REG_RSVD_7_2, val));
6000 i += SCNPRINTF(&buff[i], len - i, " RSVD_1=%x",
6001 FIELD2VALUE(MAX77759_USB_CONFIG_EXTENDED1_REG_RSVD_1, val));
6002 i += SCNPRINTF(&buff[i], len - i, " RSVD_0=%x",
6003 FIELD2VALUE(MAX77759_USB_CONFIG_EXTENDED1_REG_RSVD_0, val));
6004#else
6005 buff[0] = 0;
6006#endif
6007 return buff;
6008}
6009
6010/*
6011 * MESSAGE_HEADER_INFO_REG,0x2E,0b00000100,0x04
6012 * RSVD_7_5[2:0],,,CBL_PLG,DATA_ROLE,USB_PD[1:0],
6013 */
6014#define MAX77759_USB_MESSAGE_HEADER_INFO_REG 0x2E
6015#define MAX77759_USB_MESSAGE_HEADER_INFO_REG_CBL_PLG (0x1 << 4)
6016#define MAX77759_USB_MESSAGE_HEADER_INFO_REG_DATA_ROLE (0x1 << 3)
6017#define MAX77759_USB_MESSAGE_HEADER_INFO_REG_PWR_ROLE (0x1 << 0)
6018
6019#define MAX77759_USB_MESSAGE_HEADER_INFO_REG_RSVD_7_5_SHIFT 5
6020#define MAX77759_USB_MESSAGE_HEADER_INFO_REG_RSVD_7_5_MASK (0x7 << 5)
6021#define MAX77759_USB_MESSAGE_HEADER_INFO_REG_RSVD_7_5_CLEAR (~(0x7 << 5))
6022#define MAX77759_USB_MESSAGE_HEADER_INFO_REG_CBL_PLG_SHIFT 4
6023#define MAX77759_USB_MESSAGE_HEADER_INFO_REG_CBL_PLG_MASK (0x1 << 4)
6024#define MAX77759_USB_MESSAGE_HEADER_INFO_REG_CBL_PLG_CLEAR (~(0x1 << 4))
6025#define MAX77759_USB_MESSAGE_HEADER_INFO_REG_DATA_ROLE_SHIFT 3
6026#define MAX77759_USB_MESSAGE_HEADER_INFO_REG_DATA_ROLE_MASK (0x1 << 3)
6027#define MAX77759_USB_MESSAGE_HEADER_INFO_REG_DATA_ROLE_CLEAR (~(0x1 << 3))
6028#define MAX77759_USB_MESSAGE_HEADER_INFO_REG_USB_PD_SHIFT 1
6029#define MAX77759_USB_MESSAGE_HEADER_INFO_REG_USB_PD_MASK (0x3 << 1)
6030#define MAX77759_USB_MESSAGE_HEADER_INFO_REG_USB_PD_CLEAR (~(0x3 << 1))
6031#define MAX77759_USB_MESSAGE_HEADER_INFO_REG_PWR_ROLE_SHIFT 0
6032#define MAX77759_USB_MESSAGE_HEADER_INFO_REG_PWR_ROLE_MASK (0x1 << 0)
6033#define MAX77759_USB_MESSAGE_HEADER_INFO_REG_PWR_ROLE_CLEAR (~(0x1 << 0))
6034
6035MAX77759_BFF(usb_message_header_info_reg_rsvd_7_5,7,5)
6036MAX77759_BFF(usb_message_header_info_reg_cbl_plg,4,4)
6037MAX77759_BFF(usb_message_header_info_reg_data_role,3,3)
6038MAX77759_BFF(usb_message_header_info_reg_usb_pd,2,1)
6039MAX77759_BFF(usb_message_header_info_reg_pwr_role,0,0)
6040static inline const char *
6041max77759_usb_message_header_info_reg_cstr(char *buff, size_t len, int val)
6042{
6043#ifdef SCNPRINTF
6044 int i = 0;
6045
6046 i += SCNPRINTF(&buff[i], len - i, " RSVD_7_5=%x",
6047 FIELD2VALUE(MAX77759_USB_MESSAGE_HEADER_INFO_REG_RSVD_7_5, val));
6048 i += SCNPRINTF(&buff[i], len - i, " CBL_PLG=%x",
6049 FIELD2VALUE(MAX77759_USB_MESSAGE_HEADER_INFO_REG_CBL_PLG, val));
6050 i += SCNPRINTF(&buff[i], len - i, " DATA_ROLE=%x",
6051 FIELD2VALUE(MAX77759_USB_MESSAGE_HEADER_INFO_REG_DATA_ROLE, val));
6052 i += SCNPRINTF(&buff[i], len - i, " USB_PD=%x",
6053 FIELD2VALUE(MAX77759_USB_MESSAGE_HEADER_INFO_REG_USB_PD, val));
6054 i += SCNPRINTF(&buff[i], len - i, " PWR_ROLE=%x",
6055 FIELD2VALUE(MAX77759_USB_MESSAGE_HEADER_INFO_REG_PWR_ROLE, val));
6056#else
6057 buff[0] = 0;
6058#endif
6059 return buff;
6060}
6061
6062/*
6063 * RECEIVE_DETECT_REG,0x2F,0b00000000,0x00
6064 * RSVD_7,EN_CBL_RST,EN_HRD_RST,EN_SOP_DBG2,EN_SOP_DBG1,EN_SOP2,EN_SOP1
6065 */
6066#define MAX77759_USB_RECEIVE_DETECT_REG 0x2F
6067#define MAX77759_USB_RECEIVE_DETECT_REG_RSVD_7 (0x1 << 7)
6068#define MAX77759_USB_RECEIVE_DETECT_REG_EN_CBL_RST (0x1 << 6)
6069#define MAX77759_USB_RECEIVE_DETECT_REG_EN_HRD_RST (0x1 << 5)
6070#define MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP_DBG2 (0x1 << 4)
6071#define MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP_DBG1 (0x1 << 3)
6072#define MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP2 (0x1 << 2)
6073#define MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP1 (0x1 << 1)
6074#define MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP (0x1 << 0)
6075
6076#define MAX77759_USB_RECEIVE_DETECT_REG_RSVD_7_SHIFT 7
6077#define MAX77759_USB_RECEIVE_DETECT_REG_RSVD_7_MASK (0x1 << 7)
6078#define MAX77759_USB_RECEIVE_DETECT_REG_RSVD_7_CLEAR (~(0x1 << 7))
6079#define MAX77759_USB_RECEIVE_DETECT_REG_EN_CBL_RST_SHIFT 6
6080#define MAX77759_USB_RECEIVE_DETECT_REG_EN_CBL_RST_MASK (0x1 << 6)
6081#define MAX77759_USB_RECEIVE_DETECT_REG_EN_CBL_RST_CLEAR (~(0x1 << 6))
6082#define MAX77759_USB_RECEIVE_DETECT_REG_EN_HRD_RST_SHIFT 5
6083#define MAX77759_USB_RECEIVE_DETECT_REG_EN_HRD_RST_MASK (0x1 << 5)
6084#define MAX77759_USB_RECEIVE_DETECT_REG_EN_HRD_RST_CLEAR (~(0x1 << 5))
6085#define MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP_DBG2_SHIFT 4
6086#define MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP_DBG2_MASK (0x1 << 4)
6087#define MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP_DBG2_CLEAR (~(0x1 << 4))
6088#define MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP_DBG1_SHIFT 3
6089#define MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP_DBG1_MASK (0x1 << 3)
6090#define MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP_DBG1_CLEAR (~(0x1 << 3))
6091#define MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP2_SHIFT 2
6092#define MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP2_MASK (0x1 << 2)
6093#define MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP2_CLEAR (~(0x1 << 2))
6094#define MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP1_SHIFT 1
6095#define MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP1_MASK (0x1 << 1)
6096#define MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP1_CLEAR (~(0x1 << 1))
6097#define MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP_SHIFT 0
6098#define MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP_MASK (0x1 << 0)
6099#define MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP_CLEAR (~(0x1 << 0))
6100
6101MAX77759_BFF(usb_receive_detect_reg_rsvd_7,7,7)
6102MAX77759_BFF(usb_receive_detect_reg_en_cbl_rst,6,6)
6103MAX77759_BFF(usb_receive_detect_reg_en_hrd_rst,5,5)
6104MAX77759_BFF(usb_receive_detect_reg_en_sop_dbg2,4,4)
6105MAX77759_BFF(usb_receive_detect_reg_en_sop_dbg1,3,3)
6106MAX77759_BFF(usb_receive_detect_reg_en_sop2,2,2)
6107MAX77759_BFF(usb_receive_detect_reg_en_sop1,1,1)
6108MAX77759_BFF(usb_receive_detect_reg_en_sop,0,0)
6109static inline const char *
6110max77759_usb_receive_detect_reg_cstr(char *buff, size_t len, int val)
6111{
6112#ifdef SCNPRINTF
6113 int i = 0;
6114
6115 i += SCNPRINTF(&buff[i], len - i, " RSVD_7=%x",
6116 FIELD2VALUE(MAX77759_USB_RECEIVE_DETECT_REG_RSVD_7, val));
6117 i += SCNPRINTF(&buff[i], len - i, " EN_CBL_RST=%x",
6118 FIELD2VALUE(MAX77759_USB_RECEIVE_DETECT_REG_EN_CBL_RST, val));
6119 i += SCNPRINTF(&buff[i], len - i, " EN_HRD_RST=%x",
6120 FIELD2VALUE(MAX77759_USB_RECEIVE_DETECT_REG_EN_HRD_RST, val));
6121 i += SCNPRINTF(&buff[i], len - i, " EN_SOP_DBG2=%x",
6122 FIELD2VALUE(MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP_DBG2, val));
6123 i += SCNPRINTF(&buff[i], len - i, " EN_SOP_DBG1=%x",
6124 FIELD2VALUE(MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP_DBG1, val));
6125 i += SCNPRINTF(&buff[i], len - i, " EN_SOP2=%x",
6126 FIELD2VALUE(MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP2, val));
6127 i += SCNPRINTF(&buff[i], len - i, " EN_SOP1=%x",
6128 FIELD2VALUE(MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP1, val));
6129 i += SCNPRINTF(&buff[i], len - i, " EN_SOP=%x",
6130 FIELD2VALUE(MAX77759_USB_RECEIVE_DETECT_REG_EN_SOP, val));
6131#else
6132 buff[0] = 0;
6133#endif
6134 return buff;
6135}
6136
6137/*
6138 * RECEIVE_BUFFER_REG,0x30,0b00000000,0x00
6139 * RECEIVE_BUFFER[7:0],,,,,,
6140 */
6141#define MAX77759_USB_RECEIVE_BUFFER_REG 0x30
6142
6143/*
6144 * TRANSMIT_REG,0x50,0b00000000,0x00
6145 * RSVD_7_6[1:0],,RETRY_COUNTER[1:0],,RSVD_3,TX_SOP_MESSAGE[2:0],
6146 */
6147#define MAX77759_USB_TRANSMIT_REG 0x50
6148#define MAX77759_USB_TRANSMIT_REG_RSVD_3 (0x1 << 3)
6149
6150#define MAX77759_USB_TRANSMIT_REG_RSVD_7_6_SHIFT 6
6151#define MAX77759_USB_TRANSMIT_REG_RSVD_7_6_MASK (0x3 << 6)
6152#define MAX77759_USB_TRANSMIT_REG_RSVD_7_6_CLEAR (~(0x3 << 6))
6153#define MAX77759_USB_TRANSMIT_REG_RETRY_COUNTER_SHIFT 4
6154#define MAX77759_USB_TRANSMIT_REG_RETRY_COUNTER_MASK (0x3 << 4)
6155#define MAX77759_USB_TRANSMIT_REG_RETRY_COUNTER_CLEAR (~(0x3 << 4))
6156#define MAX77759_USB_TRANSMIT_REG_RSVD_3_SHIFT 3
6157#define MAX77759_USB_TRANSMIT_REG_RSVD_3_MASK (0x1 << 3)
6158#define MAX77759_USB_TRANSMIT_REG_RSVD_3_CLEAR (~(0x1 << 3))
6159#define MAX77759_USB_TRANSMIT_REG_TX_SOP_MESSAGE_SHIFT 0
6160#define MAX77759_USB_TRANSMIT_REG_TX_SOP_MESSAGE_MASK (0x7 << 0)
6161#define MAX77759_USB_TRANSMIT_REG_TX_SOP_MESSAGE_CLEAR (~(0x7 << 0))
6162
6163MAX77759_BFF(usb_transmit_reg_rsvd_7_6,7,6)
6164MAX77759_BFF(usb_transmit_reg_retry_counter,5,4)
6165MAX77759_BFF(usb_transmit_reg_rsvd_3,3,3)
6166MAX77759_BFF(usb_transmit_reg_tx_sop_message,2,0)
6167static inline const char *
6168max77759_usb_transmit_reg_cstr(char *buff, size_t len, int val)
6169{
6170#ifdef SCNPRINTF
6171 int i = 0;
6172
6173 i += SCNPRINTF(&buff[i], len - i, " RSVD_7_6=%x",
6174 FIELD2VALUE(MAX77759_USB_TRANSMIT_REG_RSVD_7_6, val));
6175 i += SCNPRINTF(&buff[i], len - i, " RETRY_COUNTER=%x",
6176 FIELD2VALUE(MAX77759_USB_TRANSMIT_REG_RETRY_COUNTER, val));
6177 i += SCNPRINTF(&buff[i], len - i, " RSVD_3=%x",
6178 FIELD2VALUE(MAX77759_USB_TRANSMIT_REG_RSVD_3, val));
6179 i += SCNPRINTF(&buff[i], len - i, " TX_SOP_MESSAGE=%x",
6180 FIELD2VALUE(MAX77759_USB_TRANSMIT_REG_TX_SOP_MESSAGE, val));
6181#else
6182 buff[0] = 0;
6183#endif
6184 return buff;
6185}
6186
6187/*
6188 * TRANSMIT_BUFFER_REG,0x51,0b00000000,0x00
6189 * TRANSMIT_BUFFER[7:0],,,,,,
6190 */
6191#define MAX77759_USB_TRANSMIT_BUFFER_REG 0x51
6192
6193/*
6194 * VBUS_VOLTAGE_L,0x70,0b00000000,0x00
6195 * VBUS_VOLTAGE7_0[7:0],,,,,,
6196 */
6197#define MAX77759_USB_VBUS_VOLTAGE_L 0x70
6198
6199/*
6200 * VBUS_VOLTAGE_H,0x71,0b00000000,0x00
6201 * RSVD_7_4[3:0],,,,SCALE_FACTOR[1:0],,VBUS_VOLTAGE9_8[1:0]
6202 */
6203#define MAX77759_USB_VBUS_VOLTAGE_H 0x71
6204
6205#define MAX77759_USB_VBUS_VOLTAGE_H_RSVD_7_4_SHIFT 4
6206#define MAX77759_USB_VBUS_VOLTAGE_H_RSVD_7_4_MASK (0xf << 4)
6207#define MAX77759_USB_VBUS_VOLTAGE_H_RSVD_7_4_CLEAR (~(0xf << 4))
6208#define MAX77759_USB_VBUS_VOLTAGE_H_SCALE_FACTOR_SHIFT 2
6209#define MAX77759_USB_VBUS_VOLTAGE_H_SCALE_FACTOR_MASK (0x3 << 2)
6210#define MAX77759_USB_VBUS_VOLTAGE_H_SCALE_FACTOR_CLEAR (~(0x3 << 2))
6211#define MAX77759_USB_VBUS_VOLTAGE_H_VBUS_VOLTAGE9_8_SHIFT 0
6212#define MAX77759_USB_VBUS_VOLTAGE_H_VBUS_VOLTAGE9_8_MASK (0x3 << 0)
6213#define MAX77759_USB_VBUS_VOLTAGE_H_VBUS_VOLTAGE9_8_CLEAR (~(0x3 << 0))
6214
6215MAX77759_BFF(usb_vbus_voltage_h_rsvd_7_4,7,4)
6216MAX77759_BFF(usb_vbus_voltage_h_scale_factor,3,2)
6217MAX77759_BFF(usb_vbus_voltage_h_vbus_voltage9_8,1,0)
6218static inline const char *
6219max77759_usb_vbus_voltage_h_cstr(char *buff, size_t len, int val)
6220{
6221#ifdef SCNPRINTF
6222 int i = 0;
6223
6224 i += SCNPRINTF(&buff[i], len - i, " RSVD_7_4=%x",
6225 FIELD2VALUE(MAX77759_USB_VBUS_VOLTAGE_H_RSVD_7_4, val));
6226 i += SCNPRINTF(&buff[i], len - i, " SCALE_FACTOR=%x",
6227 FIELD2VALUE(MAX77759_USB_VBUS_VOLTAGE_H_SCALE_FACTOR, val));
6228 i += SCNPRINTF(&buff[i], len - i, " VBUS_VOLTAGE9_8=%x",
6229 FIELD2VALUE(MAX77759_USB_VBUS_VOLTAGE_H_VBUS_VOLTAGE9_8, val));
6230#else
6231 buff[0] = 0;
6232#endif
6233 return buff;
6234}
6235
6236/*
6237 * VBUS_SNK_DISC_L,0x72,0b10001100,0x8c
6238 * VBUS_SNK_DISC7_0[7:0],,,,,,
6239 */
6240#define MAX77759_USB_VBUS_SNK_DISC_L 0x72
6241
6242/*
6243 * VBUS_SNK_DISC_H,0x73,0b00000000,0x00
6244 * RSVD_7_2[5:0],,,,,,VBUS_SNK_DISC9_8[1:0]
6245 */
6246#define MAX77759_USB_VBUS_SNK_DISC_H 0x73
6247
6248#define MAX77759_USB_VBUS_SNK_DISC_H_RSVD_7_2_SHIFT 2
6249#define MAX77759_USB_VBUS_SNK_DISC_H_RSVD_7_2_MASK (0x3f << 2)
6250#define MAX77759_USB_VBUS_SNK_DISC_H_RSVD_7_2_CLEAR (~(0x3f << 2))
6251#define MAX77759_USB_VBUS_SNK_DISC_H_VBUS_SNK_DISC9_8_SHIFT 0
6252#define MAX77759_USB_VBUS_SNK_DISC_H_VBUS_SNK_DISC9_8_MASK (0x3 << 0)
6253#define MAX77759_USB_VBUS_SNK_DISC_H_VBUS_SNK_DISC9_8_CLEAR (~(0x3 << 0))
6254
6255MAX77759_BFF(usb_vbus_snk_disc_h_rsvd_7_2,7,2)
6256MAX77759_BFF(usb_vbus_snk_disc_h_vbus_snk_disc9_8,1,0)
6257static inline const char *
6258max77759_usb_vbus_snk_disc_h_cstr(char *buff, size_t len, int val)
6259{
6260#ifdef SCNPRINTF
6261 int i = 0;
6262
6263 i += SCNPRINTF(&buff[i], len - i, " RSVD_7_2=%x",
6264 FIELD2VALUE(MAX77759_USB_VBUS_SNK_DISC_H_RSVD_7_2, val));
6265 i += SCNPRINTF(&buff[i], len - i, " VBUS_SNK_DISC9_8=%x",
6266 FIELD2VALUE(MAX77759_USB_VBUS_SNK_DISC_H_VBUS_SNK_DISC9_8, val));
6267#else
6268 buff[0] = 0;
6269#endif
6270 return buff;
6271}
6272
6273/*
6274 * VBUS_STOP_DISCHARGE_THRESHOLD_L,0x74,0b00100000,0x20
6275 * VBUS_STOP_DISCH_THRESHOLD7_0[7:0],,,,,,
6276 */
6277#define MAX77759_USB_VBUS_STOP_DISCHARGE_THRESHOLD_L 0x74
6278
6279/*
6280 * VBUS_STOP_DISCHARGE_THRESHOLD_H,0x75,0b00000000,0x00
6281 * RSVD_7_2[5:0],,,,,,VBUS_STOP_DISCH_THRESHOLD9_8[1:0]
6282 */
6283#define MAX77759_USB_VBUS_STOP_DISCHARGE_THRESHOLD_H 0x75
6284
6285#define MAX77759_USB_VBUS_STOP_DISCHARGE_THRESHOLD_H_RSVD_7_2_SHIFT 2
6286#define MAX77759_USB_VBUS_STOP_DISCHARGE_THRESHOLD_H_RSVD_7_2_MASK (0x3f << 2)
6287#define MAX77759_USB_VBUS_STOP_DISCHARGE_THRESHOLD_H_RSVD_7_2_CLEAR (~(0x3f << 2))
6288#define MAX77759_USB_VBUS_STOP_DISCHARGE_THRESHOLD_H_VBUS_STOP_DISCH_THRESHOLD9_8_SHIFT 0
6289#define MAX77759_USB_VBUS_STOP_DISCHARGE_THRESHOLD_H_VBUS_STOP_DISCH_THRESHOLD9_8_MASK (0x3 << 0)
6290#define MAX77759_USB_VBUS_STOP_DISCHARGE_THRESHOLD_H_VBUS_STOP_DISCH_THRESHOLD9_8_CLEAR (~(0x3 << 0))
6291
6292MAX77759_BFF(usb_vbus_stop_discharge_threshold_h_rsvd_7_2,7,2)
6293MAX77759_BFF(usb_vbus_stop_discharge_threshold_h_vbus_stop_disch_threshold9_8,1,0)
6294static inline const char *
6295max77759_usb_vbus_stop_discharge_threshold_h_cstr(char *buff, size_t len, int val)
6296{
6297#ifdef SCNPRINTF
6298 int i = 0;
6299
6300 i += SCNPRINTF(&buff[i], len - i, " RSVD_7_2=%x",
6301 FIELD2VALUE(MAX77759_USB_VBUS_STOP_DISCHARGE_THRESHOLD_H_RSVD_7_2, val));
6302 i += SCNPRINTF(&buff[i], len - i, " VBUS_STOP_DISCH_THRESHOLD9_8=%x",
6303 FIELD2VALUE(MAX77759_USB_VBUS_STOP_DISCHARGE_THRESHOLD_H_VBUS_STOP_DISCH_THRESHOLD9_8, val));
6304#else
6305 buff[0] = 0;
6306#endif
6307 return buff;
6308}
6309
6310/*
6311 * VBUS_VOLTAGE_ALARM_HI_CFG_L,0x76,0b00000000,0x00
6312 * VBUS_ALARM_HI_CFG7_0[7:0],,,,,,
6313 */
6314#define MAX77759_USB_VBUS_VOLTAGE_ALARM_HI_CFG_L 0x76
6315
6316/*
6317 * VBUS_VOLTAGE_ALARM_HI_CFG_H,0x77,0b00000000,0x00
6318 * RSVD_7_2[5:0],,,,,,VBUS_ALARM_HI_CFG9_8[1:0]
6319 */
6320#define MAX77759_USB_VBUS_VOLTAGE_ALARM_HI_CFG_H 0x77
6321
6322#define MAX77759_USB_VBUS_VOLTAGE_ALARM_HI_CFG_H_RSVD_7_2_SHIFT 2
6323#define MAX77759_USB_VBUS_VOLTAGE_ALARM_HI_CFG_H_RSVD_7_2_MASK (0x3f << 2)
6324#define MAX77759_USB_VBUS_VOLTAGE_ALARM_HI_CFG_H_RSVD_7_2_CLEAR (~(0x3f << 2))
6325#define MAX77759_USB_VBUS_VOLTAGE_ALARM_HI_CFG_H_VBUS_ALARM_HI_CFG9_8_SHIFT 0
6326#define MAX77759_USB_VBUS_VOLTAGE_ALARM_HI_CFG_H_VBUS_ALARM_HI_CFG9_8_MASK (0x3 << 0)
6327#define MAX77759_USB_VBUS_VOLTAGE_ALARM_HI_CFG_H_VBUS_ALARM_HI_CFG9_8_CLEAR (~(0x3 << 0))
6328
6329MAX77759_BFF(usb_vbus_voltage_alarm_hi_cfg_h_rsvd_7_2,7,2)
6330MAX77759_BFF(usb_vbus_voltage_alarm_hi_cfg_h_vbus_alarm_hi_cfg9_8,1,0)
6331static inline const char *
6332max77759_usb_vbus_voltage_alarm_hi_cfg_h_cstr(char *buff, size_t len, int val)
6333{
6334#ifdef SCNPRINTF
6335 int i = 0;
6336
6337 i += SCNPRINTF(&buff[i], len - i, " RSVD_7_2=%x",
6338 FIELD2VALUE(MAX77759_USB_VBUS_VOLTAGE_ALARM_HI_CFG_H_RSVD_7_2, val));
6339 i += SCNPRINTF(&buff[i], len - i, " VBUS_ALARM_HI_CFG9_8=%x",
6340 FIELD2VALUE(MAX77759_USB_VBUS_VOLTAGE_ALARM_HI_CFG_H_VBUS_ALARM_HI_CFG9_8, val));
6341#else
6342 buff[0] = 0;
6343#endif
6344 return buff;
6345}
6346
6347/*
6348 * VBUS_VOLTAGE_ALARM_LO_CFG_L,0x78,0b00000000,0x00
6349 * VBUS_ALARM_LO_CFG_7_0[7:0],,,,,,
6350 */
6351#define MAX77759_USB_VBUS_VOLTAGE_ALARM_LO_CFG_L 0x78
6352
6353/*
6354 * VBUS_VOLTAGE_ALARM_LO_CFG_H,0x79,0b00000000,0x00
6355 * RSVD_7_2[5:0],,,,,,VBUS_ALARM_LO_CFG9_8[1:0]
6356 */
6357#define MAX77759_USB_VBUS_VOLTAGE_ALARM_LO_CFG_H 0x79
6358
6359#define MAX77759_USB_VBUS_VOLTAGE_ALARM_LO_CFG_H_RSVD_7_2_SHIFT 2
6360#define MAX77759_USB_VBUS_VOLTAGE_ALARM_LO_CFG_H_RSVD_7_2_MASK (0x3f << 2)
6361#define MAX77759_USB_VBUS_VOLTAGE_ALARM_LO_CFG_H_RSVD_7_2_CLEAR (~(0x3f << 2))
6362#define MAX77759_USB_VBUS_VOLTAGE_ALARM_LO_CFG_H_VBUS_ALARM_LO_CFG9_8_SHIFT 0
6363#define MAX77759_USB_VBUS_VOLTAGE_ALARM_LO_CFG_H_VBUS_ALARM_LO_CFG9_8_MASK (0x3 << 0)
6364#define MAX77759_USB_VBUS_VOLTAGE_ALARM_LO_CFG_H_VBUS_ALARM_LO_CFG9_8_CLEAR (~(0x3 << 0))
6365
6366MAX77759_BFF(usb_vbus_voltage_alarm_lo_cfg_h_rsvd_7_2,7,2)
6367MAX77759_BFF(usb_vbus_voltage_alarm_lo_cfg_h_vbus_alarm_lo_cfg9_8,1,0)
6368static inline const char *
6369max77759_usb_vbus_voltage_alarm_lo_cfg_h_cstr(char *buff, size_t len, int val)
6370{
6371#ifdef SCNPRINTF
6372 int i = 0;
6373
6374 i += SCNPRINTF(&buff[i], len - i, " RSVD_7_2=%x",
6375 FIELD2VALUE(MAX77759_USB_VBUS_VOLTAGE_ALARM_LO_CFG_H_RSVD_7_2, val));
6376 i += SCNPRINTF(&buff[i], len - i, " VBUS_ALARM_LO_CFG9_8=%x",
6377 FIELD2VALUE(MAX77759_USB_VBUS_VOLTAGE_ALARM_LO_CFG_H_VBUS_ALARM_LO_CFG9_8, val));
6378#else
6379 buff[0] = 0;
6380#endif
6381 return buff;
6382}
6383
6384/*
6385 * VENDOR_ALERT1,0x80,0b00000000,0x00
6386 * SPR_7_6[1:0],,dnVdatRefInt,chgTypRunFInt,chgTypRunRInt,prChgTypInt,dcdTmoInt
6387 */
6388#define MAX77759_USB_VENDOR_ALERT1 0x80
6389#define MAX77759_USB_VENDOR_ALERT1_DNVDATREFINT (0x1 << 5)
6390#define MAX77759_USB_VENDOR_ALERT1_CHGTYPRUNFINT (0x1 << 4)
6391#define MAX77759_USB_VENDOR_ALERT1_CHGTYPRUNRINT (0x1 << 3)
6392#define MAX77759_USB_VENDOR_ALERT1_PRCHGTYPINT (0x1 << 2)
6393#define MAX77759_USB_VENDOR_ALERT1_DCDTMOINT (0x1 << 1)
6394#define MAX77759_USB_VENDOR_ALERT1_CHGTYPINT (0x1 << 0)
6395
6396#define MAX77759_USB_VENDOR_ALERT1_SPR_7_6_SHIFT 6
6397#define MAX77759_USB_VENDOR_ALERT1_SPR_7_6_MASK (0x3 << 6)
6398#define MAX77759_USB_VENDOR_ALERT1_SPR_7_6_CLEAR (~(0x3 << 6))
6399#define MAX77759_USB_VENDOR_ALERT1_DNVDATREFINT_SHIFT 5
6400#define MAX77759_USB_VENDOR_ALERT1_DNVDATREFINT_MASK (0x1 << 5)
6401#define MAX77759_USB_VENDOR_ALERT1_DNVDATREFINT_CLEAR (~(0x1 << 5))
6402#define MAX77759_USB_VENDOR_ALERT1_CHGTYPRUNFINT_SHIFT 4
6403#define MAX77759_USB_VENDOR_ALERT1_CHGTYPRUNFINT_MASK (0x1 << 4)
6404#define MAX77759_USB_VENDOR_ALERT1_CHGTYPRUNFINT_CLEAR (~(0x1 << 4))
6405#define MAX77759_USB_VENDOR_ALERT1_CHGTYPRUNRINT_SHIFT 3
6406#define MAX77759_USB_VENDOR_ALERT1_CHGTYPRUNRINT_MASK (0x1 << 3)
6407#define MAX77759_USB_VENDOR_ALERT1_CHGTYPRUNRINT_CLEAR (~(0x1 << 3))
6408#define MAX77759_USB_VENDOR_ALERT1_PRCHGTYPINT_SHIFT 2
6409#define MAX77759_USB_VENDOR_ALERT1_PRCHGTYPINT_MASK (0x1 << 2)
6410#define MAX77759_USB_VENDOR_ALERT1_PRCHGTYPINT_CLEAR (~(0x1 << 2))
6411#define MAX77759_USB_VENDOR_ALERT1_DCDTMOINT_SHIFT 1
6412#define MAX77759_USB_VENDOR_ALERT1_DCDTMOINT_MASK (0x1 << 1)
6413#define MAX77759_USB_VENDOR_ALERT1_DCDTMOINT_CLEAR (~(0x1 << 1))
6414#define MAX77759_USB_VENDOR_ALERT1_CHGTYPINT_SHIFT 0
6415#define MAX77759_USB_VENDOR_ALERT1_CHGTYPINT_MASK (0x1 << 0)
6416#define MAX77759_USB_VENDOR_ALERT1_CHGTYPINT_CLEAR (~(0x1 << 0))
6417
6418MAX77759_BFF(usb_vendor_alert1_spr_7_6,7,6)
6419MAX77759_BFF(usb_vendor_alert1_dnvdatrefint,5,5)
6420MAX77759_BFF(usb_vendor_alert1_chgtyprunfint,4,4)
6421MAX77759_BFF(usb_vendor_alert1_chgtyprunrint,3,3)
6422MAX77759_BFF(usb_vendor_alert1_prchgtypint,2,2)
6423MAX77759_BFF(usb_vendor_alert1_dcdtmoint,1,1)
6424MAX77759_BFF(usb_vendor_alert1_chgtypint,0,0)
6425static inline const char *
6426max77759_usb_vendor_alert1_cstr(char *buff, size_t len, int val)
6427{
6428#ifdef SCNPRINTF
6429 int i = 0;
6430
6431 i += SCNPRINTF(&buff[i], len - i, " SPR_7_6=%x",
6432 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT1_SPR_7_6, val));
6433 i += SCNPRINTF(&buff[i], len - i, " DNVDATREFINT=%x",
6434 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT1_DNVDATREFINT, val));
6435 i += SCNPRINTF(&buff[i], len - i, " CHGTYPRUNFINT=%x",
6436 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT1_CHGTYPRUNFINT, val));
6437 i += SCNPRINTF(&buff[i], len - i, " CHGTYPRUNRINT=%x",
6438 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT1_CHGTYPRUNRINT, val));
6439 i += SCNPRINTF(&buff[i], len - i, " PRCHGTYPINT=%x",
6440 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT1_PRCHGTYPINT, val));
6441 i += SCNPRINTF(&buff[i], len - i, " DCDTMOINT=%x",
6442 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT1_DCDTMOINT, val));
6443 i += SCNPRINTF(&buff[i], len - i, " CHGTYPINT=%x",
6444 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT1_CHGTYPINT, val));
6445#else
6446 buff[0] = 0;
6447#endif
6448 return buff;
6449}
6450
6451/*
6452 * VENDOR_ALERT2,0x81,0b00000000,0x00
6453 * SBU_OVPint,USB_OVPint,CC_OVPint,SPR_4_3[1:0],,CCVCNSCInt,FLASH_ADCInt
6454 */
6455#define MAX77759_USB_VENDOR_ALERT2 0x81
6456#define MAX77759_USB_VENDOR_ALERT2_SBU_OVPINT (0x1 << 7)
6457#define MAX77759_USB_VENDOR_ALERT2_USB_OVPINT (0x1 << 6)
6458#define MAX77759_USB_VENDOR_ALERT2_CC_OVPINT (0x1 << 5)
6459#define MAX77759_USB_VENDOR_ALERT2_CCVCNSCINT (0x1 << 2)
6460#define MAX77759_USB_VENDOR_ALERT2_FLASH_ADCINT (0x1 << 1)
6461#define MAX77759_USB_VENDOR_ALERT2_RX_MSG_DISC (0x1 << 0)
6462
6463#define MAX77759_USB_VENDOR_ALERT2_SBU_OVPINT_SHIFT 7
6464#define MAX77759_USB_VENDOR_ALERT2_SBU_OVPINT_MASK (0x1 << 7)
6465#define MAX77759_USB_VENDOR_ALERT2_SBU_OVPINT_CLEAR (~(0x1 << 7))
6466#define MAX77759_USB_VENDOR_ALERT2_USB_OVPINT_SHIFT 6
6467#define MAX77759_USB_VENDOR_ALERT2_USB_OVPINT_MASK (0x1 << 6)
6468#define MAX77759_USB_VENDOR_ALERT2_USB_OVPINT_CLEAR (~(0x1 << 6))
6469#define MAX77759_USB_VENDOR_ALERT2_CC_OVPINT_SHIFT 5
6470#define MAX77759_USB_VENDOR_ALERT2_CC_OVPINT_MASK (0x1 << 5)
6471#define MAX77759_USB_VENDOR_ALERT2_CC_OVPINT_CLEAR (~(0x1 << 5))
6472#define MAX77759_USB_VENDOR_ALERT2_SPR_4_3_SHIFT 3
6473#define MAX77759_USB_VENDOR_ALERT2_SPR_4_3_MASK (0x3 << 3)
6474#define MAX77759_USB_VENDOR_ALERT2_SPR_4_3_CLEAR (~(0x3 << 3))
6475#define MAX77759_USB_VENDOR_ALERT2_CCVCNSCINT_SHIFT 2
6476#define MAX77759_USB_VENDOR_ALERT2_CCVCNSCINT_MASK (0x1 << 2)
6477#define MAX77759_USB_VENDOR_ALERT2_CCVCNSCINT_CLEAR (~(0x1 << 2))
6478#define MAX77759_USB_VENDOR_ALERT2_FLASH_ADCINT_SHIFT 1
6479#define MAX77759_USB_VENDOR_ALERT2_FLASH_ADCINT_MASK (0x1 << 1)
6480#define MAX77759_USB_VENDOR_ALERT2_FLASH_ADCINT_CLEAR (~(0x1 << 1))
6481#define MAX77759_USB_VENDOR_ALERT2_RX_MSG_DISC_SHIFT 0
6482#define MAX77759_USB_VENDOR_ALERT2_RX_MSG_DISC_MASK (0x1 << 0)
6483#define MAX77759_USB_VENDOR_ALERT2_RX_MSG_DISC_CLEAR (~(0x1 << 0))
6484
6485MAX77759_BFF(usb_vendor_alert2_sbu_ovpint,7,7)
6486MAX77759_BFF(usb_vendor_alert2_usb_ovpint,6,6)
6487MAX77759_BFF(usb_vendor_alert2_cc_ovpint,5,5)
6488MAX77759_BFF(usb_vendor_alert2_spr_4_3,4,3)
6489MAX77759_BFF(usb_vendor_alert2_ccvcnscint,2,2)
6490MAX77759_BFF(usb_vendor_alert2_flash_adcint,1,1)
6491MAX77759_BFF(usb_vendor_alert2_rx_msg_disc,0,0)
6492static inline const char *
6493max77759_usb_vendor_alert2_cstr(char *buff, size_t len, int val)
6494{
6495#ifdef SCNPRINTF
6496 int i = 0;
6497
6498 i += SCNPRINTF(&buff[i], len - i, " SBU_OVPINT=%x",
6499 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT2_SBU_OVPINT, val));
6500 i += SCNPRINTF(&buff[i], len - i, " USB_OVPINT=%x",
6501 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT2_USB_OVPINT, val));
6502 i += SCNPRINTF(&buff[i], len - i, " CC_OVPINT=%x",
6503 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT2_CC_OVPINT, val));
6504 i += SCNPRINTF(&buff[i], len - i, " SPR_4_3=%x",
6505 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT2_SPR_4_3, val));
6506 i += SCNPRINTF(&buff[i], len - i, " CCVCNSCINT=%x",
6507 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT2_CCVCNSCINT, val));
6508 i += SCNPRINTF(&buff[i], len - i, " FLASH_ADCINT=%x",
6509 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT2_FLASH_ADCINT, val));
6510 i += SCNPRINTF(&buff[i], len - i, " RX_MSG_DISC=%x",
6511 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT2_RX_MSG_DISC, val));
6512#else
6513 buff[0] = 0;
6514#endif
6515 return buff;
6516}
6517
6518/*
6519 * VENDOR_ALERT_MASK1,0x82,0b11111111,0xff
6520 * SPR_7_6[1:0],,MSK_dnVDatRef,MSK_chgTypRunF,MSK_chgTypRunR,MSK_PrchgTyp,MSK_dcdTmo
6521 */
6522#define MAX77759_USB_VENDOR_ALERT_MASK1 0x82
6523#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_DNVDATREF (0x1 << 5)
6524#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_CHGTYPRUNF (0x1 << 4)
6525#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_CHGTYPRUNR (0x1 << 3)
6526#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_PRCHGTYP (0x1 << 2)
6527#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_DCDTMO (0x1 << 1)
6528#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_CHGTYP (0x1 << 0)
6529
6530#define MAX77759_USB_VENDOR_ALERT_MASK1_SPR_7_6_SHIFT 6
6531#define MAX77759_USB_VENDOR_ALERT_MASK1_SPR_7_6_MASK (0x3 << 6)
6532#define MAX77759_USB_VENDOR_ALERT_MASK1_SPR_7_6_CLEAR (~(0x3 << 6))
6533#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_DNVDATREF_SHIFT 5
6534#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_DNVDATREF_MASK (0x1 << 5)
6535#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_DNVDATREF_CLEAR (~(0x1 << 5))
6536#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_CHGTYPRUNF_SHIFT 4
6537#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_CHGTYPRUNF_MASK (0x1 << 4)
6538#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_CHGTYPRUNF_CLEAR (~(0x1 << 4))
6539#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_CHGTYPRUNR_SHIFT 3
6540#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_CHGTYPRUNR_MASK (0x1 << 3)
6541#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_CHGTYPRUNR_CLEAR (~(0x1 << 3))
6542#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_PRCHGTYP_SHIFT 2
6543#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_PRCHGTYP_MASK (0x1 << 2)
6544#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_PRCHGTYP_CLEAR (~(0x1 << 2))
6545#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_DCDTMO_SHIFT 1
6546#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_DCDTMO_MASK (0x1 << 1)
6547#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_DCDTMO_CLEAR (~(0x1 << 1))
6548#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_CHGTYP_SHIFT 0
6549#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_CHGTYP_MASK (0x1 << 0)
6550#define MAX77759_USB_VENDOR_ALERT_MASK1_MSK_CHGTYP_CLEAR (~(0x1 << 0))
6551
6552MAX77759_BFF(usb_vendor_alert_mask1_spr_7_6,7,6)
6553MAX77759_BFF(usb_vendor_alert_mask1_msk_dnvdatref,5,5)
6554MAX77759_BFF(usb_vendor_alert_mask1_msk_chgtyprunf,4,4)
6555MAX77759_BFF(usb_vendor_alert_mask1_msk_chgtyprunr,3,3)
6556MAX77759_BFF(usb_vendor_alert_mask1_msk_prchgtyp,2,2)
6557MAX77759_BFF(usb_vendor_alert_mask1_msk_dcdtmo,1,1)
6558MAX77759_BFF(usb_vendor_alert_mask1_msk_chgtyp,0,0)
6559static inline const char *
6560max77759_usb_vendor_alert_mask1_cstr(char *buff, size_t len, int val)
6561{
6562#ifdef SCNPRINTF
6563 int i = 0;
6564
6565 i += SCNPRINTF(&buff[i], len - i, " SPR_7_6=%x",
6566 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT_MASK1_SPR_7_6, val));
6567 i += SCNPRINTF(&buff[i], len - i, " MSK_DNVDATREF=%x",
6568 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT_MASK1_MSK_DNVDATREF, val));
6569 i += SCNPRINTF(&buff[i], len - i, " MSK_CHGTYPRUNF=%x",
6570 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT_MASK1_MSK_CHGTYPRUNF, val));
6571 i += SCNPRINTF(&buff[i], len - i, " MSK_CHGTYPRUNR=%x",
6572 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT_MASK1_MSK_CHGTYPRUNR, val));
6573 i += SCNPRINTF(&buff[i], len - i, " MSK_PRCHGTYP=%x",
6574 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT_MASK1_MSK_PRCHGTYP, val));
6575 i += SCNPRINTF(&buff[i], len - i, " MSK_DCDTMO=%x",
6576 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT_MASK1_MSK_DCDTMO, val));
6577 i += SCNPRINTF(&buff[i], len - i, " MSK_CHGTYP=%x",
6578 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT_MASK1_MSK_CHGTYP, val));
6579#else
6580 buff[0] = 0;
6581#endif
6582 return buff;
6583}
6584
6585/*
6586 * VENDOR_ALERT_MASK2,0x83,0b11111111,0xff
6587 * MSK_SBU_OVP,MSK_USB_OVP,MSK_CC_OVP,SPR_4_3[1:0],,MSK_CCVCNSCInt,MSK_FLASH_ADCInt
6588 */
6589#define MAX77759_USB_VENDOR_ALERT_MASK2 0x83
6590#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_SBU_OVP (0x1 << 7)
6591#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_USB_OVP (0x1 << 6)
6592#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_CC_OVP (0x1 << 5)
6593#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_CCVCNSCINT (0x1 << 2)
6594#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_FLASH_ADCINT (0x1 << 1)
6595#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_RX_MSG_DISC (0x1 << 0)
6596
6597#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_SBU_OVP_SHIFT 7
6598#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_SBU_OVP_MASK (0x1 << 7)
6599#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_SBU_OVP_CLEAR (~(0x1 << 7))
6600#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_USB_OVP_SHIFT 6
6601#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_USB_OVP_MASK (0x1 << 6)
6602#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_USB_OVP_CLEAR (~(0x1 << 6))
6603#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_CC_OVP_SHIFT 5
6604#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_CC_OVP_MASK (0x1 << 5)
6605#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_CC_OVP_CLEAR (~(0x1 << 5))
6606#define MAX77759_USB_VENDOR_ALERT_MASK2_SPR_4_3_SHIFT 3
6607#define MAX77759_USB_VENDOR_ALERT_MASK2_SPR_4_3_MASK (0x3 << 3)
6608#define MAX77759_USB_VENDOR_ALERT_MASK2_SPR_4_3_CLEAR (~(0x3 << 3))
6609#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_CCVCNSCINT_SHIFT 2
6610#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_CCVCNSCINT_MASK (0x1 << 2)
6611#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_CCVCNSCINT_CLEAR (~(0x1 << 2))
6612#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_FLASH_ADCINT_SHIFT 1
6613#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_FLASH_ADCINT_MASK (0x1 << 1)
6614#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_FLASH_ADCINT_CLEAR (~(0x1 << 1))
6615#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_RX_MSG_DISC_SHIFT 0
6616#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_RX_MSG_DISC_MASK (0x1 << 0)
6617#define MAX77759_USB_VENDOR_ALERT_MASK2_MSK_RX_MSG_DISC_CLEAR (~(0x1 << 0))
6618
6619MAX77759_BFF(usb_vendor_alert_mask2_msk_sbu_ovp,7,7)
6620MAX77759_BFF(usb_vendor_alert_mask2_msk_usb_ovp,6,6)
6621MAX77759_BFF(usb_vendor_alert_mask2_msk_cc_ovp,5,5)
6622MAX77759_BFF(usb_vendor_alert_mask2_spr_4_3,4,3)
6623MAX77759_BFF(usb_vendor_alert_mask2_msk_ccvcnscint,2,2)
6624MAX77759_BFF(usb_vendor_alert_mask2_msk_flash_adcint,1,1)
6625MAX77759_BFF(usb_vendor_alert_mask2_msk_rx_msg_disc,0,0)
6626static inline const char *
6627max77759_usb_vendor_alert_mask2_cstr(char *buff, size_t len, int val)
6628{
6629#ifdef SCNPRINTF
6630 int i = 0;
6631
6632 i += SCNPRINTF(&buff[i], len - i, " MSK_SBU_OVP=%x",
6633 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT_MASK2_MSK_SBU_OVP, val));
6634 i += SCNPRINTF(&buff[i], len - i, " MSK_USB_OVP=%x",
6635 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT_MASK2_MSK_USB_OVP, val));
6636 i += SCNPRINTF(&buff[i], len - i, " MSK_CC_OVP=%x",
6637 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT_MASK2_MSK_CC_OVP, val));
6638 i += SCNPRINTF(&buff[i], len - i, " SPR_4_3=%x",
6639 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT_MASK2_SPR_4_3, val));
6640 i += SCNPRINTF(&buff[i], len - i, " MSK_CCVCNSCINT=%x",
6641 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT_MASK2_MSK_CCVCNSCINT, val));
6642 i += SCNPRINTF(&buff[i], len - i, " MSK_FLASH_ADCINT=%x",
6643 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT_MASK2_MSK_FLASH_ADCINT, val));
6644 i += SCNPRINTF(&buff[i], len - i, " MSK_RX_MSG_DISC=%x",
6645 FIELD2VALUE(MAX77759_USB_VENDOR_ALERT_MASK2_MSK_RX_MSG_DISC, val));
6646#else
6647 buff[0] = 0;
6648#endif
6649 return buff;
6650}
6651
6652/*
6653 * VENDOR_CC_STATUS1,0x84,0b00000000,0x00
6654 * SBU2_OVP,SBU1_OVP,USBDP_OVP,USBDN_OVP,CC2_OVP,CC1_OVP,SPR_1_0[1:0]
6655 */
6656#define MAX77759_USB_VENDOR_CC_STATUS1 0x84
6657#define MAX77759_USB_VENDOR_CC_STATUS1_SBU2_OVP (0x1 << 7)
6658#define MAX77759_USB_VENDOR_CC_STATUS1_SBU1_OVP (0x1 << 6)
6659#define MAX77759_USB_VENDOR_CC_STATUS1_USBDP_OVP (0x1 << 5)
6660#define MAX77759_USB_VENDOR_CC_STATUS1_USBDN_OVP (0x1 << 4)
6661#define MAX77759_USB_VENDOR_CC_STATUS1_CC2_OVP (0x1 << 3)
6662#define MAX77759_USB_VENDOR_CC_STATUS1_CC1_OVP (0x1 << 2)
6663
6664#define MAX77759_USB_VENDOR_CC_STATUS1_SBU2_OVP_SHIFT 7
6665#define MAX77759_USB_VENDOR_CC_STATUS1_SBU2_OVP_MASK (0x1 << 7)
6666#define MAX77759_USB_VENDOR_CC_STATUS1_SBU2_OVP_CLEAR (~(0x1 << 7))
6667#define MAX77759_USB_VENDOR_CC_STATUS1_SBU1_OVP_SHIFT 6
6668#define MAX77759_USB_VENDOR_CC_STATUS1_SBU1_OVP_MASK (0x1 << 6)
6669#define MAX77759_USB_VENDOR_CC_STATUS1_SBU1_OVP_CLEAR (~(0x1 << 6))
6670#define MAX77759_USB_VENDOR_CC_STATUS1_USBDP_OVP_SHIFT 5
6671#define MAX77759_USB_VENDOR_CC_STATUS1_USBDP_OVP_MASK (0x1 << 5)
6672#define MAX77759_USB_VENDOR_CC_STATUS1_USBDP_OVP_CLEAR (~(0x1 << 5))
6673#define MAX77759_USB_VENDOR_CC_STATUS1_USBDN_OVP_SHIFT 4
6674#define MAX77759_USB_VENDOR_CC_STATUS1_USBDN_OVP_MASK (0x1 << 4)
6675#define MAX77759_USB_VENDOR_CC_STATUS1_USBDN_OVP_CLEAR (~(0x1 << 4))
6676#define MAX77759_USB_VENDOR_CC_STATUS1_CC2_OVP_SHIFT 3
6677#define MAX77759_USB_VENDOR_CC_STATUS1_CC2_OVP_MASK (0x1 << 3)
6678#define MAX77759_USB_VENDOR_CC_STATUS1_CC2_OVP_CLEAR (~(0x1 << 3))
6679#define MAX77759_USB_VENDOR_CC_STATUS1_CC1_OVP_SHIFT 2
6680#define MAX77759_USB_VENDOR_CC_STATUS1_CC1_OVP_MASK (0x1 << 2)
6681#define MAX77759_USB_VENDOR_CC_STATUS1_CC1_OVP_CLEAR (~(0x1 << 2))
6682#define MAX77759_USB_VENDOR_CC_STATUS1_SPR_1_0_SHIFT 0
6683#define MAX77759_USB_VENDOR_CC_STATUS1_SPR_1_0_MASK (0x3 << 0)
6684#define MAX77759_USB_VENDOR_CC_STATUS1_SPR_1_0_CLEAR (~(0x3 << 0))
6685
6686MAX77759_BFF(usb_vendor_cc_status1_sbu2_ovp,7,7)
6687MAX77759_BFF(usb_vendor_cc_status1_sbu1_ovp,6,6)
6688MAX77759_BFF(usb_vendor_cc_status1_usbdp_ovp,5,5)
6689MAX77759_BFF(usb_vendor_cc_status1_usbdn_ovp,4,4)
6690MAX77759_BFF(usb_vendor_cc_status1_cc2_ovp,3,3)
6691MAX77759_BFF(usb_vendor_cc_status1_cc1_ovp,2,2)
6692MAX77759_BFF(usb_vendor_cc_status1_spr_1_0,1,0)
6693static inline const char *
6694max77759_usb_vendor_cc_status1_cstr(char *buff, size_t len, int val)
6695{
6696#ifdef SCNPRINTF
6697 int i = 0;
6698
6699 i += SCNPRINTF(&buff[i], len - i, " SBU2_OVP=%x",
6700 FIELD2VALUE(MAX77759_USB_VENDOR_CC_STATUS1_SBU2_OVP, val));
6701 i += SCNPRINTF(&buff[i], len - i, " SBU1_OVP=%x",
6702 FIELD2VALUE(MAX77759_USB_VENDOR_CC_STATUS1_SBU1_OVP, val));
6703 i += SCNPRINTF(&buff[i], len - i, " USBDP_OVP=%x",
6704 FIELD2VALUE(MAX77759_USB_VENDOR_CC_STATUS1_USBDP_OVP, val));
6705 i += SCNPRINTF(&buff[i], len - i, " USBDN_OVP=%x",
6706 FIELD2VALUE(MAX77759_USB_VENDOR_CC_STATUS1_USBDN_OVP, val));
6707 i += SCNPRINTF(&buff[i], len - i, " CC2_OVP=%x",
6708 FIELD2VALUE(MAX77759_USB_VENDOR_CC_STATUS1_CC2_OVP, val));
6709 i += SCNPRINTF(&buff[i], len - i, " CC1_OVP=%x",
6710 FIELD2VALUE(MAX77759_USB_VENDOR_CC_STATUS1_CC1_OVP, val));
6711 i += SCNPRINTF(&buff[i], len - i, " SPR_1_0=%x",
6712 FIELD2VALUE(MAX77759_USB_VENDOR_CC_STATUS1_SPR_1_0, val));
6713#else
6714 buff[0] = 0;
6715#endif
6716 return buff;
6717}
6718
6719/*
6720 * VENDOR_CC_STATUS2,0x85,0b00000000,0x00
6721 * CC2_VDFP_OPEN,CC2_VUFP_RD1P5,CC2_VUFP_RD0P5,CC2_VRA_RD0P5,CC1_VDFP_OPEN,CC1_VUFP_RD1P5,CC1_VUFP_RD0P5
6722 */
6723#define MAX77759_USB_VENDOR_CC_STATUS2 0x85
6724#define MAX77759_USB_VENDOR_CC_STATUS2_CC2_VDFP_OPEN (0x1 << 7)
6725#define MAX77759_USB_VENDOR_CC_STATUS2_CC2_VUFP_RD1P5 (0x1 << 6)
6726#define MAX77759_USB_VENDOR_CC_STATUS2_CC2_VUFP_RD0P5 (0x1 << 5)
6727#define MAX77759_USB_VENDOR_CC_STATUS2_CC2_VRA_RD0P5 (0x1 << 4)
6728#define MAX77759_USB_VENDOR_CC_STATUS2_CC1_VDFP_OPEN (0x1 << 3)
6729#define MAX77759_USB_VENDOR_CC_STATUS2_CC1_VUFP_RD1P5 (0x1 << 2)
6730#define MAX77759_USB_VENDOR_CC_STATUS2_CC1_VUFP_RD0P5 (0x1 << 1)
6731#define MAX77759_USB_VENDOR_CC_STATUS2_CC1_VRA_RD0P5 (0x1 << 0)
6732
6733#define MAX77759_USB_VENDOR_CC_STATUS2_CC2_VDFP_OPEN_SHIFT 7
6734#define MAX77759_USB_VENDOR_CC_STATUS2_CC2_VDFP_OPEN_MASK (0x1 << 7)
6735#define MAX77759_USB_VENDOR_CC_STATUS2_CC2_VDFP_OPEN_CLEAR (~(0x1 << 7))
6736#define MAX77759_USB_VENDOR_CC_STATUS2_CC2_VUFP_RD1P5_SHIFT 6
6737#define MAX77759_USB_VENDOR_CC_STATUS2_CC2_VUFP_RD1P5_MASK (0x1 << 6)
6738#define MAX77759_USB_VENDOR_CC_STATUS2_CC2_VUFP_RD1P5_CLEAR (~(0x1 << 6))
6739#define MAX77759_USB_VENDOR_CC_STATUS2_CC2_VUFP_RD0P5_SHIFT 5
6740#define MAX77759_USB_VENDOR_CC_STATUS2_CC2_VUFP_RD0P5_MASK (0x1 << 5)
6741#define MAX77759_USB_VENDOR_CC_STATUS2_CC2_VUFP_RD0P5_CLEAR (~(0x1 << 5))
6742#define MAX77759_USB_VENDOR_CC_STATUS2_CC2_VRA_RD0P5_SHIFT 4
6743#define MAX77759_USB_VENDOR_CC_STATUS2_CC2_VRA_RD0P5_MASK (0x1 << 4)
6744#define MAX77759_USB_VENDOR_CC_STATUS2_CC2_VRA_RD0P5_CLEAR (~(0x1 << 4))
6745#define MAX77759_USB_VENDOR_CC_STATUS2_CC1_VDFP_OPEN_SHIFT 3
6746#define MAX77759_USB_VENDOR_CC_STATUS2_CC1_VDFP_OPEN_MASK (0x1 << 3)
6747#define MAX77759_USB_VENDOR_CC_STATUS2_CC1_VDFP_OPEN_CLEAR (~(0x1 << 3))
6748#define MAX77759_USB_VENDOR_CC_STATUS2_CC1_VUFP_RD1P5_SHIFT 2
6749#define MAX77759_USB_VENDOR_CC_STATUS2_CC1_VUFP_RD1P5_MASK (0x1 << 2)
6750#define MAX77759_USB_VENDOR_CC_STATUS2_CC1_VUFP_RD1P5_CLEAR (~(0x1 << 2))
6751#define MAX77759_USB_VENDOR_CC_STATUS2_CC1_VUFP_RD0P5_SHIFT 1
6752#define MAX77759_USB_VENDOR_CC_STATUS2_CC1_VUFP_RD0P5_MASK (0x1 << 1)
6753#define MAX77759_USB_VENDOR_CC_STATUS2_CC1_VUFP_RD0P5_CLEAR (~(0x1 << 1))
6754#define MAX77759_USB_VENDOR_CC_STATUS2_CC1_VRA_RD0P5_SHIFT 0
6755#define MAX77759_USB_VENDOR_CC_STATUS2_CC1_VRA_RD0P5_MASK (0x1 << 0)
6756#define MAX77759_USB_VENDOR_CC_STATUS2_CC1_VRA_RD0P5_CLEAR (~(0x1 << 0))
6757
6758MAX77759_BFF(usb_vendor_cc_status2_cc2_vdfp_open,7,7)
6759MAX77759_BFF(usb_vendor_cc_status2_cc2_vufp_rd1p5,6,6)
6760MAX77759_BFF(usb_vendor_cc_status2_cc2_vufp_rd0p5,5,5)
6761MAX77759_BFF(usb_vendor_cc_status2_cc2_vra_rd0p5,4,4)
6762MAX77759_BFF(usb_vendor_cc_status2_cc1_vdfp_open,3,3)
6763MAX77759_BFF(usb_vendor_cc_status2_cc1_vufp_rd1p5,2,2)
6764MAX77759_BFF(usb_vendor_cc_status2_cc1_vufp_rd0p5,1,1)
6765MAX77759_BFF(usb_vendor_cc_status2_cc1_vra_rd0p5,0,0)
6766static inline const char *
6767max77759_usb_vendor_cc_status2_cstr(char *buff, size_t len, int val)
6768{
6769#ifdef SCNPRINTF
6770 int i = 0;
6771
6772 i += SCNPRINTF(&buff[i], len - i, " CC2_VDFP_OPEN=%x",
6773 FIELD2VALUE(MAX77759_USB_VENDOR_CC_STATUS2_CC2_VDFP_OPEN, val));
6774 i += SCNPRINTF(&buff[i], len - i, " CC2_VUFP_RD1P5=%x",
6775 FIELD2VALUE(MAX77759_USB_VENDOR_CC_STATUS2_CC2_VUFP_RD1P5, val));
6776 i += SCNPRINTF(&buff[i], len - i, " CC2_VUFP_RD0P5=%x",
6777 FIELD2VALUE(MAX77759_USB_VENDOR_CC_STATUS2_CC2_VUFP_RD0P5, val));
6778 i += SCNPRINTF(&buff[i], len - i, " CC2_VRA_RD0P5=%x",
6779 FIELD2VALUE(MAX77759_USB_VENDOR_CC_STATUS2_CC2_VRA_RD0P5, val));
6780 i += SCNPRINTF(&buff[i], len - i, " CC1_VDFP_OPEN=%x",
6781 FIELD2VALUE(MAX77759_USB_VENDOR_CC_STATUS2_CC1_VDFP_OPEN, val));
6782 i += SCNPRINTF(&buff[i], len - i, " CC1_VUFP_RD1P5=%x",
6783 FIELD2VALUE(MAX77759_USB_VENDOR_CC_STATUS2_CC1_VUFP_RD1P5, val));
6784 i += SCNPRINTF(&buff[i], len - i, " CC1_VUFP_RD0P5=%x",
6785 FIELD2VALUE(MAX77759_USB_VENDOR_CC_STATUS2_CC1_VUFP_RD0P5, val));
6786 i += SCNPRINTF(&buff[i], len - i, " CC1_VRA_RD0P5=%x",
6787 FIELD2VALUE(MAX77759_USB_VENDOR_CC_STATUS2_CC1_VRA_RD0P5, val));
6788#else
6789 buff[0] = 0;
6790#endif
6791 return buff;
6792}
6793
6794/*
6795 * VENDOR_CC_STATUS3,0x86,0b00000000,0x00
6796 * ccVcnSc,ccVcnOCP,SPR_5_1[4:0],,,,
6797 */
6798#define MAX77759_USB_VENDOR_CC_STATUS3 0x86
6799#define MAX77759_USB_VENDOR_CC_STATUS3_CCVCNSC (0x1 << 7)
6800#define MAX77759_USB_VENDOR_CC_STATUS3_CCVCNOCP (0x1 << 6)
6801#define MAX77759_USB_VENDOR_CC_STATUS3_CCVCNSTAT (0x1 << 0)
6802
6803#define MAX77759_USB_VENDOR_CC_STATUS3_CCVCNSC_SHIFT 7
6804#define MAX77759_USB_VENDOR_CC_STATUS3_CCVCNSC_MASK (0x1 << 7)
6805#define MAX77759_USB_VENDOR_CC_STATUS3_CCVCNSC_CLEAR (~(0x1 << 7))
6806#define MAX77759_USB_VENDOR_CC_STATUS3_CCVCNOCP_SHIFT 6
6807#define MAX77759_USB_VENDOR_CC_STATUS3_CCVCNOCP_MASK (0x1 << 6)
6808#define MAX77759_USB_VENDOR_CC_STATUS3_CCVCNOCP_CLEAR (~(0x1 << 6))
6809#define MAX77759_USB_VENDOR_CC_STATUS3_SPR_5_1_SHIFT 1
6810#define MAX77759_USB_VENDOR_CC_STATUS3_SPR_5_1_MASK (0x1f << 1)
6811#define MAX77759_USB_VENDOR_CC_STATUS3_SPR_5_1_CLEAR (~(0x1f << 1))
6812#define MAX77759_USB_VENDOR_CC_STATUS3_CCVCNSTAT_SHIFT 0
6813#define MAX77759_USB_VENDOR_CC_STATUS3_CCVCNSTAT_MASK (0x1 << 0)
6814#define MAX77759_USB_VENDOR_CC_STATUS3_CCVCNSTAT_CLEAR (~(0x1 << 0))
6815
6816MAX77759_BFF(usb_vendor_cc_status3_ccvcnsc,7,7)
6817MAX77759_BFF(usb_vendor_cc_status3_ccvcnocp,6,6)
6818MAX77759_BFF(usb_vendor_cc_status3_spr_5_1,5,1)
6819MAX77759_BFF(usb_vendor_cc_status3_ccvcnstat,0,0)
6820static inline const char *
6821max77759_usb_vendor_cc_status3_cstr(char *buff, size_t len, int val)
6822{
6823#ifdef SCNPRINTF
6824 int i = 0;
6825
6826 i += SCNPRINTF(&buff[i], len - i, " CCVCNSC=%x",
6827 FIELD2VALUE(MAX77759_USB_VENDOR_CC_STATUS3_CCVCNSC, val));
6828 i += SCNPRINTF(&buff[i], len - i, " CCVCNOCP=%x",
6829 FIELD2VALUE(MAX77759_USB_VENDOR_CC_STATUS3_CCVCNOCP, val));
6830 i += SCNPRINTF(&buff[i], len - i, " SPR_5_1=%x",
6831 FIELD2VALUE(MAX77759_USB_VENDOR_CC_STATUS3_SPR_5_1, val));
6832 i += SCNPRINTF(&buff[i], len - i, " CCVCNSTAT=%x",
6833 FIELD2VALUE(MAX77759_USB_VENDOR_CC_STATUS3_CCVCNSTAT, val));
6834#else
6835 buff[0] = 0;
6836#endif
6837 return buff;
6838}
6839
6840/*
6841 * VENDOR_BC_STATUS1,0x87,0b00000000,0x00
6842 * SPR_7,ChgTypRun,PrChgTyp[2:0],,,DCDTmo,ChgTyp[1:0]
6843 */
6844#define MAX77759_USB_VENDOR_BC_STATUS1 0x87
6845#define MAX77759_USB_VENDOR_BC_STATUS1_SPR_7 (0x1 << 7)
6846#define MAX77759_USB_VENDOR_BC_STATUS1_CHGTYPRUN (0x1 << 6)
6847#define MAX77759_USB_VENDOR_BC_STATUS1_DCDTMO (0x1 << 2)
6848
6849#define MAX77759_USB_VENDOR_BC_STATUS1_SPR_7_SHIFT 7
6850#define MAX77759_USB_VENDOR_BC_STATUS1_SPR_7_MASK (0x1 << 7)
6851#define MAX77759_USB_VENDOR_BC_STATUS1_SPR_7_CLEAR (~(0x1 << 7))
6852#define MAX77759_USB_VENDOR_BC_STATUS1_CHGTYPRUN_SHIFT 6
6853#define MAX77759_USB_VENDOR_BC_STATUS1_CHGTYPRUN_MASK (0x1 << 6)
6854#define MAX77759_USB_VENDOR_BC_STATUS1_CHGTYPRUN_CLEAR (~(0x1 << 6))
6855#define MAX77759_USB_VENDOR_BC_STATUS1_PRCHGTYP_SHIFT 3
6856#define MAX77759_USB_VENDOR_BC_STATUS1_PRCHGTYP_MASK (0x7 << 3)
6857#define MAX77759_USB_VENDOR_BC_STATUS1_PRCHGTYP_CLEAR (~(0x7 << 3))
6858#define MAX77759_USB_VENDOR_BC_STATUS1_DCDTMO_SHIFT 2
6859#define MAX77759_USB_VENDOR_BC_STATUS1_DCDTMO_MASK (0x1 << 2)
6860#define MAX77759_USB_VENDOR_BC_STATUS1_DCDTMO_CLEAR (~(0x1 << 2))
6861#define MAX77759_USB_VENDOR_BC_STATUS1_CHGTYP_SHIFT 0
6862#define MAX77759_USB_VENDOR_BC_STATUS1_CHGTYP_MASK (0x3 << 0)
6863#define MAX77759_USB_VENDOR_BC_STATUS1_CHGTYP_CLEAR (~(0x3 << 0))
6864
6865MAX77759_BFF(usb_vendor_bc_status1_spr_7,7,7)
6866MAX77759_BFF(usb_vendor_bc_status1_chgtyprun,6,6)
6867MAX77759_BFF(usb_vendor_bc_status1_prchgtyp,5,3)
6868MAX77759_BFF(usb_vendor_bc_status1_dcdtmo,2,2)
6869MAX77759_BFF(usb_vendor_bc_status1_chgtyp,1,0)
6870static inline const char *
6871max77759_usb_vendor_bc_status1_cstr(char *buff, size_t len, int val)
6872{
6873#ifdef SCNPRINTF
6874 int i = 0;
6875
6876 i += SCNPRINTF(&buff[i], len - i, " SPR_7=%x",
6877 FIELD2VALUE(MAX77759_USB_VENDOR_BC_STATUS1_SPR_7, val));
6878 i += SCNPRINTF(&buff[i], len - i, " CHGTYPRUN=%x",
6879 FIELD2VALUE(MAX77759_USB_VENDOR_BC_STATUS1_CHGTYPRUN, val));
6880 i += SCNPRINTF(&buff[i], len - i, " PRCHGTYP=%x",
6881 FIELD2VALUE(MAX77759_USB_VENDOR_BC_STATUS1_PRCHGTYP, val));
6882 i += SCNPRINTF(&buff[i], len - i, " DCDTMO=%x",
6883 FIELD2VALUE(MAX77759_USB_VENDOR_BC_STATUS1_DCDTMO, val));
6884 i += SCNPRINTF(&buff[i], len - i, " CHGTYP=%x",
6885 FIELD2VALUE(MAX77759_USB_VENDOR_BC_STATUS1_CHGTYP, val));
6886#else
6887 buff[0] = 0;
6888#endif
6889 return buff;
6890}
6891
6892/*
6893 * VENDOR_BC_STATUS2,0x88,0b00000000,0x00
6894 * dnDebOk,SPR_6,dnVlgc,dnVdatRef,dpDebOk,SPR_2,dpVlgc
6895 */
6896#define MAX77759_USB_VENDOR_BC_STATUS2 0x88
6897#define MAX77759_USB_VENDOR_BC_STATUS2_DNDEBOK (0x1 << 7)
6898#define MAX77759_USB_VENDOR_BC_STATUS2_SPR_6 (0x1 << 6)
6899#define MAX77759_USB_VENDOR_BC_STATUS2_DNVLGC (0x1 << 5)
6900#define MAX77759_USB_VENDOR_BC_STATUS2_DNVDATREF (0x1 << 4)
6901#define MAX77759_USB_VENDOR_BC_STATUS2_DPDEBOK (0x1 << 3)
6902#define MAX77759_USB_VENDOR_BC_STATUS2_SPR_2 (0x1 << 2)
6903#define MAX77759_USB_VENDOR_BC_STATUS2_DPVLGC (0x1 << 1)
6904#define MAX77759_USB_VENDOR_BC_STATUS2_DPVDATREF (0x1 << 0)
6905
6906#define MAX77759_USB_VENDOR_BC_STATUS2_DNDEBOK_SHIFT 7
6907#define MAX77759_USB_VENDOR_BC_STATUS2_DNDEBOK_MASK (0x1 << 7)
6908#define MAX77759_USB_VENDOR_BC_STATUS2_DNDEBOK_CLEAR (~(0x1 << 7))
6909#define MAX77759_USB_VENDOR_BC_STATUS2_SPR_6_SHIFT 6
6910#define MAX77759_USB_VENDOR_BC_STATUS2_SPR_6_MASK (0x1 << 6)
6911#define MAX77759_USB_VENDOR_BC_STATUS2_SPR_6_CLEAR (~(0x1 << 6))
6912#define MAX77759_USB_VENDOR_BC_STATUS2_DNVLGC_SHIFT 5
6913#define MAX77759_USB_VENDOR_BC_STATUS2_DNVLGC_MASK (0x1 << 5)
6914#define MAX77759_USB_VENDOR_BC_STATUS2_DNVLGC_CLEAR (~(0x1 << 5))
6915#define MAX77759_USB_VENDOR_BC_STATUS2_DNVDATREF_SHIFT 4
6916#define MAX77759_USB_VENDOR_BC_STATUS2_DNVDATREF_MASK (0x1 << 4)
6917#define MAX77759_USB_VENDOR_BC_STATUS2_DNVDATREF_CLEAR (~(0x1 << 4))
6918#define MAX77759_USB_VENDOR_BC_STATUS2_DPDEBOK_SHIFT 3
6919#define MAX77759_USB_VENDOR_BC_STATUS2_DPDEBOK_MASK (0x1 << 3)
6920#define MAX77759_USB_VENDOR_BC_STATUS2_DPDEBOK_CLEAR (~(0x1 << 3))
6921#define MAX77759_USB_VENDOR_BC_STATUS2_SPR_2_SHIFT 2
6922#define MAX77759_USB_VENDOR_BC_STATUS2_SPR_2_MASK (0x1 << 2)
6923#define MAX77759_USB_VENDOR_BC_STATUS2_SPR_2_CLEAR (~(0x1 << 2))
6924#define MAX77759_USB_VENDOR_BC_STATUS2_DPVLGC_SHIFT 1
6925#define MAX77759_USB_VENDOR_BC_STATUS2_DPVLGC_MASK (0x1 << 1)
6926#define MAX77759_USB_VENDOR_BC_STATUS2_DPVLGC_CLEAR (~(0x1 << 1))
6927#define MAX77759_USB_VENDOR_BC_STATUS2_DPVDATREF_SHIFT 0
6928#define MAX77759_USB_VENDOR_BC_STATUS2_DPVDATREF_MASK (0x1 << 0)
6929#define MAX77759_USB_VENDOR_BC_STATUS2_DPVDATREF_CLEAR (~(0x1 << 0))
6930
6931MAX77759_BFF(usb_vendor_bc_status2_dndebok,7,7)
6932MAX77759_BFF(usb_vendor_bc_status2_spr_6,6,6)
6933MAX77759_BFF(usb_vendor_bc_status2_dnvlgc,5,5)
6934MAX77759_BFF(usb_vendor_bc_status2_dnvdatref,4,4)
6935MAX77759_BFF(usb_vendor_bc_status2_dpdebok,3,3)
6936MAX77759_BFF(usb_vendor_bc_status2_spr_2,2,2)
6937MAX77759_BFF(usb_vendor_bc_status2_dpvlgc,1,1)
6938MAX77759_BFF(usb_vendor_bc_status2_dpvdatref,0,0)
6939static inline const char *
6940max77759_usb_vendor_bc_status2_cstr(char *buff, size_t len, int val)
6941{
6942#ifdef SCNPRINTF
6943 int i = 0;
6944
6945 i += SCNPRINTF(&buff[i], len - i, " DNDEBOK=%x",
6946 FIELD2VALUE(MAX77759_USB_VENDOR_BC_STATUS2_DNDEBOK, val));
6947 i += SCNPRINTF(&buff[i], len - i, " SPR_6=%x",
6948 FIELD2VALUE(MAX77759_USB_VENDOR_BC_STATUS2_SPR_6, val));
6949 i += SCNPRINTF(&buff[i], len - i, " DNVLGC=%x",
6950 FIELD2VALUE(MAX77759_USB_VENDOR_BC_STATUS2_DNVLGC, val));
6951 i += SCNPRINTF(&buff[i], len - i, " DNVDATREF=%x",
6952 FIELD2VALUE(MAX77759_USB_VENDOR_BC_STATUS2_DNVDATREF, val));
6953 i += SCNPRINTF(&buff[i], len - i, " DPDEBOK=%x",
6954 FIELD2VALUE(MAX77759_USB_VENDOR_BC_STATUS2_DPDEBOK, val));
6955 i += SCNPRINTF(&buff[i], len - i, " SPR_2=%x",
6956 FIELD2VALUE(MAX77759_USB_VENDOR_BC_STATUS2_SPR_2, val));
6957 i += SCNPRINTF(&buff[i], len - i, " DPVLGC=%x",
6958 FIELD2VALUE(MAX77759_USB_VENDOR_BC_STATUS2_DPVLGC, val));
6959 i += SCNPRINTF(&buff[i], len - i, " DPVDATREF=%x",
6960 FIELD2VALUE(MAX77759_USB_VENDOR_BC_STATUS2_DPVDATREF, val));
6961#else
6962 buff[0] = 0;
6963#endif
6964 return buff;
6965}
6966
6967/*
6968 * VENDOR_FLADC_STATUS,0x89,0b00000000,0x00
6969 * ADC_VAL[7:0],,,,,,
6970 */
6971#define MAX77759_USB_VENDOR_FLADC_STATUS 0x89
6972
6973/*
6974 * VENDOR_WDG_CTRL,0x8A,0b00000000,0x00
6975 * RSVD_7_2[5:0],,,,,,WD_TIMEOUT[1:0]
6976 */
6977#define MAX77759_USB_VENDOR_WDG_CTRL 0x8A
6978
6979#define MAX77759_USB_VENDOR_WDG_CTRL_RSVD_7_2_SHIFT 2
6980#define MAX77759_USB_VENDOR_WDG_CTRL_RSVD_7_2_MASK (0x3f << 2)
6981#define MAX77759_USB_VENDOR_WDG_CTRL_RSVD_7_2_CLEAR (~(0x3f << 2))
6982#define MAX77759_USB_VENDOR_WDG_CTRL_WD_TIMEOUT_SHIFT 0
6983#define MAX77759_USB_VENDOR_WDG_CTRL_WD_TIMEOUT_MASK (0x3 << 0)
6984#define MAX77759_USB_VENDOR_WDG_CTRL_WD_TIMEOUT_CLEAR (~(0x3 << 0))
6985
6986MAX77759_BFF(usb_vendor_wdg_ctrl_rsvd_7_2,7,2)
6987MAX77759_BFF(usb_vendor_wdg_ctrl_wd_timeout,1,0)
6988static inline const char *
6989max77759_usb_vendor_wdg_ctrl_cstr(char *buff, size_t len, int val)
6990{
6991#ifdef SCNPRINTF
6992 int i = 0;
6993
6994 i += SCNPRINTF(&buff[i], len - i, " RSVD_7_2=%x",
6995 FIELD2VALUE(MAX77759_USB_VENDOR_WDG_CTRL_RSVD_7_2, val));
6996 i += SCNPRINTF(&buff[i], len - i, " WD_TIMEOUT=%x",
6997 FIELD2VALUE(MAX77759_USB_VENDOR_WDG_CTRL_WD_TIMEOUT, val));
6998#else
6999 buff[0] = 0;
7000#endif
7001 return buff;
7002}
7003
7004/*
7005 * VENDOR_VCON_CTRL,0x8B,0b10000001,0x81
7006 * VcnOcpEn,SPR_6_5[1:0],,VcnSoftStartDis,VcnSc_Deb,VcnIlim[2:0],
7007 */
7008#define MAX77759_USB_VENDOR_VCON_CTRL 0x8B
7009#define MAX77759_USB_VENDOR_VCON_CTRL_VCNOCPEN (0x1 << 7)
7010#define MAX77759_USB_VENDOR_VCON_CTRL_VCNSOFTSTARTDIS (0x1 << 4)
7011#define MAX77759_USB_VENDOR_VCON_CTRL_VCNSC_DEB (0x1 << 3)
7012
7013#define MAX77759_USB_VENDOR_VCON_CTRL_VCNOCPEN_SHIFT 7
7014#define MAX77759_USB_VENDOR_VCON_CTRL_VCNOCPEN_MASK (0x1 << 7)
7015#define MAX77759_USB_VENDOR_VCON_CTRL_VCNOCPEN_CLEAR (~(0x1 << 7))
7016#define MAX77759_USB_VENDOR_VCON_CTRL_SPR_6_5_SHIFT 5
7017#define MAX77759_USB_VENDOR_VCON_CTRL_SPR_6_5_MASK (0x3 << 5)
7018#define MAX77759_USB_VENDOR_VCON_CTRL_SPR_6_5_CLEAR (~(0x3 << 5))
7019#define MAX77759_USB_VENDOR_VCON_CTRL_VCNSOFTSTARTDIS_SHIFT 4
7020#define MAX77759_USB_VENDOR_VCON_CTRL_VCNSOFTSTARTDIS_MASK (0x1 << 4)
7021#define MAX77759_USB_VENDOR_VCON_CTRL_VCNSOFTSTARTDIS_CLEAR (~(0x1 << 4))
7022#define MAX77759_USB_VENDOR_VCON_CTRL_VCNSC_DEB_SHIFT 3
7023#define MAX77759_USB_VENDOR_VCON_CTRL_VCNSC_DEB_MASK (0x1 << 3)
7024#define MAX77759_USB_VENDOR_VCON_CTRL_VCNSC_DEB_CLEAR (~(0x1 << 3))
7025#define MAX77759_USB_VENDOR_VCON_CTRL_VCNILIM_SHIFT 0
7026#define MAX77759_USB_VENDOR_VCON_CTRL_VCNILIM_MASK (0x7 << 0)
7027#define MAX77759_USB_VENDOR_VCON_CTRL_VCNILIM_CLEAR (~(0x7 << 0))
7028
7029MAX77759_BFF(usb_vendor_vcon_ctrl_vcnocpen,7,7)
7030MAX77759_BFF(usb_vendor_vcon_ctrl_spr_6_5,6,5)
7031MAX77759_BFF(usb_vendor_vcon_ctrl_vcnsoftstartdis,4,4)
7032MAX77759_BFF(usb_vendor_vcon_ctrl_vcnsc_deb,3,3)
7033MAX77759_BFF(usb_vendor_vcon_ctrl_vcnilim,2,0)
7034static inline const char *
7035max77759_usb_vendor_vcon_ctrl_cstr(char *buff, size_t len, int val)
7036{
7037#ifdef SCNPRINTF
7038 int i = 0;
7039
7040 i += SCNPRINTF(&buff[i], len - i, " VCNOCPEN=%x",
7041 FIELD2VALUE(MAX77759_USB_VENDOR_VCON_CTRL_VCNOCPEN, val));
7042 i += SCNPRINTF(&buff[i], len - i, " SPR_6_5=%x",
7043 FIELD2VALUE(MAX77759_USB_VENDOR_VCON_CTRL_SPR_6_5, val));
7044 i += SCNPRINTF(&buff[i], len - i, " VCNSOFTSTARTDIS=%x",
7045 FIELD2VALUE(MAX77759_USB_VENDOR_VCON_CTRL_VCNSOFTSTARTDIS, val));
7046 i += SCNPRINTF(&buff[i], len - i, " VCNSC_DEB=%x",
7047 FIELD2VALUE(MAX77759_USB_VENDOR_VCON_CTRL_VCNSC_DEB, val));
7048 i += SCNPRINTF(&buff[i], len - i, " VCNILIM=%x",
7049 FIELD2VALUE(MAX77759_USB_VENDOR_VCON_CTRL_VCNILIM, val));
7050#else
7051 buff[0] = 0;
7052#endif
7053 return buff;
7054}
7055
7056/*
7057 * VENDOR_CC_CTRL1,0x8C,0b00000010,0x02
7058 * ccConnDry,RdOpenDis,ccCompEn,ccSnkExitEn,ccLpDrpCycle[1:0],,ccDrpPhase[1:0]
7059 */
7060#define MAX77759_USB_VENDOR_CC_CTRL1 0x8C
7061#define MAX77759_USB_VENDOR_CC_CTRL1_CCCONNDRY (0x1 << 7)
7062#define MAX77759_USB_VENDOR_CC_CTRL1_RDOPENDIS (0x1 << 6)
7063#define MAX77759_USB_VENDOR_CC_CTRL1_CCCOMPEN (0x1 << 5)
7064#define MAX77759_USB_VENDOR_CC_CTRL1_CCSNKEXITEN (0x1 << 4)
7065
7066#define MAX77759_USB_VENDOR_CC_CTRL1_CCCONNDRY_SHIFT 7
7067#define MAX77759_USB_VENDOR_CC_CTRL1_CCCONNDRY_MASK (0x1 << 7)
7068#define MAX77759_USB_VENDOR_CC_CTRL1_CCCONNDRY_CLEAR (~(0x1 << 7))
7069#define MAX77759_USB_VENDOR_CC_CTRL1_RDOPENDIS_SHIFT 6
7070#define MAX77759_USB_VENDOR_CC_CTRL1_RDOPENDIS_MASK (0x1 << 6)
7071#define MAX77759_USB_VENDOR_CC_CTRL1_RDOPENDIS_CLEAR (~(0x1 << 6))
7072#define MAX77759_USB_VENDOR_CC_CTRL1_CCCOMPEN_SHIFT 5
7073#define MAX77759_USB_VENDOR_CC_CTRL1_CCCOMPEN_MASK (0x1 << 5)
7074#define MAX77759_USB_VENDOR_CC_CTRL1_CCCOMPEN_CLEAR (~(0x1 << 5))
7075#define MAX77759_USB_VENDOR_CC_CTRL1_CCSNKEXITEN_SHIFT 4
7076#define MAX77759_USB_VENDOR_CC_CTRL1_CCSNKEXITEN_MASK (0x1 << 4)
7077#define MAX77759_USB_VENDOR_CC_CTRL1_CCSNKEXITEN_CLEAR (~(0x1 << 4))
7078#define MAX77759_USB_VENDOR_CC_CTRL1_CCLPDRPCYCLE_SHIFT 2
7079#define MAX77759_USB_VENDOR_CC_CTRL1_CCLPDRPCYCLE_MASK (0x3 << 2)
7080#define MAX77759_USB_VENDOR_CC_CTRL1_CCLPDRPCYCLE_CLEAR (~(0x3 << 2))
7081#define MAX77759_USB_VENDOR_CC_CTRL1_CCDRPPHASE_SHIFT 0
7082#define MAX77759_USB_VENDOR_CC_CTRL1_CCDRPPHASE_MASK (0x3 << 0)
7083#define MAX77759_USB_VENDOR_CC_CTRL1_CCDRPPHASE_CLEAR (~(0x3 << 0))
7084
7085MAX77759_BFF(usb_vendor_cc_ctrl1_ccconndry,7,7)
7086MAX77759_BFF(usb_vendor_cc_ctrl1_rdopendis,6,6)
7087MAX77759_BFF(usb_vendor_cc_ctrl1_cccompen,5,5)
7088MAX77759_BFF(usb_vendor_cc_ctrl1_ccsnkexiten,4,4)
7089MAX77759_BFF(usb_vendor_cc_ctrl1_cclpdrpcycle,3,2)
7090MAX77759_BFF(usb_vendor_cc_ctrl1_ccdrpphase,1,0)
7091static inline const char *
7092max77759_usb_vendor_cc_ctrl1_cstr(char *buff, size_t len, int val)
7093{
7094#ifdef SCNPRINTF
7095 int i = 0;
7096
7097 i += SCNPRINTF(&buff[i], len - i, " CCCONNDRY=%x",
7098 FIELD2VALUE(MAX77759_USB_VENDOR_CC_CTRL1_CCCONNDRY, val));
7099 i += SCNPRINTF(&buff[i], len - i, " RDOPENDIS=%x",
7100 FIELD2VALUE(MAX77759_USB_VENDOR_CC_CTRL1_RDOPENDIS, val));
7101 i += SCNPRINTF(&buff[i], len - i, " CCCOMPEN=%x",
7102 FIELD2VALUE(MAX77759_USB_VENDOR_CC_CTRL1_CCCOMPEN, val));
7103 i += SCNPRINTF(&buff[i], len - i, " CCSNKEXITEN=%x",
7104 FIELD2VALUE(MAX77759_USB_VENDOR_CC_CTRL1_CCSNKEXITEN, val));
7105 i += SCNPRINTF(&buff[i], len - i, " CCLPDRPCYCLE=%x",
7106 FIELD2VALUE(MAX77759_USB_VENDOR_CC_CTRL1_CCLPDRPCYCLE, val));
7107 i += SCNPRINTF(&buff[i], len - i, " CCDRPPHASE=%x",
7108 FIELD2VALUE(MAX77759_USB_VENDOR_CC_CTRL1_CCDRPPHASE, val));
7109#else
7110 buff[0] = 0;
7111#endif
7112 return buff;
7113}
7114
7115/*
7116 * VENDOR_CC_CTRL2,0x8D,0b00000000,0x00
7117 * sbuOvpDis,ccOvpDis,sbuRpCtrl,ccLpModeSel[1:0],,ccRpCtrl[2:0],
7118 */
7119#define MAX77759_USB_VENDOR_CC_CTRL2 0x8D
7120#define MAX77759_USB_VENDOR_CC_CTRL2_SBUOVPDIS (0x1 << 7)
7121#define MAX77759_USB_VENDOR_CC_CTRL2_CCOVPDIS (0x1 << 6)
7122#define MAX77759_USB_VENDOR_CC_CTRL2_SBURPCTRL (0x1 << 5)
7123
7124#define MAX77759_USB_VENDOR_CC_CTRL2_SBUOVPDIS_SHIFT 7
7125#define MAX77759_USB_VENDOR_CC_CTRL2_SBUOVPDIS_MASK (0x1 << 7)
7126#define MAX77759_USB_VENDOR_CC_CTRL2_SBUOVPDIS_CLEAR (~(0x1 << 7))
7127#define MAX77759_USB_VENDOR_CC_CTRL2_CCOVPDIS_SHIFT 6
7128#define MAX77759_USB_VENDOR_CC_CTRL2_CCOVPDIS_MASK (0x1 << 6)
7129#define MAX77759_USB_VENDOR_CC_CTRL2_CCOVPDIS_CLEAR (~(0x1 << 6))
7130#define MAX77759_USB_VENDOR_CC_CTRL2_SBURPCTRL_SHIFT 5
7131#define MAX77759_USB_VENDOR_CC_CTRL2_SBURPCTRL_MASK (0x1 << 5)
7132#define MAX77759_USB_VENDOR_CC_CTRL2_SBURPCTRL_CLEAR (~(0x1 << 5))
7133#define MAX77759_USB_VENDOR_CC_CTRL2_CCLPMODESEL_SHIFT 3
7134#define MAX77759_USB_VENDOR_CC_CTRL2_CCLPMODESEL_MASK (0x3 << 3)
7135#define MAX77759_USB_VENDOR_CC_CTRL2_CCLPMODESEL_CLEAR (~(0x3 << 3))
7136#define MAX77759_USB_VENDOR_CC_CTRL2_CCRPCTRL_SHIFT 0
7137#define MAX77759_USB_VENDOR_CC_CTRL2_CCRPCTRL_MASK (0x7 << 0)
7138#define MAX77759_USB_VENDOR_CC_CTRL2_CCRPCTRL_CLEAR (~(0x7 << 0))
7139
7140MAX77759_BFF(usb_vendor_cc_ctrl2_sbuovpdis,7,7)
7141MAX77759_BFF(usb_vendor_cc_ctrl2_ccovpdis,6,6)
7142MAX77759_BFF(usb_vendor_cc_ctrl2_sburpctrl,5,5)
7143MAX77759_BFF(usb_vendor_cc_ctrl2_cclpmodesel,4,3)
7144MAX77759_BFF(usb_vendor_cc_ctrl2_ccrpctrl,2,0)
7145static inline const char *
7146max77759_usb_vendor_cc_ctrl2_cstr(char *buff, size_t len, int val)
7147{
7148#ifdef SCNPRINTF
7149 int i = 0;
7150
7151 i += SCNPRINTF(&buff[i], len - i, " SBUOVPDIS=%x",
7152 FIELD2VALUE(MAX77759_USB_VENDOR_CC_CTRL2_SBUOVPDIS, val));
7153 i += SCNPRINTF(&buff[i], len - i, " CCOVPDIS=%x",
7154 FIELD2VALUE(MAX77759_USB_VENDOR_CC_CTRL2_CCOVPDIS, val));
7155 i += SCNPRINTF(&buff[i], len - i, " SBURPCTRL=%x",
7156 FIELD2VALUE(MAX77759_USB_VENDOR_CC_CTRL2_SBURPCTRL, val));
7157 i += SCNPRINTF(&buff[i], len - i, " CCLPMODESEL=%x",
7158 FIELD2VALUE(MAX77759_USB_VENDOR_CC_CTRL2_CCLPMODESEL, val));
7159 i += SCNPRINTF(&buff[i], len - i, " CCRPCTRL=%x",
7160 FIELD2VALUE(MAX77759_USB_VENDOR_CC_CTRL2_CCRPCTRL, val));
7161#else
7162 buff[0] = 0;
7163#endif
7164 return buff;
7165}
7166
7167/*
7168 * VENDOR_CC_CTRL3,0x8E,0b00100000,0x20
7169 * ccWtrDeb[1:0],,ccWtrSel[2:0],,,ccLadderDis,SPR_1
7170 */
7171#define MAX77759_USB_VENDOR_CC_CTRL3 0x8E
7172#define MAX77759_USB_VENDOR_CC_CTRL3_CCLADDERDIS (0x1 << 2)
7173#define MAX77759_USB_VENDOR_CC_CTRL3_SPR_1 (0x1 << 1)
7174#define MAX77759_USB_VENDOR_CC_CTRL3_WTRCYCLE (0x1 << 0)
7175
7176#define MAX77759_USB_VENDOR_CC_CTRL3_CCWTRDEB_SHIFT 6
7177#define MAX77759_USB_VENDOR_CC_CTRL3_CCWTRDEB_MASK (0x3 << 6)
7178#define MAX77759_USB_VENDOR_CC_CTRL3_CCWTRDEB_CLEAR (~(0x3 << 6))
7179#define MAX77759_USB_VENDOR_CC_CTRL3_CCWTRSEL_SHIFT 3
7180#define MAX77759_USB_VENDOR_CC_CTRL3_CCWTRSEL_MASK (0x7 << 3)
7181#define MAX77759_USB_VENDOR_CC_CTRL3_CCWTRSEL_CLEAR (~(0x7 << 3))
7182#define MAX77759_USB_VENDOR_CC_CTRL3_CCLADDERDIS_SHIFT 2
7183#define MAX77759_USB_VENDOR_CC_CTRL3_CCLADDERDIS_MASK (0x1 << 2)
7184#define MAX77759_USB_VENDOR_CC_CTRL3_CCLADDERDIS_CLEAR (~(0x1 << 2))
7185#define MAX77759_USB_VENDOR_CC_CTRL3_SPR_1_SHIFT 1
7186#define MAX77759_USB_VENDOR_CC_CTRL3_SPR_1_MASK (0x1 << 1)
7187#define MAX77759_USB_VENDOR_CC_CTRL3_SPR_1_CLEAR (~(0x1 << 1))
7188#define MAX77759_USB_VENDOR_CC_CTRL3_WTRCYCLE_SHIFT 0
7189#define MAX77759_USB_VENDOR_CC_CTRL3_WTRCYCLE_MASK (0x1 << 0)
7190#define MAX77759_USB_VENDOR_CC_CTRL3_WTRCYCLE_CLEAR (~(0x1 << 0))
7191
7192MAX77759_BFF(usb_vendor_cc_ctrl3_ccwtrdeb,7,6)
7193MAX77759_BFF(usb_vendor_cc_ctrl3_ccwtrsel,5,3)
7194MAX77759_BFF(usb_vendor_cc_ctrl3_ccladderdis,2,2)
7195MAX77759_BFF(usb_vendor_cc_ctrl3_spr_1,1,1)
7196MAX77759_BFF(usb_vendor_cc_ctrl3_wtrcycle,0,0)
7197static inline const char *
7198max77759_usb_vendor_cc_ctrl3_cstr(char *buff, size_t len, int val)
7199{
7200#ifdef SCNPRINTF
7201 int i = 0;
7202
7203 i += SCNPRINTF(&buff[i], len - i, " CCWTRDEB=%x",
7204 FIELD2VALUE(MAX77759_USB_VENDOR_CC_CTRL3_CCWTRDEB, val));
7205 i += SCNPRINTF(&buff[i], len - i, " CCWTRSEL=%x",
7206 FIELD2VALUE(MAX77759_USB_VENDOR_CC_CTRL3_CCWTRSEL, val));
7207 i += SCNPRINTF(&buff[i], len - i, " CCLADDERDIS=%x",
7208 FIELD2VALUE(MAX77759_USB_VENDOR_CC_CTRL3_CCLADDERDIS, val));
7209 i += SCNPRINTF(&buff[i], len - i, " SPR_1=%x",
7210 FIELD2VALUE(MAX77759_USB_VENDOR_CC_CTRL3_SPR_1, val));
7211 i += SCNPRINTF(&buff[i], len - i, " WTRCYCLE=%x",
7212 FIELD2VALUE(MAX77759_USB_VENDOR_CC_CTRL3_WTRCYCLE, val));
7213#else
7214 buff[0] = 0;
7215#endif
7216 return buff;
7217}
7218
7219/*
7220 * VENDOR_BC_CTRL1,0x8F,0b10100001,0xa1
7221 * dcdCpl,SPR_6,noBcComp,SPR_4_2[2:0],,,chgDetMan
7222 */
7223#define MAX77759_USB_VENDOR_BC_CTRL1 0x8F
7224#define MAX77759_USB_VENDOR_BC_CTRL1_DCDCPL (0x1 << 7)
7225#define MAX77759_USB_VENDOR_BC_CTRL1_SPR_6 (0x1 << 6)
7226#define MAX77759_USB_VENDOR_BC_CTRL1_NOBCCOMP (0x1 << 5)
7227#define MAX77759_USB_VENDOR_BC_CTRL1_CHGDETMAN (0x1 << 1)
7228#define MAX77759_USB_VENDOR_BC_CTRL1_CHGDETEN (0x1 << 0)
7229
7230#define MAX77759_USB_VENDOR_BC_CTRL1_DCDCPL_SHIFT 7
7231#define MAX77759_USB_VENDOR_BC_CTRL1_DCDCPL_MASK (0x1 << 7)
7232#define MAX77759_USB_VENDOR_BC_CTRL1_DCDCPL_CLEAR (~(0x1 << 7))
7233#define MAX77759_USB_VENDOR_BC_CTRL1_SPR_6_SHIFT 6
7234#define MAX77759_USB_VENDOR_BC_CTRL1_SPR_6_MASK (0x1 << 6)
7235#define MAX77759_USB_VENDOR_BC_CTRL1_SPR_6_CLEAR (~(0x1 << 6))
7236#define MAX77759_USB_VENDOR_BC_CTRL1_NOBCCOMP_SHIFT 5
7237#define MAX77759_USB_VENDOR_BC_CTRL1_NOBCCOMP_MASK (0x1 << 5)
7238#define MAX77759_USB_VENDOR_BC_CTRL1_NOBCCOMP_CLEAR (~(0x1 << 5))
7239#define MAX77759_USB_VENDOR_BC_CTRL1_SPR_4_2_SHIFT 2
7240#define MAX77759_USB_VENDOR_BC_CTRL1_SPR_4_2_MASK (0x7 << 2)
7241#define MAX77759_USB_VENDOR_BC_CTRL1_SPR_4_2_CLEAR (~(0x7 << 2))
7242#define MAX77759_USB_VENDOR_BC_CTRL1_CHGDETMAN_SHIFT 1
7243#define MAX77759_USB_VENDOR_BC_CTRL1_CHGDETMAN_MASK (0x1 << 1)
7244#define MAX77759_USB_VENDOR_BC_CTRL1_CHGDETMAN_CLEAR (~(0x1 << 1))
7245#define MAX77759_USB_VENDOR_BC_CTRL1_CHGDETEN_SHIFT 0
7246#define MAX77759_USB_VENDOR_BC_CTRL1_CHGDETEN_MASK (0x1 << 0)
7247#define MAX77759_USB_VENDOR_BC_CTRL1_CHGDETEN_CLEAR (~(0x1 << 0))
7248
7249MAX77759_BFF(usb_vendor_bc_ctrl1_dcdcpl,7,7)
7250MAX77759_BFF(usb_vendor_bc_ctrl1_spr_6,6,6)
7251MAX77759_BFF(usb_vendor_bc_ctrl1_nobccomp,5,5)
7252MAX77759_BFF(usb_vendor_bc_ctrl1_spr_4_2,4,2)
7253MAX77759_BFF(usb_vendor_bc_ctrl1_chgdetman,1,1)
7254MAX77759_BFF(usb_vendor_bc_ctrl1_chgdeten,0,0)
7255static inline const char *
7256max77759_usb_vendor_bc_ctrl1_cstr(char *buff, size_t len, int val)
7257{
7258#ifdef SCNPRINTF
7259 int i = 0;
7260
7261 i += SCNPRINTF(&buff[i], len - i, " DCDCPL=%x",
7262 FIELD2VALUE(MAX77759_USB_VENDOR_BC_CTRL1_DCDCPL, val));
7263 i += SCNPRINTF(&buff[i], len - i, " SPR_6=%x",
7264 FIELD2VALUE(MAX77759_USB_VENDOR_BC_CTRL1_SPR_6, val));
7265 i += SCNPRINTF(&buff[i], len - i, " NOBCCOMP=%x",
7266 FIELD2VALUE(MAX77759_USB_VENDOR_BC_CTRL1_NOBCCOMP, val));
7267 i += SCNPRINTF(&buff[i], len - i, " SPR_4_2=%x",
7268 FIELD2VALUE(MAX77759_USB_VENDOR_BC_CTRL1_SPR_4_2, val));
7269 i += SCNPRINTF(&buff[i], len - i, " CHGDETMAN=%x",
7270 FIELD2VALUE(MAX77759_USB_VENDOR_BC_CTRL1_CHGDETMAN, val));
7271 i += SCNPRINTF(&buff[i], len - i, " CHGDETEN=%x",
7272 FIELD2VALUE(MAX77759_USB_VENDOR_BC_CTRL1_CHGDETEN, val));
7273#else
7274 buff[0] = 0;
7275#endif
7276 return buff;
7277}
7278
7279/*
7280 * VENDOR_BC_CTRL2,0x90,0b00000000,0x00
7281 * dpMonEn,SPR_6,dnMonEn,dpDnMan,dpDrv[1:0],,dnDrv[1:0]
7282 */
7283#define MAX77759_USB_VENDOR_BC_CTRL2 0x90
7284#define MAX77759_USB_VENDOR_BC_CTRL2_DPMONEN (0x1 << 7)
7285#define MAX77759_USB_VENDOR_BC_CTRL2_SPR_6 (0x1 << 6)
7286#define MAX77759_USB_VENDOR_BC_CTRL2_DNMONEN (0x1 << 5)
7287#define MAX77759_USB_VENDOR_BC_CTRL2_DPDNMAN (0x1 << 4)
7288
7289#define MAX77759_USB_VENDOR_BC_CTRL2_DPMONEN_SHIFT 7
7290#define MAX77759_USB_VENDOR_BC_CTRL2_DPMONEN_MASK (0x1 << 7)
7291#define MAX77759_USB_VENDOR_BC_CTRL2_DPMONEN_CLEAR (~(0x1 << 7))
7292#define MAX77759_USB_VENDOR_BC_CTRL2_SPR_6_SHIFT 6
7293#define MAX77759_USB_VENDOR_BC_CTRL2_SPR_6_MASK (0x1 << 6)
7294#define MAX77759_USB_VENDOR_BC_CTRL2_SPR_6_CLEAR (~(0x1 << 6))
7295#define MAX77759_USB_VENDOR_BC_CTRL2_DNMONEN_SHIFT 5
7296#define MAX77759_USB_VENDOR_BC_CTRL2_DNMONEN_MASK (0x1 << 5)
7297#define MAX77759_USB_VENDOR_BC_CTRL2_DNMONEN_CLEAR (~(0x1 << 5))
7298#define MAX77759_USB_VENDOR_BC_CTRL2_DPDNMAN_SHIFT 4
7299#define MAX77759_USB_VENDOR_BC_CTRL2_DPDNMAN_MASK (0x1 << 4)
7300#define MAX77759_USB_VENDOR_BC_CTRL2_DPDNMAN_CLEAR (~(0x1 << 4))
7301#define MAX77759_USB_VENDOR_BC_CTRL2_DPDRV_SHIFT 2
7302#define MAX77759_USB_VENDOR_BC_CTRL2_DPDRV_MASK (0x3 << 2)
7303#define MAX77759_USB_VENDOR_BC_CTRL2_DPDRV_CLEAR (~(0x3 << 2))
7304#define MAX77759_USB_VENDOR_BC_CTRL2_DNDRV_SHIFT 0
7305#define MAX77759_USB_VENDOR_BC_CTRL2_DNDRV_MASK (0x3 << 0)
7306#define MAX77759_USB_VENDOR_BC_CTRL2_DNDRV_CLEAR (~(0x3 << 0))
7307
7308MAX77759_BFF(usb_vendor_bc_ctrl2_dpmonen,7,7)
7309MAX77759_BFF(usb_vendor_bc_ctrl2_spr_6,6,6)
7310MAX77759_BFF(usb_vendor_bc_ctrl2_dnmonen,5,5)
7311MAX77759_BFF(usb_vendor_bc_ctrl2_dpdnman,4,4)
7312MAX77759_BFF(usb_vendor_bc_ctrl2_dpdrv,3,2)
7313MAX77759_BFF(usb_vendor_bc_ctrl2_dndrv,1,0)
7314static inline const char *
7315max77759_usb_vendor_bc_ctrl2_cstr(char *buff, size_t len, int val)
7316{
7317#ifdef SCNPRINTF
7318 int i = 0;
7319
7320 i += SCNPRINTF(&buff[i], len - i, " DPMONEN=%x",
7321 FIELD2VALUE(MAX77759_USB_VENDOR_BC_CTRL2_DPMONEN, val));
7322 i += SCNPRINTF(&buff[i], len - i, " SPR_6=%x",
7323 FIELD2VALUE(MAX77759_USB_VENDOR_BC_CTRL2_SPR_6, val));
7324 i += SCNPRINTF(&buff[i], len - i, " DNMONEN=%x",
7325 FIELD2VALUE(MAX77759_USB_VENDOR_BC_CTRL2_DNMONEN, val));
7326 i += SCNPRINTF(&buff[i], len - i, " DPDNMAN=%x",
7327 FIELD2VALUE(MAX77759_USB_VENDOR_BC_CTRL2_DPDNMAN, val));
7328 i += SCNPRINTF(&buff[i], len - i, " DPDRV=%x",
7329 FIELD2VALUE(MAX77759_USB_VENDOR_BC_CTRL2_DPDRV, val));
7330 i += SCNPRINTF(&buff[i], len - i, " DNDRV=%x",
7331 FIELD2VALUE(MAX77759_USB_VENDOR_BC_CTRL2_DNDRV, val));
7332#else
7333 buff[0] = 0;
7334#endif
7335 return buff;
7336}
7337
7338/*
7339 * VENDOR_ADC_CTRL1,0x91,0b00000000,0x00
7340 * adcinSel[2:0],,,SPR_4_1[3:0],,,
7341 */
7342#define MAX77759_USB_VENDOR_ADC_CTRL1 0x91
7343#define MAX77759_USB_VENDOR_ADC_CTRL1_ADCEN (0x1 << 0)
7344
7345#define MAX77759_USB_VENDOR_ADC_CTRL1_ADCINSEL_SHIFT 5
7346#define MAX77759_USB_VENDOR_ADC_CTRL1_ADCINSEL_MASK (0x7 << 5)
7347#define MAX77759_USB_VENDOR_ADC_CTRL1_ADCINSEL_CLEAR (~(0x7 << 5))
7348#define MAX77759_USB_VENDOR_ADC_CTRL1_SPR_4_1_SHIFT 1
7349#define MAX77759_USB_VENDOR_ADC_CTRL1_SPR_4_1_MASK (0xf << 1)
7350#define MAX77759_USB_VENDOR_ADC_CTRL1_SPR_4_1_CLEAR (~(0xf << 1))
7351#define MAX77759_USB_VENDOR_ADC_CTRL1_ADCEN_SHIFT 0
7352#define MAX77759_USB_VENDOR_ADC_CTRL1_ADCEN_MASK (0x1 << 0)
7353#define MAX77759_USB_VENDOR_ADC_CTRL1_ADCEN_CLEAR (~(0x1 << 0))
7354
7355MAX77759_BFF(usb_vendor_adc_ctrl1_adcinsel,7,5)
7356MAX77759_BFF(usb_vendor_adc_ctrl1_spr_4_1,4,1)
7357MAX77759_BFF(usb_vendor_adc_ctrl1_adcen,0,0)
7358static inline const char *
7359max77759_usb_vendor_adc_ctrl1_cstr(char *buff, size_t len, int val)
7360{
7361#ifdef SCNPRINTF
7362 int i = 0;
7363
7364 i += SCNPRINTF(&buff[i], len - i, " ADCINSEL=%x",
7365 FIELD2VALUE(MAX77759_USB_VENDOR_ADC_CTRL1_ADCINSEL, val));
7366 i += SCNPRINTF(&buff[i], len - i, " SPR_4_1=%x",
7367 FIELD2VALUE(MAX77759_USB_VENDOR_ADC_CTRL1_SPR_4_1, val));
7368 i += SCNPRINTF(&buff[i], len - i, " ADCEN=%x",
7369 FIELD2VALUE(MAX77759_USB_VENDOR_ADC_CTRL1_ADCEN, val));
7370#else
7371 buff[0] = 0;
7372#endif
7373 return buff;
7374}
7375
7376/*
7377 * VENDOR_EXTBST_CTRL,0x92,0b00000000,0x00
7378 * SPR_7_1[6:0],,,,,,
7379 */
7380#define MAX77759_USB_VENDOR_EXTBST_CTRL 0x92
7381#define MAX77759_USB_VENDOR_EXTBST_CTRL_EXT_BST_EN (0x1 << 0)
7382
7383#define MAX77759_USB_VENDOR_EXTBST_CTRL_SPR_7_1_SHIFT 1
7384#define MAX77759_USB_VENDOR_EXTBST_CTRL_SPR_7_1_MASK (0x7f << 1)
7385#define MAX77759_USB_VENDOR_EXTBST_CTRL_SPR_7_1_CLEAR (~(0x7f << 1))
7386#define MAX77759_USB_VENDOR_EXTBST_CTRL_EXT_BST_EN_SHIFT 0
7387#define MAX77759_USB_VENDOR_EXTBST_CTRL_EXT_BST_EN_MASK (0x1 << 0)
7388#define MAX77759_USB_VENDOR_EXTBST_CTRL_EXT_BST_EN_CLEAR (~(0x1 << 0))
7389
7390MAX77759_BFF(usb_vendor_extbst_ctrl_spr_7_1,7,1)
7391MAX77759_BFF(usb_vendor_extbst_ctrl_ext_bst_en,0,0)
7392static inline const char *
7393max77759_usb_vendor_extbst_ctrl_cstr(char *buff, size_t len, int val)
7394{
7395#ifdef SCNPRINTF
7396 int i = 0;
7397
7398 i += SCNPRINTF(&buff[i], len - i, " SPR_7_1=%x",
7399 FIELD2VALUE(MAX77759_USB_VENDOR_EXTBST_CTRL_SPR_7_1, val));
7400 i += SCNPRINTF(&buff[i], len - i, " EXT_BST_EN=%x",
7401 FIELD2VALUE(MAX77759_USB_VENDOR_EXTBST_CTRL_EXT_BST_EN, val));
7402#else
7403 buff[0] = 0;
7404#endif
7405 return buff;
7406}
7407
7408/*
7409 * VENDOR_USBSW_CTRL,0x93,0b00000000,0x00
7410 * SPR_7_6[1:0],,DPSw[2:0],,,DNSw[2:0],
7411 */
7412#define MAX77759_USB_VENDOR_USBSW_CTRL 0x93
7413
7414#define MAX77759_USB_VENDOR_USBSW_CTRL_SPR_7_6_SHIFT 6
7415#define MAX77759_USB_VENDOR_USBSW_CTRL_SPR_7_6_MASK (0x3 << 6)
7416#define MAX77759_USB_VENDOR_USBSW_CTRL_SPR_7_6_CLEAR (~(0x3 << 6))
7417#define MAX77759_USB_VENDOR_USBSW_CTRL_DPSW_SHIFT 3
7418#define MAX77759_USB_VENDOR_USBSW_CTRL_DPSW_MASK (0x7 << 3)
7419#define MAX77759_USB_VENDOR_USBSW_CTRL_DPSW_CLEAR (~(0x7 << 3))
7420#define MAX77759_USB_VENDOR_USBSW_CTRL_DNSW_SHIFT 0
7421#define MAX77759_USB_VENDOR_USBSW_CTRL_DNSW_MASK (0x7 << 0)
7422#define MAX77759_USB_VENDOR_USBSW_CTRL_DNSW_CLEAR (~(0x7 << 0))
7423
7424MAX77759_BFF(usb_vendor_usbsw_ctrl_spr_7_6,7,6)
7425MAX77759_BFF(usb_vendor_usbsw_ctrl_dpsw,5,3)
7426MAX77759_BFF(usb_vendor_usbsw_ctrl_dnsw,2,0)
7427static inline const char *
7428max77759_usb_vendor_usbsw_ctrl_cstr(char *buff, size_t len, int val)
7429{
7430#ifdef SCNPRINTF
7431 int i = 0;
7432
7433 i += SCNPRINTF(&buff[i], len - i, " SPR_7_6=%x",
7434 FIELD2VALUE(MAX77759_USB_VENDOR_USBSW_CTRL_SPR_7_6, val));
7435 i += SCNPRINTF(&buff[i], len - i, " DPSW=%x",
7436 FIELD2VALUE(MAX77759_USB_VENDOR_USBSW_CTRL_DPSW, val));
7437 i += SCNPRINTF(&buff[i], len - i, " DNSW=%x",
7438 FIELD2VALUE(MAX77759_USB_VENDOR_USBSW_CTRL_DNSW, val));
7439#else
7440 buff[0] = 0;
7441#endif
7442 return buff;
7443}
7444
7445/*
7446 * VENDOR_SBUSW_CTRL,0x94,0b00000000,0x00
7447 * SPR_7_6[1:0],,SBU2Sw[2:0],,,SBU1Sw[2:0],
7448 */
7449#define MAX77759_USB_VENDOR_SBUSW_CTRL 0x94
7450
7451#define MAX77759_USB_VENDOR_SBUSW_CTRL_SPR_7_6_SHIFT 6
7452#define MAX77759_USB_VENDOR_SBUSW_CTRL_SPR_7_6_MASK (0x3 << 6)
7453#define MAX77759_USB_VENDOR_SBUSW_CTRL_SPR_7_6_CLEAR (~(0x3 << 6))
7454#define MAX77759_USB_VENDOR_SBUSW_CTRL_SBU2SW_SHIFT 3
7455#define MAX77759_USB_VENDOR_SBUSW_CTRL_SBU2SW_MASK (0x7 << 3)
7456#define MAX77759_USB_VENDOR_SBUSW_CTRL_SBU2SW_CLEAR (~(0x7 << 3))
7457#define MAX77759_USB_VENDOR_SBUSW_CTRL_SBU1SW_SHIFT 0
7458#define MAX77759_USB_VENDOR_SBUSW_CTRL_SBU1SW_MASK (0x7 << 0)
7459#define MAX77759_USB_VENDOR_SBUSW_CTRL_SBU1SW_CLEAR (~(0x7 << 0))
7460
7461MAX77759_BFF(usb_vendor_sbusw_ctrl_spr_7_6,7,6)
7462MAX77759_BFF(usb_vendor_sbusw_ctrl_sbu2sw,5,3)
7463MAX77759_BFF(usb_vendor_sbusw_ctrl_sbu1sw,2,0)
7464static inline const char *
7465max77759_usb_vendor_sbusw_ctrl_cstr(char *buff, size_t len, int val)
7466{
7467#ifdef SCNPRINTF
7468 int i = 0;
7469
7470 i += SCNPRINTF(&buff[i], len - i, " SPR_7_6=%x",
7471 FIELD2VALUE(MAX77759_USB_VENDOR_SBUSW_CTRL_SPR_7_6, val));
7472 i += SCNPRINTF(&buff[i], len - i, " SBU2SW=%x",
7473 FIELD2VALUE(MAX77759_USB_VENDOR_SBUSW_CTRL_SBU2SW, val));
7474 i += SCNPRINTF(&buff[i], len - i, " SBU1SW=%x",
7475 FIELD2VALUE(MAX77759_USB_VENDOR_SBUSW_CTRL_SBU1SW, val));
7476#else
7477 buff[0] = 0;
7478#endif
7479 return buff;
7480}
7481
7482/*
7483 * VENDOR_SW_CTRL,0x95,0b00000000,0x00
7484 * SPR_7_1[6:0],,,,,,
7485 */
7486#define MAX77759_USB_VENDOR_SW_CTRL 0x95
7487
7488#endif /* MAX77759_REG_H_ */