blob: 5119bcf2ff9ec77c91f4fe2b1b80309857938514 [file] [log] [blame]
Nick Pellyb3765b22010-08-16 15:31:01 -07001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 ****************************************************************************
11 ****************************************************************************/
12#ifndef _LINUX_SPI_CPCAP_H
13#define _LINUX_SPI_CPCAP_H
14
15#include <linux/ioctl.h>
16
17#define CPCAP_DEV_NAME "cpcap"
18#define CPCAP_NUM_REG_CPCAP (CPCAP_REG_END - CPCAP_REG_START + 1)
19
20#define CPCAP_IRQ_INT1_INDEX 0
21#define CPCAP_IRQ_INT2_INDEX 16
22#define CPCAP_IRQ_INT3_INDEX 32
23#define CPCAP_IRQ_INT4_INDEX 48
24#define CPCAP_IRQ_INT5_INDEX 64
25
26#define CPCAP_WHISPER_MODE_PU 0x00000001
27#define CPCAP_WHISPER_ENABLE_UART 0x00000002
28#define CPCAP_WHISPER_ACCY_MASK 0xF8000000
29#define CPCAP_WHISPER_ACCY_SHFT 27
30#define CPCAP_WHISPER_ID_SIZE 16
31
32enum cpcap_regulator_id {
33 CPCAP_SW2,
34 CPCAP_SW4,
35 CPCAP_SW5,
36 CPCAP_VCAM,
37 CPCAP_VCSI,
38 CPCAP_VDAC,
39 CPCAP_VDIG,
40 CPCAP_VFUSE,
41 CPCAP_VHVIO,
42 CPCAP_VSDIO,
43 CPCAP_VPLL,
44 CPCAP_VRF1,
45 CPCAP_VRF2,
46 CPCAP_VRFREF,
47 CPCAP_VWLAN1,
48 CPCAP_VWLAN2,
49 CPCAP_VSIM,
50 CPCAP_VSIMCARD,
51 CPCAP_VVIB,
52 CPCAP_VUSB,
53 CPCAP_VAUDIO,
54 CPCAP_NUM_REGULATORS
55};
56
57enum cpcap_reg {
58 CPCAP_REG_START,
59
60 CPCAP_REG_INT1 = CPCAP_REG_START,
61 CPCAP_REG_INT2,
62 CPCAP_REG_INT3,
63 CPCAP_REG_INT4,
64 CPCAP_REG_INTM1,
65 CPCAP_REG_INTM2,
66 CPCAP_REG_INTM3,
67 CPCAP_REG_INTM4,
68 CPCAP_REG_INTS1,
69 CPCAP_REG_INTS2,
70 CPCAP_REG_INTS3,
71 CPCAP_REG_INTS4,
72 CPCAP_REG_ASSIGN1,
73 CPCAP_REG_ASSIGN2,
74 CPCAP_REG_ASSIGN3,
75 CPCAP_REG_ASSIGN4,
76 CPCAP_REG_ASSIGN5,
77 CPCAP_REG_ASSIGN6,
78 CPCAP_REG_VERSC1,
79 CPCAP_REG_VERSC2,
80
81 CPCAP_REG_MI1,
82 CPCAP_REG_MIM1,
83 CPCAP_REG_MI2,
84 CPCAP_REG_MIM2,
85 CPCAP_REG_UCC1,
86 CPCAP_REG_UCC2,
87 CPCAP_REG_PC1,
88 CPCAP_REG_PC2,
89 CPCAP_REG_BPEOL,
90 CPCAP_REG_PGC,
91 CPCAP_REG_MT1,
92 CPCAP_REG_MT2,
93 CPCAP_REG_MT3,
94 CPCAP_REG_PF,
95
96 CPCAP_REG_SCC,
97 CPCAP_REG_SW1,
98 CPCAP_REG_SW2,
99 CPCAP_REG_UCTM,
100 CPCAP_REG_TOD1,
101 CPCAP_REG_TOD2,
102 CPCAP_REG_TODA1,
103 CPCAP_REG_TODA2,
104 CPCAP_REG_DAY,
105 CPCAP_REG_DAYA,
106 CPCAP_REG_VAL1,
107 CPCAP_REG_VAL2,
108
109 CPCAP_REG_SDVSPLL,
110 CPCAP_REG_SI2CC1,
111 CPCAP_REG_Si2CC2,
112 CPCAP_REG_S1C1,
113 CPCAP_REG_S1C2,
114 CPCAP_REG_S2C1,
115 CPCAP_REG_S2C2,
116 CPCAP_REG_S3C,
117 CPCAP_REG_S4C1,
118 CPCAP_REG_S4C2,
119 CPCAP_REG_S5C,
120 CPCAP_REG_S6C,
121 CPCAP_REG_VCAMC,
122 CPCAP_REG_VCSIC,
123 CPCAP_REG_VDACC,
124 CPCAP_REG_VDIGC,
125 CPCAP_REG_VFUSEC,
126 CPCAP_REG_VHVIOC,
127 CPCAP_REG_VSDIOC,
128 CPCAP_REG_VPLLC,
129 CPCAP_REG_VRF1C,
130 CPCAP_REG_VRF2C,
131 CPCAP_REG_VRFREFC,
132 CPCAP_REG_VWLAN1C,
133 CPCAP_REG_VWLAN2C,
134 CPCAP_REG_VSIMC,
135 CPCAP_REG_VVIBC,
136 CPCAP_REG_VUSBC,
137 CPCAP_REG_VUSBINT1C,
138 CPCAP_REG_VUSBINT2C,
139 CPCAP_REG_URT,
140 CPCAP_REG_URM1,
141 CPCAP_REG_URM2,
142
143 CPCAP_REG_VAUDIOC,
144 CPCAP_REG_CC,
145 CPCAP_REG_CDI,
146 CPCAP_REG_SDAC,
147 CPCAP_REG_SDACDI,
148 CPCAP_REG_TXI,
149 CPCAP_REG_TXMP,
150 CPCAP_REG_RXOA,
151 CPCAP_REG_RXVC,
152 CPCAP_REG_RXCOA,
153 CPCAP_REG_RXSDOA,
154 CPCAP_REG_RXEPOA,
155 CPCAP_REG_RXLL,
156 CPCAP_REG_A2LA,
157 CPCAP_REG_MIPIS1,
158 CPCAP_REG_MIPIS2,
159 CPCAP_REG_MIPIS3,
160 CPCAP_REG_LVAB,
161
162 CPCAP_REG_CCC1,
163 CPCAP_REG_CRM,
164 CPCAP_REG_CCCC2,
165 CPCAP_REG_CCS1,
166 CPCAP_REG_CCS2,
167 CPCAP_REG_CCA1,
168 CPCAP_REG_CCA2,
169 CPCAP_REG_CCM,
170 CPCAP_REG_CCO,
171 CPCAP_REG_CCI,
172
173 CPCAP_REG_ADCC1,
174 CPCAP_REG_ADCC2,
175 CPCAP_REG_ADCD0,
176 CPCAP_REG_ADCD1,
177 CPCAP_REG_ADCD2,
178 CPCAP_REG_ADCD3,
179 CPCAP_REG_ADCD4,
180 CPCAP_REG_ADCD5,
181 CPCAP_REG_ADCD6,
182 CPCAP_REG_ADCD7,
183 CPCAP_REG_ADCAL1,
184 CPCAP_REG_ADCAL2,
185
186 CPCAP_REG_USBC1,
187 CPCAP_REG_USBC2,
188 CPCAP_REG_USBC3,
189 CPCAP_REG_UVIDL,
190 CPCAP_REG_UVIDH,
191 CPCAP_REG_UPIDL,
192 CPCAP_REG_UPIDH,
193 CPCAP_REG_UFC1,
194 CPCAP_REG_UFC2,
195 CPCAP_REG_UFC3,
196 CPCAP_REG_UIC1,
197 CPCAP_REG_UIC2,
198 CPCAP_REG_UIC3,
199 CPCAP_REG_USBOTG1,
200 CPCAP_REG_USBOTG2,
201 CPCAP_REG_USBOTG3,
202 CPCAP_REG_UIER1,
203 CPCAP_REG_UIER2,
204 CPCAP_REG_UIER3,
205 CPCAP_REG_UIEF1,
206 CPCAP_REG_UIEF2,
207 CPCAP_REG_UIEF3,
208 CPCAP_REG_UIS,
209 CPCAP_REG_UIL,
210 CPCAP_REG_USBD,
211 CPCAP_REG_SCR1,
212 CPCAP_REG_SCR2,
213 CPCAP_REG_SCR3,
214 CPCAP_REG_VMC,
215 CPCAP_REG_OWDC,
216 CPCAP_REG_GPIO0,
217 CPCAP_REG_GPIO1,
218 CPCAP_REG_GPIO2,
219 CPCAP_REG_GPIO3,
220 CPCAP_REG_GPIO4,
221 CPCAP_REG_GPIO5,
222 CPCAP_REG_GPIO6,
223
224 CPCAP_REG_MDLC,
225 CPCAP_REG_KLC,
226 CPCAP_REG_ADLC,
227 CPCAP_REG_REDC,
228 CPCAP_REG_GREENC,
229 CPCAP_REG_BLUEC,
230 CPCAP_REG_CFC,
231 CPCAP_REG_ABC,
232 CPCAP_REG_BLEDC,
233 CPCAP_REG_CLEDC,
234
235 CPCAP_REG_OW1C,
236 CPCAP_REG_OW1D,
237 CPCAP_REG_OW1I,
238 CPCAP_REG_OW1IE,
239 CPCAP_REG_OW1,
240 CPCAP_REG_OW2C,
241 CPCAP_REG_OW2D,
242 CPCAP_REG_OW2I,
243 CPCAP_REG_OW2IE,
244 CPCAP_REG_OW2,
245 CPCAP_REG_OW3C,
246 CPCAP_REG_OW3D,
247 CPCAP_REG_OW3I,
248 CPCAP_REG_OW3IE,
249 CPCAP_REG_OW3,
250 CPCAP_REG_GCAIC,
251 CPCAP_REG_GCAIM,
252 CPCAP_REG_LGDIR,
253 CPCAP_REG_LGPU,
254 CPCAP_REG_LGPIN,
255 CPCAP_REG_LGMASK,
256 CPCAP_REG_LDEB,
257 CPCAP_REG_LGDET,
258 CPCAP_REG_LMISC,
259 CPCAP_REG_LMACE,
260
261 CPCAP_REG_END = CPCAP_REG_LMACE,
262
263 CPCAP_REG_MAX
264 = CPCAP_REG_END,
265
266 CPCAP_REG_SIZE = CPCAP_REG_MAX + 1,
267 CPCAP_REG_UNUSED = CPCAP_REG_MAX + 2,
268};
269
270enum {
271 CPCAP_IOCTL_NUM_TEST__START,
272 CPCAP_IOCTL_NUM_TEST_READ_REG,
273 CPCAP_IOCTL_NUM_TEST_WRITE_REG,
274 CPCAP_IOCTL_NUM_TEST__END,
275
276 CPCAP_IOCTL_NUM_ADC__START,
277 CPCAP_IOCTL_NUM_ADC_PHASE,
278 CPCAP_IOCTL_NUM_ADC__END,
279
280 CPCAP_IOCTL_NUM_BATT__START,
281 CPCAP_IOCTL_NUM_BATT_DISPLAY_UPDATE,
282 CPCAP_IOCTL_NUM_BATT_ATOD_ASYNC,
283 CPCAP_IOCTL_NUM_BATT_ATOD_SYNC,
284 CPCAP_IOCTL_NUM_BATT_ATOD_READ,
285 CPCAP_IOCTL_NUM_BATT__END,
286
287 CPCAP_IOCTL_NUM_UC__START,
288 CPCAP_IOCTL_NUM_UC_MACRO_START,
289 CPCAP_IOCTL_NUM_UC_MACRO_STOP,
290 CPCAP_IOCTL_NUM_UC_GET_VENDOR,
291 CPCAP_IOCTL_NUM_UC_SET_TURBO_MODE,
292 CPCAP_IOCTL_NUM_UC__END,
293
294 CPCAP_IOCTL_NUM_ACCY__START,
295 CPCAP_IOCTL_NUM_ACCY_WHISPER,
296 CPCAP_IOCTL_NUM_ACCY__END,
297};
298
299enum cpcap_irqs {
300 CPCAP_IRQ__START,
301 CPCAP_IRQ_HSCLK = CPCAP_IRQ_INT1_INDEX,
302 CPCAP_IRQ_PRIMAC,
303 CPCAP_IRQ_SECMAC,
304 CPCAP_IRQ_LOWBPL,
305 CPCAP_IRQ_SEC2PRI,
306 CPCAP_IRQ_LOWBPH,
307 CPCAP_IRQ_EOL,
308 CPCAP_IRQ_TS,
309 CPCAP_IRQ_ADCDONE,
310 CPCAP_IRQ_HS,
311 CPCAP_IRQ_MB2,
312 CPCAP_IRQ_VBUSOV,
313 CPCAP_IRQ_RVRS_CHRG,
314 CPCAP_IRQ_CHRG_DET,
315 CPCAP_IRQ_IDFLOAT,
316 CPCAP_IRQ_IDGND,
317
318 CPCAP_IRQ_SE1 = CPCAP_IRQ_INT2_INDEX,
319 CPCAP_IRQ_SESSEND,
320 CPCAP_IRQ_SESSVLD,
321 CPCAP_IRQ_VBUSVLD,
322 CPCAP_IRQ_CHRG_CURR1,
323 CPCAP_IRQ_CHRG_CURR2,
324 CPCAP_IRQ_RVRS_MODE,
325 CPCAP_IRQ_ON,
326 CPCAP_IRQ_ON2,
327 CPCAP_IRQ_CLK,
328 CPCAP_IRQ_1HZ,
329 CPCAP_IRQ_PTT,
330 CPCAP_IRQ_SE0CONN,
331 CPCAP_IRQ_CHRG_SE1B,
332 CPCAP_IRQ_UART_ECHO_OVERRUN,
333 CPCAP_IRQ_EXTMEMHD,
334
335 CPCAP_IRQ_WARM = CPCAP_IRQ_INT3_INDEX,
336 CPCAP_IRQ_SYSRSTR,
337 CPCAP_IRQ_SOFTRST,
338 CPCAP_IRQ_DIEPWRDWN,
339 CPCAP_IRQ_DIETEMPH,
340 CPCAP_IRQ_PC,
341 CPCAP_IRQ_OFLOWSW,
342 CPCAP_IRQ_TODA,
343 CPCAP_IRQ_OPT_SEL_DTCH,
344 CPCAP_IRQ_OPT_SEL_STATE,
345 CPCAP_IRQ_ONEWIRE1,
346 CPCAP_IRQ_ONEWIRE2,
347 CPCAP_IRQ_ONEWIRE3,
348 CPCAP_IRQ_UCRESET,
349 CPCAP_IRQ_PWRGOOD,
350 CPCAP_IRQ_USBDPLLCLK,
351
352 CPCAP_IRQ_DPI = CPCAP_IRQ_INT4_INDEX,
353 CPCAP_IRQ_DMI,
354 CPCAP_IRQ_UCBUSY,
355 CPCAP_IRQ_GCAI_CURR1,
356 CPCAP_IRQ_GCAI_CURR2,
357 CPCAP_IRQ_SB_MAX_RETRANSMIT_ERR,
358 CPCAP_IRQ_BATTDETB,
359 CPCAP_IRQ_PRIHALT,
360 CPCAP_IRQ_SECHALT,
361 CPCAP_IRQ_CC_CAL,
362
363 CPCAP_IRQ_UC_PRIROMR = CPCAP_IRQ_INT5_INDEX,
364 CPCAP_IRQ_UC_PRIRAMW,
365 CPCAP_IRQ_UC_PRIRAMR,
366 CPCAP_IRQ_UC_USEROFF,
367 CPCAP_IRQ_UC_PRIMACRO_4,
368 CPCAP_IRQ_UC_PRIMACRO_5,
369 CPCAP_IRQ_UC_PRIMACRO_6,
370 CPCAP_IRQ_UC_PRIMACRO_7,
371 CPCAP_IRQ_UC_PRIMACRO_8,
372 CPCAP_IRQ_UC_PRIMACRO_9,
373 CPCAP_IRQ_UC_PRIMACRO_10,
374 CPCAP_IRQ_UC_PRIMACRO_11,
375 CPCAP_IRQ_UC_PRIMACRO_12,
376 CPCAP_IRQ_UC_PRIMACRO_13,
377 CPCAP_IRQ_UC_PRIMACRO_14,
378 CPCAP_IRQ_UC_PRIMACRO_15,
379 CPCAP_IRQ__NUM
380};
381
382enum cpcap_adc_bank0 {
383 CPCAP_ADC_AD0_BATTDETB,
384 CPCAP_ADC_BATTP,
385 CPCAP_ADC_VBUS,
386 CPCAP_ADC_AD3,
387 CPCAP_ADC_BPLUS_AD4,
388 CPCAP_ADC_CHG_ISENSE,
389 CPCAP_ADC_BATTI_ADC,
390 CPCAP_ADC_USB_ID,
391
392 CPCAP_ADC_BANK0_NUM,
393};
394
395enum cpcap_adc_bank1 {
396 CPCAP_ADC_AD8,
397 CPCAP_ADC_AD9,
398 CPCAP_ADC_LICELL,
399 CPCAP_ADC_HV_BATTP,
400 CPCAP_ADC_TSX1_AD12,
401 CPCAP_ADC_TSX2_AD13,
402 CPCAP_ADC_TSY1_AD14,
403 CPCAP_ADC_TSY2_AD15,
404
405 CPCAP_ADC_BANK1_NUM,
406};
407
408enum cpcap_adc_format {
409 CPCAP_ADC_FORMAT_RAW,
410 CPCAP_ADC_FORMAT_PHASED,
411 CPCAP_ADC_FORMAT_CONVERTED,
412};
413
414enum cpcap_adc_timing {
415 CPCAP_ADC_TIMING_IMM,
416 CPCAP_ADC_TIMING_IN,
417 CPCAP_ADC_TIMING_OUT,
418};
419
420enum cpcap_adc_type {
421 CPCAP_ADC_TYPE_BANK_0,
422 CPCAP_ADC_TYPE_BANK_1,
423 CPCAP_ADC_TYPE_BATT_PI,
424};
425
426enum cpcap_macro {
427 CPCAP_MACRO_ROMR,
428 CPCAP_MACRO_RAMW,
429 CPCAP_MACRO_RAMR,
430 CPCAP_MACRO_USEROFF,
431 CPCAP_MACRO_4,
432 CPCAP_MACRO_5,
433 CPCAP_MACRO_6,
434 CPCAP_MACRO_7,
435 CPCAP_MACRO_8,
436 CPCAP_MACRO_9,
437 CPCAP_MACRO_10,
438 CPCAP_MACRO_11,
439 CPCAP_MACRO_12,
440 CPCAP_MACRO_13,
441 CPCAP_MACRO_14,
442 CPCAP_MACRO_15,
443
444 CPCAP_MACRO__END,
445};
446
447enum cpcap_vendor {
448 CPCAP_VENDOR_ST,
449 CPCAP_VENDOR_TI,
450};
451
452enum cpcap_revision {
453 CPCAP_REVISION_1_0 = 0x08,
454 CPCAP_REVISION_1_1 = 0x09,
455 CPCAP_REVISION_2_0 = 0x10,
456 CPCAP_REVISION_2_1 = 0x11,
457};
458
459enum cpcap_batt_usb_model {
460 CPCAP_BATT_USB_MODEL_NONE,
461 CPCAP_BATT_USB_MODEL_USB,
462 CPCAP_BATT_USB_MODEL_FACTORY,
463};
464
465struct cpcap_spi_init_data {
466 enum cpcap_reg reg;
467 unsigned short data;
468};
469
470struct cpcap_adc_ato {
471 unsigned short ato_in;
472 unsigned short atox_in;
473 unsigned short adc_ps_factor_in;
474 unsigned short atox_ps_factor_in;
475 unsigned short ato_out;
476 unsigned short atox_out;
477 unsigned short adc_ps_factor_out;
478 unsigned short atox_ps_factor_out;
479};
480
481struct cpcap_batt_data {
482 int status;
483 int health;
484 int present;
485 int capacity;
486 int batt_volt;
487 int batt_temp;
488};
489
490struct cpcap_batt_ac_data {
491 int online;
492};
493
494struct cpcap_batt_usb_data {
495 int online;
496 int current_now;
497 enum cpcap_batt_usb_model model;
498};
499
500struct cpcap_device;
501
502struct cpcap_adc_us_request {
503 enum cpcap_adc_format format;
504 enum cpcap_adc_timing timing;
505 enum cpcap_adc_type type;
506 int status;
507 int result[CPCAP_ADC_BANK0_NUM];
508};
509
510struct cpcap_adc_phase {
511 signed char offset_batti;
512 unsigned char slope_batti;
513 signed char offset_chrgi;
514 unsigned char slope_chrgi;
515 signed char offset_battp;
516 unsigned char slope_battp;
517 signed char offset_bp;
518 unsigned char slope_bp;
519 signed char offset_battt;
520 unsigned char slope_battt;
521 signed char offset_chrgv;
522 unsigned char slope_chrgv;
523};
524
525struct cpcap_regacc {
526 unsigned short reg;
527 unsigned short value;
528 unsigned short mask;
529};
530
531struct cpcap_whisper_request {
532 unsigned int cmd;
533 char dock_id[CPCAP_WHISPER_ID_SIZE];
534};
535
536#define CPCAP_IOCTL_TEST_READ_REG _IOWR(0, CPCAP_IOCTL_NUM_TEST_READ_REG, struct cpcap_regacc*)
537
538#define CPCAP_IOCTL_TEST_WRITE_REG _IOWR(0, CPCAP_IOCTL_NUM_TEST_WRITE_REG, struct cpcap_regacc*)
539
540#define CPCAP_IOCTL_ADC_PHASE _IOWR(0, CPCAP_IOCTL_NUM_ADC_PHASE, struct cpcap_adc_phase*)
541
542#define CPCAP_IOCTL_BATT_DISPLAY_UPDATE _IOW(0, CPCAP_IOCTL_NUM_BATT_DISPLAY_UPDATE, struct cpcap_batt_data*)
543
544#define CPCAP_IOCTL_BATT_ATOD_ASYNC _IOW(0, CPCAP_IOCTL_NUM_BATT_ATOD_ASYNC, struct cpcap_adc_us_request*)
545
546#define CPCAP_IOCTL_BATT_ATOD_SYNC _IOWR(0, CPCAP_IOCTL_NUM_BATT_ATOD_SYNC, struct cpcap_adc_us_request*)
547
548#define CPCAP_IOCTL_BATT_ATOD_READ _IOWR(0, CPCAP_IOCTL_NUM_BATT_ATOD_READ, struct cpcap_adc_us_request*)
549
550#define CPCAP_IOCTL_UC_MACRO_START _IOWR(0, CPCAP_IOCTL_NUM_UC_MACRO_START, enum cpcap_macro)
551
552#define CPCAP_IOCTL_UC_MACRO_STOP _IOWR(0, CPCAP_IOCTL_NUM_UC_MACRO_STOP, enum cpcap_macro)
553
554#define CPCAP_IOCTL_UC_GET_VENDOR _IOWR(0, CPCAP_IOCTL_NUM_UC_GET_VENDOR, enum cpcap_vendor)
555
556#define CPCAP_IOCTL_UC_SET_TURBO_MODE _IOW(0, CPCAP_IOCTL_NUM_UC_SET_TURBO_MODE, unsigned short)
557
558#define CPCAP_IOCTL_ACCY_WHISPER _IOW(0, CPCAP_IOCTL_NUM_ACCY_WHISPER, struct cpcap_whisper_request*)
559
560#endif
561