import PULS_20160108
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / magnetometer / akm8975 / akm8975.h
1 /*
2 * Definitions for akm8975 compass chip.
3 */
4 #ifndef AKM8975_H
5 #define AKM8975_H
6
7 #include <linux/ioctl.h>
8
9 #define AKM8975_I2C_NAME "akm8975"
10
11 #define AKM8975_I2C_ADDRESS 0x18 // CAD0 = 0, CAD1 =0
12 #define AKM8975_BUFSIZE 0x50
13
14 /*! \name AK8975 operation mode
15 \anchor AK8975_Mode
16 Defines an operation mode of the AK8975.*/
17 /*! @{*/
18 #define AK8975_MODE_SNG_MEASURE 0x01
19 #define AK8975_MODE_SELF_TEST 0x08
20 #define AK8975_MODE_FUSE_ACCESS 0x0F
21 #define AK8975_MODE_POWERDOWN 0x00
22 /*! @}*/
23
24 #define SENSOR_DATA_SIZE 8 /* Rx buffer size, i.e from ST1 to ST2 */
25 #define RWBUF_SIZE 16 /* Read/Write buffer size.*/
26 #define CALIBRATION_DATA_SIZE 12
27
28
29 /*! \name AK8975 register address
30 \anchor AK8975_REG
31 Defines a register address of the AK8975.*/
32 /*! @{*/
33 #define AK8975_REG_WIA 0x00
34 #define AK8975_REG_INFO 0x01
35 #define AK8975_REG_ST1 0x02
36 #define AK8975_REG_HXL 0x03
37 #define AK8975_REG_HXH 0x04
38 #define AK8975_REG_HYL 0x05
39 #define AK8975_REG_HYH 0x06
40 #define AK8975_REG_HZL 0x07
41 #define AK8975_REG_HZH 0x08
42 #define AK8975_REG_ST2 0x09
43 #define AK8975_REG_CNTL 0x0A
44 #define AK8975_REG_RSV 0x0B
45 #define AK8975_REG_ASTC 0x0C
46 #define AK8975_REG_TS1 0x0D
47 #define AK8975_REG_TS2 0x0E
48 #define AK8975_REG_I2CDIS 0x0F
49 /*! @}*/
50
51 /*! \name AK8975 fuse-rom address
52 \anchor AK8975_FUSE
53 Defines a read-only address of the fuse ROM of the AK8975.*/
54 /*! @{*/
55 #define AK8975_FUSE_ASAX 0x10
56 #define AK8975_FUSE_ASAY 0x11
57 #define AK8975_FUSE_ASAZ 0x12
58 /*! @}*/
59
60 // conversion of magnetic data (for AK8975) to uT units
61 //#define CONVERT_M (1.0f*0.06f)
62 // conversion of orientation data to degree units
63 //#define CONVERT_O (1.0f/64.0f)
64
65 #define CONVERT_M 6
66 #define CONVERT_M_DIV 100 // 6/100 = CONVERT_M
67 #define CONVERT_O 1
68 #define CONVERT_O_DIV 64 // 1/64 = CONVERT_O
69
70 #define CSPEC_SPI_USE 0
71 #define DBG_LEVEL0 0x0001 // Critical
72 #define DBG_LEVEL1 0x0002 // Notice
73 #define DBG_LEVEL2 0x0003 // Information
74 #define DBG_LEVEL3 0x0004 // Debug
75 #define DBGFLAG DBG_LEVEL2
76
77
78
79 #ifndef DBGPRINT
80 #define DBGPRINT(level, format, ...) \
81 ((((level) != 0) && ((level) <= DBGFLAG)) \
82 ? (printk(KERN_INFO, (format), ##__VA_ARGS__)) \
83 : (void)0)
84
85 #endif
86
87 /*** Limit of factory shipment test *******************************************/
88
89 #define TLIMIT_TN_REVISION ""
90 #define TLIMIT_NO_RST_WIA "1-3"
91 #define TLIMIT_TN_RST_WIA "RST_WIA"
92 #define TLIMIT_LO_RST_WIA 0x48
93 #define TLIMIT_HI_RST_WIA 0x48
94 #define TLIMIT_NO_RST_INFO "1-4"
95 #define TLIMIT_TN_RST_INFO "RST_INFO"
96 #define TLIMIT_LO_RST_INFO 0
97 #define TLIMIT_HI_RST_INFO 255
98 #define TLIMIT_NO_RST_ST1 "1-5"
99 #define TLIMIT_TN_RST_ST1 "RST_ST1"
100 #define TLIMIT_LO_RST_ST1 0
101 #define TLIMIT_HI_RST_ST1 0
102 #define TLIMIT_NO_RST_HXL "1-6"
103 #define TLIMIT_TN_RST_HXL "RST_HXL"
104 #define TLIMIT_LO_RST_HXL 0
105 #define TLIMIT_HI_RST_HXL 0
106 #define TLIMIT_NO_RST_HXH "1-7"
107 #define TLIMIT_TN_RST_HXH "RST_HXH"
108 #define TLIMIT_LO_RST_HXH 0
109 #define TLIMIT_HI_RST_HXH 0
110 #define TLIMIT_NO_RST_HYL "1-8"
111 #define TLIMIT_TN_RST_HYL "RST_HYL"
112 #define TLIMIT_LO_RST_HYL 0
113 #define TLIMIT_HI_RST_HYL 0
114 #define TLIMIT_NO_RST_HYH "1-9"
115 #define TLIMIT_TN_RST_HYH "RST_HYH"
116 #define TLIMIT_LO_RST_HYH 0
117 #define TLIMIT_HI_RST_HYH 0
118 #define TLIMIT_NO_RST_HZL "1-10"
119 #define TLIMIT_TN_RST_HZL "RST_HZL"
120 #define TLIMIT_LO_RST_HZL 0
121 #define TLIMIT_HI_RST_HZL 0
122 #define TLIMIT_NO_RST_HZH "1-11"
123 #define TLIMIT_TN_RST_HZH "RST_HZH"
124 #define TLIMIT_LO_RST_HZH 0
125 #define TLIMIT_HI_RST_HZH 0
126 #define TLIMIT_NO_RST_ST2 "1-12"
127 #define TLIMIT_TN_RST_ST2 "RST_ST2"
128 #define TLIMIT_LO_RST_ST2 0
129 #define TLIMIT_HI_RST_ST2 0
130 #define TLIMIT_NO_RST_CNTL "1-13"
131 #define TLIMIT_TN_RST_CNTL "RST_CNTL"
132 #define TLIMIT_LO_RST_CNTL 0
133 #define TLIMIT_HI_RST_CNTL 0
134 #define TLIMIT_NO_RST_ASTC "1-14"
135 #define TLIMIT_TN_RST_ASTC "RST_ASTC"
136 #define TLIMIT_LO_RST_ASTC 0
137 #define TLIMIT_HI_RST_ASTC 0
138 #define TLIMIT_NO_RST_I2CDIS "1-15"
139 #define TLIMIT_TN_RST_I2CDIS "RST_I2CDIS"
140 #define TLIMIT_LO_RST_I2CDIS_USEI2C 0
141 #define TLIMIT_HI_RST_I2CDIS_USEI2C 0
142 #define TLIMIT_LO_RST_I2CDIS_USESPI 1
143 #define TLIMIT_HI_RST_I2CDIS_USESPI 1
144 #define TLIMIT_NO_ASAX "1-17"
145 #define TLIMIT_TN_ASAX "ASAX"
146 #define TLIMIT_LO_ASAX 1
147 #define TLIMIT_HI_ASAX 254
148 #define TLIMIT_NO_ASAY "1-18"
149 #define TLIMIT_TN_ASAY "ASAY"
150 #define TLIMIT_LO_ASAY 1
151 #define TLIMIT_HI_ASAY 254
152 #define TLIMIT_NO_ASAZ "1-19"
153 #define TLIMIT_TN_ASAZ "ASAZ"
154 #define TLIMIT_LO_ASAZ 1
155 #define TLIMIT_HI_ASAZ 254
156 #define TLIMIT_NO_WR_CNTL "1-20"
157 #define TLIMIT_TN_WR_CNTL "WR_CNTL"
158 #define TLIMIT_LO_WR_CNTL 0x0F
159 #define TLIMIT_HI_WR_CNTL 0x0F
160
161 #define TLIMIT_NO_SNG_ST1 "2-3"
162 #define TLIMIT_TN_SNG_ST1 "SNG_ST1"
163 #define TLIMIT_LO_SNG_ST1 1
164 #define TLIMIT_HI_SNG_ST1 1
165
166 #define TLIMIT_NO_SNG_HX "2-4"
167 #define TLIMIT_TN_SNG_HX "SNG_HX"
168 #define TLIMIT_LO_SNG_HX -4096
169 #define TLIMIT_HI_SNG_HX 4095
170
171 #define TLIMIT_NO_SNG_HY "2-6"
172 #define TLIMIT_TN_SNG_HY "SNG_HY"
173 #define TLIMIT_LO_SNG_HY -4096
174 #define TLIMIT_HI_SNG_HY 4095
175
176 #define TLIMIT_NO_SNG_HZ "2-8"
177 #define TLIMIT_TN_SNG_HZ "SNG_HZ"
178 #define TLIMIT_LO_SNG_HZ -4096
179 #define TLIMIT_HI_SNG_HZ 4095
180
181 #define TLIMIT_NO_SNG_ST2 "2-10"
182 #define TLIMIT_TN_SNG_ST2 "SNG_ST2"
183 #define TLIMIT_LO_SNG_ST2 0
184 #define TLIMIT_HI_SNG_ST2 0
185
186 #define TLIMIT_NO_SLF_ST1 "2-14"
187 #define TLIMIT_TN_SLF_ST1 "SLF_ST1"
188 #define TLIMIT_LO_SLF_ST1 1
189 #define TLIMIT_HI_SLF_ST1 1
190
191 #define TLIMIT_NO_SLF_RVHX "2-15"
192 #define TLIMIT_TN_SLF_RVHX "SLF_REVSHX"
193 #define TLIMIT_LO_SLF_RVHX -100
194 #define TLIMIT_HI_SLF_RVHX 100
195
196 #define TLIMIT_NO_SLF_RVHY "2-17"
197 #define TLIMIT_TN_SLF_RVHY "SLF_REVSHY"
198 #define TLIMIT_LO_SLF_RVHY -100
199 #define TLIMIT_HI_SLF_RVHY 100
200
201 #define TLIMIT_NO_SLF_RVHZ "2-19"
202 #define TLIMIT_TN_SLF_RVHZ "SLF_REVSHZ"
203 #define TLIMIT_LO_SLF_RVHZ -1000
204 #define TLIMIT_HI_SLF_RVHZ -300
205
206 #define TLIMIT_NO_SLF_ST2 "2-21"
207 #define TLIMIT_TN_SLF_ST2 "SLF_ST2"
208 #define TLIMIT_LO_SLF_ST2 0
209 #define TLIMIT_HI_SLF_ST2 0
210
211
212
213 #endif