import PULS_20180308
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / power / mt8127 / fan5405.h
1 /*****************************************************************************
2 *
3 * Filename:
4 * ---------
5 * fan5405.h
6 *
7 * Project:
8 * --------
9 * Android
10 *
11 * Description:
12 * ------------
13 * fan5405 header file
14 *
15 * Author:
16 * -------
17 *
18 ****************************************************************************/
19
20 #ifndef _fan5405_SW_H_
21 #define _fan5405_SW_H_
22
23 #define HIGH_BATTERY_VOLTAGE_SUPPORT
24
25 #define fan5405_CON0 0x00
26 #define fan5405_CON1 0x01
27 #define fan5405_CON2 0x02
28 #define fan5405_CON3 0x03
29 #define fan5405_CON4 0x04
30 #define fan5405_CON5 0x05
31 #define fan5405_CON6 0x06
32 #define fan5405_REG_NUM 7
33
34
35 /**********************************************************
36 *
37 * [MASK/SHIFT]
38 *
39 *********************************************************/
40 //CON0
41 #define CON0_TMR_RST_MASK 0x01
42 #define CON0_TMR_RST_SHIFT 7
43
44 #define CON0_OTG_MASK 0x01
45 #define CON0_OTG_SHIFT 7
46
47 #define CON0_EN_STAT_MASK 0x01
48 #define CON0_EN_STAT_SHIFT 6
49
50 #define CON0_STAT_MASK 0x03
51 #define CON0_STAT_SHIFT 4
52
53 #define CON0_BOOST_MASK 0x01
54 #define CON0_BOOST_SHIFT 3
55
56 #define CON0_FAULT_MASK 0x07
57 #define CON0_FAULT_SHIFT 0
58
59 //CON1
60 #define CON1_LIN_LIMIT_MASK 0x03
61 #define CON1_LIN_LIMIT_SHIFT 6
62
63 #define CON1_LOW_V_MASK 0x03
64 #define CON1_LOW_V_SHIFT 4
65
66 #define CON1_TE_MASK 0x01
67 #define CON1_TE_SHIFT 3
68
69 #define CON1_CE_MASK 0x01
70 #define CON1_CE_SHIFT 2
71
72 #define CON1_HZ_MODE_MASK 0x01
73 #define CON1_HZ_MODE_SHIFT 1
74
75 #define CON1_OPA_MODE_MASK 0x01
76 #define CON1_OPA_MODE_SHIFT 0
77
78 //CON2
79 #define CON2_OREG_MASK 0x3F
80 #define CON2_OREG_SHIFT 2
81
82 #define CON2_OTG_PL_MASK 0x01
83 #define CON2_OTG_PL_SHIFT 1
84
85 #define CON2_OTG_EN_MASK 0x01
86 #define CON2_OTG_EN_SHIFT 0
87
88 //CON3
89 #define CON3_VENDER_CODE_MASK 0x07
90 #define CON3_VENDER_CODE_SHIFT 5
91
92 #define CON3_PIN_MASK 0x03
93 #define CON3_PIN_SHIFT 3
94
95 #define CON3_REVISION_MASK 0x07
96 #define CON3_REVISION_SHIFT 0
97
98 //CON4
99 #define CON4_RESET_MASK 0x01
100 #define CON4_RESET_SHIFT 7
101
102 #define CON4_I_CHR_MASK 0x07
103 #define CON4_I_CHR_SHIFT 4
104
105 #define CON4_I_TERM_MASK 0x07
106 #define CON4_I_TERM_SHIFT 0
107
108 //CON5
109 #define CON5_DIS_VREG_MASK 0x01
110 #define CON5_DIS_VREG_SHIFT 6
111
112 #define CON5_IO_LEVEL_MASK 0x01
113 #define CON5_IO_LEVEL_SHIFT 5
114
115 #define CON5_SP_STATUS_MASK 0x01
116 #define CON5_SP_STATUS_SHIFT 4
117
118 #define CON5_EN_LEVEL_MASK 0x01
119 #define CON5_EN_LEVEL_SHIFT 3
120
121 #define CON5_VSP_MASK 0x07
122 #define CON5_VSP_SHIFT 0
123
124 //CON6
125 #define CON6_ISAFE_MASK 0x07
126 #define CON6_ISAFE_SHIFT 4
127
128 #define CON6_VSAFE_MASK 0x0F
129 #define CON6_VSAFE_SHIFT 0
130
131 /**********************************************************
132 *
133 * [Extern Function]
134 *
135 *********************************************************/
136 //CON0----------------------------------------------------
137 extern void fan5405_set_tmr_rst(kal_uint32 val);
138 extern kal_uint32 fan5405_get_otg_status(void);
139 extern void fan5405_set_en_stat(kal_uint32 val);
140 extern kal_uint32 fan5405_get_chip_status(void);
141 extern kal_uint32 fan5405_get_boost_status(void);
142 extern kal_uint32 fan5405_get_fault_status(void);
143 //CON1----------------------------------------------------
144 extern void fan5405_set_input_charging_current(kal_uint32 val);
145 extern void fan5405_set_v_low(kal_uint32 val);
146 extern void fan5405_set_te(kal_uint32 val);
147 extern void fan5405_set_ce(kal_uint32 val);
148 extern void fan5405_set_hz_mode(kal_uint32 val);
149 extern void fan5405_set_opa_mode(kal_uint32 val);
150 //CON2----------------------------------------------------
151 extern void fan5405_set_oreg(kal_uint32 val);
152 extern void fan5405_set_otg_pl(kal_uint32 val);
153 extern void fan5405_set_otg_en(kal_uint32 val);
154 //CON3----------------------------------------------------
155 extern kal_uint32 fan5405_get_vender_code(void);
156 extern kal_uint32 fan5405_get_pn(void);
157 extern kal_uint32 fan5405_get_revision(void);
158 //CON4----------------------------------------------------
159 extern void fan5405_set_reset(kal_uint32 val);
160 extern void fan5405_set_iocharge(kal_uint32 val);
161 extern void fan5405_set_iterm(kal_uint32 val);
162 //CON5----------------------------------------------------
163 extern void fan5405_set_dis_vreg(kal_uint32 val);
164 extern void fan5405_set_io_level(kal_uint32 val);
165 extern kal_uint32 fan5405_get_sp_status(void);
166 extern kal_uint32 fan5405_get_en_level(void);
167 extern void fan5405_set_vsp(kal_uint32 val);
168 //CON6----------------------------------------------------
169 extern void fan5405_set_i_safe(kal_uint32 val);
170 extern void fan5405_set_v_safe(kal_uint32 val);
171 //---------------------------------------------------------
172 extern void fan5405_dump_register(void);
173 extern kal_uint32 fan5405_reg_config_interface (kal_uint8 RegNum, kal_uint8 val);
174
175 extern kal_uint32 fan5405_read_interface (kal_uint8 RegNum, kal_uint8 *val, kal_uint8 MASK, kal_uint8 SHIFT);
176 extern kal_uint32 fan5405_config_interface (kal_uint8 RegNum, kal_uint8 val, kal_uint8 MASK, kal_uint8 SHIFT);
177
178 #endif // _fan5405_SW_H_
179