1 /*****************************************************************************
13 * This file is intended for PMIC 6326 driver.
19 *============================================================================
21 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
22 *------------------------------------------------------------------------------
24 * $Modtime: 20 Jun 2005 20:03:54 $
25 * $Log: //mtkvs01/vmdata/Maui_sw/archives/mcu/drv/src/gpt.c-arc $
27 * 08 09 2010 chipeng.chang
28 * [ALPS00003297] [Need Patch] [Volunteer Patch] android 2.2 migration
29 * remove .o and add header file.
32 * [MAUI_01624867] [Drv] PMIC6326 ECO version compatible support
35 * Jan 19 2009 mtk01845
36 * [MAUI_01314361] [Drv]MT6268 check to MAUI
39 * Sep 12 2008 mtk01845
40 * [MAUI_00803843] [Drv][PMIC6326] Check-in to MAUI
44 * [MAUI_01231139] [Drv][PMIC6326] Redundent custom APIs cause MoDIS link error
47 * Aug 29 2008 mtk01845
48 * [MAUI_00803843] [Drv][PMIC6326] Check-in to MAUI
52 * [MAUI_00803843] [Drv][PMIC6326] Check-in to MAUI
56 * [MAUI_00803843] [Drv][PMIC6326] Check-in to MAUI
59 * Jul 13 2008 mtk01845
60 * [MAUI_00803843] [Drv][PMIC6326] Check-in to MAUI
63 * Jun 23 2008 mtk01845
64 * [MAUI_00791553] [Drv] MT6268A merge DVT code back to MAUI
67 * Jun 23 2008 mtk01845
68 * [MAUI_00791553] [Drv] MT6268A merge DVT code back to MAUI
71 * Jun 23 2008 mtk01845
72 * [MAUI_00791553] [Drv] MT6268A merge DVT code back to MAUI
75 * Jun 20 2008 mtk01845
76 * [MAUI_00791553] [Drv] MT6268A merge DVT code back to MAUI
78 *------------------------------------------------------------------------------
79 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
80 *============================================================================
81 ****************************************************************************/
83 #ifndef __PMIC6326_SW_H__
84 #define __PMIC6326_SW_H__
85 /* #include "pmic_features.h" */
88 #ifndef __PRODUCTION_RELEASE__
89 /* Define to keep chaging when assert */
90 /* This flag is only for debug purpose */
91 /* #define DRV_MISC_PMIC_ASSERT_KEEP_CHARGING */
92 #endif /* #ifndef __PRODUCTION_RELEASE__ */
95 #ifdef __PRODUCTION_RELEASE__
96 /* Define to enable PMIC6326 charger watch dog timer kick */
97 /* When enable charger, PMIC6326 will enable a watch dog timer */
98 /* We need to kick the timer periodically, to ontify PMIC6326 that BB is alive */
99 /* If timeout, PMIC6326 will disable charge automatically */
100 /* #### If this is NOT enabled, we will disable the watch dog timer function at boot time */
101 #define ENABLE_KICK_PMIC6326_CHARGER_WATCHDOG_TIMER
102 #endif /* #ifdef __PRODUCTION_RELEASE__ */
106 #define PMIC6326_ECO_1_VERSION 0x01
107 #define PMIC6326_ECO_2_VERSION 0x02
108 #define PMIC6326_ECO_3_VERSION 0x03
109 #define PMIC6326_ECO_4_VERSION 0x04
113 void (*pmic_ac_det
) (void);
114 void (*pmic_usb_det
) (void);
115 } pmic6326_chrdect_callbac_struct
;
119 /* TTTTTTTTTTTTTTTTT */
120 /* Implemented functions */
124 /* (0x0D) INT STATUS 3 (RO) */
126 VSDIO_OC_STAT
= 0x01, /* BIT0 */
127 VGP_OC_STAT
= 0x02, /* BIT1 */
128 VUSB_OC_STAT
= 0x04, /* BIT2 */
129 OVP_INT_STAT
= 0x08, /* BIT3 */
130 CHRDET_INT_STAT
= 0x10, /* BIT4 */
131 PWRKEY_INT_STAT
= 0x20 /* BIT5 */
135 /* (0x1B) LDO CTRL 2 VRF */
137 VRF_BIAS_CURRENT_TIMES_1_0
= 0,
138 VRF_BIAS_CURRENT_TIMES_0_5
,
139 VRF_BIAS_CURRENT_TIMES_2_0
,
140 VRF_BIAS_CURRENT_TIMES_3_0
143 /* (0x1C) LDO CTRL 3 VRF */
145 VRF_MAX_SLEW_RATE_TIMES_1_OVER_17
= 0,
146 VRF_MAX_SLEW_RATE_TIMES_1_OVER_21
,
148 VRF_MAX_SLEW_RATE_TIMES_1_OVER_5
151 VRF_OC_THRESHOLD_685MA
= 0,
152 VRF_OC_THRESHOLD_635MA
,
153 VRF_OC_THRESHOLD_785MA
,
154 VRF_OC_THRESHOLD_735MA
158 VRF_DEFAULT_MILLER_CAPACITOR
= 0,
159 VRF_INCREASE_MILLER_CAPACITOR
163 VRF_ENABLE_WITH_SRCLKEN
= 0,
164 VRF_ENABLE_WITH_VRF_EN
168 /* (0x1E) LDO CTRL 5 VTCXO */
170 VTCXO_BIAS_CURRENT_TIMES_1_0
= 0,
171 VTCXO_BIAS_CURRENT_TIMES_0_5
,
172 VTCXO_BIAS_CURRENT_TIMES_2_0
,
173 VTCXO_BIAS_CURRENT_TIMES_3_0
174 } vtcxo_ical_en_enum
;
177 /* (0x1F) LDO CTRL 6 VTCXO */
179 VTCXO_MAX_SLEW_RATE_TIMES_1_OVER_17
= 0,
180 VTCXO_MAX_SLEW_RATE_TIMES_1_OVER_21
,
182 VTCXO_MAX_SLEW_RATE_TIMES_1_OVER_5
185 VTCXO_OC_THRESHOLD_100MA
= 0,
186 VTCXO_OC_THRESHOLD_109MA
,
187 VTCXO_OC_THRESHOLD_82MA
,
188 VTCXO_OC_THRESHOLD_91MA
192 VTCXO_ENABLE_WITH_SRCLKEN
= 0,
193 VTCXO_ENABLE_WITH_VTCXO_EN
197 VTCXO_DEFAULT_MILLER_CAPACITOR
= 0,
198 VTCXO_INCREASE_MILLER_CAPACITOR
201 /* (0x21) LDO CTRL 8 V3GTX */
203 V3GTX_BIAS_CURRENT_TIMES_1_0
= 0,
204 V3GTX_BIAS_CURRENT_TIMES_0_5
,
205 V3GTX_BIAS_CURRENT_TIMES_2_0
,
206 V3GTX_BIAS_CURRENT_TIMES_3_0
207 } v3gtx_ical_en_enum
;
217 /* (0x22) LDO CTRL 9 V3GTX */
219 V3GTX_MAX_SLEW_RATE_TIMES_1_OVER_17
= 0,
220 V3GTX_MAX_SLEW_RATE_TIMES_1_OVER_21
,
222 V3GTX_MAX_SLEW_RATE_TIMES_1_OVER_5
226 V3GTX_OC_THRESHOLD_400MA
= 0,
227 V3GTX_OC_THRESHOLD_438MA
,
228 V3GTX_OC_THRESHOLD_324MA
,
229 V3GTX_OC_THRESHOLD_362MA
233 V3GTX_ENABLE_WITH_SRCLKEN
= 0,
234 V3GTX_ENABLE_WITH_V3GTX_EN
238 /* (0x24) LDO CTRL 11 V3GRX */
247 V3GRX_BIAS_CURRENT_TIMES_1_0
= 0,
248 V3GRX_BIAS_CURRENT_TIMES_0_5
,
249 V3GRX_BIAS_CURRENT_TIMES_2_0
,
250 V3GRX_BIAS_CURRENT_TIMES_3_0
251 } v3grx_ical_en_enum
;
254 /* (0x25) LDO CTRL 12 V3GRX */
256 V3GRX_MAX_SLEW_RATE_TIMES_1_OVER_17
= 0,
257 V3GRX_MAX_SLEW_RATE_TIMES_1_OVER_21
,
259 V3GRX_MAX_SLEW_RATE_TIMES_1_OVER_5
263 V3GRX_OC_THRESHOLD_200MA
= 0,
264 V3GRX_OC_THRESHOLD_219MA
,
265 V3GRX_OC_THRESHOLD_162MA
,
266 V3GRX_OC_THRESHOLD_181MA
271 V3GRX_ENABLE_WITH_SRCLKEN
= 0,
272 V3GRX_ENABLE_WITH_V3GRX_EN
276 /* (0x2E) LDO CTRL 21 VCAMA */
284 VCAMA_BIAS_CURRENT_X_1_0
= 0,
285 VCAMA_BIAS_CURRENT_X_0_5
,
286 VCAMA_BIAS_CURRENT_X_2_0
,
287 VCAMA_BIAS_CURRENT_X_3_0
288 } vcama_ical_en_enum
;
290 /* (0x2F) LDO CTRL 22 VCAMA */
292 VCAMA_MAX_SLEW_RATE_TIMES_1_OVER_17
= 0,
293 VCAMA_MAX_SLEW_RATE_TIMES_1_OVER_21
,
295 VCAMA_MAX_SLEW_RATE_TIMES_1_OVER_5
298 VCAMA_OC_THRESHOLD_500MA
= 0,
299 VCAMA_OC_THRESHOLD_548MA
,
300 VCAMA_OC_THRESHOLD_405MA
,
301 VCAMA_OC_THRESHOLD_452MA
305 VCAMA_DEFAULT_MILLER_CAPACITOR
= 0,
306 VCAMA_INCREASE_MILLER_CAPACITOR
309 /* (0x31) LDO CTRL 24 VWIFI3V3 */
317 VWIFI3V3_BIAS_CURRENT_X_1_0
= 0,
318 VWIFI3V3_BIAS_CURRENT_X_0_5
,
319 VWIFI3V3_BIAS_CURRENT_X_2_0
,
320 VWIFI3V3_BIAS_CURRENT_X_3_0
321 } vwifi3v3_ical_en_enum
;
323 /* (0x32) LDO CTRL 25 VWIFI3V3 */
325 VWIFI3V3_MAX_SLEW_RATE_TIMES_1_OVER_17
= 0,
326 VWIFI3V3_MAX_SLEW_RATE_TIMES_1_OVER_21
,
327 VWIFI3V3_MAX_SLEW_RATE
,
328 VWIFI3V3_MAX_SLEW_RATE_TIMES_1_OVER_5
329 } vwifi3v3_calst_enum
;
331 VWIFI3V3_OC_THRESHOLD_600MA
= 0,
332 VWIFI3V3_OC_THRESHOLD_657MA
,
333 VWIFI3V3_OC_THRESHOLD_486MA
,
334 VWIFI3V3_OC_THRESHOLD_543MA
335 } vwifi3v3_caloc_enum
;
338 VWIFI3V3_DEFAULT_MILLER_CAPACITOR
= 0,
339 VWIFI3V3_INCREASE_MILLER_CAPACITOR
342 /* (0x34) LDO CTRL 27 VWIFI2V8 */
350 VWIFI2V8_BIAS_CURRENT_X_1_0
= 0,
351 VWIFI2V8_BIAS_CURRENT_X_0_5
,
352 VWIFI2V8_BIAS_CURRENT_X_2_0
,
353 VWIFI2V8_BIAS_CURRENT_X_3_0
354 } vwifi2v8_ical_en_enum
;
356 /* (0x35) LDO CTRL 28 VWIFI2V8 */
358 VWIFI2V8_MAX_SLEW_RATE_TIMES_1_OVER_17
= 0,
359 VWIFI2V8_MAX_SLEW_RATE_TIMES_1_OVER_21
,
360 VWIFI2V8_MAX_SLEW_RATE
,
361 VWIFI2V8_MAX_SLEW_RATE_TIMES_1_OVER_5
362 } vwifi2v8_calst_enum
;
364 VWIFI2V8_OC_THRESHOLD_300MA
= 0,
365 VWIFI2V8_OC_THRESHOLD_329MA
,
366 VWIFI2V8_OC_THRESHOLD_243MA
,
367 VWIFI2V8_OC_THRESHOLD_271MA
368 } vwifi2v8_caloc_enum
;
371 VWIFI2V8_DEFAULT_MILLER_CAPACITOR
= 0,
372 VWIFI2V8_INCREASE_MILLER_CAPACITOR
375 /* (0x37) LDO CTRL 30 VSIM */
387 VSIM_BIAS_CURRENT_X_1_0
= 0,
388 VSIM_BIAS_CURRENT_X_0_5
,
389 VSIM_BIAS_CURRENT_X_2_0
,
390 VSIM_BIAS_CURRENT_X_3_0
393 /* (0x3A) LDO CTRL 33 VUSB */
402 VUSB_1_2
/* TTTTTTTTTTTTTT */
405 VUSB_BIAS_CURRENT_X_1_0
= 0,
406 VUSB_BIAS_CURRENT_X_0_5
,
407 VUSB_BIAS_CURRENT_X_2_0
,
408 VUSB_BIAS_CURRENT_X_3_0
411 /* (0x3B) LDO CTRL 34 VUSB */
413 VUSB_MAX_SLEW_RATE_TIMES_1_OVER_17
= 0,
414 VUSB_MAX_SLEW_RATE_TIMES_1_OVER_21
,
416 VUSB_MAX_SLEW_RATE_TIMES_1_OVER_5
419 VUSB_OC_THRESHOLD_200MA
= 0,
420 VUSB_OC_THRESHOLD_218MA
,
421 VUSB_OC_THRESHOLD_164MA
,
422 VUSB_OC_THRESHOLD_182MA
425 /* (0x3D) LDO CTRL 36 VBT */
434 VBT_1_2
/* TTTTTTTTTTTTTT */
449 VBT_BIAS_CURRENT_X_1_0
= 0,
450 VBT_BIAS_CURRENT_X_0_5
,
451 VBT_BIAS_CURRENT_X_2_0
,
452 VBT_BIAS_CURRENT_X_3_0
455 /* (0x3E) LDO CTRL 37 VBT */
457 VBT_MAX_SLEW_RATE_TIMES_1_OVER_17
= 0,
458 VBT_MAX_SLEW_RATE_TIMES_1_OVER_21
,
460 VBT_MAX_SLEW_RATE_TIMES_1_OVER_5
463 VBT_OC_THRESHOLD_200MA
= 0,
464 VBT_OC_THRESHOLD_218MA
,
465 VBT_OC_THRESHOLD_164MA
,
466 VBT_OC_THRESHOLD_182MA
469 /* (0x40) LDO CTRL 39 VCAMD */
478 VCAMD_1_2
/* TTTTTTTTTTTTTT */
481 VCAMD_BIAS_CURRENT_X_1_0
= 0,
482 VCAMD_BIAS_CURRENT_X_0_5
,
483 VCAMD_BIAS_CURRENT_X_2_0
,
484 VCAMD_BIAS_CURRENT_X_3_0
485 } vcamd_ical_en_enum
;
487 /* (0x41) LDO CTRL 40 VCAMD */
489 VCAMD_MAX_SLEW_RATE_TIMES_1_OVER_17
= 0,
490 VCAMD_MAX_SLEW_RATE_TIMES_1_OVER_21
,
492 VCAMD_MAX_SLEW_RATE_TIMES_1_OVER_5
495 VCAMD_OC_THRESHOLD_200MA
= 0,
496 VCAMD_OC_THRESHOLD_218MA
,
497 VCAMD_OC_THRESHOLD_164MA
,
498 VCAMD_OC_THRESHOLD_182MA
501 /* (0x43) LDO CTRL 42 VGP */
512 /* (0x46) LDO CTRL 45 VSDIO */
514 VSDIO_BIAS_CURRENT_X_1_0
= 0,
515 VSDIO_BIAS_CURRENT_X_0_5
,
516 VSDIO_BIAS_CURRENT_X_2_0
,
517 VSDIO_BIAS_CURRENT_X_3_0
518 } vsdio_ical_en_enum
;
520 /* (0x47) LDO CTRL 46 VSDIO */
522 VSDIO_MAX_SLEW_RATE_TIMES_1_OVER_17
= 0,
523 VSDIO_MAX_SLEW_RATE_TIMES_1_OVER_21
,
525 VSDIO_MAX_SLEW_RATE_TIMES_1_OVER_5
528 VSDIO_OC_THRESHOLD_700MA
= 0,
529 VSDIO_OC_THRESHOLD_767MA
,
530 VSDIO_OC_THRESHOLD_567MA
,
531 VSDIO_OC_THRESHOLD_633MA
538 VSDIO_DEFAULT_MILLER_CAPACITOR
= 0,
539 VSDIO_INCREASE_MILLER_CAPACITOR
543 /* (0x53) BUCK CTRL 11 VCORE2 */
545 VCORE2_ENABLE_WITH_EN_PASS
= 0,
546 VCORE2_ENABLE_WITH_VCORE2_EN
547 } vcore2_on_sel_enum
;
549 /* (0x5C) BOOST CTRL 1 BOOST1 */
551 VBOOST1_VOL_3_20_V
= 0,
569 /* (0x5D) BOOST CTRL 2 BOOST1 */
571 BOOST1_SOFT_START_SPEED
= 0,
572 BOOST1_SOFT_START_SPEED_TIMES_2_OVER_3
573 } boost1_soft_st_speed_enum
;
575 /* (0x5F) BOOST CTRL 4 BOOST2 */
577 VBOOST2_VOL_6_00_V
= 0,
596 BOOST2_OC_THRESHOLD_5UA
= 0,
597 BOOST2_OC_THRESHOLD_2UA
,
598 BOOST2_OC_THRESHOLD_10UA
,
599 BOOST2_OC_THRESHOLD_7UA
603 BOOST2_DIGITAL_DIMING
= 0,
605 } boost2_dim_source_enum
;
607 /* (0x61) BOOST CTRL 6 BOOST2 and BOOST */
609 BOOST_MODE_TYPE_I
= 0,
613 } boost_mode_sel_enum
;
615 /* (0x65) DRIVER CTRL 4 FLASH */
618 /* FLASH_CURRENT_0MA=0, */
619 /* FLASH_CURRENT_50MA, */
620 /* FLASH_CURRENT_100MA, */
621 /* FLASH_CURRENT_150MA, */
622 /* FLASH_CURRENT_200MA, */
623 /* FLASH_CURRENT_250MA, */
624 /* FLASH_CURRENT_300MA, */
625 /* FLASH_CURRENT_350MA, */
626 /* FLASH_CURRENT_400MA, */
627 /* FLASH_CURRENT_450MA, */
628 /* FLASH_CURRENT_500MA, */
629 /* FLASH_CURRENT_550MA */
630 /* }flash_i_tune_enum; */
632 /* (0x68) DRIVER CTRL 7 BL */
634 BL_I_CORSE_TUNE_4MA
= 0,
636 BL_I_CORSE_TUNE_12MA
,
637 BL_I_CORSE_TUNE_16MA
,
638 BL_I_CORSE_TUNE_20MA
,
639 BL_I_CORSE_TUNE_24MA
,
640 BL_I_CORSE_TUNE_28MA
,
642 } bl_i_corse_tune_enum
;
645 BL_I_FINE_TUNE_0MA
= 0,
646 BL_I_FINE_TUNE_MINUS_1MA
,
647 BL_I_FINE_TUNE_MINUS_2MA
,
648 BL_I_FINE_TUNE_MINUS_3MA
,
649 BL_I_FINE_TUNE_PLUS_4MA
,
650 BL_I_FINE_TUNE_PLUS_3MA
,
651 BL_I_FINE_TUNE_PLUS_2MA
,
652 BL_I_FINE_TUNE_PLUS_1MA
653 } bl_i_fine_tune_enum
;
655 /* (0x6D) DRIVER CTRL 12 BL */
667 /* (0x74) CLASS_D CTRL 4 SPKL */
669 SPKL_FB_FORCED_DTIN_DTIP
= 0,
670 SPKL_FF_FORCED_DTIN_DTIP
,
671 SPKL_FB_AUTO_CAL_DTCN_DTCP
,
672 SPKL_FF_AUTO_CAL_DTCN_DTCP
676 SPKL_DTCAL_ENABLE_CLASS_D_R_READ_TIME_CAL
= 0,
677 SPKL_DTCAL_DISABLE_CLASS_D_R_READ_TIME_CAL
680 /* (0x79) CLASS_D CTRL 9 SPKR */
682 SPKR_FB_FORCED_DTIN_DTIP
= 0,
683 SPKR_FF_FORCED_DTIN_DTIP
,
684 SPKR_FB_AUTO_CAL_DTCN_DTCP
,
685 SPKR_FF_AUTO_CAL_DTCN_DTCP
689 SPKR_DTCAL_ENABLE_CLASS_D_R_READ_TIME_CAL
= 0,
690 SPKR_DTCAL_DISABLE_CLASS_D_R_READ_TIME_CAL
693 /* (0x81) CHARGER CTRL 1 */
695 CHR_CURRENT_OFFSET_NO
= 0,
696 CHR_CURRENT_OFFSET_PLUS_1_STEP
= 1,
697 CHR_CURRENT_OFFSET_PLUS_2_STEP
= 2,
698 CHR_CURRENT_OFFSET_MINUS_2_STEP
= 6,
699 CHR_CURRENT_OFFSET_MINUS_1_STEP
= 7
700 } cht_chr_offset_enum
;
703 CHR_CURRENT_50MA
= 0,
711 } chr_chr_current_enum
;
713 /* (0x83) TESTMODE CTRL 3 Analog Switch */
716 /* ASW_ASEL_ASW_2_SETS = 0, */
717 /* ASW_ASEL_SIMLS, */
718 /* ASW_ASEL_ASW_1_SET, */
719 /* ASW_ASEL_BL_CURRENT_SOURCE */
720 /* }asw_asel_enum; */
722 ASW_ASEL_ISINK_6_8_AS
= 0, /* ISINK 6~8 used as Analog Switch, others for BL */
723 ASW_ASEL_ALL_ISINK_BL
= 3 /* All ISINK used for BL */
731 /* TODO, the last item value */
734 /* (0x84) TESTMODE CTRL 4 Testmode */
736 VGP2_ENABLE_WITH_SRCLKEN
= 0,
737 VGP2_ENABLE_WITH_VGP2_EN
741 /* (0x89) INT CTRL 1 */
743 INT_EN_VCORE2_OC
= 0x01,
744 INT_EN_VPA_OC
= 0x02,
745 INT_EN_BOOST1_OC
= 0x04,
746 INT_EN_BOOST2_OC
= 0x08,
747 INT_EN_SPKL_OC
= 0x10,
748 INT_EN_SPKR_OC
= 0x20,
749 INT_EN_V3GTX_OC
= 0x40,
750 INT_EN_V3GRX_OC
= 0x80,
751 INT_EN_0X89_ALL
= 0xFF,
755 /* (0x8A) INT CTRL 2 */
758 INT_EN_VTCXO_OC
= 0x02,
759 INT_EN_VCAMA_OC
= 0x04,
760 INT_EN_VWIFI3V3_OC
= 0x08,
761 INT_EN_VWIFI2V8_OC
= 0x10,
762 INT_EN_VSIM_OC
= 0x20,
763 INT_EN_VBT_OC
= 0x40,
764 INT_EN_VCAMD_OC
= 0x80,
765 INT_EN_0X8A_ALL
= 0xFF,
769 /* (0x8B) INT CTRL 3 */
771 INT_EN_VSDIO_OC
= 0x01,
772 INT_EN_VGP_OC
= 0x02,
773 INT_EN_VUSB_OC
= 0x04,
774 INT_EN_CHRDET
= 0x08,
776 INT_EN_WATCHDOG
= 0x20,
777 INT_EN_PWRKEY
= 0x40,
778 INT_EN_0X8B_ALL
= 0x7F,
783 /* (0x96) WATCHDOG CTRL and INT CTRL 4 */
785 WDT_TIMEOUT_4_SEC
= 0,
792 /* Combinational functions structures */
805 void pmic_init(void);
808 /* (0x09) STATUS 6 (RO) */
809 extern kal_bool
pmic_boost2_oc_status(void);
810 extern kal_bool
pmic_spkr_oc_det_status(void);
811 extern kal_bool
pmic_spkl_oc_det_status(void);
812 extern kal_bool
pmic_pwrkey_deb_status(void);
813 extern kal_bool
pmic_ovp_status(void);
814 extern kal_bool
pmic_chrdet_status(void);
815 extern kal_bool
pmic_bat_on_status(void);
816 extern kal_bool
pmic_cv_status(void);
818 /* (0x0D) INT STATUS 3 (RO) */
819 extern kal_uint8
pmic_int_status_3(void);
820 extern kal_bool
pmic_vsdio_oc_int_status(void);
821 extern kal_bool
pmic_vgp_oc_int_status(void);
822 extern kal_bool
pmic_vusb_oc_int_status(void);
823 extern kal_bool
pmic_ovp_int_status(void);
824 extern kal_bool
pmic_chrdet_int_status(void);
827 /* (0x0E) INT STATUS 4 (RO) */
828 extern kal_uint8
pmic_int_status_4(void);
829 extern kal_bool
pmic_watchdog_int_status(void);
830 extern void pmic_watchdog_clear(void);
832 /* (0x1B) LDO CTRL 2 VRF */
833 extern void pmic_vrf_ical_en(vrf_ical_en_enum sel
);
834 extern void pmic_vrf_oc_auto_off(kal_bool auto_off
);
835 extern void pmic_vrf_enable(kal_bool enable
);
836 extern void pmic_vrf_cal(kal_uint8 val
);
838 /* (0x1C) LDO CTRL 3 VRF */
839 extern void pmic_vrf_calst(vrf_calst_enum sel
);
840 extern void pmic_vrf_caloc(vrf_caloc_enum sel
);
841 extern void pmic_vrf_on_sel(vrf_on_sel_enum sel
);
842 extern void pmic_vrf_en_force(kal_bool enable
);
843 extern void pmic_vrf_plnmos_dis(kal_bool disable
);
844 extern void pmic_vrf_cm(vrf_cm_enum sel
);
846 /* (0x1E) LDO CTRL 5 VTCXO */
847 extern void pmic_vtcxo_ical_en(vtcxo_ical_en_enum sel
);
848 extern void pmic_vtcxo_oc_auto_off(kal_bool auto_off
);
849 extern void pmic_vtcxo_enable(kal_bool enable
);
850 extern void pmic_vtcxo_cal(kal_uint8 val
);
852 /* (0x1F) LDO CTRL 6 VTCXO */
853 extern void pmic_vtcxo_calst(vtcxo_calst_enum sel
);
854 extern void pmic_vtcxo_caloc(vtcxo_caloc_enum sel
);
855 extern void pmic_vtcxo_on_sel(vtcxo_on_sel_enum sel
);
856 extern void pmic_vtcxo_en_force(kal_bool enable
);
857 extern void pmic_vtcxo_plnmos_dis(kal_bool disable
);
858 extern void pmic_vtcxo_cm(vtcxo_cm_enum sel
);
860 /* (0x21) LDO CTRL 8 V3GTX */
861 extern void pmic_v3gtx_sel(v3gtx_vol vol
);
862 extern void pmic_v3gtx_ical_en(v3gtx_ical_en_enum sel
);
863 extern void pmic_v3gtx_cal(kal_uint8 val
);
865 /* (0x22) LDO CTRL 9 V3GTX */
866 extern void pmic_v3gtx_calst(v3gtx_calst_enum sel
);
867 extern void pmic_v3gtx_caloc(v3gtx_caloc_enum sel
);
868 extern void pmic_v3gtx_oc_auto_off(kal_bool auto_off
);
869 extern void pmic_v3gtx_enable(kal_bool enable
);
870 extern void pmic_v3gtx_on_sel(v3gtx_on_sel_enum sel
);
871 extern void pmic_v3gtx_en_force(kal_bool enable
);
873 /* (0x24) LDO CTRL 11 V3GRX */
874 extern void pmic_v3grx_sel(v3grx_vol vol
);
875 extern void pmic_3grx_ical_en(v3grx_ical_en_enum sel
);
876 extern void pmic_v3grx_cal(kal_uint8 val
);
878 /* (0x25) LDO CTRL 12 V3GRX */
879 extern void pmic_v3grx_calst(v3grx_calst_enum sel
);
880 extern void pmic_v3grx_caloc(v3grx_caloc_enum sel
);
881 extern void pmic_v3grx_oc_auto_off(kal_bool auto_off
);
882 extern void pmic_v3grx_enable(kal_bool enable
);
883 extern void pmic_v3grx_on_sel(v3grx_on_sel_enum sel
);
884 extern void pmic_v3grx_en_force(kal_bool enable
);
886 /* (0x2E) LDO CTRL 21 VCAMA */
887 extern void pmic_vcama_sel(vcama_sel_enum sel
);
888 extern void pmic_vcama_ical_en(vcama_ical_en_enum sel
);
889 extern void pmic_vcama_cal(kal_uint8 val
);
891 /* (0x2F) LDO CTRL 22 VCAMA */
892 extern void pmic_vcama_calst(vcama_calst_enum sel
);
893 extern void pmic_vcama_caloc(vcama_caloc_enum sel
);
894 extern void pmic_vcama_enable(kal_bool enable
);
895 extern void pmic_vcama_en_force(kal_bool enable
);
896 extern void pmic_vcama_plnmos_dis(kal_bool disable
);
897 extern void pmic_vcama_cm(vcama_cm_enum sel
);
899 /* (0x31) LDO CTRL 24 VWIFI3V3 */
900 extern void pmic_vwifi3v3_sel(vwifi3v3_sel_enum sel
);
901 extern void pmic_vwifi3v3_ical_en(vwifi3v3_ical_en_enum sel
);
902 extern void pmic_vwifi3v3_cal(kal_uint8 val
);
904 /* (0x32) LDO CTRL 25 VWIFI3V3 */
905 extern void pmic_vwifi3v3_calst(vwifi3v3_calst_enum sel
);
906 extern void pmic_vwifi3v3_caloc(vwifi3v3_caloc_enum sel
);
907 extern void pmic_vwifi3v3_enable(kal_bool enable
);
908 extern void pmic_vwifi3v3_en_force(kal_bool enable
);
909 extern void pmic_vwifi3v3_plnmos_dis(kal_bool disable
);
910 extern void pmic_vwifi3v3_cm(vwifi3v3_cm_enum sel
);
912 /* (0x34) LDO CTRL 27 VWIFI2V8 */
913 extern void pmic_vwifi2v8_sel(vwifi2v8_sel_enum sel
);
914 extern void pmic_vwifi2v8_ical_en(vwifi2v8_ical_en_enum sel
);
915 extern void pmic_vwifi2v8_cal(kal_uint8 val
);
917 /* (0x35) LDO CTRL 28 VWIFI2V8 */
918 extern void pmic_vwifi2v8_calst(vwifi2v8_calst_enum sel
);
919 extern void pmic_vwifi2v8_caloc(vwifi2v8_caloc_enum sel
);
920 extern void pmic_vwifi2v8_enable(kal_bool enable
);
921 extern void pmic_vwifi2v8_en_force(kal_bool enable
);
922 extern void pmic_vwifi2v8_plnmos_dis(kal_bool disable
);
923 extern void pmic_vwifi2v8_cm(vwifi2v8_cm_enum sel
);
925 /* (0x37) LDO CTRL 30 VSIM */
926 /* void pmic_vsim_sel(vsim_sel_enum sel); */
927 extern void pmic6326_vsim_sel(vsim_sel_enum sel
);
928 extern void pmic6326_vsim_sel(vsim_sel_enum sel
);
929 extern void pmic_vsim_enable(kal_bool enable
);
930 extern void pmic_vsim_ical_en(vsim_ical_en_enum sel
);
931 extern void pmic_vsim_en_force(kal_bool enable
);
932 extern void pmic_vsim_plnmos_dis(kal_bool disable
);
934 /* (0x38) LDO CTRL 31 VSIM */
935 extern void pmic_vsim_cal(kal_uint8 val
);
937 /* (0x3A) LDO CTRL 33 VUSB */
938 /* USB voltage is NOT opened for change */
939 /* extern void pmic_vusb_sel(vusb_sel_enum sel); */
940 extern void pmic_vusb_enable(kal_bool enable
);
941 extern void pmic_vusb_ical_en(vusb_ical_en_enum sel
);
942 extern void pmic_vusb_en_force(kal_bool enable
);
943 extern void pmic_vusb_plnmos_dis(kal_bool disable
);
945 /* (0x3B) LDO CTRL 34 VUSB */
946 extern void pmic_vusb_cal(kal_uint8 val
);
947 extern void pmic_vusb_calst(vusb_calst_enum sel
);
948 extern void pmic_vusb_caloc(vusb_caloc_enum sel
);
950 /* (0x3D) LDO CTRL 36 VBT */
951 extern void pmic_vbt_sel(vbt_sel_enum sel
);
952 extern void pmic_vbt_enable(kal_bool enable
);
953 extern void pmic_vbt_ical_en(vbt_ical_en_enum sel
);
954 extern void pmic_vbt_en_force(kal_bool enable
);
955 extern void pmic_vbt_plnmos_dis(kal_bool disable
);
957 /* (0x3E) LDO CTRL 37 VBT */
958 extern void pmic_vbt_cal(kal_uint8 val
);
959 extern void pmic_vbt_calst(vbt_calst_enum sel
);
960 extern void pmic_vbt_caloc(vbt_caloc_enum sel
);
962 /* (0x40) LDO CTRL 39 VCAMD */
963 extern void pmic_vcamd_sel(vcamd_sel_enum sel
);
964 extern void pmic_vcamd_enable(kal_bool enable
);
965 extern void pmic_vcamd_ical_en(vcamd_ical_en_enum sel
);
966 extern void pmic_vcamd_en_force(kal_bool enable
);
967 extern void pmic_vcamd_plnmos_dis(kal_bool disable
);
969 /* (0x41) LDO CTRL 40 VCAMD */
970 extern void pmic_vcamd_cal(kal_uint8 val
);
971 extern void pmic_vcamd_calst(vcamd_calst_enum sel
);
972 extern void pmic_vcamd_caloc(vcamd_caloc_enum sel
);
974 /* (0x43) LDO CTRL 42 VGP */
975 extern void pmic_vgp_sel(vgp_sel_enum sel
);
976 extern void pmic_vgp_enable(kal_bool enable
);
978 /* (0x44) LDO CTRL 43 VGP */
979 extern void pmic_vgp_cal(kal_uint8 val
);
981 /* (0x46) LDO CTRL 45 VSDIO */
982 extern void pmic_vsdio_ical_en(vsdio_ical_en_enum sel
);
983 extern void pmic_vsdio_enable(kal_bool enable
);
984 extern void pmic_vsdio_en_force(kal_bool enable
);
985 extern void pmic_vsdio_cal(kal_uint8 val
);
987 /* (0x47) LDO CTRL 46 VSDIO */
988 extern void pmic_vsdio_calst(vsdio_calst_enum sel
);
989 extern void pmic_vsdio_caloc(vsdio_caloc_enum sel
);
990 extern void pmic_vsdio_plnmos_dis(kal_bool disable
);
991 extern void pmic_vsdio_sel(vsdio_sel_enum sel
);
992 extern void pmic_vsdio_cm(vsdio_cm_enum sel
);
994 /* (0x48) LDO CTRL 47 VSDIO */
995 extern void pmic_vcore1_dvfs_step_inc(kal_uint8 val
);
997 /* (0x4E) BUCK CTRL 6 VCORE1 */
998 extern void pmic_vcore1_dvfs_0_eco3(kal_uint8 val
);
1000 /* (0x4F) BUCK CTRL 7 VCORE1 */
1001 extern void pmic_vcore1_sleep_0_eco3(kal_uint8 val
);
1002 extern void pmic_vcore1_dvfs_ramp_enable(kal_bool enable
);
1003 extern void pmic_vcore1_dvfs_target_update(kal_bool update
);
1005 /* (0x51) BUCK CTRL 9 VCORE2 */
1006 extern void pmic_vcore2_dvfs_0_eco3(kal_uint8 val
);
1009 /* (0x52) BUCK CTRL 10 VCORE2 */
1010 extern void pmic_vcore2_enable(kal_bool enable
);
1011 extern void pmic_vcore2_sleep_0_eco3(kal_uint8 val
);
1013 /* (0x53) BUCK CTRL 11 VCORE2 */
1014 extern void pmic_vcore2_on_sel(vcore2_on_sel_enum sel
);
1016 /* (0x57) BUCK CTRL 15 VMEM */
1017 extern void pmic_vcore1_sleep_1_eco3(kal_uint8 val
);
1018 extern void pmic_vcore1_dvfs_1_eco3(kal_uint8 val
);
1020 /* (0x58) BUCK CTRL 16 VPA */
1021 extern void pmic_vpa_tuneh(kal_uint8 value
);
1022 extern void pmic_vpa_en_force(kal_bool enable
);
1023 extern void pmic_vpa_plnmos_dis(kal_bool disable
);
1024 extern void pmic_vpa_enable(kal_bool enable
);
1026 /* (0x59) BUCK CTRL 17 VPA */
1027 extern void pmic_vpa_tunel(kal_uint8 value
);
1029 /* (0x5A) BUCK CTRL 18 VPA */
1030 extern void pmic_vpa_oc_tune(kal_uint8 val
);
1032 /* (0x5C) BOOST CTRL 1 BOOST1 */
1033 extern void pmic_vboost1_tune(vboost1_tune_enum sel
);
1034 extern void pmic_vboost1_tatt(kal_uint8 val
);
1036 /* (0x5D) BOOST CTRL 2 BOOST1 */
1037 extern void pmic_boost1_oc_th(kal_uint8 val
);
1038 extern void pmic_boost1_enable(kal_bool enable
);
1039 extern void pmic_boost1_pre_sr_con(kal_uint8 val
);
1040 extern void pmic_boost1_soft_st_speed(boost1_soft_st_speed_enum sel
);
1042 /* (0x5E) BOOST CTRL 3 BOOST1 */
1043 extern void pmic_boost1_dio_sr_con(kal_uint8 val
);
1044 extern void pmic_boost1_sync_enable(kal_bool enable
);
1047 /* (0x5F) BOOST CTRL 4 BOOST2 */
1048 extern void pmic_boost2_tune(vboost2_tune_enum sel
);
1049 extern void pmic_boots2_oc_th(boost2_oc_th_enum sel
);
1050 extern void pmic_boost2_dim_source(boost2_dim_source_enum sel
);
1052 /* (0x60) BOOST CTRL 5 BOOST2 */
1053 extern void pmic_boost2_pre_sr_con(kal_uint8 val
);
1054 extern void pmic_boost2_enable(kal_bool enable
);
1056 /* (0x61) BOOST CTRL 6 BOOST2 and BOOST */
1057 extern void pmic_boost_mode(boost_mode_sel_enum sel
);
1059 /* (0x64) DRIVER CTRL 3 GEN */
1060 extern void pmic_igen_drv_isel(kal_uint8 sel
);
1061 extern void pmic_igen_drv_force(kal_bool force
);
1062 extern void pmic_vgen_drv_bgsel(kal_uint8 sel
);
1064 /* (0x65) DRIVER CTRL 4 FLASH */
1065 extern void pmic_flash_i_tune(kal_uint8 val
);
1066 extern void pmic_flash_dim_div(kal_uint8 val
);
1068 /* (0x66) DRIVER CTRL 5 FLASH */
1069 extern void pmic_flash_dim_duty(kal_uint8 duty
);
1070 extern void pmic_flash_enable(kal_bool enable
);
1071 extern void pmic_flash_bypass(kal_bool bypass
);
1073 /* (0x67) DRIVER CTRL 6 BL */
1074 extern void pmic_bl_dim_duty(kal_uint8 duty
);
1075 extern void pmic_bl_enable(kal_bool enable
);
1076 extern void pmic_bl_i_cal_enable(kal_bool enable
);
1077 extern void pmic_bl_bypass(kal_bool bypass
);
1079 /* (0x68) DRIVER CTRL 7 BL */
1080 extern void pmic_bl_i_corse_tune(bl_i_corse_tune_enum sel
);
1081 extern void pmic_bl_i_fine_tune(bl_i_fine_tune_enum sel
);
1083 /* (0x6D) DRIVER CTRL 12 BL */
1084 extern void pmic_bl_dim_div(kal_uint8 val
);
1085 extern void pmic_bl_number(bl_number_enum num
);
1087 /* (0x6E) DRIVER CTRL 13 KP */
1088 extern void pmic_kp_dim_div(kal_uint8 val
);
1089 extern void pmic_kp_enable(kal_bool enable
);
1091 /* (0x6F) DRIVER CTRL 14 KP */
1092 extern void pmic_kp_dim_duty(kal_uint8 duty
);
1094 /* (0x70) DRIVER CTRL 15 VIBR */
1095 extern void pmic_vibr_dim_div(kal_uint8 val
);
1096 extern void pmic_vibr_enable(kal_bool enable
);
1098 /* (0x71) DRIVER CTRL 16 VIBR */
1099 extern void pmic_vibr_dim_duty(kal_uint8 duty
);
1101 /* (0x73) CLASS_D CTRL 3 SPKL */
1102 extern void pmic_spkl_dtin(kal_uint8 val
);
1103 extern void pmic_spkl_dtip(kal_uint8 val
);
1105 /* (0x74) CLASS_D CTRL 4 SPKL */
1106 extern void pmic_spkl_dmode(spkl_dmode_enum sel
);
1107 extern void pmic_spkl_enable(kal_bool enable
);
1108 extern void pmic_spkl_dtcal(spkl_dtcal_enum sel
);
1110 /* (0x78) CLASS_D CTRL 8 SPKR */
1111 extern void pmic_spkr_dtin(kal_uint8 val
);
1112 extern void pmic_spkr_dtip(kal_uint8 val
);
1114 /* (0x79) CLASS_D CTRL 9 SPKR */
1115 extern void pmic_spkr_dmode(spkr_dmode_enum sel
);
1116 extern void pmic_spkr_enable(kal_bool enable
);
1117 extern void pmic_spkr_dtcal(spkr_dtcal_enum sel
);
1120 /* (0x81) CHARGER CTRL 1 */
1121 extern void pmic_chr_offset(cht_chr_offset_enum sel
);
1122 extern void pmic_chr_ov_th_high(void);
1123 extern void pmic_chr_current(chr_chr_current_enum current
);
1125 /* (0x82) CHARGER CTRL 2 */
1126 extern void pmic_chr_cv_rt(void);
1127 extern void pmic_chr_force(kal_bool force
);
1128 extern void pmic_chr_chr_enable(kal_bool enable
);
1129 extern void pmic_chr_cv_tune(void);
1130 /* (0x83) TESTMODE CTRL 3 Analog Switch */
1131 extern void pmic_asw_asel(asw_asel_enum sel
);
1132 extern void pmic_asw_bsel(asw_bsel_enum sel
);
1133 extern void pmic_asw_a1sel(kal_uint8 sel
);
1134 extern void pmic_asw_a2sel(kal_uint8 sel
);
1135 /* (0x86) TESTMODE CTRL 6 BB AUXADC Related */
1136 extern void pmic_adc_isense_enable(kal_bool enable
);
1137 extern void pmic_adc_vbat_enable(kal_bool enable
);
1138 extern void pmic6326_adc_meas_on(kal_bool on
); /* exported for controling vbat, isense adc measure at same time */
1140 /* (0x89) INT CTRL 1 */
1141 extern void pmic_int_ctrl_1_enable(int_ctrl_1_enum sel
, kal_bool enable
);
1142 /* (0x8A) INT CTRL 2 */
1143 extern void pmic_int_ctrl_2_enable(int_ctrl_2_enum sel
, kal_bool enable
);
1144 /* (0x8B) INT CTRL 2 */
1145 extern void pmic_int_ctrl_3_enable(int_ctrl_3_enum sel
, kal_bool enable
);
1147 /* (0x96) WATCHDOG CTRL and INT CTRL 4 */
1148 extern void pmic_wdt_timeout(wdt_timout_enum sel
);
1149 extern void pmic_intr_polarity(kal_bool
assert);
1150 extern void pmic_wdt_enable(kal_bool enable
);
1153 /* Combinational functions */
1154 extern void pmic_vgp2_enable(kal_bool enable
);
1155 extern void pmic_vgp2_sel(vgp2_sel_enum sel
);
1156 extern void pmic_vgp2_on_sel(vgp2_on_sel_enum sel
);
1157 extern void pmic_vgp2_sell(kal_uint8 value
);
1158 extern void pmic_vgp2_selh(kal_uint8 value
);
1159 extern void pmic_vsim2_enable(kal_bool enable
);
1160 extern void pmic_vsim2_sel(vsim_sel_enum sel
);
1161 extern void pmic_spk_enable(kal_bool enable
);
1163 extern void pmic6326_EM_reg_write(kal_uint8 reg
, kal_uint8 val
);
1164 extern kal_uint8
pmic6326_EM_reg_read(kal_uint8 reg
);
1166 #if defined(DRV_MISC_PMIC_ASSERT_KEEP_CHARGING)
1167 extern void pmic6326_assert_chaging_kick(void);
1168 #endif /* #if defined(DRV_MISC_PMIC_ASSERT_KEEP_CHARGING) */
1170 /* The following are implemented in custom files */
1171 /* MoDIS parser skip start */
1172 extern void pmic6326_customization_init(void);
1173 extern void pmic6326_cust_vspk_enable(kal_bool enable
);
1174 extern void pmic6326_csut_vsim_enable(kal_bool enable
);
1175 extern void pmic6326_csut_vsim_sel(pmic_adpt_vsim_volt volt
);
1176 extern void pmic6326_csut_vsim2_enable(kal_bool enable
);
1177 extern void pmic6326_csut_vsim2_sel(pmic_adpt_vsim_volt sel
);
1178 extern void pmic6326_csut_vusb_enable(kal_bool enable
);
1179 extern void pmic6326_csut_vcama_enable(kal_bool enable
);
1180 extern void pmic6326_csut_vcama_sel(pmic_adpt_vcama_volt vol
);
1181 extern void pmic6326_csut_vcamd_enable(kal_bool enable
);
1182 extern void pmic6326_csut_vcamd_sel(pmic_adpt_vcamd_volt volt
);
1183 /* MoDIS parser skip end */
1187 /* ======================================================================================= */
1189 #endif /* #ifndef __PMIC6326_SW_H__ */