1
2
3
4
5
6
7
8 #ifndef __LINUX_MFD_WM8350_COMPARATOR_H_
9 #define __LINUX_MFD_WM8350_COMPARATOR_H_
10
11
12
13
14
15 #define WM8350_DIGITISER_CONTROL_1 0x90
16 #define WM8350_DIGITISER_CONTROL_2 0x91
17 #define WM8350_AUX1_READBACK 0x98
18 #define WM8350_AUX2_READBACK 0x99
19 #define WM8350_AUX3_READBACK 0x9A
20 #define WM8350_AUX4_READBACK 0x9B
21 #define WM8350_CHIP_TEMP_READBACK 0x9F
22 #define WM8350_GENERIC_COMPARATOR_CONTROL 0xA3
23 #define WM8350_GENERIC_COMPARATOR_1 0xA4
24 #define WM8350_GENERIC_COMPARATOR_2 0xA5
25 #define WM8350_GENERIC_COMPARATOR_3 0xA6
26 #define WM8350_GENERIC_COMPARATOR_4 0xA7
27
28
29
30
31 #define WM8350_AUXADC_CTC 0x4000
32 #define WM8350_AUXADC_POLL 0x2000
33 #define WM8350_AUXADC_HIB_MODE 0x1000
34 #define WM8350_AUXADC_SEL8 0x0080
35 #define WM8350_AUXADC_SEL7 0x0040
36 #define WM8350_AUXADC_SEL6 0x0020
37 #define WM8350_AUXADC_SEL5 0x0010
38 #define WM8350_AUXADC_SEL4 0x0008
39 #define WM8350_AUXADC_SEL3 0x0004
40 #define WM8350_AUXADC_SEL2 0x0002
41 #define WM8350_AUXADC_SEL1 0x0001
42
43
44
45
46 #define WM8350_AUXADC_MASKMODE_MASK 0x3000
47 #define WM8350_AUXADC_CRATE_MASK 0x0700
48 #define WM8350_AUXADC_CAL 0x0004
49 #define WM8350_AUX_RBMODE 0x0002
50 #define WM8350_AUXADC_WAIT 0x0001
51
52
53
54
55 #define WM8350_AUXADC_SCALE1_MASK 0x6000
56 #define WM8350_AUXADC_REF1 0x1000
57 #define WM8350_AUXADC_DATA1_MASK 0x0FFF
58
59
60
61
62 #define WM8350_AUXADC_SCALE2_MASK 0x6000
63 #define WM8350_AUXADC_REF2 0x1000
64 #define WM8350_AUXADC_DATA2_MASK 0x0FFF
65
66
67
68
69 #define WM8350_AUXADC_SCALE3_MASK 0x6000
70 #define WM8350_AUXADC_REF3 0x1000
71 #define WM8350_AUXADC_DATA3_MASK 0x0FFF
72
73
74
75
76 #define WM8350_AUXADC_SCALE4_MASK 0x6000
77 #define WM8350_AUXADC_REF4 0x1000
78 #define WM8350_AUXADC_DATA4_MASK 0x0FFF
79
80
81
82
83 #define WM8350_AUXADC_DATA_USB_MASK 0x0FFF
84
85
86
87
88 #define WM8350_AUXADC_DATA_LINE_MASK 0x0FFF
89
90
91
92
93 #define WM8350_AUXADC_DATA_BATT_MASK 0x0FFF
94
95
96
97
98 #define WM8350_AUXADC_DATA_CHIPTEMP_MASK 0x0FFF
99
100
101
102
103 #define WM8350_DCMP4_ENA 0x0008
104 #define WM8350_DCMP3_ENA 0x0004
105 #define WM8350_DCMP2_ENA 0x0002
106 #define WM8350_DCMP1_ENA 0x0001
107
108
109
110
111 #define WM8350_DCMP1_SRCSEL_MASK 0xE000
112 #define WM8350_DCMP1_GT 0x1000
113 #define WM8350_DCMP1_THR_MASK 0x0FFF
114
115
116
117
118 #define WM8350_DCMP2_SRCSEL_MASK 0xE000
119 #define WM8350_DCMP2_GT 0x1000
120 #define WM8350_DCMP2_THR_MASK 0x0FFF
121
122
123
124
125 #define WM8350_DCMP3_SRCSEL_MASK 0xE000
126 #define WM8350_DCMP3_GT 0x1000
127 #define WM8350_DCMP3_THR_MASK 0x0FFF
128
129
130
131
132 #define WM8350_DCMP4_SRCSEL_MASK 0xE000
133 #define WM8350_DCMP4_GT 0x1000
134 #define WM8350_DCMP4_THR_MASK 0x0FFF
135
136
137
138
139 #define WM8350_IRQ_AUXADC_DATARDY 16
140 #define WM8350_IRQ_AUXADC_DCOMP4 17
141 #define WM8350_IRQ_AUXADC_DCOMP3 18
142 #define WM8350_IRQ_AUXADC_DCOMP2 19
143 #define WM8350_IRQ_AUXADC_DCOMP1 20
144 #define WM8350_IRQ_SYS_HYST_COMP_FAIL 21
145 #define WM8350_IRQ_SYS_CHIP_GT115 22
146 #define WM8350_IRQ_SYS_CHIP_GT140 23
147
148
149
150
151
152 #define WM8350_AUX_COEFF 1319
153
154 #define WM8350_AUXADC_AUX1 0
155 #define WM8350_AUXADC_AUX2 1
156 #define WM8350_AUXADC_AUX3 2
157 #define WM8350_AUXADC_AUX4 3
158 #define WM8350_AUXADC_USB 4
159 #define WM8350_AUXADC_LINE 5
160 #define WM8350_AUXADC_BATT 6
161 #define WM8350_AUXADC_TEMP 7
162
163 struct wm8350;
164
165
166
167
168 int wm8350_read_auxadc(struct wm8350 *wm8350, int channel, int scale,
169 int vref);
170
171 #endif