Go to the documentation of this file.
13 #include <linux/compiler.h>
14 #include <linux/list.h>
89 #define ATMEL_TC_BCR 0xc0
90 #define ATMEL_TC_SYNC (1 << 0)
92 #define ATMEL_TC_BMR 0xc4
93 #define ATMEL_TC_TC0XC0S (3 << 0)
94 #define ATMEL_TC_TC0XC0S_TCLK0 (0 << 0)
95 #define ATMEL_TC_TC0XC0S_NONE (1 << 0)
96 #define ATMEL_TC_TC0XC0S_TIOA1 (2 << 0)
97 #define ATMEL_TC_TC0XC0S_TIOA2 (3 << 0)
98 #define ATMEL_TC_TC1XC1S (3 << 2)
99 #define ATMEL_TC_TC1XC1S_TCLK1 (0 << 2)
100 #define ATMEL_TC_TC1XC1S_NONE (1 << 2)
101 #define ATMEL_TC_TC1XC1S_TIOA0 (2 << 2)
102 #define ATMEL_TC_TC1XC1S_TIOA2 (3 << 2)
103 #define ATMEL_TC_TC2XC2S (3 << 4)
104 #define ATMEL_TC_TC2XC2S_TCLK2 (0 << 4)
105 #define ATMEL_TC_TC2XC2S_NONE (1 << 4)
106 #define ATMEL_TC_TC2XC2S_TIOA0 (2 << 4)
107 #define ATMEL_TC_TC2XC2S_TIOA1 (3 << 4)
128 #define ATMEL_TC_CHAN(idx) ((idx)*0x40)
129 #define ATMEL_TC_REG(idx, reg) (ATMEL_TC_CHAN(idx) + ATMEL_TC_ ## reg)
131 #define ATMEL_TC_CCR 0x00
132 #define ATMEL_TC_CLKEN (1 << 0)
133 #define ATMEL_TC_CLKDIS (1 << 1)
134 #define ATMEL_TC_SWTRG (1 << 2)
136 #define ATMEL_TC_CMR 0x04
139 #define ATMEL_TC_TCCLKS (7 << 0)
140 #define ATMEL_TC_TIMER_CLOCK1 (0 << 0)
141 #define ATMEL_TC_TIMER_CLOCK2 (1 << 0)
142 #define ATMEL_TC_TIMER_CLOCK3 (2 << 0)
143 #define ATMEL_TC_TIMER_CLOCK4 (3 << 0)
144 #define ATMEL_TC_TIMER_CLOCK5 (4 << 0)
145 #define ATMEL_TC_XC0 (5 << 0)
146 #define ATMEL_TC_XC1 (6 << 0)
147 #define ATMEL_TC_XC2 (7 << 0)
148 #define ATMEL_TC_CLKI (1 << 3)
149 #define ATMEL_TC_BURST (3 << 4)
150 #define ATMEL_TC_GATE_NONE (0 << 4)
151 #define ATMEL_TC_GATE_XC0 (1 << 4)
152 #define ATMEL_TC_GATE_XC1 (2 << 4)
153 #define ATMEL_TC_GATE_XC2 (3 << 4)
154 #define ATMEL_TC_WAVE (1 << 15)
157 #define ATMEL_TC_LDBSTOP (1 << 6)
158 #define ATMEL_TC_LDBDIS (1 << 7)
159 #define ATMEL_TC_ETRGEDG (3 << 8)
160 #define ATMEL_TC_ETRGEDG_NONE (0 << 8)
161 #define ATMEL_TC_ETRGEDG_RISING (1 << 8)
162 #define ATMEL_TC_ETRGEDG_FALLING (2 << 8)
163 #define ATMEL_TC_ETRGEDG_BOTH (3 << 8)
164 #define ATMEL_TC_ABETRG (1 << 10)
165 #define ATMEL_TC_CPCTRG (1 << 14)
166 #define ATMEL_TC_LDRA (3 << 16)
167 #define ATMEL_TC_LDRA_NONE (0 << 16)
168 #define ATMEL_TC_LDRA_RISING (1 << 16)
169 #define ATMEL_TC_LDRA_FALLING (2 << 16)
170 #define ATMEL_TC_LDRA_BOTH (3 << 16)
171 #define ATMEL_TC_LDRB (3 << 18)
172 #define ATMEL_TC_LDRB_NONE (0 << 18)
173 #define ATMEL_TC_LDRB_RISING (1 << 18)
174 #define ATMEL_TC_LDRB_FALLING (2 << 18)
175 #define ATMEL_TC_LDRB_BOTH (3 << 18)
178 #define ATMEL_TC_CPCSTOP (1 << 6)
179 #define ATMEL_TC_CPCDIS (1 << 7)
180 #define ATMEL_TC_EEVTEDG (3 << 8)
181 #define ATMEL_TC_EEVTEDG_NONE (0 << 8)
182 #define ATMEL_TC_EEVTEDG_RISING (1 << 8)
183 #define ATMEL_TC_EEVTEDG_FALLING (2 << 8)
184 #define ATMEL_TC_EEVTEDG_BOTH (3 << 8)
185 #define ATMEL_TC_EEVT (3 << 10)
186 #define ATMEL_TC_EEVT_TIOB (0 << 10)
187 #define ATMEL_TC_EEVT_XC0 (1 << 10)
188 #define ATMEL_TC_EEVT_XC1 (2 << 10)
189 #define ATMEL_TC_EEVT_XC2 (3 << 10)
190 #define ATMEL_TC_ENETRG (1 << 12)
191 #define ATMEL_TC_WAVESEL (3 << 13)
192 #define ATMEL_TC_WAVESEL_UP (0 << 13)
193 #define ATMEL_TC_WAVESEL_UPDOWN (1 << 13)
194 #define ATMEL_TC_WAVESEL_UP_AUTO (2 << 13)
195 #define ATMEL_TC_WAVESEL_UPDOWN_AUTO (3 << 13)
196 #define ATMEL_TC_ACPA (3 << 16)
197 #define ATMEL_TC_ACPA_NONE (0 << 16)
198 #define ATMEL_TC_ACPA_SET (1 << 16)
199 #define ATMEL_TC_ACPA_CLEAR (2 << 16)
200 #define ATMEL_TC_ACPA_TOGGLE (3 << 16)
201 #define ATMEL_TC_ACPC (3 << 18)
202 #define ATMEL_TC_ACPC_NONE (0 << 18)
203 #define ATMEL_TC_ACPC_SET (1 << 18)
204 #define ATMEL_TC_ACPC_CLEAR (2 << 18)
205 #define ATMEL_TC_ACPC_TOGGLE (3 << 18)
206 #define ATMEL_TC_AEEVT (3 << 20)
207 #define ATMEL_TC_AEEVT_NONE (0 << 20)
208 #define ATMEL_TC_AEEVT_SET (1 << 20)
209 #define ATMEL_TC_AEEVT_CLEAR (2 << 20)
210 #define ATMEL_TC_AEEVT_TOGGLE (3 << 20)
211 #define ATMEL_TC_ASWTRG (3 << 22)
212 #define ATMEL_TC_ASWTRG_NONE (0 << 22)
213 #define ATMEL_TC_ASWTRG_SET (1 << 22)
214 #define ATMEL_TC_ASWTRG_CLEAR (2 << 22)
215 #define ATMEL_TC_ASWTRG_TOGGLE (3 << 22)
216 #define ATMEL_TC_BCPB (3 << 24)
217 #define ATMEL_TC_BCPB_NONE (0 << 24)
218 #define ATMEL_TC_BCPB_SET (1 << 24)
219 #define ATMEL_TC_BCPB_CLEAR (2 << 24)
220 #define ATMEL_TC_BCPB_TOGGLE (3 << 24)
221 #define ATMEL_TC_BCPC (3 << 26)
222 #define ATMEL_TC_BCPC_NONE (0 << 26)
223 #define ATMEL_TC_BCPC_SET (1 << 26)
224 #define ATMEL_TC_BCPC_CLEAR (2 << 26)
225 #define ATMEL_TC_BCPC_TOGGLE (3 << 26)
226 #define ATMEL_TC_BEEVT (3 << 28)
227 #define ATMEL_TC_BEEVT_NONE (0 << 28)
228 #define ATMEL_TC_BEEVT_SET (1 << 28)
229 #define ATMEL_TC_BEEVT_CLEAR (2 << 28)
230 #define ATMEL_TC_BEEVT_TOGGLE (3 << 28)
231 #define ATMEL_TC_BSWTRG (3 << 30)
232 #define ATMEL_TC_BSWTRG_NONE (0 << 30)
233 #define ATMEL_TC_BSWTRG_SET (1 << 30)
234 #define ATMEL_TC_BSWTRG_CLEAR (2 << 30)
235 #define ATMEL_TC_BSWTRG_TOGGLE (3 << 30)
237 #define ATMEL_TC_CV 0x10
238 #define ATMEL_TC_RA 0x14
239 #define ATMEL_TC_RB 0x18
240 #define ATMEL_TC_RC 0x1c
242 #define ATMEL_TC_SR 0x20
244 #define ATMEL_TC_CLKSTA (1 << 16)
245 #define ATMEL_TC_MTIOA (1 << 17)
246 #define ATMEL_TC_MTIOB (1 << 18)
248 #define ATMEL_TC_IER 0x24
249 #define ATMEL_TC_IDR 0x28
250 #define ATMEL_TC_IMR 0x2c
253 #define ATMEL_TC_COVFS (1 << 0)
254 #define ATMEL_TC_LOVRS (1 << 1)
255 #define ATMEL_TC_CPAS (1 << 2)
256 #define ATMEL_TC_CPBS (1 << 3)
257 #define ATMEL_TC_CPCS (1 << 4)
258 #define ATMEL_TC_LDRAS (1 << 5)
259 #define ATMEL_TC_LDRBS (1 << 6)
260 #define ATMEL_TC_ETRGS (1 << 7)