]> git.pld-linux.org Git - packages/crossavr-libc.git/blob - 400-avr-libc-public-devices.patch
- cleanup, use arch*dir macros, release 5 (x32 rebuild)
[packages/crossavr-libc.git] / 400-avr-libc-public-devices.patch
1 diff -Naurp configure.ac configure.ac
2 --- configure.ac        2011-12-29 14:21:55.000000000 +0530
3 +++ configure.ac        2012-11-22 19:48:48.000000000 +0530
4 @@ -461,6 +461,9 @@ AM_CONDITIONAL(HAS_avr25, test "x$HAS_av
5  CHECK_AVR_DEVICE(ata6289)
6  AM_CONDITIONAL(HAS_ata6289, test "x$HAS_ata6289" = "xyes")
7  
8 +CHECK_AVR_DEVICE(ata5272)
9 +AM_CONDITIONAL(HAS_ata5272, test "x$HAS_ata5272" = "xyes")
10 +
11  CHECK_AVR_DEVICE(attiny13)
12  AM_CONDITIONAL(HAS_attiny13, test "x$HAS_attiny13" = "xyes")
13  
14 @@ -512,6 +515,9 @@ AM_CONDITIONAL(HAS_attiny461a, test "x$H
15  CHECK_AVR_DEVICE(attiny48)
16  AM_CONDITIONAL(HAS_attiny48, test "x$HAS_attiny48" = "xyes")
17  
18 +CHECK_AVR_DEVICE(attiny828)
19 +AM_CONDITIONAL(HAS_attiny828, test "x$HAS_attiny828" = "xyes")
20 +
21  CHECK_AVR_DEVICE(attiny84)
22  AM_CONDITIONAL(HAS_attiny84, test "x$HAS_attiny84" = "xyes")
23  
24 @@ -560,6 +566,9 @@ AM_CONDITIONAL(HAS_at90usb82, test "x$HA
25  CHECK_AVR_DEVICE(at90usb162)
26  AM_CONDITIONAL(HAS_at90usb162, test "x$HAS_at90usb162" = "xyes")
27  
28 +CHECK_AVR_DEVICE(ata5505)
29 +AM_CONDITIONAL(HAS_ata5505, test "x$HAS_ata5505" = "xyes")
30 +
31  CHECK_AVR_DEVICE(atmega8u2)
32  AM_CONDITIONAL(HAS_atmega8u2, test "x$HAS_atmega8u2" = "xyes")
33  
34 @@ -572,6 +581,9 @@ AM_CONDITIONAL(HAS_atmega32u2, test "x$H
35  CHECK_AVR_DEVICE(attiny167)
36  AM_CONDITIONAL(HAS_attiny167, test "x$HAS_attiny167" = "xyes")
37  
38 +CHECK_AVR_DEVICE(attiny1634)
39 +AM_CONDITIONAL(HAS_attiny1634, test "x$HAS_attiny1634" = "xyes")
40 +
41  
42  # avr4
43  AM_CONDITIONAL(HAS_avr4, true)
44 @@ -579,12 +591,24 @@ AM_CONDITIONAL(HAS_atmega8, true)
45  AM_CONDITIONAL(HAS_atmega8515, true)
46  AM_CONDITIONAL(HAS_atmega8535, true)
47  
48 +CHECK_AVR_DEVICE(ata6285)
49 +AM_CONDITIONAL(HAS_ata6285, test "x$HAS_ata6285" = "xyes")
50 +
51 +CHECK_AVR_DEVICE(ata6286)
52 +AM_CONDITIONAL(HAS_ata6286, test "x$HAS_ata6286" = "xyes")
53 +
54 +CHECK_AVR_DEVICE(atmega8a)
55 +AM_CONDITIONAL(HAS_atmega8a, test "x$HAS_atmega8a" = "xyes")
56 +
57  CHECK_AVR_DEVICE(atmega48)
58  AM_CONDITIONAL(HAS_atmega48, test "x$HAS_atmega48" = "xyes")
59  
60  CHECK_AVR_DEVICE(atmega48a)
61  AM_CONDITIONAL(HAS_atmega48a, test "x$HAS_atmega48a" = "xyes")
62  
63 +CHECK_AVR_DEVICE(atmega48pa)
64 +AM_CONDITIONAL(HAS_atmega48pa, test "x$HAS_atmega48pa" = "xyes")
65 +
66  CHECK_AVR_DEVICE(atmega48p)
67  AM_CONDITIONAL(HAS_atmega48p, test "x$HAS_atmega48p" = "xyes")
68  
69 @@ -646,9 +670,18 @@ AM_CONDITIONAL(HAS_at90pwm316, test "x$H
70  CHECK_AVR_DEVICE(at90pwm216)
71  AM_CONDITIONAL(HAS_at90pwm216, test "x$HAS_at90pwm216" = "xyes")
72  
73 +CHECK_AVR_DEVICE(at90pwm161)
74 +AM_CONDITIONAL(HAS_at90pwm161, test "x$HAS_at90pwm161" = "xyes")
75 +
76  CHECK_AVR_DEVICE(at94k)
77  AM_CONDITIONAL(HAS_at94k, test "x$HAS_at94k" = "xyes")
78  
79 +CHECK_AVR_DEVICE(ata5790)
80 +AM_CONDITIONAL(HAS_ata5790, test "x$HAS_ata5790" = "xyes")
81 +
82 +CHECK_AVR_DEVICE(ata5795)
83 +AM_CONDITIONAL(HAS_ata5795, test "x$HAS_ata5795" = "xyes")
84 +
85  CHECK_AVR_DEVICE(atmega16)
86  AM_CONDITIONAL(HAS_atmega16, test "x$HAS_atmega16" = "xyes")
87  
88 @@ -670,6 +703,9 @@ AM_CONDITIONAL(HAS_atmega164a, test "x$H
89  CHECK_AVR_DEVICE(atmega164p)
90  AM_CONDITIONAL(HAS_atmega164p, test "x$HAS_atmega164p" = "xyes")
91  
92 +CHECK_AVR_DEVICE(atmega164pa)
93 +AM_CONDITIONAL(HAS_atmega164pa, test "x$HAS_atmega164pa" = "xyes")
94 +
95  CHECK_AVR_DEVICE(atmega165)
96  AM_CONDITIONAL(HAS_atmega165, test "x$HAS_atmega165" = "xyes")
97  
98 @@ -679,6 +715,9 @@ AM_CONDITIONAL(HAS_atmega165a, test "x$H
99  CHECK_AVR_DEVICE(atmega165p)
100  AM_CONDITIONAL(HAS_atmega165p, test "x$HAS_atmega165p" = "xyes")
101  
102 +CHECK_AVR_DEVICE(atmega165pa)
103 +AM_CONDITIONAL(HAS_atmega165pa, test "x$HAS_atmega165pa" = "xyes")
104 +
105  CHECK_AVR_DEVICE(atmega168)
106  AM_CONDITIONAL(HAS_atmega168, test "x$HAS_atmega168" = "xyes")
107  
108 @@ -688,6 +727,9 @@ AM_CONDITIONAL(HAS_atmega168a, test "x$H
109  CHECK_AVR_DEVICE(atmega168p)
110  AM_CONDITIONAL(HAS_atmega168p, test "x$HAS_atmega168p" = "xyes")
111  
112 +CHECK_AVR_DEVICE(atmega168pa)
113 +AM_CONDITIONAL(HAS_atmega168pa, test "x$HAS_atmega168pa" = "xyes")
114 +
115  CHECK_AVR_DEVICE(atmega169)
116  AM_CONDITIONAL(HAS_atmega169, test "x$HAS_atmega169" = "xyes")
117  
118 @@ -721,6 +763,9 @@ AM_CONDITIONAL(HAS_atmega16u4, test "x$H
119  CHECK_AVR_DEVICE(atmega32)
120  AM_CONDITIONAL(HAS_atmega32, test "x$HAS_atmega32" = "xyes")
121  
122 +CHECK_AVR_DEVICE(atmega32a)
123 +AM_CONDITIONAL(HAS_atmega32a, test "x$HAS_atmega32a" = "xyes")
124 +
125  CHECK_AVR_DEVICE(atmega323)
126  AM_CONDITIONAL(HAS_atmega323, test "x$HAS_atmega323" = "xyes")
127  
128 @@ -742,6 +787,9 @@ AM_CONDITIONAL(HAS_atmega325a, test "x$H
129  CHECK_AVR_DEVICE(atmega325p)
130  AM_CONDITIONAL(HAS_atmega325p, test "x$HAS_atmega325p" = "xyes")
131  
132 +CHECK_AVR_DEVICE(atmega325pa)
133 +AM_CONDITIONAL(HAS_atmega325pa, test "x$HAS_atmega325pa" = "xyes")
134 +
135  CHECK_AVR_DEVICE(atmega3250)
136  AM_CONDITIONAL(HAS_atmega3250, test "x$HAS_atmega3250" = "xyes")
137  
138 @@ -751,6 +799,9 @@ AM_CONDITIONAL(HAS_atmega3250a, test "x$
139  CHECK_AVR_DEVICE(atmega3250p)
140  AM_CONDITIONAL(HAS_atmega3250p, test "x$HAS_atmega3250p" = "xyes")
141  
142 +CHECK_AVR_DEVICE(atmega3250pa)
143 +AM_CONDITIONAL(HAS_atmega3250pa, test "x$HAS_atmega3250pa" = "xyes")
144 +
145  CHECK_AVR_DEVICE(atmega328)
146  AM_CONDITIONAL(HAS_atmega328, test "x$HAS_atmega328" = "xyes")
147  
148 @@ -778,6 +829,9 @@ AM_CONDITIONAL(HAS_atmega3290a, test "x$
149  CHECK_AVR_DEVICE(atmega3290p)
150  AM_CONDITIONAL(HAS_atmega3290p, test "x$HAS_atmega3290p" = "xyes")
151  
152 +CHECK_AVR_DEVICE(atmega3290pa)
153 +AM_CONDITIONAL(HAS_atmega3290pa, test "x$HAS_atmega3290pa" = "xyes")
154 +
155  CHECK_AVR_DEVICE(atmega32c1)
156  AM_CONDITIONAL(HAS_atmega32c1, test "x$HAS_atmega32c1" = "xyes")
157  
158 @@ -802,6 +856,9 @@ AM_CONDITIONAL(HAS_atmega406, test "x$HA
159  CHECK_AVR_DEVICE(atmega64)
160  AM_CONDITIONAL(HAS_atmega64, test "x$HAS_atmega64" = "xyes")
161  
162 +CHECK_AVR_DEVICE(atmega64a)
163 +AM_CONDITIONAL(HAS_atmega64a, test "x$HAS_atmega64a" = "xyes")
164 +
165  CHECK_AVR_DEVICE(atmega640)
166  AM_CONDITIONAL(HAS_atmega640, test "x$HAS_atmega640" = "xyes")
167  
168 @@ -876,12 +933,18 @@ AM_CONDITIONAL(HAS_avr51, test "x$HAS_av
169  
170  AM_CONDITIONAL(HAS_atmega128, true)
171  
172 +CHECK_AVR_DEVICE(atmega128a)
173 +AM_CONDITIONAL(HAS_atmega128a, test "x$HAS_atmega128a" = "xyes")
174 +
175  CHECK_AVR_DEVICE(atmega1280)
176  AM_CONDITIONAL(HAS_atmega1280, test "x$HAS_atmega1280" = "xyes")
177  
178  CHECK_AVR_DEVICE(atmega1281)
179  AM_CONDITIONAL(HAS_atmega1281, test "x$HAS_atmega1281" = "xyes")
180  
181 +CHECK_AVR_DEVICE(atmega1284)
182 +AM_CONDITIONAL(HAS_atmega1284, test "x$HAS_atmega1284" = "xyes")
183 +
184  CHECK_AVR_DEVICE(atmega1284p)
185  AM_CONDITIONAL(HAS_atmega1284p, test "x$HAS_atmega1284p" = "xyes")
186  
187 @@ -913,12 +976,24 @@ AM_CONDITIONAL(HAS_avrxmega2, test "x$HA
188  CHECK_AVR_DEVICE(atxmega16a4)
189  AM_CONDITIONAL(HAS_atxmega16a4, test "x$HAS_atxmega16a4" = "xyes")
190  
191 +CHECK_AVR_DEVICE(atxmega16a4u)
192 +AM_CONDITIONAL(HAS_atxmega16a4u, test "x$HAS_atxmega16a4u" = "xyes")
193 +
194 +CHECK_AVR_DEVICE(atxmega16c4)
195 +AM_CONDITIONAL(HAS_atxmega16c4, test "x$HAS_atxmega16c4" = "xyes")
196 +
197  CHECK_AVR_DEVICE(atxmega16d4)
198  AM_CONDITIONAL(HAS_atxmega16d4, test "x$HAS_atxmega16d4" = "xyes")
199  
200  CHECK_AVR_DEVICE(atxmega32a4)
201  AM_CONDITIONAL(HAS_atxmega32a4, test "x$HAS_atxmega32a4" = "xyes")
202  
203 +CHECK_AVR_DEVICE(atxmega32a4u)
204 +AM_CONDITIONAL(HAS_atxmega32a4u, test "x$HAS_atxmega32a4u" = "xyes")
205 +
206 +CHECK_AVR_DEVICE(atxmega32c4)
207 +AM_CONDITIONAL(HAS_atxmega32c4, test "x$HAS_atxmega32c4" = "xyes")
208 +
209  CHECK_AVR_DEVICE(atxmega32d4)
210  AM_CONDITIONAL(HAS_atxmega32d4, test "x$HAS_atxmega32d4" = "xyes")
211  
212 @@ -930,9 +1005,27 @@ AM_CONDITIONAL(HAS_avrxmega4, test "x$HA
213  CHECK_AVR_DEVICE(atxmega64a3)
214  AM_CONDITIONAL(HAS_atxmega64a3, test "x$HAS_atxmega64a3" = "xyes")
215  
216 +CHECK_AVR_DEVICE(atxmega64a3u)
217 +AM_CONDITIONAL(HAS_atxmega64a3u, test "x$HAS_atxmega64a3u" = "xyes")
218 +
219 +CHECK_AVR_DEVICE(atxmega64a4u)
220 +AM_CONDITIONAL(HAS_atxmega64a4u, test "x$HAS_atxmega64a4u" = "xyes")
221 +
222 +CHECK_AVR_DEVICE(atxmega64b1)
223 +AM_CONDITIONAL(HAS_atxmega64b1, test "x$HAS_atxmega64b1" = "xyes")
224 +
225 +CHECK_AVR_DEVICE(atxmega64b3)
226 +AM_CONDITIONAL(HAS_atxmega64b3, test "x$HAS_atxmega64b3" = "xyes")
227 +
228 +CHECK_AVR_DEVICE(atxmega64c3)
229 +AM_CONDITIONAL(HAS_atxmega64c3, test "x$HAS_atxmega64c3" = "xyes")
230 +
231  CHECK_AVR_DEVICE(atxmega64d3)
232  AM_CONDITIONAL(HAS_atxmega64d3, test "x$HAS_atxmega64d3" = "xyes")
233  
234 +CHECK_AVR_DEVICE(atxmega64d4)
235 +AM_CONDITIONAL(HAS_atxmega64d4, test "x$HAS_atxmega64d4" = "xyes")
236 +
237  
238  # avrxmega5
239  CHECK_AVR_DEVICE(avrxmega5)
240 @@ -952,24 +1045,59 @@ AM_CONDITIONAL(HAS_avrxmega6, test "x$HA
241  CHECK_AVR_DEVICE(atxmega128a3)
242  AM_CONDITIONAL(HAS_atxmega128a3, test "x$HAS_atxmega128a3" = "xyes")
243  
244 +CHECK_AVR_DEVICE(atxmega128a3u)
245 +AM_CONDITIONAL(HAS_atxmega128a3u, test "x$HAS_atxmega128a3u" = "xyes")
246 +
247 +CHECK_AVR_DEVICE(atxmega128b1)
248 +AM_CONDITIONAL(HAS_atxmega128b1, test "x$HAS_atxmega128b1" = "xyes")
249 +
250 +CHECK_AVR_DEVICE(atxmega128b3)
251 +AM_CONDITIONAL(HAS_atxmega128b3, test "x$HAS_atxmega128b3" = "xyes")
252 +
253 +CHECK_AVR_DEVICE(atxmega128c3)
254 +AM_CONDITIONAL(HAS_atxmega128c3, test "x$HAS_atxmega128c3" = "xyes")
255 +
256  CHECK_AVR_DEVICE(atxmega128d3)
257  AM_CONDITIONAL(HAS_atxmega128d3, test "x$HAS_atxmega128d3" = "xyes")
258  
259 +CHECK_AVR_DEVICE(atxmega128d4)
260 +AM_CONDITIONAL(HAS_atxmega128d4, test "x$HAS_atxmega128d4" = "xyes")
261 +
262  CHECK_AVR_DEVICE(atxmega192a3)
263  AM_CONDITIONAL(HAS_atxmega192a3, test "x$HAS_atxmega192a3" = "xyes")
264  
265 +CHECK_AVR_DEVICE(atxmega192a3u)
266 +AM_CONDITIONAL(HAS_atxmega192a3u, test "x$HAS_atxmega192a3u" = "xyes")
267 +
268 +CHECK_AVR_DEVICE(atxmega192c3)
269 +AM_CONDITIONAL(HAS_atxmega192c3, test "x$HAS_atxmega192c3" = "xyes")
270 +
271  CHECK_AVR_DEVICE(atxmega192d3)
272  AM_CONDITIONAL(HAS_atxmega192d3, test "x$HAS_atxmega192d3" = "xyes")
273  
274  CHECK_AVR_DEVICE(atxmega256a3)
275  AM_CONDITIONAL(HAS_atxmega256a3, test "x$HAS_atxmega256a3" = "xyes")
276  
277 +CHECK_AVR_DEVICE(atxmega256a3u)
278 +AM_CONDITIONAL(HAS_atxmega256a3u, test "x$HAS_atxmega256a3u" = "xyes")
279 +
280  CHECK_AVR_DEVICE(atxmega256a3b)
281  AM_CONDITIONAL(HAS_atxmega256a3b, test "x$HAS_atxmega256a3b" = "xyes")
282  
283 +CHECK_AVR_DEVICE(atxmega256a3bu)
284 +AM_CONDITIONAL(HAS_atxmega256a3bu, test "x$HAS_atxmega256a3bu" = "xyes")
285 +
286 +CHECK_AVR_DEVICE(atxmega256c3)
287 +AM_CONDITIONAL(HAS_atxmega256c3, test "x$HAS_atxmega256c3" = "xyes")
288 +
289  CHECK_AVR_DEVICE(atxmega256d3)
290  AM_CONDITIONAL(HAS_atxmega256d3, test "x$HAS_atxmega256d3" = "xyes")
291  
292 +CHECK_AVR_DEVICE(atxmega384c3)
293 +AM_CONDITIONAL(HAS_atxmega384c3, test "x$HAS_atxmega384c3" = "xyes")
294 +
295 +CHECK_AVR_DEVICE(atxmega384d3)
296 +AM_CONDITIONAL(HAS_atxmega384d3, test "x$HAS_atxmega384d3" = "xyes")
297  
298  # avrxmega7
299  CHECK_AVR_DEVICE(avrxmega7)
300 @@ -981,6 +1109,9 @@ AM_CONDITIONAL(HAS_atxmega128a1, test "x
301  CHECK_AVR_DEVICE(atxmega128a1u)
302  AM_CONDITIONAL(HAS_atxmega128a1u, test "x$HAS_atxmega128a1u" = "xyes")
303  
304 +CHECK_AVR_DEVICE(atxmega128a4u)
305 +AM_CONDITIONAL(HAS_atxmega128a4u, test "x$HAS_atxmega128a4u" = "xyes")
306 +
307  
308  # avrtiny10
309  CHECK_AVR_DEVICE(avrtiny10)
310 @@ -1076,6 +1207,7 @@ AC_CONFIG_FILES([
311         avr/lib/avr25/Makefile
312         avr/lib/avr25/at86rf401/Makefile
313         avr/lib/avr25/ata6289/Makefile
314 +       avr/lib/avr25/ata5272/Makefile
315         avr/lib/avr25/attiny13/Makefile
316         avr/lib/avr25/attiny13a/Makefile
317         avr/lib/avr25/attiny2313/Makefile
318 @@ -1093,6 +1225,7 @@ AC_CONFIG_FILES([
319         avr/lib/avr25/attiny461/Makefile
320         avr/lib/avr25/attiny461a/Makefile
321         avr/lib/avr25/attiny48/Makefile
322 +       avr/lib/avr25/attiny828/Makefile
323         avr/lib/avr25/attiny84/Makefile
324         avr/lib/avr25/attiny84a/Makefile
325         avr/lib/avr25/attiny85/Makefile
326 @@ -1125,19 +1258,25 @@ AC_CONFIG_FILES([
327         avr/lib/avr35/Makefile
328         avr/lib/avr35/at90usb82/Makefile
329         avr/lib/avr35/at90usb162/Makefile
330 +       avr/lib/avr35/ata5505/Makefile
331         avr/lib/avr35/atmega8u2/Makefile
332         avr/lib/avr35/atmega16u2/Makefile
333         avr/lib/avr35/atmega32u2/Makefile
334         avr/lib/avr35/attiny167/Makefile
335 +       avr/lib/avr35/attiny1634/Makefile
336  ])
337  
338  #avr4
339  AC_CONFIG_FILES([
340         avr/lib/avr4/Makefile
341 +       avr/lib/avr4/ata6285/Makefile
342 +       avr/lib/avr4/ata6286/Makefile
343         avr/lib/avr4/atmega48/Makefile
344         avr/lib/avr4/atmega48a/Makefile
345 +       avr/lib/avr4/atmega48pa/Makefile
346         avr/lib/avr4/atmega48p/Makefile
347         avr/lib/avr4/atmega8/Makefile
348 +       avr/lib/avr4/atmega8a/Makefile
349         avr/lib/avr4/atmega88/Makefile
350         avr/lib/avr4/atmega88a/Makefile
351         avr/lib/avr4/atmega88p/Makefile
352 @@ -1161,12 +1300,15 @@ AC_CONFIG_FILES([
353         avr/lib/avr5/at90can128/Makefile
354         avr/lib/avr5/at90pwm216/Makefile
355         avr/lib/avr5/at90pwm316/Makefile
356 +       avr/lib/avr5/at90pwm161/Makefile
357         avr/lib/avr5/at90scr100/Makefile
358         avr/lib/avr5/at90usb646/Makefile
359         avr/lib/avr5/at90usb647/Makefile
360         avr/lib/avr5/at90usb1286/Makefile
361         avr/lib/avr5/at90usb1287/Makefile
362         avr/lib/avr5/at94k/Makefile 
363 +       avr/lib/avr5/ata5790/Makefile 
364 +       avr/lib/avr5/ata5795/Makefile 
365         avr/lib/avr5/atmega16/Makefile
366         avr/lib/avr5/atmega16a/Makefile
367         avr/lib/avr5/atmega161/Makefile
368 @@ -1174,12 +1316,15 @@ AC_CONFIG_FILES([
369         avr/lib/avr5/atmega163/Makefile
370         avr/lib/avr5/atmega164a/Makefile
371         avr/lib/avr5/atmega164p/Makefile
372 +       avr/lib/avr5/atmega164pa/Makefile
373         avr/lib/avr5/atmega165/Makefile
374         avr/lib/avr5/atmega165a/Makefile
375         avr/lib/avr5/atmega165p/Makefile
376 +        avr/lib/avr5/atmega165pa/Makefile
377         avr/lib/avr5/atmega168/Makefile
378         avr/lib/avr5/atmega168a/Makefile
379         avr/lib/avr5/atmega168p/Makefile
380 +       avr/lib/avr5/atmega168pa/Makefile
381         avr/lib/avr5/atmega169/Makefile
382         avr/lib/avr5/atmega169a/Makefile
383         avr/lib/avr5/atmega169p/Makefile
384 @@ -1191,6 +1336,7 @@ AC_CONFIG_FILES([
385         avr/lib/avr5/atmega16m1/Makefile
386         avr/lib/avr5/atmega16u4/Makefile
387         avr/lib/avr5/atmega32/Makefile
388 +       avr/lib/avr5/atmega32a/Makefile
389         avr/lib/avr5/atmega323/Makefile
390         avr/lib/avr5/atmega324a/Makefile
391         avr/lib/avr5/atmega324p/Makefile
392 @@ -1198,9 +1344,11 @@ AC_CONFIG_FILES([
393         avr/lib/avr5/atmega325/Makefile
394         avr/lib/avr5/atmega325a/Makefile
395         avr/lib/avr5/atmega325p/Makefile
396 +       avr/lib/avr5/atmega325pa/Makefile
397         avr/lib/avr5/atmega3250/Makefile
398         avr/lib/avr5/atmega3250a/Makefile
399         avr/lib/avr5/atmega3250p/Makefile
400 +       avr/lib/avr5/atmega3250pa/Makefile
401         avr/lib/avr5/atmega328/Makefile
402         avr/lib/avr5/atmega328p/Makefile
403         avr/lib/avr5/atmega329/Makefile
404 @@ -1210,6 +1358,7 @@ AC_CONFIG_FILES([
405         avr/lib/avr5/atmega3290/Makefile
406         avr/lib/avr5/atmega3290a/Makefile
407         avr/lib/avr5/atmega3290p/Makefile
408 +       avr/lib/avr5/atmega3290pa/Makefile
409         avr/lib/avr5/atmega32c1/Makefile
410         avr/lib/avr5/atmega32hvb/Makefile
411         avr/lib/avr5/atmega32hvbrevb/Makefile
412 @@ -1218,6 +1367,7 @@ AC_CONFIG_FILES([
413         avr/lib/avr5/atmega32u6/Makefile
414         avr/lib/avr5/atmega406/Makefile
415         avr/lib/avr5/atmega64/Makefile
416 +       avr/lib/avr5/atmega64a/Makefile
417         avr/lib/avr5/atmega640/Makefile
418         avr/lib/avr5/atmega644/Makefile
419         avr/lib/avr5/atmega644a/Makefile
420 @@ -1250,8 +1400,10 @@ AC_CONFIG_FILES([
421  AC_CONFIG_FILES([
422         avr/lib/avr51/Makefile
423         avr/lib/avr51/atmega128/Makefile
424 +       avr/lib/avr51/atmega128a/Makefile
425         avr/lib/avr51/atmega1280/Makefile
426         avr/lib/avr51/atmega1281/Makefile
427 +       avr/lib/avr51/atmega1284/Makefile
428         avr/lib/avr51/atmega1284p/Makefile
429         avr/lib/avr51/atmega128rfa1/Makefile
430         avr/lib/avr51/at90can128/Makefile
431 @@ -1270,8 +1422,12 @@ AC_CONFIG_FILES([
432  AC_CONFIG_FILES([
433         avr/lib/avrxmega2/Makefile
434         avr/lib/avrxmega2/atxmega16a4/Makefile
435 +       avr/lib/avrxmega2/atxmega16a4u/Makefile
436 +       avr/lib/avrxmega2/atxmega16c4/Makefile
437         avr/lib/avrxmega2/atxmega16d4/Makefile
438         avr/lib/avrxmega2/atxmega32a4/Makefile
439 +       avr/lib/avrxmega2/atxmega32a4u/Makefile
440 +       avr/lib/avrxmega2/atxmega32c4/Makefile
441         avr/lib/avrxmega2/atxmega32d4/Makefile
442  ])
443  
444 @@ -1279,7 +1435,13 @@ AC_CONFIG_FILES([
445  AC_CONFIG_FILES([
446         avr/lib/avrxmega4/Makefile
447         avr/lib/avrxmega4/atxmega64a3/Makefile
448 +       avr/lib/avrxmega4/atxmega64a3u/Makefile
449 +       avr/lib/avrxmega4/atxmega64a4u/Makefile
450 +       avr/lib/avrxmega4/atxmega64b1/Makefile
451 +       avr/lib/avrxmega4/atxmega64b3/Makefile
452 +       avr/lib/avrxmega4/atxmega64c3/Makefile
453         avr/lib/avrxmega4/atxmega64d3/Makefile
454 +       avr/lib/avrxmega4/atxmega64d4/Makefile
455  ])
456  
457  # avrxmega5
458 @@ -1293,12 +1455,24 @@ AC_CONFIG_FILES([
459  AC_CONFIG_FILES([
460         avr/lib/avrxmega6/Makefile
461         avr/lib/avrxmega6/atxmega128a3/Makefile
462 +       avr/lib/avrxmega6/atxmega128a3u/Makefile
463 +       avr/lib/avrxmega6/atxmega128b1/Makefile
464 +       avr/lib/avrxmega6/atxmega128b3/Makefile
465 +       avr/lib/avrxmega6/atxmega128c3/Makefile
466         avr/lib/avrxmega6/atxmega128d3/Makefile
467 +       avr/lib/avrxmega6/atxmega128d4/Makefile
468         avr/lib/avrxmega6/atxmega192a3/Makefile
469 +       avr/lib/avrxmega6/atxmega192a3u/Makefile
470 +       avr/lib/avrxmega6/atxmega192c3/Makefile
471         avr/lib/avrxmega6/atxmega192d3/Makefile
472         avr/lib/avrxmega6/atxmega256a3/Makefile
473 +       avr/lib/avrxmega6/atxmega256a3u/Makefile
474         avr/lib/avrxmega6/atxmega256a3b/Makefile
475 +       avr/lib/avrxmega6/atxmega256a3bu/Makefile
476 +       avr/lib/avrxmega6/atxmega256c3/Makefile
477         avr/lib/avrxmega6/atxmega256d3/Makefile
478 +       avr/lib/avrxmega6/atxmega384c3/Makefile
479 +       avr/lib/avrxmega6/atxmega384d3/Makefile
480  ])
481  
482  # avrxmega7
483 @@ -1306,6 +1480,7 @@ AC_CONFIG_FILES([
484         avr/lib/avrxmega7/Makefile
485         avr/lib/avrxmega7/atxmega128a1/Makefile
486         avr/lib/avrxmega7/atxmega128a1u/Makefile
487 +       avr/lib/avrxmega7/atxmega128a4u/Makefile
488  ])
489  
490  
491 diff -Naurp devtools/gen-avr-lib-tree.sh devtools/gen-avr-lib-tree.sh
492 --- devtools/gen-avr-lib-tree.sh        2011-12-29 14:21:50.000000000 +0530
493 +++ devtools/gen-avr-lib-tree.sh        2012-11-22 19:48:48.000000000 +0530
494 @@ -84,6 +84,7 @@ attiny861:crttn861.o:${DEV_DEFS}:${CFLAG
495  AVR25_DEV_INFO="\
496  at86rf401:crt86401.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
497  ata6289:crta6289.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
498 +ata5272:crta5272.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
499  attiny13:crttn13.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
500  attiny13a:crttn13a.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
501  attiny2313:crttn2313.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
502 @@ -101,6 +102,7 @@ attiny45:crttn45.o:${DEV_DEFS}:${CFLAGS_
503  attiny461:crttn461.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
504  attiny461a:crttn461a.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
505  attiny48:crttn48.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
506 +attiny828:crttn828.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
507  attiny84:crttn84.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
508  attiny84a:crttn84a.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
509  attiny85:crttn85.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
510 @@ -127,17 +129,23 @@ at43usb320:crt43320.o:${DEV_DEFS}:${CFLA
511  AVR35_DEV_INFO="\
512  at90usb82:crtusb82.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
513  at90usb162:crtusb162.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
514 +ata5505:crta5505.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
515  atmega8u2:crtm8u2.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
516  atmega16u2:crtm16u2.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
517  atmega32u2:crtm32u2.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
518 -attiny167:crttn167.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS}\
519 +attiny167:crttn167.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
520 +attiny1634:crttn1634.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS}\
521  "
522  
523  AVR4_DEV_INFO="\
524 +ata6285:crta6285.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
525 +ata6286:crta6286.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
526  atmega48:crtm48.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
527  atmega48a:crtm48a.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
528 +atmega48pa:crtm48pa.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
529  atmega48p:crtm48p.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
530  atmega8:crtm8.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
531 +atmega8a:crtm8a.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
532  atmega88:crtm88.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
533  atmega88a:crtm88a.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
534  atmega88p:crtm88p.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
535 @@ -159,12 +167,15 @@ at90can64:crtcan64.o:${DEV_DEFS}:${CFLAG
536  at90can128:crtcan128.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
537  at90pwm216:crt90pwm216.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
538  at90pwm316:crt90pwm316.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
539 +at90pwm161:crt90pwm161.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
540  at90scr100:crt90scr100.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
541  at90usb646:crtusb646.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
542  at90usb647:crtusb647.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
543  at90usb1286:crtusb1286.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
544  at90usb1287:crtusb1287.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
545  at94k:crtat94k.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
546 +ata5790:crta5790.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
547 +ata5795:crta5795.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
548  atmega16:crtm16.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
549  atmega16a:crtm16a.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
550  atmega161:crtm161.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
551 @@ -172,12 +183,15 @@ atmega162:crtm162.o:${DEV_DEFS}:${CFLAGS
552  atmega163:crtm163.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
553  atmega164a:crtm164a.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
554  atmega164p:crtm164p.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
555 +atmega164pa:crtm164pa.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
556  atmega165:crtm165.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
557  atmega165a:crtm165a.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
558  atmega165p:crtm165p.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
559 +atmega165pa:crtm165pa.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
560  atmega168:crtm168.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
561  atmega168a:crtm168a.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
562  atmega168p:crtm168p.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
563 +atmega168pa:crtm168pa.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
564  atmega169:crtm169.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
565  atmega169a:crtm169a.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
566  atmega169p:crtm169p.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
567 @@ -189,6 +203,7 @@ atmega16hvbrevb:crtm16hvbrevb.o:${DEV_DE
568  atmega16m1:crtm16m1.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
569  atmega16u4:crtm16u4.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
570  atmega32:crtm32.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
571 +atmega32a:crtm32a.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
572  atmega323:crtm323.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
573  atmega324a:crtm324a.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
574  atmega324p:crtm324p.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
575 @@ -196,9 +211,11 @@ atmega324pa:crtm324pa.o:${DEV_DEFS}:${CF
576  atmega325:crtm325.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
577  atmega325a:crtm325a.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
578  atmega325p:crtm325p.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
579 +atmega325pa:crtm325pa.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
580  atmega3250:crtm3250.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
581  atmega3250a:crtm3250a.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
582  atmega3250p:crtm3250p.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
583 +atmega3250pa:crtm3250pa.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
584  atmega328:crtm328.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
585  atmega328p:crtm328p.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
586  atmega329:crtm329.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
587 @@ -208,6 +225,7 @@ atmega329pa:crtm329pa.o:${DEV_DEFS}:${CF
588  atmega3290:crtm3290.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
589  atmega3290a:crtm3290a.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
590  atmega3290p:crtm3290p.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
591 +atmega3290pa:crtm3290pa.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
592  atmega32c1:crtm32c1.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
593  atmega32hvb:crtm32hvb.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
594  atmega32hvbrevb:crtm32hvbrevb.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
595 @@ -216,6 +234,7 @@ atmega32u4:crtm32u4.o:${DEV_DEFS}:${CFLA
596  atmega32u6:crtm32u6.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
597  atmega406:crtm406.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
598  atmega64:crtm64.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
599 +atmega64a:crtm64a.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
600  atmega640:crtm640.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
601  atmega644:crtm644.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
602  atmega644a:crtm644a.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
603 @@ -246,8 +265,10 @@ m3000:crtm3000.o:${DEV_DEFS}:${CFLAGS_SP
604  
605  AVR51_DEV_INFO="\
606  atmega128:crtm128.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
607 +atmega128a:crtm128a.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
608  atmega1280:crtm1280.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
609  atmega1281:crtm1281.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
610 +atmega1284:crtm1284.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
611  atmega1284p:crtm1284p.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
612  atmega128rfa1:crtm128rfa1.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
613  at90can128:crtcan128.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
614 @@ -262,14 +283,24 @@ atmega2561:crtm2561.o:${DEV_DEFS}:${CFLA
615  
616  AVRXMEGA2_DEV_INFO="\
617  atxmega16a4:crtx16a4.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
618 +atxmega16a4u:crtx16a4u.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
619 +atxmega16c4:crtx16c4.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
620  atxmega16d4:crtx16d4.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
621  atxmega32a4:crtx32a4.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
622 +atxmega32a4u:crtx32a4u.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
623 +atxmega32c4:crtx32c4.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
624  atxmega32d4:crtx32d4.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS}\
625  "
626  
627  AVRXMEGA4_DEV_INFO="\
628  atxmega64a3:crtx64a3.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
629 -atxmega64d3:crtx64d3.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS}\
630 +atxmega64a3u:crtx64a3u.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
631 +atxmega64a4u:crtx64a4u.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
632 +atxmega64b1:crtx64b1.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
633 +atxmega64b3:crtx64b3.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
634 +atxmega64c3:crtx64c3.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
635 +atxmega64d3:crtx64d3.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
636 +atxmega64d4:crtx64d4.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS}\
637  "
638  
639  AVRXMEGA5_DEV_INFO="\
640 @@ -279,17 +310,30 @@ atxmega64a1u:crtx64a1u.o:${DEV_DEFS}:${C
641  
642  AVRXMEGA6_DEV_INFO="\
643  atxmega128a3:crtx128a3.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
644 +atxmega128a3u:crtx128a3u.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
645 +atxmega128b1:crtx128b1.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
646 +atxmega128b3:crtx128b3.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
647 +atxmega128c3:crtx128c3.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
648  atxmega128d3:crtx128d3.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
649 +atxmega128d4:crtx128d4.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
650  atxmega192a3:crtx192a3.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
651 +atxmega192a3u:crtx192a3u.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
652 +atxmega192c3:crtx192c3.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
653  atxmega192d3:crtx192d3.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
654  atxmega256a3:crtx256a3.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
655 +atxmega256a3u:crtx256a3u.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
656  atxmega256a3b:crtx256a3b.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
657 -atxmega256d3:crtx256d3.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS}\
658 +atxmega256a3bu:crtx256a3bu.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
659 +atxmega256c3:crtx256c3.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
660 +atxmega256d3:crtx256d3.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
661 +atxmega384c3:crtx384c3.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
662 +atxmega384d3:crtx384d3.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS}\
663  "
664  
665  AVRXMEGA7_DEV_INFO="\
666  atxmega128a1:crtx128a1.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
667 -atxmega128a1u:crtx128a1u.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS}\
668 +atxmega128a1u:crtx128a1u.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
669 +atxmega128a4u:crtx128a4u.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS}\
670  "
671  
672  AVRTINY10_DEV_INFO="\
673 diff -Naurp doc/api/main_page.dox doc/api/main_page.dox
674 --- doc/api/main_page.dox       2011-12-29 14:21:53.000000000 +0530
675 +++ doc/api/main_page.dox       2012-11-22 19:48:48.000000000 +0530
676 @@ -94,8 +94,10 @@ compile-time.
677  
678  - atmega103
679  - atmega128
680 +- atmega128a
681  - atmega1280
682  - atmega1281
683 +- atmega1284
684  - atmega1284p
685  - atmega16
686  - atmega161
687 @@ -103,16 +105,20 @@ compile-time.
688  - atmega163
689  - atmega164a
690  - atmega164p
691 +- atmega164pa
692  - atmega165
693  - atmega165a
694  - atmega165p
695 +- atmega165pa
696  - atmega168
697  - atmega168a
698  - atmega168p
699 +- atmega168pa
700  - atmega16a
701  - atmega2560
702  - atmega2561
703  - atmega32
704 +- atmega32a
705  - atmega323
706  - atmega324a
707  - atmega324p
708 @@ -120,15 +126,19 @@ compile-time.
709  - atmega325
710  - atmega325a
711  - atmega325p
712 +- atmega325pa
713  - atmega3250
714  - atmega3250a
715  - atmega3250p
716 +- atmega3250pa
717  - atmega328
718  - atmega328p
719  - atmega48
720  - atmega48a
721 +- atmega48pa
722  - atmega48p
723  - atmega64
724 +- atmega64a
725  - atmega640
726  - atmega644
727  - atmega644a
728 @@ -141,6 +151,7 @@ compile-time.
729  - atmega6450a
730  - atmega6450p
731  - atmega8
732 +- atmega8a
733  - atmega88
734  - atmega88a
735  - atmega88p
736 @@ -178,6 +189,7 @@ compile-time.
737  - attiny461
738  - attiny461a
739  - attiny48
740 +- attiny828
741  - attiny84
742  - attiny84a
743  - attiny85
744 @@ -185,6 +197,7 @@ compile-time.
745  - attiny861a
746  - attiny87
747  - attiny88
748 +- attiny1634
749  
750  \par Automotive AVR Devices:
751  
752 @@ -194,6 +207,10 @@ compile-time.
753  - atmega64c1
754  - atmega64m1
755  - attiny167
756 +- ata5505
757 +- ata5272
758 +- ata5790
759 +- ata5795
760  
761  \par CAN AVR Devices:
762  
763 @@ -214,6 +231,7 @@ compile-time.
764  - atmega3290
765  - atmega3290a
766  - atmega3290p
767 +- atmega3290pa
768  - atmega649
769  - atmega649a
770  - atmega6490
771 @@ -230,6 +248,7 @@ compile-time.
772  - at90pwm3
773  - at90pwm3b
774  - at90pwm316
775 +- at90pwm161
776  - at90pwm81
777  
778  \par Smart Battery AVR Devices:
779 @@ -262,22 +281,45 @@ compile-time.
780  \par XMEGA Devices:
781  
782  - atxmega16a4
783 +- atxmega16a4u
784 +- atxmega16c4
785  - atxmega16d4
786  - atxmega32a4
787 +- atxmega32a4u
788 +- atxmega32c4
789  - atxmega32d4
790  - atxmega64a1
791  - atxmega64a1u
792  - atxmega64a3
793 +- atxmega64a3u
794 +- atxmega64a4u
795 +- atxmega64b1
796 +- atxmega64b3
797 +- atxmega64c3
798  - atxmega64d3
799 +- atxmega64d4
800  - atxmega128a1
801  - atxmega128a1u
802  - atxmega128a3
803 +- atxmega128a3u
804 +- atxmega128a4u
805 +- atxmega128b1
806 +- atxmega128b3
807 +- atxmega128c3
808  - atxmega128d3
809 +- atxmega128d4
810  - atxmega192a3
811 +- atxmega192a3u
812 +- atxmega192c3
813  - atxmega192d3
814  - atxmega256a3
815 +- atxmega256a3u
816  - atxmega256a3b
817 +- atxmega256a3bu
818 +- atxmega256c3
819  - atxmega256d3
820 +- atxmega384c3
821 +- atxmega384d3
822  
823  \par Miscellaneous Devices:
824  
825 @@ -287,6 +329,8 @@ compile-time.
826  - at43usb355
827  - at86rf401
828  - at90scr100
829 +- ata6285
830 +- ata6286
831  - ata6289
832  - m3000 \ref supp_dev_footnote_four "[4]"
833  
834 diff -Naurp doc/api/using-tools.dox doc/api/using-tools.dox
835 --- doc/api/using-tools.dox     2011-12-29 14:21:53.000000000 +0530
836 +++ doc/api/using-tools.dox     2012-11-22 19:48:48.000000000 +0530
837 @@ -231,6 +231,7 @@ AVR will be defined as well when using t
838  
839    <tr><td>avr2/avr25&nbsp;[1]</td><td>at86rf401</td><td>__AVR_AT86RF401__</td></tr>
840    <tr><td>avr2/avr25&nbsp;[1]</td><td>ata6289</td><td>__AVR_ATA6289__</td></tr>
841 +  <tr><td>avr2/avr25&nbsp;[1]</td><td>ata5272</td><td>__AVR_ATA5272__</td></tr>
842    <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny13</td><td>__AVR_ATtiny13__</td></tr>
843    <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny13a</td><td>__AVR_ATtiny13A__</td></tr>
844    <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny2313</td><td>__AVR_ATtiny2313__</td></tr>
845 @@ -248,6 +249,7 @@ AVR will be defined as well when using t
846    <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny461</td><td>__AVR_ATtiny461__</td></tr>
847    <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny461a</td><td>__AVR_ATtiny461A__</td></tr>
848    <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny48</td><td>__AVR_ATtiny48__</td></tr>
849 +  <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny828</td><td>__AVR_ATtiny828__</td></tr>
850    <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny84</td><td>__AVR_ATtiny84__</td></tr>
851    <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny84a</td><td>__AVR_ATtiny84A__</td></tr>
852    <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny85</td><td>__AVR_ATtiny85__</td></tr>
853 @@ -264,16 +266,22 @@ AVR will be defined as well when using t
854  
855    <tr><td>avr3/avr35&nbsp;[2]</td><td>at90usb82</td><td>__AVR_AT90USB82__</td></tr>
856    <tr><td>avr3/avr35&nbsp;[2]</td><td>at90usb162</td><td>__AVR_AT90USB162__</td></tr>
857 +  <tr><td>avr3/avr35&nbsp;[2]</td><td>ata5505</td><td>__AVR_ATA5505__</td></tr>
858    <tr><td>avr3/avr35&nbsp;[2]</td><td>atmega8u2</td><td>__AVR_ATmega8U2__</td></tr>
859    <tr><td>avr3/avr35&nbsp;[2]</td><td>atmega16u2</td><td>__AVR_ATmega16U2__</td></tr>
860    <tr><td>avr3/avr35&nbsp;[2]</td><td>atmega32u2</td><td>__AVR_ATmega32U2__</td></tr>
861    <tr><td>avr3/avr35&nbsp;[2]</td><td>attiny167</td><td>__AVR_ATtiny167__</td></tr>
862 +  <tr><td>avr3/avr35&nbsp;[2]</td><td>attiny1634</td><td>__AVR_ATtiny1634__</td></tr>
863  
864    <tr><td>avr3</td><td>at76c711</td><td>__AVR_AT76C711__</td></tr>
865 +  <tr><td>avr4</td><td>ata6285</td><td>__AVR_ATA6285__</td></tr>
866 +  <tr><td>avr4</td><td>ata6286</td><td>__AVR_ATA6286__</td></tr>
867    <tr><td>avr4</td><td>atmega48</td><td>__AVR_ATmega48__</td></tr>
868    <tr><td>avr4</td><td>atmega48a</td><td>__AVR_ATmega48A__</td></tr>
869 +  <tr><td>avr4</td><td>atmega48pa</td><td>__AVR_ATmega48PA__</td></tr>
870    <tr><td>avr4</td><td>atmega48p</td><td>__AVR_ATmega48P__</td></tr>
871    <tr><td>avr4</td><td>atmega8</td><td>__AVR_ATmega8__</td></tr>
872 +  <tr><td>avr4</td><td>atmega8a</td><td>__AVR_ATmega8A__</td></tr>
873    <tr><td>avr4</td><td>atmega8515</td><td>__AVR_ATmega8515__</td></tr>
874    <tr><td>avr4</td><td>atmega8535</td><td>__AVR_ATmega8535__</td></tr>
875    <tr><td>avr4</td><td>atmega88</td><td>__AVR_ATmega88__</td></tr>
876 @@ -290,6 +298,7 @@ AVR will be defined as well when using t
877  
878    <tr><td>avr5</td><td>at90can32</td><td>__AVR_AT90CAN32__</td></tr>
879    <tr><td>avr5</td><td>at90can64</td><td>__AVR_AT90CAN64__</td></tr>
880 +  <tr><td>avr5</td><td>at90pwm161</td><td>__AVR_AT90PWM161__</td></tr>
881    <tr><td>avr5</td><td>at90pwm216</td><td>__AVR_AT90PWM216__</td></tr>
882    <tr><td>avr5</td><td>at90pwm316</td><td>__AVR_AT90PWM316__</td></tr>
883    <tr><td>avr5</td><td>at90scr100</td><td>__AVR_AT90SCR100__</td></tr>
884 @@ -297,17 +306,22 @@ AVR will be defined as well when using t
885    <tr><td>avr5</td><td>at90usb647</td><td>__AVR_AT90USB647__</td></tr>
886    <tr><td>avr5</td><td>at94k</td><td>__AVR_AT94K__</td></tr>
887    <tr><td>avr5</td><td>atmega16</td><td>__AVR_ATmega16__</td></tr>
888 +  <tr><td>avr5</td><td>ata5790</td><td>__AVR_ATA5790__</td></tr>
889 +  <tr><td>avr5</td><td>ata5795</td><td>__AVR_ATA5795__</td></tr>
890    <tr><td>avr5</td><td>atmega161</td><td>__AVR_ATmega161__</td></tr>
891    <tr><td>avr5</td><td>atmega162</td><td>__AVR_ATmega162__</td></tr>
892    <tr><td>avr5</td><td>atmega163</td><td>__AVR_ATmega163__</td></tr>
893    <tr><td>avr5</td><td>atmega164a</td><td>__AVR_ATmega164A__</td></tr>
894    <tr><td>avr5</td><td>atmega164p</td><td>__AVR_ATmega164P__</td></tr>
895 +  <tr><td>avr5</td><td>atmega164pa</td><td>__AVR_ATmega164PA__</td></tr>
896    <tr><td>avr5</td><td>atmega165</td><td>__AVR_ATmega165__</td></tr>
897    <tr><td>avr5</td><td>atmega165a</td><td>__AVR_ATmega165A__</td></tr>
898    <tr><td>avr5</td><td>atmega165p</td><td>__AVR_ATmega165P__</td></tr>
899 +  <tr><td>avr5</td><td>atmega165pa</td><td>__AVR_ATmega165PA__</td></tr>
900    <tr><td>avr5</td><td>atmega168</td><td>__AVR_ATmega168__</td></tr>
901    <tr><td>avr5</td><td>atmega168a</td><td>__AVR_ATmega168A__</td></tr>
902    <tr><td>avr5</td><td>atmega168p</td><td>__AVR_ATmega168P__</td></tr>
903 +  <tr><td>avr5</td><td>atmega168pa</td><td>__AVR_ATmega168PA__</td></tr>
904    <tr><td>avr5</td><td>atmega169</td><td>__AVR_ATmega169__</td></tr>
905    <tr><td>avr5</td><td>atmega169a</td><td>__AVR_ATmega169A__</td></tr>
906    <tr><td>avr5</td><td>atmega169p</td><td>__AVR_ATmega169P__</td></tr>
907 @@ -320,6 +334,7 @@ AVR will be defined as well when using t
908    <tr><td>avr5</td><td>atmega16m1</td><td>__AVR_ATmega16M1__</td></tr>
909    <tr><td>avr5</td><td>atmega16u4</td><td>__AVR_ATmega16U4__</td></tr>
910    <tr><td>avr5</td><td>atmega32</td><td>__AVR_ATmega32__</td></tr>
911 +  <tr><td>avr5</td><td>atmega32a</td><td>__AVR_ATmega32A__</td></tr>
912    <tr><td>avr5</td><td>atmega323</td><td>__AVR_ATmega323__</td></tr>
913    <tr><td>avr5</td><td>atmega324a</td><td>__AVR_ATmega324A__</td></tr>
914    <tr><td>avr5</td><td>atmega324p</td><td>__AVR_ATmega324P__</td></tr>
915 @@ -327,9 +342,11 @@ AVR will be defined as well when using t
916    <tr><td>avr5</td><td>atmega325</td><td>__AVR_ATmega325__</td></tr>
917    <tr><td>avr5</td><td>atmega325a</td><td>__AVR_ATmega325A__</td></tr>
918    <tr><td>avr5</td><td>atmega325p</td><td>__AVR_ATmega325P__</td></tr>
919 +  <tr><td>avr5</td><td>atmega325pa</td><td>__AVR_ATmega325PA__</td></tr>
920    <tr><td>avr5</td><td>atmega3250</td><td>__AVR_ATmega3250__</td></tr>
921    <tr><td>avr5</td><td>atmega3250a</td><td>__AVR_ATmega3250A__</td></tr>
922    <tr><td>avr5</td><td>atmega3250p</td><td>__AVR_ATmega3250P__</td></tr>
923 +  <tr><td>avr5</td><td>atmega3250pa</td><td>__AVR_ATmega3250PA__</td></tr>
924    <tr><td>avr5</td><td>atmega328</td><td>__AVR_ATmega328__</td></tr>
925    <tr><td>avr5</td><td>atmega328p</td><td>__AVR_ATmega328P__</td></tr>
926    <tr><td>avr5</td><td>atmega329</td><td>__AVR_ATmega329__</td></tr>
927 @@ -339,6 +356,7 @@ AVR will be defined as well when using t
928    <tr><td>avr5</td><td>atmega3290</td><td>__AVR_ATmega3290__</td></tr>
929    <tr><td>avr5</td><td>atmega3290a</td><td>__AVR_ATmega3290A__</td></tr>
930    <tr><td>avr5</td><td>atmega3290p</td><td>__AVR_ATmega3290P__</td></tr>
931 +  <tr><td>avr5</td><td>atmega3290pa</td><td>__AVR_ATmega3290PA__</td></tr>
932    <tr><td>avr5</td><td>atmega32c1</td><td>__AVR_ATmega32C1__</td></tr>
933    <tr><td>avr5</td><td>atmega32hvb</td><td>__AVR_ATmega32HVB__</td></tr>
934    <tr><td>avr5</td><td>atmega32hvbrevb</td><td>__AVR_ATmega32HVBREVB__</td></tr>
935 @@ -347,6 +365,7 @@ AVR will be defined as well when using t
936    <tr><td>avr5</td><td>atmega32u6</td><td>__AVR_ATmega32U6__</td></tr>
937    <tr><td>avr5</td><td>atmega406</td><td>__AVR_ATmega406__</td></tr>
938    <tr><td>avr5</td><td>atmega64</td><td>__AVR_ATmega64__</td></tr>
939 +  <tr><td>avr5</td><td>atmega64a</td><td>__AVR_ATmega64A__</td></tr>
940    <tr><td>avr5</td><td>atmega640</td><td>__AVR_ATmega640__</td></tr>
941    <tr><td>avr5</td><td>atmega644</td><td>__AVR_ATmega644__</td></tr>
942    <tr><td>avr5</td><td>atmega644a</td><td>__AVR_ATmega644A__</td></tr>
943 @@ -373,34 +392,59 @@ AVR will be defined as well when using t
944    <tr><td>avr5/avr51&nbsp;[3]</td><td>at90usb1286</td><td>__AVR_AT90USB1286__</td></tr>
945    <tr><td>avr5/avr51&nbsp;[3]</td><td>at90usb1287</td><td>__AVR_AT90USB1287__</td></tr>
946    <tr><td>avr5/avr51&nbsp;[3]</td><td>atmega128</td><td>__AVR_ATmega128__</td></tr>
947 +  <tr><td>avr5/avr51&nbsp;[3]</td><td>atmega128a</td><td>__AVR_ATmega128A__</td></tr>
948    <tr><td>avr5/avr51&nbsp;[3]</td><td>atmega1280</td><td>__AVR_ATmega1280__</td></tr>
949    <tr><td>avr5/avr51&nbsp;[3]</td><td>atmega1281</td><td>__AVR_ATmega1281__</td></tr>
950 +  <tr><td>avr5/avr51&nbsp;[3]</td><td>atmega1284</td><td>__AVR_ATmega1284__</td></tr>
951    <tr><td>avr5/avr51&nbsp;[3]</td><td>atmega1284p</td><td>__AVR_ATmega1284P__</td></tr>
952  
953    <tr><td>avr6</td><td>atmega2560</td><td>__AVR_ATmega2560__</td></tr>
954    <tr><td>avr6</td><td>atmega2561</td><td>__AVR_ATmega2561__</td></tr>
955  
956    <tr><td>avrxmega2</td><td>atxmega16a4</td><td>__AVR_ATxmega16A4__</td></tr>
957 +  <tr><td>avrxmega2</td><td>atxmega16a4u</td><td>__AVR_ATxmega16A4U__</td></tr>
958 +  <tr><td>avrxmega2</td><td>atxmega16c4</td><td>__AVR_ATxmega16C4__</td></tr>
959    <tr><td>avrxmega2</td><td>atxmega16d4</td><td>__AVR_ATxmega16D4__</td></tr>
960    <tr><td>avrxmega2</td><td>atxmega32a4</td><td>__AVR_ATxmega32A4__</td></tr>
961 +  <tr><td>avrxmega2</td><td>atxmega32a4u</td><td>__AVR_ATxmega32A4U__</td></tr>
962 +  <tr><td>avrxmega2</td><td>atxmega32c4</td><td>__AVR_ATxmega32C4__</td></tr>
963    <tr><td>avrxmega2</td><td>atxmega32d4</td><td>__AVR_ATxmega32D4__</td></tr>
964  
965    <tr><td>avrxmega4</td><td>atxmega64a3</td><td>__AVR_ATxmega64A3__</td></tr>
966 +  <tr><td>avrxmega4</td><td>atxmega64a3u</td><td>__AVR_ATxmega64A3U__</td></tr>
967 +  <tr><td>avrxmega4</td><td>atxmega64a4u</td><td>__AVR_ATxmega64A4U__</td></tr>
968 +  <tr><td>avrxmega4</td><td>atxmega64b1</td><td>__AVR_ATxmega64B1__</td></tr>
969 +  <tr><td>avrxmega4</td><td>atxmega64b3</td><td>__AVR_ATxmega64B3__</td></tr>
970 +  <tr><td>avrxmega4</td><td>atxmega64c3</td><td>__AVR_ATxmega64C3__</td></tr>
971    <tr><td>avrxmega4</td><td>atxmega64d3</td><td>__AVR_ATxmega64D3__</td></tr>
972 +  <tr><td>avrxmega4</td><td>atxmega64d4</td><td>__AVR_ATxmega64D4__</td></tr>
973  
974    <tr><td>avrxmega5</td><td>atxmega64a1</td><td>__AVR_ATxmega64A1__</td></tr>
975    <tr><td>avrxmega5</td><td>atxmega64a1u</td><td>__AVR_ATxmega64A1U__</td></tr>
976  
977    <tr><td>avrxmega6</td><td>atxmega128a3</td><td>__AVR_ATxmega128A3__</td></tr>
978 +  <tr><td>avrxmega6</td><td>atxmega128a3u</td><td>__AVR_ATxmega128A3U__</td></tr>
979 +  <tr><td>avrxmega6</td><td>atxmega128b1</td><td>__AVR_ATxmega128B1__</td></tr>
980 +  <tr><td>avrxmega6</td><td>atxmega128b3</td><td>__AVR_ATxmega128B3__</td></tr>
981 +  <tr><td>avrxmega6</td><td>atxmega128c3</td><td>__AVR_ATxmega128C3__</td></tr>
982    <tr><td>avrxmega6</td><td>atxmega128d3</td><td>__AVR_ATxmega128D3__</td></tr>
983 +  <tr><td>avrxmega6</td><td>atxmega128d4</td><td>__AVR_ATxmega128D4__</td></tr>
984    <tr><td>avrxmega6</td><td>atxmega192a3</td><td>__AVR_ATxmega192A3__</td></tr>
985 +  <tr><td>avrxmega6</td><td>atxmega192a3u</td><td>__AVR_ATxmega192A3U__</td></tr>
986 +  <tr><td>avrxmega6</td><td>atxmega192c3</td><td>__AVR_ATxmega192C3__</td></tr>
987    <tr><td>avrxmega6</td><td>atxmega192d3</td><td>__AVR_ATxmega192D3__</td></tr>
988    <tr><td>avrxmega6</td><td>atxmega256a3</td><td>__AVR_ATxmega256A3__</td></tr>
989 +  <tr><td>avrxmega6</td><td>atxmega256a3u</td><td>__AVR_ATxmega256A3U__</td></tr>
990    <tr><td>avrxmega6</td><td>atxmega256a3b</td><td>__AVR_ATxmega256A3B__</td></tr>
991 +  <tr><td>avrxmega6</td><td>atxmega256a3bu</td><td>__AVR_ATxmega256A3BU__</td></tr>
992 +  <tr><td>avrxmega6</td><td>atxmega256c3</td><td>__AVR_ATxmega256C3__</td></tr>
993    <tr><td>avrxmega6</td><td>atxmega256d3</td><td>__AVR_ATxmega256D3__</td></tr>
994 +  <tr><td>avrxmega6</td><td>atxmega384c3</td><td>__AVR_ATxmega384C3__</td></tr>
995 +  <tr><td>avrxmega6</td><td>atxmega384d3</td><td>__AVR_ATxmega384D3__</td></tr>
996  
997    <tr><td>avrxmega7</td><td>atxmega128a1</td><td>__AVR_ATxmega128A1__</td></tr>
998    <tr><td>avrxmega7</td><td>atxmega128a1u</td><td>__AVR_ATxmega128A1U__</td></tr>
999 +  <tr><td>avrxmega7</td><td>atxmega128a4u</td><td>__AVR_ATxmega128A4U__</td></tr>
1000    
1001    <tr><td>avrtiny10</td><td>attiny4</td><td>__AVR_ATtiny4__</td></tr>
1002    <tr><td>avrtiny10</td><td>attiny5</td><td>__AVR_ATtiny5__</td></tr>
1003 diff -Naurp include/avr/eeprom.h include/avr/eeprom.h
1004 --- include/avr/eeprom.h        2011-12-29 14:21:50.000000000 +0530
1005 +++ include/avr/eeprom.h        2012-11-22 19:48:48.000000000 +0530
1006 @@ -67,6 +67,8 @@
1007  # define _EEPROM_SUFFIX _90pwm216
1008  #elif defined (__AVR_AT90PWM316__)
1009  # define _EEPROM_SUFFIX _90pwm316
1010 +#elif defined (__AVR_AT90PWM161__)
1011 +# define _EEPROM_SUFFIX _90pwm161
1012  #elif defined (__AVR_AT90PWM81__)
1013  # define _EEPROM_SUFFIX _90pwm81
1014  #elif defined (__AVR_ATmega16M1__)
1015 @@ -93,10 +95,14 @@
1016  # define _EEPROM_SUFFIX  _m64m1
1017  #elif defined (__AVR_ATmega128__)
1018  # define _EEPROM_SUFFIX  _m128
1019 +#elif defined (__AVR_ATmega128A__)
1020 +# define _EEPROM_SUFFIX  _m128a
1021  #elif defined (__AVR_ATmega1280__)
1022  # define _EEPROM_SUFFIX  _m1280
1023  #elif defined (__AVR_ATmega1281__)
1024  # define _EEPROM_SUFFIX  _m1281
1025 +#elif defined (__AVR_ATmega1284__)
1026 +# define _EEPROM_SUFFIX  _m1284
1027  #elif defined (__AVR_ATmega1284P__)
1028  # define _EEPROM_SUFFIX  _m1284p
1029  #elif defined (__AVR_ATmega128RFA1__)
1030 @@ -125,6 +131,8 @@
1031  # define _EEPROM_SUFFIX _usb1287
1032  #elif defined (__AVR_ATmega64__)
1033  # define _EEPROM_SUFFIX  _m64
1034 +#elif defined (__AVR_ATmega64A__)
1035 +# define _EEPROM_SUFFIX  _m64a
1036  #elif defined (__AVR_ATmega640__)
1037  # define _EEPROM_SUFFIX  _m640
1038  #elif defined (__AVR_ATmega644__)
1039 @@ -163,6 +171,8 @@
1040  # define _EEPROM_SUFFIX  _m103
1041  #elif defined (__AVR_ATmega32__)
1042  # define _EEPROM_SUFFIX  _m32
1043 +#elif defined (__AVR_ATmega32A__)
1044 +# define _EEPROM_SUFFIX  _m32a
1045  #elif defined (__AVR_ATmega323__)
1046  # define _EEPROM_SUFFIX  _m323
1047  #elif defined (__AVR_ATmega324A__)
1048 @@ -177,12 +187,16 @@
1049  # define _EEPROM_SUFFIX  _m325a
1050  #elif defined (__AVR_ATmega325P__)
1051  # define _EEPROM_SUFFIX  _m325p
1052 +#elif defined (__AVR_ATmega325PA__)
1053 +# define _EEPROM_SUFFIX  _m325pa 
1054  #elif defined (__AVR_ATmega3250__)
1055  # define _EEPROM_SUFFIX  _m3250
1056  #elif defined (__AVR_ATmega3250A__)
1057  # define _EEPROM_SUFFIX  _m3250a
1058  #elif defined (__AVR_ATmega3250P__)
1059  # define _EEPROM_SUFFIX  _m3250p
1060 +#elif defined (__AVR_ATmega3250PA__)
1061 +# define _EEPROM_SUFFIX  _m3250pa
1062  #elif defined (__AVR_ATmega328__)
1063  # define _EEPROM_SUFFIX  _m328
1064  #elif defined (__AVR_ATmega328P__)
1065 @@ -201,6 +215,8 @@
1066  # define _EEPROM_SUFFIX  _m3290a
1067  #elif defined (__AVR_ATmega3290P__)
1068  # define _EEPROM_SUFFIX  _m3290p
1069 +#elif defined (__AVR_ATmega3290PA__)
1070 +# define _EEPROM_SUFFIX  _m3290pa
1071  #elif defined (__AVR_ATmega32HVB__)
1072  # define _EEPROM_SUFFIX  _m32hvb
1073  #elif defined (__AVR_ATmega32HVBREVB__)
1074 @@ -223,18 +239,24 @@
1075  # define _EEPROM_SUFFIX  _m164
1076  #elif defined (__AVR_ATmega164P__)
1077  # define _EEPROM_SUFFIX  _m164p
1078 +#elif defined (__AVR_ATmega164PA__)
1079 +# define _EEPROM_SUFFIX  _m164pa
1080  #elif defined (__AVR_ATmega165__)
1081  # define _EEPROM_SUFFIX  _m165
1082  #elif defined (__AVR_ATmega165A__)
1083  # define _EEPROM_SUFFIX  _m165a
1084  #elif defined (__AVR_ATmega165P__)
1085  # define _EEPROM_SUFFIX  _m165p
1086 +#elif defined (__AVR_ATmega165PA__)
1087 +# define _EEPROM_SUFFIX  _m165pa
1088  #elif defined (__AVR_ATmega168__)
1089  # define _EEPROM_SUFFIX  _m168
1090  #elif defined (__AVR_ATmega168A__)
1091  # define _EEPROM_SUFFIX  _m168a
1092  #elif defined (__AVR_ATmega168P__)
1093  # define _EEPROM_SUFFIX  _m168p
1094 +#elif defined (__AVR_ATmega168PA__)
1095 +# define _EEPROM_SUFFIX  _m168pa
1096  #elif defined (__AVR_ATmega169__)
1097  # define _EEPROM_SUFFIX  _m169
1098  #elif defined (__AVR_ATmega169A__)
1099 @@ -255,10 +277,14 @@
1100  # define _EEPROM_SUFFIX  _m16hvbrevb
1101  #elif defined (__AVR_ATmega8__)
1102  # define _EEPROM_SUFFIX  _m8
1103 +#elif defined (__AVR_ATmega8A__)
1104 +# define _EEPROM_SUFFIX  _m8a
1105  #elif defined (__AVR_ATmega48__)
1106  # define _EEPROM_SUFFIX  _m48
1107  #elif defined (__AVR_ATmega48A__)
1108  # define _EEPROM_SUFFIX  _m48a
1109 +#elif defined (__AVR_ATmega48PA__)
1110 +# define _EEPROM_SUFFIX  _m48pa
1111  #elif defined (__AVR_ATmega48P__)
1112  # define _EEPROM_SUFFIX  _m48p
1113  #elif defined (__AVR_ATmega88__)
1114 @@ -341,20 +367,32 @@
1115  # define _EEPROM_SUFFIX _tn43u
1116  #elif defined (__AVR_ATtiny48__)
1117  # define _EEPROM_SUFFIX _tn48
1118 +#elif defined (__AVR_ATtiny828__)
1119 +# define _EEPROM_SUFFIX _tn828
1120  #elif defined (__AVR_ATtiny88__)
1121  # define _EEPROM_SUFFIX _tn88
1122  #elif defined (__AVR_ATtiny87__)
1123  # define _EEPROM_SUFFIX _tn87
1124  #elif defined (__AVR_ATtiny167__)
1125  # define _EEPROM_SUFFIX _tn167
1126 +#elif defined (__AVR_ATtiny1634__)
1127 +# define _EEPROM_SUFFIX _tn1634
1128  #elif defined (__AVR_AT90SCR100__)
1129  # define _EEPROM_SUFFIX _90scr100
1130  #elif defined (__AVR_ATxmega16A4__)
1131  # define _EEPROM_SUFFIX   _x16a4
1132 +#elif defined (__AVR_ATxmega16A4U__)
1133 +# define _EEPROM_SUFFIX   _x16a4u
1134 +#elif defined (__AVR_ATxmega16C4__)
1135 +# define _EEPROM_SUFFIX   _x16c4
1136  #elif defined (__AVR_ATxmega16D4__)
1137  # define _EEPROM_SUFFIX   _x16d4
1138  #elif defined (__AVR_ATxmega32A4__)
1139  # define _EEPROM_SUFFIX   _x32a4
1140 +#elif defined (__AVR_ATxmega32A4U__)
1141 +# define _EEPROM_SUFFIX   _x32a4u
1142 +#elif defined (__AVR_ATxmega32C4__)
1143 +# define _EEPROM_SUFFIX   _x32c4
1144  #elif defined (__AVR_ATxmega32D4__)
1145  # define _EEPROM_SUFFIX   _x32d4
1146  #elif defined (__AVR_ATxmega64A1__)
1147 @@ -363,28 +401,78 @@
1148  # define _EEPROM_SUFFIX   _x64a1u
1149  #elif defined (__AVR_ATxmega64A3__)
1150  # define _EEPROM_SUFFIX   _x64a3
1151 +#elif defined (__AVR_ATxmega64A3U__)
1152 +# define _EEPROM_SUFFIX   _x64a3u
1153 +#elif defined (__AVR_ATxmega64A4U__)
1154 +# define _EEPROM_SUFFIX   _x64a4u
1155 +#elif defined (__AVR_ATxmega64B1__)
1156 +# define _EEPROM_SUFFIX   _x64b1
1157 +#elif defined (__AVR_ATxmega64B3__)
1158 +# define _EEPROM_SUFFIX   _x64b3
1159 +#elif defined (__AVR_ATxmega64C3__)
1160 +# define _EEPROM_SUFFIX   _x64c3
1161  #elif defined (__AVR_ATxmega64D3__)
1162  # define _EEPROM_SUFFIX   _x64d3
1163 +#elif defined (__AVR_ATxmega64D4__)
1164 +# define _EEPROM_SUFFIX   _x64d4
1165  #elif defined (__AVR_ATxmega128A1__)
1166  # define _EEPROM_SUFFIX   _x128a1
1167  #elif defined (__AVR_ATxmega128A1U__)
1168  # define _EEPROM_SUFFIX   _x128a1u
1169 +#elif defined (__AVR_ATxmega128A4U__)
1170 +# define _EEPROM_SUFFIX   _x128a4u
1171  #elif defined (__AVR_ATxmega128A3__)
1172  # define _EEPROM_SUFFIX   _x128a3
1173 +#elif defined (__AVR_ATxmega128A3U__)
1174 +# define _EEPROM_SUFFIX   _x128a3u
1175 +#elif defined (__AVR_ATxmega128B1__)
1176 +# define _EEPROM_SUFFIX   _x128b1
1177 +#elif defined (__AVR_ATxmega128B3__)
1178 +# define _EEPROM_SUFFIX   _x128b3
1179 +#elif defined (__AVR_ATxmega128C3__)
1180 +# define _EEPROM_SUFFIX   _x128c3
1181  #elif defined (__AVR_ATxmega128D3__)
1182  # define _EEPROM_SUFFIX   _x128d3
1183 +#elif defined (__AVR_ATxmega128D4__)
1184 +# define _EEPROM_SUFFIX   _x128d4
1185  #elif defined (__AVR_ATxmega192A3__)
1186  # define _EEPROM_SUFFIX   _x192a3
1187 +#elif defined (__AVR_ATxmega192A3U__)
1188 +# define _EEPROM_SUFFIX   _x192a3u
1189 +#elif defined (__AVR_ATxmega192C3__)
1190 +# define _EEPROM_SUFFIX   _x192c3
1191  #elif defined (__AVR_ATxmega192D3__)
1192  # define _EEPROM_SUFFIX   _x192d3
1193  #elif defined (__AVR_ATxmega256A3__)
1194  # define _EEPROM_SUFFIX   _x256a3
1195 +#elif defined (__AVR_ATxmega256A3U__)
1196 +# define _EEPROM_SUFFIX   _x256a3u
1197  #elif defined (__AVR_ATxmega256A3B__)
1198  # define _EEPROM_SUFFIX   _x256a3b
1199 +#elif defined (__AVR_ATxmega256A3BU__)
1200 +# define _EEPROM_SUFFIX   _x256a3bu
1201 +#elif defined (__AVR_ATxmega256C3__)
1202 +# define _EEPROM_SUFFIX   _x256c3
1203  #elif defined (__AVR_ATxmega256D3__)
1204  # define _EEPROM_SUFFIX   _x256d3
1205 +#elif defined (__AVR_ATxmega384C3__)
1206 +# define _EEPROM_SUFFIX   _x384c3
1207 +#elif defined (__AVR_ATxmega384D3__)
1208 +# define _EEPROM_SUFFIX   _x384d3
1209 +#elif defined (__AVR_ATA5505__)
1210 +# define _EEPROM_SUFFIX _a5505
1211 +#elif defined (__AVR_ATA5272__)
1212 +# define _EEPROM_SUFFIX _a5272
1213 +#elif defined (__AVR_ATA6285__)
1214 +# define _EEPROM_SUFFIX _a6285
1215 +#elif defined (__AVR_ATA6286__)
1216 +# define _EEPROM_SUFFIX _a6286
1217  #elif defined (__AVR_ATA6289__)
1218  # define _EEPROM_SUFFIX _a6289
1219 +#elif defined (__AVR_ATA5790__)
1220 +# define _EEPROM_SUFFIX _a5790
1221 +#elif defined (__AVR_ATA5795__)
1222 +# define _EEPROM_SUFFIX _a5795
1223  /* avr1: the following only supported for assembler programs */
1224  #elif defined (__AVR_ATtiny28__)
1225  # define _EEPROM_SUFFIX _tn28
1226 diff -Naurp include/avr/io.h include/avr/io.h
1227 --- include/avr/io.h    2011-12-29 14:21:50.000000000 +0530
1228 +++ include/avr/io.h    2012-11-22 19:48:48.000000000 +0530
1229 @@ -122,6 +122,8 @@
1230  #  include <avr/io90pwm216.h>
1231  #elif defined (__AVR_AT90PWM316__)
1232  #  include <avr/io90pwm316.h>
1233 +#elif defined (__AVR_AT90PWM161__)
1234 +#  include <avr/io90pwm161.h>
1235  #elif defined (__AVR_AT90PWM81__)
1236  #  include <avr/io90pwm81.h>
1237  #elif defined (__AVR_ATmega8U2__)
1238 @@ -148,10 +150,14 @@
1239  #  include <avr/iom64m1.h>
1240  #elif defined (__AVR_ATmega128__)
1241  #  include <avr/iom128.h>
1242 +#elif defined (__AVR_ATmega128A__)
1243 +#  include <avr/iom128a.h>
1244  #elif defined (__AVR_ATmega1280__)
1245  #  include <avr/iom1280.h>
1246  #elif defined (__AVR_ATmega1281__)
1247  #  include <avr/iom1281.h>
1248 +#elif defined (__AVR_ATmega1284__)
1249 +#  include <avr/iom1284.h>
1250  #elif defined (__AVR_ATmega1284P__)
1251  #  include <avr/iom1284p.h>
1252  #elif defined (__AVR_ATmega128RFA1__)
1253 @@ -180,6 +186,8 @@
1254  #  include <avr/iousb1287.h>
1255  #elif defined (__AVR_ATmega64__)
1256  #  include <avr/iom64.h>
1257 +#elif defined (__AVR_ATmega64A__)
1258 +#  include <avr/iom64a.h>
1259  #elif defined (__AVR_ATmega640__)
1260  #  include <avr/iom640.h>
1261  #elif defined (__AVR_ATmega644__) || defined (__AVR_ATmega644A__)
1262 @@ -204,6 +212,8 @@
1263  #  include <avr/iom103.h>
1264  #elif defined (__AVR_ATmega32__)
1265  #  include <avr/iom32.h>
1266 +#elif defined (__AVR_ATmega32A__)
1267 +#  include <avr/iom32a.h>
1268  #elif defined (__AVR_ATmega323__)
1269  #  include <avr/iom323.h>
1270  #elif defined (__AVR_ATmega324P__) || defined (__AVR_ATmega324A__)
1271 @@ -214,10 +224,14 @@
1272  #  include <avr/iom325.h>
1273  #elif defined (__AVR_ATmega325P__)
1274  #  include <avr/iom325.h>
1275 +#elif defined (__AVR_ATmega325PA__)
1276 +#  include <avr/iom325pa.h>  
1277  #elif defined (__AVR_ATmega3250__) || defined (__AVR_ATmega3250A__)
1278  #  include <avr/iom3250.h>
1279  #elif defined (__AVR_ATmega3250P__)
1280  #  include <avr/iom3250.h>
1281 +#elif defined (__AVR_ATmega3250PA__)
1282 +#  include <avr/iom3250pa.h>  
1283  #elif defined (__AVR_ATmega328P__) || defined (__AVR_ATmega328__)
1284  #  include <avr/iom328p.h>
1285  #elif defined (__AVR_ATmega329__) || defined (__AVR_ATmega329A__)
1286 @@ -228,6 +242,8 @@
1287  #  include <avr/iom3290.h>
1288  #elif defined (__AVR_ATmega3290P__)
1289  #  include <avr/iom3290.h>
1290 +#elif defined (__AVR_ATmega3290PA__)
1291 +#  include <avr/iom3290pa.h> 
1292  #elif defined (__AVR_ATmega32HVB__)
1293  #  include <avr/iom32hvb.h>
1294  #elif defined (__AVR_ATmega32HVBREVB__)
1295 @@ -246,14 +262,20 @@
1296  #  include <avr/iom163.h>
1297  #elif defined (__AVR_ATmega164P__) || defined (__AVR_ATmega164A__)
1298  #  include <avr/iom164.h>
1299 +#elif defined (__AVR_ATmega164PA__)
1300 +#  include <avr/iom164pa.h>
1301  #elif defined (__AVR_ATmega165__) || defined (__AVR_ATmega165A__)
1302  #  include <avr/iom165.h>
1303  #elif defined (__AVR_ATmega165P__)
1304  #  include <avr/iom165p.h>
1305 +#elif defined (__AVR_ATmega165PA__)
1306 +#  include <avr/iom165pa.h>
1307  #elif defined (__AVR_ATmega168__) || defined (__AVR_ATmega168A__)
1308  #  include <avr/iom168.h>
1309  #elif defined (__AVR_ATmega168P__)
1310  #  include <avr/iom168p.h>
1311 +#elif defined (__AVR_ATmega168PA__)
1312 +#  include <avr/iom168pa.h>
1313  #elif defined (__AVR_ATmega169__) || defined (__AVR_ATmega169A__)
1314  #  include <avr/iom169.h>
1315  #elif defined (__AVR_ATmega169P__)
1316 @@ -272,8 +294,12 @@
1317  #  include <avr/iom16hvbrevb.h>
1318  #elif defined (__AVR_ATmega8__)
1319  #  include <avr/iom8.h>
1320 +#elif defined (__AVR_ATmega8A__)
1321 +#  include <avr/iom8a.h>
1322  #elif defined (__AVR_ATmega48__) || defined (__AVR_ATmega48A__)
1323  #  include <avr/iom48.h>
1324 +#elif defined (__AVR_ATmega48PA__)
1325 +#  include <avr/iom48pa.h>
1326  #elif defined (__AVR_ATmega48P__)
1327  #  include <avr/iom48p.h>
1328  #elif defined (__AVR_ATmega88__) || defined (__AVR_ATmega88A__)
1329 @@ -368,18 +394,30 @@
1330  #  include <avr/iotn48.h>
1331  #elif defined (__AVR_ATtiny88__)
1332  #  include <avr/iotn88.h>
1333 +#elif defined (__AVR_ATtiny828__)
1334 +#  include <avr/iotn828.h>
1335  #elif defined (__AVR_ATtiny87__)
1336  #  include <avr/iotn87.h>
1337  #elif defined (__AVR_ATtiny167__)
1338  #  include <avr/iotn167.h>
1339 +#elif defined (__AVR_ATtiny1634__)
1340 +#  include <avr/iotn1634.h>
1341  #elif defined (__AVR_AT90SCR100__)
1342  #  include <avr/io90scr100.h>
1343  #elif defined (__AVR_ATxmega16A4__)
1344  #  include <avr/iox16a4.h>
1345 +#elif defined (__AVR_ATxmega16A4U__)
1346 +#  include <avr/iox16a4u.h>
1347 +#elif defined (__AVR_ATxmega16C4__)
1348 +#  include <avr/iox16c4.h>
1349  #elif defined (__AVR_ATxmega16D4__)
1350  #  include <avr/iox16d4.h>
1351  #elif defined (__AVR_ATxmega32A4__)
1352  #  include <avr/iox32a4.h>
1353 +#elif defined (__AVR_ATxmega32A4U__)
1354 +#  include <avr/iox32a4u.h>
1355 +#elif defined (__AVR_ATxmega32C4__)
1356 +#  include <avr/iox32c4.h>
1357  #elif defined (__AVR_ATxmega32D4__)
1358  #  include <avr/iox32d4.h>
1359  #elif defined (__AVR_ATxmega64A1__)
1360 @@ -388,26 +426,76 @@
1361  #  include <avr/iox64a1u.h>
1362  #elif defined (__AVR_ATxmega64A3__)
1363  #  include <avr/iox64a3.h>
1364 +#elif defined (__AVR_ATxmega64A3U__)
1365 +#  include <avr/iox64a3u.h>
1366 +#elif defined (__AVR_ATxmega64A4U__)
1367 +#  include <avr/iox64a4u.h>
1368 +#elif defined (__AVR_ATxmega64B1__)
1369 +#  include <avr/iox64b1.h>
1370 +#elif defined (__AVR_ATxmega64B3__)
1371 +#  include <avr/iox64b3.h>
1372 +#elif defined (__AVR_ATxmega64C3__)
1373 +#  include <avr/iox64c3.h>
1374  #elif defined (__AVR_ATxmega64D3__)
1375  #  include <avr/iox64d3.h>
1376 +#elif defined (__AVR_ATxmega64D4__)
1377 +#  include <avr/iox64d4.h>
1378  #elif defined (__AVR_ATxmega128A1__)
1379  #  include <avr/iox128a1.h>
1380  #elif defined (__AVR_ATxmega128A1U__)
1381  #  include <avr/iox128a1u.h>
1382 +#elif defined (__AVR_ATxmega128A4U__)
1383 +#  include <avr/iox128a4u.h>
1384  #elif defined (__AVR_ATxmega128A3__)
1385  #  include <avr/iox128a3.h>
1386 +#elif defined (__AVR_ATxmega128A3U__)
1387 +#  include <avr/iox128a3u.h>
1388 +#elif defined (__AVR_ATxmega128B1__)
1389 +#  include <avr/iox128b1.h>
1390 +#elif defined (__AVR_ATxmega128B3__)
1391 +#  include <avr/iox128b3.h>
1392 +#elif defined (__AVR_ATxmega128C3__)
1393 +#  include <avr/iox128c3.h>
1394  #elif defined (__AVR_ATxmega128D3__)
1395  #  include <avr/iox128d3.h>
1396 +#elif defined (__AVR_ATxmega128D4__)
1397 +#  include <avr/iox128d4.h>
1398  #elif defined (__AVR_ATxmega192A3__)
1399  #  include <avr/iox192a3.h>
1400 +#elif defined (__AVR_ATxmega192A3U__)
1401 +#  include <avr/iox192a3u.h>
1402 +#elif defined (__AVR_ATxmega192C3__)
1403 +#  include <avr/iox192c3.h>
1404  #elif defined (__AVR_ATxmega192D3__)
1405  #  include <avr/iox192d3.h>
1406  #elif defined (__AVR_ATxmega256A3__)
1407  #  include <avr/iox256a3.h>
1408 +#elif defined (__AVR_ATxmega256A3U__)
1409 +#  include <avr/iox256a3u.h>
1410  #elif defined (__AVR_ATxmega256A3B__)
1411  #  include <avr/iox256a3b.h>
1412 +#elif defined (__AVR_ATxmega256A3BU__)
1413 +#  include <avr/iox256a3bu.h>
1414 +#elif defined (__AVR_ATxmega256C3__)
1415 +#  include <avr/iox256c3.h>
1416  #elif defined (__AVR_ATxmega256D3__)
1417  #  include <avr/iox256d3.h>
1418 +#elif defined (__AVR_ATxmega384C3__)
1419 +#  include <avr/iox384c3.h>
1420 +#elif defined (__AVR_ATxmega384D3__)
1421 +#  include <avr/iox384d3.h>
1422 +#elif defined (__AVR_ATA5790__)
1423 +#  include <avr/ioa5790.h>
1424 +#elif defined (__AVR_ATA5272__)
1425 +#  include <avr/ioa5272.h>
1426 +#elif defined (__AVR_ATA5505__)
1427 +#  include <avr/ioa5505.h>
1428 +#elif defined (__AVR_ATA5795__)
1429 +#  include <avr/ioa5795.h>
1430 +#elif defined (__AVR_ATA6285__)
1431 +#  include <avr/ioa6285.h>
1432 +#elif defined (__AVR_ATA6286__)
1433 +#  include <avr/ioa6286.h>
1434  #elif defined (__AVR_ATA6289__)
1435  #  include <avr/ioa6289.h>
1436  /* avr1: the following only supported for assembler programs */
1437 diff -Naurp include/avr/Makefile.am include/avr/Makefile.am
1438 --- include/avr/Makefile.am     2011-12-29 14:21:50.000000000 +0530
1439 +++ include/avr/Makefile.am     2012-11-22 19:48:48.000000000 +0530
1440 @@ -61,8 +61,15 @@ avr_HEADERS = \
1441      io90pwm216.h \
1442      io90pwm3b.h \
1443      io90pwm316.h \
1444 +    io90pwm161.h \
1445      io90pwm81.h \
1446      io90scr100.h \
1447 +    ioa5505.h \
1448 +    ioa5272.h \
1449 +    ioa5790.h \
1450 +    ioa5795.h \
1451 +    ioa6285.h \
1452 +    ioa6286.h \
1453      ioa6289.h \
1454      ioat94k.h \
1455      iocan32.h \
1456 @@ -71,8 +78,10 @@ avr_HEADERS = \
1457      iocanxx.h \
1458      iom103.h \
1459      iom128.h \
1460 +    iom128a.h \
1461      iom1280.h \
1462      iom1281.h \
1463 +    iom1284.h \
1464      iom1284p.h \
1465      iom128rfa1.h \
1466      iom16.h \
1467 @@ -81,10 +90,13 @@ avr_HEADERS = \
1468      iom162.h \
1469      iom163.h \
1470      iom164.h \
1471 +    iom164pa.h \
1472      iom165.h \
1473      iom165p.h \
1474 +    iom165pa.h \
1475      iom168.h \
1476      iom168p.h \
1477 +    iom168pa.h \
1478      iom169.h \
1479      iom169p.h \
1480      iom169pa.h \
1481 @@ -99,14 +111,18 @@ avr_HEADERS = \
1482      iom2561.h \
1483      iom3000.h \
1484      iom32.h \
1485 +    iom32a.h \
1486      iom323.h \
1487      iom324.h \
1488      iom324pa.h \
1489      iom325.h \
1490 +    iom325pa.h \
1491      iom3250.h \
1492 +    iom3250pa.h \
1493      iom328p.h \
1494      iom329.h \
1495      iom3290.h \
1496 +    iom3290pa.h \
1497      iom32hvb.h \
1498      iom32hvbrevb.h \
1499      iom32c1.h \
1500 @@ -115,9 +131,11 @@ avr_HEADERS = \
1501      iom32u4.h \
1502      iom32u6.h \
1503      iom48.h \
1504 +    iom48pa.h \
1505      iom48p.h \
1506      iom406.h \
1507      iom64.h \
1508 +    iom64a.h \
1509      iom640.h \
1510      iom644.h \
1511      iom644p.h \
1512 @@ -131,6 +149,7 @@ avr_HEADERS = \
1513      iom64hve.h \
1514      iom64m1.h \
1515      iom8.h \
1516 +    iom8a.h \
1517      iom8515.h \
1518      iom8535.h \
1519      iom88.h \
1520 @@ -152,8 +171,10 @@ avr_HEADERS = \
1521      iotn13a.h \
1522      iotn15.h \
1523      iotn167.h \
1524 +    iotn1634.h \
1525      iotn20.h \
1526      iotn22.h \
1527 +    iotn828.h \
1528      iotn2313.h \
1529      iotn2313a.h \
1530      iotn24.h \
1531 @@ -191,22 +212,45 @@ avr_HEADERS = \
1532      iousb647.h \
1533      iousbxx6_7.h \
1534      iox64d3.h \
1535 +    iox64d4.h \
1536      iox128a1.h \
1537      iox128a1u.h \
1538 +    iox128a4u.h \
1539      iox128a3.h \
1540 +    iox128a3u.h \
1541 +    iox128b1.h \
1542 +    iox128b3.h \
1543 +    iox128c3.h \
1544      iox128d3.h \
1545 +    iox128d4.h \
1546      iox16a4.h \
1547 +    iox16a4u.h \
1548 +    iox16c4.h \
1549      iox16d4.h \
1550      iox192a3.h \
1551 +    iox192a3u.h \
1552 +    iox192c3.h \
1553      iox192d3.h \
1554      iox256a3.h \
1555 +    iox256a3u.h \
1556      iox256a3b.h \
1557 +    iox256a3bu.h \
1558 +    iox256c3.h \
1559      iox256d3.h \
1560 +    iox384c3.h \
1561 +    iox384d3.h \
1562      iox32a4.h \
1563 +    iox32a4u.h \
1564 +    iox32c4.h \
1565      iox32d4.h \
1566      iox64a1.h \
1567      iox64a1u.h \
1568      iox64a3.h \
1569 +    iox64a3u.h \
1570 +    iox64a4u.h \
1571 +    iox64b1.h \
1572 +    iox64b3.h \
1573 +    iox64c3.h \
1574      lock.h \
1575      parity.h \
1576      pgmspace.h \
1577 diff -Naurp include/avr/power.h include/avr/power.h
1578 --- include/avr/power.h 2012-11-22 19:55:00.000000000 +0530
1579 +++ include/avr/power.h 2012-11-22 19:48:48.000000000 +0530
1580 @@ -74,25 +74,25 @@ find out which macros are applicable to 
1581    <tr>
1582      <td>power_adc_enable()</td>
1583      <td>Enable the Analog to Digital Converter module.</td>
1584 -    <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, AT90PWM81, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega3250, ATmega3250A, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861</td>
1585 +    <td>ATmega640, ATmega1280, ATmega1281, ATmega1284, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, AT90PWM81, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega325PA, ATmega3250, ATmega3250A, ATmega3250PA, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega3290PA, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861, ATxmega16A4U, ATxmega32A4U</td>
1586    </tr>
1587  
1588    <tr>
1589      <td>power_adc_disable()</td>
1590      <td>Disable the Analog to Digital Converter module.</td>
1591 -    <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, AT90PWM81, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega3250, ATmega3250A, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861</td>
1592 +    <td>ATmega640, ATmega1280, ATmega1281, ATmega1284, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, AT90PWM81, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega325PA, ATmega3250, ATmega3250A, ATmega3250PA, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega3290PA, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861, ATxmega16A4U, ATxmega32A4U</td>
1593    </tr>
1594  
1595    <tr>
1596      <td>power_lcd_enable()</td>
1597      <td>Enable the LCD module.</td>
1598 -    <td>ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega649, ATmega6490</td>
1599 +    <td>ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega649, ATmega6490, ATxmega64B1, ATxmega128B1, ATxmega64B3, ATxmega128B3</td>
1600    </tr>
1601  
1602    <tr>
1603      <td>power_lcd_disable().</td>
1604      <td>Disable the LCD module.</td>
1605 -    <td>ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega649, ATmega6490</td>
1606 +    <td>ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega649, ATmega6490, ATxmega64B1, ATxmega128B1, ATxmega64B3, ATxmega128B3</td>
1607    </tr>
1608  
1609    <tr>
1610 @@ -146,43 +146,43 @@ find out which macros are applicable to 
1611    <tr>
1612      <td>power_spi_enable()</td>
1613      <td>Enable the Serial Peripheral Interface module.</td>
1614 -    <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, AT90PWM81, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega3250, ATmega3250A, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168</td>
1615 +    <td>ATmega640, ATmega1280, ATmega1281, ATmega1284, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, AT90PWM81, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega325PA, ATmega3250, ATmega3250A, ATmega3250PA, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega3290PA, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168, ATxmega16A4U, ATxmega32A4U</td>
1616    </tr>
1617  
1618    <tr>
1619      <td>power_spi_disable()</td>
1620      <td>Disable the Serial Peripheral Interface module.</td>
1621 -    <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, AT90PWM81, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega3250, ATmega3250A, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168</td>
1622 +    <td>ATmega640, ATmega1280, ATmega1281, ATmega1284, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, AT90PWM81, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega325PA, ATmega3250, ATmega3250A, ATmega3250PA, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega3290PA, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168, ATxmega16A4U, ATxmega32A4U</td>
1623    </tr>
1624  
1625    <tr>
1626      <td>power_timer0_enable()</td>
1627      <td>Enable the Timer 0 module.</td>
1628 -    <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM216, AT90PWM316, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega3250, ATmega3250A, ATmega645, ATmega6450, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861</td>
1629 +    <td>ATmega640, ATmega1280, ATmega1281, ATmega1284, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM216, AT90PWM316, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega3250, ATmega3250A, ATmega645, ATmega6450, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861, ATxmega16A4U, ATxmega32A4U</td>
1630    </tr>
1631  
1632    <tr>
1633      <td>power_timer0_disable()</td>
1634      <td>Disable the Timer 0 module.</td>
1635 -    <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega3250, ATmega3250A, ATmega645, ATmega6450, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861</td>
1636 +    <td>ATmega640, ATmega1280, ATmega1281, ATmega1284, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega3250, ATmega3250A, ATmega645, ATmega6450, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861, ATxmega16A4U, ATxmega32A4U</td>
1637    </tr>
1638  
1639    <tr>
1640      <td>power_timer1_enable()</td>
1641      <td>Enable the Timer 1 module.</td>
1642 -    <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, AT90PWM81, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega3250, ATmega3250A, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861</td>
1643 +    <td>ATmega640, ATmega1280, ATmega1281, ATmega1284, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, AT90PWM81, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega325PA, ATmega3250, ATmega3250A, ATmega3250PA, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega3290PA, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861, ATxmega16A4U, ATxmega32A4U</td>
1644    </tr>
1645  
1646    <tr>
1647      <td>power_timer1_disable()</td>
1648      <td>Disable the Timer 1 module.</td>
1649 -    <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, AT90PWM81, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega3250, ATmega3250A, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861</td>
1650 +    <td>ATmega640, ATmega1280, ATmega1281, ATmega1284, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, AT90PWM81, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega325PA, ATmega3250, ATmega3250A, ATmega3250PA, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega3290PA, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861, ATxmega16A4U, ATxmega32A4U</td>
1651    </tr>
1652  
1653    <tr>
1654      <td>power_timer2_enable()</td>
1655      <td>Enable the Timer 2 module.</td>
1656 -    <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168</td>
1657 +    <td>ATmega640, ATmega1280, ATmega1281, ATmega1284, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168</td>
1658    </tr>
1659  
1660    <tr>
1661 @@ -194,13 +194,13 @@ find out which macros are applicable to 
1662    <tr>
1663      <td>power_timer3_enable()</td>
1664      <td>Enable the Timer 3 module.</td>
1665 -    <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287</td>
1666 +    <td>ATmega640, ATmega1280, ATmega1281, ATmega1284, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287</td>
1667    </tr>
1668  
1669    <tr>
1670      <td>power_timer3_disable()</td>
1671      <td>Disable the Timer 3 module.</td>
1672 -    <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287</td>
1673 +    <td>ATmega640, ATmega1280, ATmega1281, ATmega1284, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287</td>
1674    </tr>
1675  
1676    <tr>
1677 @@ -230,13 +230,13 @@ find out which macros are applicable to 
1678    <tr>
1679      <td>power_twi_enable()</td>
1680      <td>Enable the Two Wire Interface module.</td>
1681 -    <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168</td>
1682 +    <td>ATmega640, ATmega1280, ATmega1281, ATmega1284, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATxmega16A4U, ATxmega32A4U</td>
1683    </tr>
1684  
1685    <tr>
1686      <td>power_twi_disable()</td>
1687      <td>Disable the Two Wire Interface module.</td>
1688 -    <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168</td>
1689 +    <td>ATmega640, ATmega1280, ATmega1281, ATmega1284, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATxmega16A4U, ATxmega32A4U</td>
1690    </tr>
1691  
1692    <tr>
1693 @@ -254,25 +254,25 @@ find out which macros are applicable to 
1694    <tr>
1695      <td>power_usart0_enable()</td>
1696      <td>Enable the USART 0 module.</td>
1697 -    <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega3250, ATmega3250A, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168</td>
1698 +    <td>ATmega640, ATmega1280, ATmega1281, ATmega1284, ATmega128RFA1, ATmega2560, ATmega2561, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega325PA, ATmega3250, ATmega3250A, ATmega3250PA, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega3290PA, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168, ATxmega16A4U, ATxmega32A4U</td>
1699    </tr>
1700  
1701    <tr>
1702      <td>power_usart0_disable()</td>
1703      <td>Disable the USART 0 module.</td>
1704 -    <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega3250, ATmega3250A, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168</td>
1705 +    <td>ATmega640, ATmega1280, ATmega1281, ATmega1284, ATmega128RFA1, ATmega2560, ATmega2561, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega325PA, ATmega3250, ATmega3250A, ATmega3250PA, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega3290PA, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega48, ATmega88, ATmega168, ATxmega16A4U, ATxmega32A4U</td>
1706    </tr>
1707  
1708    <tr>
1709      <td>power_usart1_enable()</td>
1710      <td>Enable the USART 1 module.</td>
1711 -    <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, ATmega164P, ATmega324P, ATmega644</td>
1712 +    <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, ATmega164P, ATmega324P, ATmega644, ATxmega16A4U, ATxmega32A4U</td>
1713    </tr>
1714  
1715    <tr>
1716      <td>power_usart1_disable()</td>
1717      <td>Disable the USART 1 module.</td>
1718 -    <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, ATmega164P, ATmega324P, ATmega644</td>
1719 +    <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, ATmega164P, ATmega324P, ATmega644, ATxmega16A4U, ATxmega32A4U</td>
1720    </tr>
1721  
1722    <tr>
1723 @@ -302,13 +302,13 @@ find out which macros are applicable to 
1724    <tr>
1725      <td>power_usb_enable()</td>
1726      <td>Enable the USB module.</td>
1727 -    <td>AT90USB646, AT90USB647, AT90USB1286, AT90USB1287</td>
1728 +    <td>AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, ATxmega64B1, ATxmega128B1, ATxmega64B3, ATxmega128B3, ATxmega16A4U, ATxmega32A4U, ATxmega128c3, ATxmega256c3, ATxmega16c4, ATxmega32c4</td>
1729    </tr>
1730  
1731    <tr>
1732      <td>power_usb_disable()</td>
1733      <td>Disable the USB module.</td>
1734 -    <td>AT90USB646, AT90USB647, AT90USB1286, AT90USB1287</td>
1735 +    <td>AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, ATxmega64B1, ATxmega128B1, ATxmega64B3, ATxmega128B3, ATxmega16A4U, ATxmega32A4U,ATxmega128c3, ATxmega256c3, ATxmega16c4, ATxmega32c4</td>
1736    </tr>
1737  
1738    <tr>
1739 @@ -338,13 +338,13 @@ find out which macros are applicable to 
1740    <tr>
1741      <td>power_all_enable()</td>
1742      <td>Enable all modules.</td>
1743 -    <td>ATxmega6A4, ATxmega32A4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmegaA1, ATxmegaA1U, ATxmega128A3, ATxmega192A3, ATxmega256A3, ATxmegaA3B, ATxmega16D4, ATxmega32D4, ATxmega64D3, ATxmega128D3, ATxmega192D3, ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega3250, ATmega325A, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861</td>
1744 +    <td>ATxmega6A4, ATxmega32A4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmegaA1, ATxmegaA1U, ATxmega128A3, ATxmega192A3, ATxmega256A3, ATxmegaA3B, ATxmega16D4, ATxmega32D4, ATxmega64D3, ATxmega128D3, ATxmega192D3, ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega325PA, ATmega3250, ATmega3250A, ATmega3250PA, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega3290PA, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861, ATxmega64B1, ATxmega128B1, ATxmega64B3, ATxmega128B3, ATxmega16A4U, ATxmega32A4U, ATxmega64A3U, ATxmega128A3U, ATxmega192A3U, ATxmega256A3U</td>
1745    </tr>
1746  
1747    <tr>
1748      <td>power_all_disable()</td>
1749      <td>Disable all modules.</td>
1750 -    <td>ATxmega6A4, ATxmega32A4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmegaA1, ATxmegaA1U, ATxmega128A3, ATxmega192A3, ATxmega256A3, ATxmegaA3B, ATxmega16D4, ATxmega32D4, ATxmega64D3, ATxmega128D3,ATxmega192D3, ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega3250, ATmega325A, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861</td>
1751 +    <td>ATxmega6A4, ATxmega32A4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, ATxmegaA1, ATxmegaA1U, ATxmega128A3, ATxmega192A3, ATxmega256A3, ATxmegaA3B, ATxmega16D4, ATxmega32D4, ATxmega64D3, ATxmega128D3,ATxmega192D3, ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega325PA, ATmega3250, ATmega3250A, ATmega3250PA, ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega3290PA, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861, ATxmega64B1, ATxmega128B1, ATxmega64B3, ATxmega128B3, ATxmega16A4U, ATxmega32A4U, ATxmega64A3U, ATxmega128A3U, ATxmega192A3U, ATxmega256A3U</td>
1752    </tr>
1753  </table>
1754  </center>
1755 @@ -355,16 +355,27 @@ find out which macros are applicable to 
1756  // Xmega A series has AES, EBI and DMA bits
1757  // Include any other device on need basis
1758  #if defined(__AVR_ATxmega16A4__) \
1759 +|| defined(__AVR_ATxmega16A4U__) \
1760 +|| defined(__AVR_ATxmega32A4U__) \
1761  || defined(__AVR_ATxmega32A4__) \
1762  || defined(__AVR_ATxmega64A1__) \
1763  || defined(__AVR_ATxmega64A1U__) \
1764  || defined(__AVR_ATxmega64A3__) \
1765 +|| defined(__AVR_ATxmega64A3U__) \
1766 +|| defined(__AVR_ATxmega64A4U__) \
1767  || defined(__AVR_ATxmega128A1__) \
1768  || defined(__AVR_ATxmega128A1U__) \
1769  || defined(__AVR_ATxmega128A3__) \
1770 +|| defined(__AVR_ATxmega128A3U__) \
1771 +|| defined(__AVR_ATxmega128A4U__) \
1772  || defined(__AVR_ATxmega192A3__) \
1773 +|| defined(__AVR_ATxmega192A3U__) \
1774  || defined(__AVR_ATxmega256A3__) \
1775 -|| defined(__AVR_ATxmega256A3B__)
1776 +|| defined(__AVR_ATxmega256A3U__) \
1777 +|| defined(__AVR_ATxmega256A3B__) \
1778 +|| defined(__AVR_ATxmega256A3BU__) \
1779 +|| defined(__AVR_ATxmega384C3__)
1780 +
1781  
1782  #define power_aes_enable()  (PR_PRGEN &= (uint8_t)~(PR_AES_bm))
1783  #define power_aes_disable() (PR_PRGEN |= (uint8_t)PR_AES_bm)
1784 @@ -389,6 +400,44 @@ find out which macros are applicable to 
1785  #define power_usartf1_enable()  (PR_PRPF &= (uint8_t)~(PR_USART1_bm))
1786  #define power_usartf1_disable() (PR_PRPF |= (uint8_t)PR_USART1_bm)
1787  
1788 +#if defined(__AVR_ATxmega384C3__) \
1789 +|| defined(__AVR_ATxmega256A3BU__) \
1790 +|| defined(__AVR_ATxmega16A4U__) \
1791 +|| defined(__AVR_ATxmega32A4U__) \
1792 +|| defined(__AVR_ATxmega64A3U__) \
1793 +|| defined(__AVR_ATxmega64A4U__) \
1794 +|| defined(__AVR_ATxmega128A3U__) \
1795 +|| defined(__AVR_ATxmega128A4U__) \
1796 +|| defined(__AVR_ATxmega192A3U__) \
1797 +|| defined(__AVR_ATxmega256A3U__) 
1798 +
1799 +#define power_usb_enable()   (PR_PRGEN &= (uint8_t)~(PR_USB_bm))
1800 +#define power_usb_disable()  (PR_PRGEN &= (uint8_t)(PR_USB_bm))
1801 +
1802 +#define power_all_enable() \
1803 +do { \
1804 +    PR_PRGEN &= (uint8_t)~(PR_AES_bm|PR_EBI_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm|PR_USB_bm); \
1805 +    PR_PRPA &= (uint8_t)~(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1806 +    PR_PRPB &= (uint8_t)~(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1807 +    PR_PRPC &= (uint8_t)~(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1808 +    PR_PRPD &= (uint8_t)~(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1809 +    PR_PRPE &= (uint8_t)~(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1810 +    PR_PRPF &= (uint8_t)~(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1811 +} while(0)
1812 +
1813 +#define power_all_disable() \
1814 +do { \
1815 +    PR_PRGEN |= (uint8_t)(PR_AES_bm|PR_EBI_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm|PR_USB_bm); \
1816 +    PR_PRPA |= (uint8_t)(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1817 +    PR_PRPB |= (uint8_t)(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1818 +    PR_PRPC |= (uint8_t)(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1819 +    PR_PRPD |= (uint8_t)(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1820 +    PR_PRPE |= (uint8_t)(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1821 +    PR_PRPF |= (uint8_t)(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1822 +} while(0)
1823 +
1824 +#else
1825 +
1826  #define power_all_enable() \
1827  do { \
1828      PR_PRGEN &= (uint8_t)~(PR_AES_bm|PR_EBI_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
1829 @@ -413,22 +462,121 @@ do { \
1830  } while(0)
1831  #endif
1832  
1833 +#endif
1834 +
1835 +#if defined(__AVR_ATxmega16C4__) \
1836 +|| defined(__AVR_ATxmega32C4__) \
1837 +|| defined(__AVR_ATxmega64C3__) \
1838 +|| defined(__AVR_ATxmega128C3__) \
1839 +|| defined(__AVR_ATxmega192C3__) \
1840 +|| defined(__AVR_ATxmega256C3__) 
1841 +
1842 +#define power_usb_enable()   (PR_PRGEN &= (uint8_t)~(PR_USB_bm))
1843 +#define power_usb_disable()  (PR_PRGEN &= (uint8_t)(PR_USB_bm))
1844 +
1845 +#define power_aes_enable()  (PR_PRGEN &= (uint8_t)~(PR_AES_bm))
1846 +#define power_aes_disable() (PR_PRGEN |= (uint8_t)PR_AES_bm)
1847 +
1848 +#define power_rtc_enable()  (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
1849 +#define power_rtc_disable() (PR_PRGEN |= (uint8_t)PR_RTC_bm)
1850 +
1851 +#define power_evsys_enable()    (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
1852 +#define power_evsys_disable()   (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
1853 +
1854 +#define power_dma_enable()    (PR_PRGEN &= (uint8_t)~(PR_DMA_bm))
1855 +#define power_dma_disable()   (PR_PRGEN |= (uint8_t)PR_DMA_bm)
1856 +
1857 +#define power_adca_enable()     (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
1858 +#define power_adca_disable()    (PR_PRPA |= (uint8_t)PR_ADC_bm)
1859 +
1860 +#define power_aca_enable()      (PR_PRPA &= (uint8_t)~(PR_AC_bm))
1861 +#define power_aca_disable()     (PR_PRPA |= (uint8_t)PR_AC_bm)
1862 +
1863 +#define power_twic_enable()     (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
1864 +#define power_twic_disable()    (PR_PRPC |= (uint8_t)PR_TWI_bm)
1865 +#define power_twie_enable()     (PR_PRPE &= (uint8_t)~(PR_TWI_bm))
1866 +#define power_twie_disable()    (PR_PRPE |= (uint8_t)PR_TWI_bm)
1867 +
1868 +#define power_usartc1_enable()  (PR_PRPC &= (uint8_t)~(PR_USART1_bm))
1869 +#define power_usartc1_disable() (PR_PRPC |= (uint8_t)PR_USART1_bm)
1870 +
1871 +#define power_usartc0_enable()  (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
1872 +#define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
1873 +#define power_usartd0_enable()  (PR_PRPD &= (uint8_t)~(PR_USART0_bm))
1874 +#define power_usartd0_disable() (PR_PRPD |= (uint8_t)PR_USART0_bm)
1875 +#define power_usarte0_enable()  (PR_PRPE &= (uint8_t)~(PR_USART0_bm))
1876 +#define power_usarte0_disable() (PR_PRPE |= (uint8_t)PR_USART0_bm)
1877 +#define power_usartf0_enable()  (PR_PRPF &= (uint8_t)~(PR_USART0_bm))
1878 +#define power_usartf0_disable() (PR_PRPF |= (uint8_t)PR_USART0_bm)
1879 +
1880 +#define power_spic_enable()     (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
1881 +#define power_spic_disable()    (PR_PRPC |= (uint8_t)PR_SPI_bm)
1882 +#define power_spid_enable()     (PR_PRPD &= (uint8_t)~(PR_SPI_bm))
1883 +#define power_spid_disable()    (PR_PRPD |= (uint8_t)PR_SPI_bm)
1884 +
1885 +#define power_hiresc_enable()   (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
1886 +#define power_hiresc_disable()  (PR_PRPC |= (uint8_t)PR_HIRES_bm)
1887 +
1888 +#define power_tc1c_enable()     (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
1889 +#define power_tc1c_disable()    (PR_PRPC |= (uint8_t)PR_TC1_bm)
1890 +
1891 +#define power_tc0c_enable()     (PR_PRPC &= (uint8_t)~(PR_TC0_bm))
1892 +#define power_tc0c_disable()    (PR_PRPC |= (uint8_t)PR_TC0_bm)
1893 +#define power_tc0d_enable()     (PR_PRPD &= (uint8_t)~(PR_TC0_bm))
1894 +#define power_tc0d_disable()    (PR_PRPD |= (uint8_t)PR_TC0_bm)
1895 +#define power_tc0e_enable()     (PR_PRPE &= (uint8_t)~(PR_TC0_bm))
1896 +#define power_tc0e_disable()    (PR_PRPE |= (uint8_t)PR_TC0_bm)
1897 +#define power_tc0f_enable()     (PR_PRPF &= (uint8_t)~(PR_TC0_bm))
1898 +#define power_tc0f_disable()    (PR_PRPF |= (uint8_t)PR_TC0_bm)
1899 +
1900 +#define power_all_enable() \
1901 +do { \
1902 +    PR_PRGEN &= (uint8_t)~(PR_USB_bm|PR_AES_bm|PR_DMA_bm|PR_RTC_bm|PR_EVSYS_bm); \
1903 +    PR_PRPA &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
1904 +    PR_PRPC &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_USART1_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1905 +    PR_PRPD &= (uint8_t)~(PR_USART0_bm|PR_SPI_bm|PR_TC0_bm); \
1906 +    PR_PRPE &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_TC0_bm); \
1907 +    PR_PRPF &= (uint8_t)~(PR_USART0_bm|PR_TC0_bm); \
1908 +    } while(0)
1909 +
1910 +#define power_all_disable() \
1911 +do { \
1912 +    PR_PRGEN |= (uint8_t)(PR_USB_bm|PR_AES_bm|PR_DMA_bm|PR_RTC_bm|PR_EVSYS_bm); \
1913 +    PR_PRPA |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
1914 +    PR_PRPC |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_USART1_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1915 +    PR_PRPD |= (uint8_t)(PR_USART0_bm|PR_SPI_bm|PR_TC0_bm); \
1916 +    PR_PRPE |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_TC0_bm); \
1917 +    PR_PRPF |= (uint8_t)(PR_USART0_bm|PR_TC0_bm); \
1918 +    } while(0)
1919 +
1920 +#endif
1921 +
1922  #if defined(__AVR_ATxmega16A4__) \
1923 +|| defined(__AVR_ATxmega16A4U__) \
1924  || defined(__AVR_ATxmega16D4__) \
1925  || defined(__AVR_ATxmega32A4__) \
1926 +|| defined(__AVR_ATxmega32A4U__) \
1927  || defined(__AVR_ATxmega32D4__) \
1928  || defined(__AVR_ATxmega64A1__) \
1929  || defined(__AVR_ATxmega64A1U__) \
1930  || defined(__AVR_ATxmega64A3__) \
1931 +|| defined(__AVR_ATxmega64A3U__) \
1932 +|| defined(__AVR_ATxmega64A4U__) \
1933  || defined(__AVR_ATxmega64D3__) \
1934  || defined(__AVR_ATxmega128A1__) \
1935  || defined(__AVR_ATxmega128A1U__) \
1936  || defined(__AVR_ATxmega128A3__) \
1937 +|| defined(__AVR_ATxmega128A3U__) \
1938 +|| defined(__AVR_ATxmega128A4U__) \
1939  || defined(__AVR_ATxmega128D3__) \
1940  || defined(__AVR_ATxmega192A3__) \
1941 +|| defined(__AVR_ATxmega192A3U__) \
1942  || defined(__AVR_ATxmega192D3__) \
1943  || defined(__AVR_ATxmega256A3__) \
1944 -|| defined(__AVR_ATxmega256A3B__)
1945 +|| defined(__AVR_ATxmega256A3U__) \
1946 +|| defined(__AVR_ATxmega256A3B__) \
1947 +|| defined(__AVR_ATxmega256A3BU__) \
1948 +|| defined(__AVR_ATxmega384C3__)
1949  
1950  
1951  #define power_rtc_enable()  (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
1952 @@ -503,6 +651,77 @@ do { \
1953  
1954  #endif
1955  
1956 +#if defined(__AVR_ATxmega64D4__) \
1957 +|| defined(__AVR_ATxmega128D4__) 
1958 +
1959 +#define power_rtc_enable()  (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
1960 +#define power_rtc_disable() (PR_PRGEN |= (uint8_t)PR_RTC_bm)
1961 +
1962 +#define power_evsys_enable()    (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
1963 +#define power_evsys_disable()   (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
1964 +
1965 +#define power_adca_enable()     (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
1966 +#define power_adca_disable()    (PR_PRPA |= (uint8_t)PR_ADC_bm)
1967 +
1968 +#define power_aca_enable()      (PR_PRPA &= (uint8_t)~(PR_AC_bm))
1969 +#define power_aca_disable()     (PR_PRPA |= (uint8_t)PR_AC_bm)
1970 +
1971 +#define power_twic_enable()     (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
1972 +#define power_twic_disable()    (PR_PRPC |= (uint8_t)PR_TWI_bm)
1973 +#define power_twie_enable()     (PR_PRPE &= (uint8_t)~(PR_TWI_bm))
1974 +#define power_twie_disable()    (PR_PRPE |= (uint8_t)PR_TWI_bm)
1975 +
1976 +#define power_usartc0_enable()  (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
1977 +#define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
1978 +#define power_usartd0_enable()  (PR_PRPD &= (uint8_t)~(PR_USART0_bm))
1979 +#define power_usartd0_disable() (PR_PRPD |= (uint8_t)PR_USART0_bm)
1980 +#define power_usarte0_enable()  (PR_PRPE &= (uint8_t)~(PR_USART0_bm))
1981 +#define power_usarte0_disable() (PR_PRPE |= (uint8_t)PR_USART0_bm)
1982 +#define power_usartf0_enable()  (PR_PRPF &= (uint8_t)~(PR_USART0_bm))
1983 +#define power_usartf0_disable() (PR_PRPF |= (uint8_t)PR_USART0_bm)
1984 +
1985 +#define power_spic_enable()     (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
1986 +#define power_spic_disable()    (PR_PRPC |= (uint8_t)PR_SPI_bm)
1987 +#define power_spid_enable()     (PR_PRPD &= (uint8_t)~(PR_SPI_bm))
1988 +#define power_spid_disable()    (PR_PRPD |= (uint8_t)PR_SPI_bm)
1989 +
1990 +#define power_hiresc_enable()   (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
1991 +#define power_hiresc_disable()  (PR_PRPC |= (uint8_t)PR_HIRES_bm)
1992 +
1993 +#define power_tc1c_enable()     (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
1994 +#define power_tc1c_disable()    (PR_PRPC |= (uint8_t)PR_TC1_bm)
1995 +
1996 +#define power_tc0c_enable()     (PR_PRPC &= (uint8_t)~(PR_TC0_bm))
1997 +#define power_tc0c_disable()    (PR_PRPC |= (uint8_t)PR_TC0_bm)
1998 +#define power_tc0d_enable()     (PR_PRPD &= (uint8_t)~(PR_TC0_bm))
1999 +#define power_tc0d_disable()    (PR_PRPD |= (uint8_t)PR_TC0_bm)
2000 +#define power_tc0e_enable()     (PR_PRPE &= (uint8_t)~(PR_TC0_bm))
2001 +#define power_tc0e_disable()    (PR_PRPE |= (uint8_t)PR_TC0_bm)
2002 +#define power_tc0f_enable()     (PR_PRPF &= (uint8_t)~(PR_TC0_bm))
2003 +#define power_tc0f_disable()    (PR_PRPF |= (uint8_t)PR_TC0_bm)
2004 +
2005 +#define power_all_enable() \
2006 +do { \
2007 +    PR_PRGEN &= (uint8_t)~(PR_RTC_bm|PR_EVSYS_bm); \
2008 +    PR_PRPA &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
2009 +    PR_PRPC &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
2010 +    PR_PRPD &= (uint8_t)~(PR_USART0_bm|PR_SPI_bm|PR_TC0_bm); \
2011 +    PR_PRPE &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_TC0_bm); \
2012 +    PR_PRPF &= (uint8_t)~(PR_USART0_bm|PR_TC0_bm); \
2013 +    } while(0)
2014 +
2015 +#define power_all_disable() \
2016 +do { \
2017 +    PR_PRGEN |= (uint8_t)(PR_RTC_bm|PR_EVSYS_bm); \
2018 +    PR_PRPA |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
2019 +    PR_PRPC |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
2020 +    PR_PRPD |= (uint8_t)(PR_USART0_bm|PR_SPI_bm|PR_TC0_bm); \
2021 +    PR_PRPE |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_TC0_bm); \
2022 +    PR_PRPF |= (uint8_t)(PR_USART0_bm|PR_TC0_bm); \
2023 +    } while(0)
2024 +
2025 +#endif
2026 +
2027  #if defined(__AVR_ATxmega16D4__) \
2028  || defined(__AVR_ATxmega32D4__) \
2029  || defined(__AVR_ATxmega64D3__) \
2030 @@ -532,6 +751,78 @@ do { \
2031      PR_PRPF |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
2032  } while(0)
2033  
2034 +#elif defined (__AVR_ATxmega64B1__) \
2035 +|| defined (__AVR_ATxmega64B3__) \
2036 +|| defined (__AVR_ATxmega128B1__) \
2037 +|| defined (__AVR_ATxmega128B3__) 
2038 +#define power_lcd_enable()  (PR_PRGEN &= (uint8_t)~(PR_LCD_bm))
2039 +#define power_lcd_disable() (PR_PRGEN |= (uint8_t)PR_LCD_bm)
2040 +
2041 +#define power_usb_enable()  (PR_PRGEN &= (uint8_t)~(PR_USB_bm))
2042 +#define power_usb_disable() (PR_PRGEN |= (uint8_t)PR_USB_bm)
2043 +
2044 +#define power_aes_enable()  (PR_PRGEN &= (uint8_t)~(PR_AES_bm))
2045 +#define power_aes_disable() (PR_PRGEN |= (uint8_t)PR_AES_bm)
2046 +
2047 +#define power_rtc_enable()  (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
2048 +#define power_rtc_disable() (PR_PRGEN |= (uint8_t)PR_RTC_bm)
2049 +
2050 +#define power_evsys_enable()    (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
2051 +#define power_evsys_disable()   (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
2052 +
2053 +#define power_dma_enable()    (PR_PRGEN &= (uint8_t)~(PR_DMA_bm))
2054 +#define power_dma_disable()   (PR_PRGEN |= (uint8_t)PR_DMA_bm)
2055 +
2056 +#define power_adca_enable()     (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
2057 +#define power_adca_disable()    (PR_PRPA |= (uint8_t)PR_ADC_bm)
2058 +#define power_adcb_enable()     (PR_PRPB &= (uint8_t)~(PR_ADC_bm))
2059 +#define power_adcb_disable()    (PR_PRPB |= (uint8_t)PR_ADC_bm)
2060 +
2061 +#define power_aca_enable()      (PR_PRPA &= (uint8_t)~(PR_AC_bm))
2062 +#define power_aca_disable()     (PR_PRPA |= (uint8_t)PR_AC_bm)
2063 +#define power_acb_enable()      (PR_PRPB &= (uint8_t)~(PR_AC_bm))
2064 +#define power_acb_disable()     (PR_PRPB |= (uint8_t)PR_AC_bm)
2065 +
2066 +#define power_twic_enable()     (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
2067 +#define power_twic_disable()    (PR_PRPC |= (uint8_t)PR_TWI_bm)
2068 +
2069 +#define power_usartc0_enable()  (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
2070 +#define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
2071 +#define power_usarte0_enable()  (PR_PRPE &= (uint8_t)~(PR_USART0_bm))
2072 +#define power_usarte0_disable() (PR_PRPE |= (uint8_t)PR_USART0_bm)
2073 +
2074 +#define power_spic_enable()     (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
2075 +#define power_spic_disable()    (PR_PRPC |= (uint8_t)PR_SPI_bm)
2076 +
2077 +#define power_hiresc_enable()     (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
2078 +#define power_hiresc_disable()    (PR_PRPC |= (uint8_t)PR_HIRES_bm)
2079 +
2080 +#define power_tc1c_enable()     (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
2081 +#define power_tc1c_disable()    (PR_PRPC |= (uint8_t)PR_TC1_bm)
2082 +
2083 +#define power_tc0c_enable()  (PR_PRPC &= (uint8_t)~(PR_TC0_bm))
2084 +#define power_tc0c_disable() (PR_PRPC |= (uint8_t)PR_TC0_bm)
2085 +#define power_tc0e_enable()  (PR_PRPE &= (uint8_t)~(PR_TC0_bm))
2086 +#define power_tc0e_disable() (PR_PRPE |= (uint8_t)PR_TC0_bm)
2087 +
2088 +#define power_all_enable() \
2089 +do { \
2090 +    PR_PRGEN &= (uint8_t)~(PR_LCD_bm|PR_USB_bm|PR_AES_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
2091 +    PR_PRPA &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
2092 +    PR_PRPB &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
2093 +    PR_PRPC &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
2094 +    PR_PRPE &= (uint8_t)~(PR_USART0_bm|PR_TC0_bm); \
2095 +    } while(0)
2096 +
2097 +#define power_all_disable() \
2098 +do { \
2099 +    PR_PRGEN |= (uint8_t)(PR_LCD_bm|PR_USB_bm|PR_AES_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
2100 +    PR_PRPA |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
2101 +    PR_PRPB |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
2102 +    PR_PRPC |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
2103 +    PR_PRPE |= (uint8_t)(PR_USART0_bm|PR_TC0_bm); \
2104 +    } while(0)
2105 +
2106  #elif defined(__AVR_ATmega640__) \
2107  || defined(__AVR_ATmega1280__) \
2108  || defined(__AVR_ATmega1281__) \
2109 @@ -841,7 +1132,8 @@ do{ \
2110  #define power_all_disable()     (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC0)|(1<<PRPSC1)|(1<<PRPSC2)))
2111  
2112  
2113 -#elif defined(__AVR_AT90PWM81__)
2114 +#elif defined(__AVR_AT90PWM81__) \
2115 +|| defined(__AVR_AT90PWM161__)
2116  
2117  #define power_adc_enable()      (PRR &= (uint8_t)~(1 << PRADC))
2118  #define power_adc_disable()     (PRR |= (uint8_t)(1 << PRADC))
2119 @@ -867,10 +1159,13 @@ do{ \
2120  #elif defined(__AVR_ATmega165__) \
2121  || defined(__AVR_ATmega165A__) \
2122  || defined(__AVR_ATmega165P__) \
2123 +|| defined(__AVR_ATmega165PA__) \
2124  || defined(__AVR_ATmega325__) \
2125  || defined(__AVR_ATmega325A__) \
2126 +|| defined(__AVR_ATmega325PA__) \
2127  || defined(__AVR_ATmega3250__) \
2128  || defined(__AVR_ATmega3250A__) \
2129 +|| defined(__AVR_ATmega3250PA__) \
2130  || defined(__AVR_ATmega645__) \
2131  || defined(__AVR_ATmega645A__) \
2132  || defined(__AVR_ATmega645P__) \
2133 @@ -905,6 +1200,7 @@ do{ \
2134  || defined(__AVR_ATmega3290__) \
2135  || defined(__AVR_ATmega3290A__) \
2136  || defined(__AVR_ATmega3290P__) \
2137 +|| defined(__AVR_ATmega3290PA__) \
2138  || defined(__AVR_ATmega649__) \
2139  || defined(__AVR_ATmega649A__) \
2140  || defined(__AVR_ATmega649P__) \
2141 @@ -968,7 +1264,8 @@ do{ \
2142  #define power_all_disable()     (PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
2143  
2144  
2145 -#elif defined(__AVR_ATmega644__)
2146 +#elif defined(__AVR_ATmega644__) \
2147 +|| defined(__AVR_ATmega164PA__)
2148  
2149  #define power_adc_enable()      (PRR0 &= (uint8_t)~(1 << PRADC))
2150  #define power_adc_disable()     (PRR0 |= (uint8_t)(1 << PRADC))
2151 @@ -1016,6 +1313,7 @@ do{ \
2152  
2153  #elif defined(__AVR_ATmega48__) \
2154  || defined(__AVR_ATmega48A__) \
2155 +|| defined(__AVR_ATmega48PA__) \
2156  || defined(__AVR_ATmega48P__) \
2157  || defined(__AVR_ATmega88__) \
2158  || defined(__AVR_ATmega88A__) \
2159 @@ -1024,10 +1322,12 @@ do{ \
2160  || defined(__AVR_ATmega168__) \
2161  || defined(__AVR_ATmega168A__) \
2162  || defined(__AVR_ATmega168P__) \
2163 +|| defined(__AVR_ATmega168PA__) \
2164  || defined(__AVR_ATmega328__) \
2165  || defined(__AVR_ATmega328P__) \
2166  || defined(__AVR_ATtiny48__) \
2167 -|| defined(__AVR_ATtiny88__)
2168 +|| defined(__AVR_ATtiny88__) \
2169 +|| defined(__AVR_ATtiny828__)
2170  
2171  #define power_adc_enable()      (PRR &= (uint8_t)~(1 << PRADC))
2172  #define power_adc_disable()     (PRR |= (uint8_t)(1 << PRADC))
2173 @@ -1044,15 +1344,27 @@ do{ \
2174  #define power_timer1_enable()   (PRR &= (uint8_t)~(1 << PRTIM1))
2175  #define power_timer1_disable()  (PRR |= (uint8_t)(1 << PRTIM1))
2176  
2177 +#if !defined(__AVR_ATtiny828__)
2178 +
2179  #define power_timer2_enable()   (PRR &= (uint8_t)~(1 << PRTIM2))
2180  #define power_timer2_disable()  (PRR |= (uint8_t)(1 << PRTIM2))
2181  
2182 +#endif
2183 +
2184  #define power_twi_enable()      (PRR &= (uint8_t)~(1 << PRTWI))
2185  #define power_twi_disable()     (PRR |= (uint8_t)(1 << PRTWI))
2186  
2187 +#if defined(__AVR_ATtiny828__)
2188 +
2189 +#define power_all_enable()      (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTWI)))
2190 +#define power_all_disable()     (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTWI)))
2191 +
2192 +#else
2193 +
2194  #define power_all_enable()      (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
2195  #define power_all_disable()     (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
2196  
2197 +#endif
2198  
2199  #elif defined(__AVR_ATtiny24__) \
2200  || defined(__AVR_ATtiny24A__) \
2201 @@ -1087,6 +1399,43 @@ do{ \
2202  #define power_all_enable()      (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRUSI)))
2203  #define power_all_disable()     (PRR |= (uint8_t)((1<<PRADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRUSI)))
2204  
2205 +#elif defined(__AVR_ATmega1284__)
2206 +
2207 +#define power_adc_enable()      (PRR0 &= (uint8_t)~(1 << PRADC))
2208 +#define power_adc_disable()     (PRR0 |= (uint8_t)(1 << PRADC))
2209 +
2210 +#define power_spi_enable()      (PRR0 &= (uint8_t)~(1 << PRSPI))
2211 +#define power_spi_disable()     (PRR0 |= (uint8_t)(1 << PRSPI))
2212 +
2213 +#define power_twi_enable()      (PRR0 &= (uint8_t)~(1 << PRTWI))
2214 +#define power_twi_disable()     (PRR0 |= (uint8_t)(1 << PRTWI))
2215 +
2216 +#define power_timer0_enable()   (PRR0 &= (uint8_t)~(1 << PRTIM0))
2217 +#define power_timer0_disable()  (PRR0 |= (uint8_t)(1 << PRTIM0))
2218 +
2219 +#define power_timer1_enable()   (PRR0 &= (uint8_t)~(1 << PRTIM1))
2220 +#define power_timer1_disable()  (PRR0 |= (uint8_t)(1 << PRTIM1))
2221 +
2222 +#define power_timer2_enable()   (PRR0 &= (uint8_t)~(1 << PRTIM2))
2223 +#define power_timer2_disable()  (PRR0 |= (uint8_t)(1 << PRTIM2))
2224 +
2225 +#define power_timer3_enable()   (PRR1 &= (uint8_t)~(1 << PRTIM3))
2226 +#define power_timer3_disable()  (PRR1 |= (uint8_t)(1 << PRTIM3))
2227 +
2228 +#define power_usart0_enable()   (PRR0 &= (uint8_t)~(1 << PRUSART0))
2229 +#define power_usart0_disable()  (PRR0 |= (uint8_t)(1 << PRUSART0))
2230 +
2231 +#define power_all_enable() \
2232 +do{ \
2233 +    PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
2234 +    PRR1 &= (uint8_t)~(1<<PRTIM3); \
2235 +}while(0)
2236 +
2237 +#define power_all_disable() \
2238 +do{ \
2239 +    PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
2240 +    PRR1 |= (uint8_t)(1<<PRTIM3); \
2241 +}while(0)
2242  
2243  #elif defined(__AVR_ATmega1284P__)
2244  
2245 @@ -1160,6 +1509,70 @@ do{ \
2246  #define power_all_disable()     (PRR0 |= (uint8_t)((1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRVADC)|(1<<PRSPI)|(1<<PRVRM)))
2247  
2248  
2249 +#elif defined (__AVR_ATA5790__) \
2250 +|| defined (__AVR_ATA5795__)
2251 +
2252 +// Enable the voltage monitor 
2253 +#define power_vmonitor_enable()          (PRR0 &= (uint8_t)~(1 << PRVM))
2254 +#define power_vmonitor_disable()         (PRR0 |= (uint8_t)(1 << PRVM))
2255 +
2256 +#define power_irdriver_enable()          (PRR0 &= (uint8_t)~(1 << PRDS))
2257 +#define power_irdriver_disable()         (PRR0 |= (uint8_t)(1 << PRDS))
2258 +
2259 +#define power_crypto_enable()            (PRR0 &= (uint8_t)~(1 << PRCU))
2260 +#define power_crypto_disable()           (PRR0 |= (uint8_t)(1 << PRCU))
2261 +
2262 +#define power_timermodulator_enable()    (PRR0 &= (uint8_t)~(1 << PRTM))
2263 +#define power_timermodulator_disable()   (PRR0 |= (uint8_t)(1 << PRTM))
2264 +
2265 +#define power_timer1_enable()            (PRR0 &= (uint8_t)~(1 << PRT1))
2266 +#define power_timer1_disable()           (PRR0 |= (uint8_t)(1 << PRT1))
2267 +
2268 +#define power_timer2_enable()            (PRR0 &= (uint8_t)~(1 << PRT2))
2269 +#define power_timer2_disable()           (PRR0 |= (uint8_t)(1 << PRT2))
2270 +
2271 +#define power_timer3_enable()            (PRR0 &= (uint8_t)~(1 << PRT3))
2272 +#define power_timer3_disable()           (PRR0 |= (uint8_t)(1 << PRT3))
2273 +
2274 +#define power_spi_enable()               (PRR1 &= (uint8_t)~(1 << PRSPI))
2275 +#define power_spi_disable()              (PRR1 |= (uint8_t)(1 << PRSPI))
2276 +
2277 +#define power_cinterface_enable()        (PRR1 &= (uint8_t)~(1 << PRCI))
2278 +#define power_cinterface_disable()       (PRR1 |= (uint8_t)(1 << PRCI))
2279 +
2280 +#if defined(__AVR_ATA5790__) 
2281 +
2282 +#define power_lfreceiver_enable()        (PRR0 &= (uint8_t)~(1 << PRLFR))            
2283 +#define power_lfreceiver_disable()       (PRR0 |= (uint8_t)(1 << PRLFR))            
2284 +
2285 +#define power_all_enable() \
2286 +do{ \
2287 +    PRR0 &= (uint8_t)~((1<<PRVM)|(1<<PRDS)|(1<<PRCU)|(1<<PRTM)|(1<<PRT3)|(1<<PRT2)|(1<<PRT1)|(1<<PRLFR)); \
2288 +    PRR1 &= (uint8_t)~((1<<PRSPI)|(1<<PRCI)); \
2289 +}while(0)
2290 +
2291 +#define power_all_disable() \
2292 +do{ \
2293 +    PRR0 |= (uint8_t)((1<<PRVM)|(1<<PRDS)|(1<<PRCU)|(1<<PRTM)|(1<<PRT3)|(1<<PRT2)|(1<<PRT1)|(1<<PRLFR)); \
2294 +    PRR1 |= (uint8_t)((1<<PRSPI)|(1<<PRCI)); \
2295 +}while(0)
2296 +
2297 +#elif defined(__AVR_ATA5795__)
2298 +
2299 +#define power_all_enable() \
2300 +do{ \
2301 +    PRR0 &= (uint8_t)~((1<<PRVM)|(1<<PRDS)|(1<<PRCU)|(1<<PRTM)|(1<<PRT3)|(1<<PRT2)|(1<<PRT1)); \
2302 +    PRR1 &= (uint8_t)~((1<<PRSPI)|(1<<PRCI)); \
2303 +}while(0)
2304 +
2305 +#define power_all_disable() \
2306 +do{ \
2307 +    PRR0 |= (uint8_t)((1<<PRVM)|(1<<PRDS)|(1<<PRCU)|(1<<PRTM)|(1<<PRT3)|(1<<PRT2)|(1<<PRT1)); \
2308 +    PRR1 |= (uint8_t)((1<<PRSPI)|(1<<PRCI)); \
2309 +}while(0)
2310 +
2311 +#endif
2312 +
2313  #elif defined(__AVR_ATmega16M1__) \
2314  || defined(__AVR_ATmega32C1__) \
2315  || defined(__AVR_ATmega32M1__) \
2316 @@ -1192,8 +1605,9 @@ do{ \
2317  
2318  
2319  #elif defined(__AVR_ATtiny167__) \
2320 -|| defined(__AVR_ATtiny87__)
2321 -
2322 +|| defined(__AVR_ATtiny87__) \
2323 +|| defined(__AVR_ATA5505__) \
2324 +|| defined(__AVR_ATA5272__)
2325  
2326  #define power_adc_enable()      (PRR &= (uint8_t)~(1 << PRADC))
2327  #define power_adc_disable()     (PRR |= (uint8_t)(1 << PRADC))
2328 @@ -1217,6 +1631,33 @@ do{ \
2329  #define power_all_disable()     (PRR |= (uint8_t)((1<<PRADC)|(1<<PRUSI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRLIN)))
2330  
2331  
2332 +#elif defined(__AVR_ATtiny1634__)
2333 +
2334 +#define power_adc_enable()      (PRR &= (uint8_t)~(1 << PRADC))
2335 +#define power_adc_disable()     (PRR |= (uint8_t)(1 << PRADC))
2336 +
2337 +#define power_usart0_enable()      (PRR &= (uint8_t)~(1 << PRUSART0))
2338 +#define power_usart0_disable()     (PRR |= (uint8_t)(1 << PRUSART0))
2339 +
2340 +#define power_usart1_enable()      (PRR &= (uint8_t)~(1 << PRUSART1))
2341 +#define power_usart1_disable()     (PRR |= (uint8_t)(1 << PRUSART1))
2342 +
2343 +#define power_usi_enable()      (PRR &= (uint8_t)~(1 << PRUSI))
2344 +#define power_usi_disable()     (PRR |= (uint8_t)(1 << PRUSI))
2345 +
2346 +#define power_timer0_enable()   (PRR &= (uint8_t)~(1 << PRTIM0))
2347 +#define power_timer0_disable()  (PRR |= (uint8_t)(1 << PRTIM0))
2348 +
2349 +#define power_timer1_enable()   (PRR &= (uint8_t)~(1 << PRTIM1))
2350 +#define power_timer1_disable()  (PRR |= (uint8_t)(1 << PRTIM1))
2351 +
2352 +#define power_twi_enable()      (PRR &= (uint8_t)~(1 << PRTWI))
2353 +#define power_twi_disable()     (PRR |= (uint8_t)(1 << PRTWI))
2354 +
2355 +#define power_all_enable()      (PRR &= (uint8_t)~((1 << PRTWI)|(1 << PRUSI)|(1 << PRTIM0)|(1 << PRTIM1)|(1 << PRUSART0)|(1 << PRUSART1)|(1 << PRADC)))
2356 +#define power_all_disable()     (PRR |= (uint8_t)((1 << PRTWI)|(1 << PRUSI)|(1 << PRTIM0)|(1 << PRTIM1)|(1 << PRUSART0)|(1 << PRUSART1)|(1 << PRADC)))
2357 +
2358 +
2359  #elif defined(__AVR_AT90USB82__) \
2360  || defined(__AVR_AT90USB162__) \
2361  || defined(__AVR_ATmega8U2__) \
2362 @@ -1350,6 +1791,8 @@ do{ \
2363  || defined(__AVR_AT90PWM2B__) \
2364  || defined(__AVR_AT90PWM3__) \
2365  || defined(__AVR_AT90PWM3B__) \
2366 +|| defined(__AVR_AT90PWM81__) \
2367 +|| defined(__AVR_AT90PWM161__) \
2368  || defined(__AVR_AT90PWM216__) \
2369  || defined(__AVR_AT90PWM316__) \
2370  || defined(__AVR_AT90SCR100__) \
2371 @@ -1359,18 +1802,24 @@ do{ \
2372  || defined(__AVR_AT90USB1286__) \
2373  || defined(__AVR_AT90USB1287__) \
2374  || defined(__AVR_AT90USB162__) \
2375 +|| defined(__AVR_ATA5505__) \
2376 +|| defined(__AVR_ATA5272__) \
2377  || defined(__AVR_ATmega1280__) \
2378  || defined(__AVR_ATmega1281__) \
2379 +|| defined(__AVR_ATmega1284__) \
2380  || defined(__AVR_ATmega128RFA1__) \
2381  || defined(__AVR_ATmega1284P__) \
2382  || defined(__AVR_ATmega162__) \
2383  || defined(__AVR_ATmega164A__) \
2384  || defined(__AVR_ATmega164P__) \
2385 +|| defined(__AVR_ATmega164PA__) \
2386  || defined(__AVR_ATmega165__) \
2387  || defined(__AVR_ATmega165A__) \
2388  || defined(__AVR_ATmega165P__) \
2389 +|| defined(__AVR_ATmega165PA__) \
2390  || defined(__AVR_ATmega168__) \
2391  || defined(__AVR_ATmega168P__) \
2392 +|| defined(__AVR_ATmega168PA__) \
2393  || defined(__AVR_ATmega169__) \
2394  || defined(__AVR_ATmega169A__) \
2395  || defined(__AVR_ATmega169P__) \
2396 @@ -1382,8 +1831,10 @@ do{ \
2397  || defined(__AVR_ATmega324P__) \
2398  || defined(__AVR_ATmega325__) \
2399  || defined(__AVR_ATmega325A__) \
2400 +|| defined(__AVR_ATmega325PA__) \
2401  || defined(__AVR_ATmega3250__) \
2402  || defined(__AVR_ATmega3250A__) \
2403 +|| defined(__AVR_ATmega3250PA__) \
2404  || defined(__AVR_ATmega328__) \
2405  || defined(__AVR_ATmega328P__) \
2406  || defined(__AVR_ATmega329__) \
2407 @@ -1392,12 +1843,15 @@ do{ \
2408  || defined(__AVR_ATmega329PA__) \
2409  || defined(__AVR_ATmega3290__) \
2410  || defined(__AVR_ATmega3290A__) \
2411 +|| defined(__AVR_ATmega3290PA__) \
2412  || defined(__AVR_ATmega32C1__) \
2413  || defined(__AVR_ATmega32M1__) \
2414  || defined(__AVR_ATmega32U2__) \
2415  || defined(__AVR_ATmega32U4__) \
2416  || defined(__AVR_ATmega32U6__) \
2417  || defined(__AVR_ATmega48__) \
2418 +|| defined(__AVR_ATmega48A__) \
2419 +|| defined(__AVR_ATmega48PA__) \
2420  || defined(__AVR_ATmega48P__) \
2421  || defined(__AVR_ATmega640__) \
2422  || defined(__AVR_ATmega649P__) \
2423 @@ -1541,6 +1995,158 @@ void clock_prescale_set(clock_div_t __x)
2424  
2425  #define clock_prescale_get()  (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)))
2426  
2427 +#elif defined(__AVR_ATA5790__) \
2428 +|| defined (__AVR_ATA5795__)
2429 +
2430 +typedef enum
2431 +{
2432 +    clock_div_1 = 0,
2433 +    clock_div_2 = 1,
2434 +    clock_div_4 = 2,
2435 +    clock_div_8 = 3,
2436 +    clock_div_16 = 4,
2437 +    clock_div_32 = 5,
2438 +    clock_div_64 = 6,
2439 +    clock_div_128 = 7,
2440 +} clock_div_t;
2441 +
2442 +static __inline__ void system_clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
2443 +
2444 +void system_clock_prescale_set(clock_div_t __x)
2445 +{
2446 +    uint8_t __tmp = _BV(CLKPCE);
2447 +    __asm__ __volatile__ (
2448 +        "in __tmp_reg__,__SREG__" "\n\t"
2449 +        "cli" "\n\t"
2450 +        "out %1, %0" "\n\t"
2451 +        "out %1, %2" "\n\t"
2452 +        "out __SREG__, __tmp_reg__"
2453 +        : /* no outputs */
2454 +        : "d" (__tmp),
2455 +          "I" (_SFR_IO_ADDR(CLKPR)),
2456 +          "d" (__x)
2457 +        : "r0");
2458 +}
2459 +
2460 +#define system_clock_prescale_get()  (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)))
2461 +
2462 +typedef enum
2463 +{
2464 +    timer_clock_div_reset = 0,
2465 +    timer_clock_div_1 = 1,
2466 +    timer_clock_div_2 = 2,
2467 +    timer_clock_div_4 = 3,
2468 +    timer_clock_div_8 = 4,
2469 +    timer_clock_div_16 = 5,
2470 +    timer_clock_div_32 = 6,
2471 +    timer_clock_div_64 = 7
2472 +} timer_clock_div_t;
2473 +
2474 +static __inline__ void timer_clock_prescale_set(timer_clock_div_t) __attribute__((__always_inline__));
2475 +
2476 +void timer_clock_prescale_set(timer_clock_div_t __x)
2477 +{
2478 +    uint8_t __t;
2479 +    __asm__ __volatile__ (
2480 +        "in __tmp_reg__,__SREG__" "\n\t"
2481 +        "cli" "\n\t"
2482 +        "in %[temp],%[clkpr]" "\n\t"
2483 +        "out %[clkpr],%[enable]" "\n\t"
2484 +        "andi %[temp],%[not_CLTPS]" "\n\t"
2485 +        "or %[temp], %[set_value]" "\n\t"
2486 +        "out %[clkpr],%[temp]" "\n\t"
2487 +        "sei" "\n\t"
2488 +        "out __SREG__,__tmp_reg__" "\n\t"
2489 +        : /* no outputs */
2490 +        : [temp] "r" (__t),
2491 +          [clkpr] "I" (_SFR_IO_ADDR(CLKPR)),
2492 +          [enable] "r" (_BV(CLKPCE)),
2493 +          [not_CLTPS] "M" (0xFF & (~ ((1 << CLTPS2) | (1 << CLTPS1) | (1 << CLTPS0)))),
2494 +          [set_value] "r" ((__x & 7) << 3)
2495 +        : "r0");
2496 +}
2497 +
2498 +#define timer_clock_prescale_get()  (timer_clock_div_t)(CLKPR & (uint8_t)((1<<CLTPS0)|(1<<CLTPS1)|(1<<CLTPS2)))
2499 +
2500 +#elif defined(__AVR_ATA6285__) \
2501 +|| defined(__AVR_ATA6286__)
2502 +
2503 +typedef enum
2504 +{
2505 +    clock_div_1 = 0,
2506 +    clock_div_2 = 1,
2507 +    clock_div_4 = 2,
2508 +    clock_div_8 = 3,
2509 +    clock_div_16 = 4,
2510 +    clock_div_32 = 5,
2511 +    clock_div_64 = 6,
2512 +    clock_div_128 = 7
2513 +} clock_div_t;
2514 +
2515 +static __inline__ void system_clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
2516 +
2517 +void system_clock_prescale_set(clock_div_t __x)
2518 +{
2519 +    uint8_t __t;
2520 +    __asm__ __volatile__ (
2521 +        "in __tmp_reg__,__SREG__" "\n\t"
2522 +        "cli" "\n\t"
2523 +        "in %[temp],%[clpr]" "\n\t"
2524 +        "out %[clpr],%[enable]" "\n\t"
2525 +        "andi %[temp],%[not_CLKPS]" "\n\t"
2526 +        "or %[temp], %[set_value]" "\n\t"
2527 +        "out %[clpr],%[temp]" "\n\t"
2528 +        "sei" "\n\t"
2529 +        "out __SREG__,__tmp_reg__" "\n\t"
2530 +        : /* no outputs */
2531 +        : [temp] "r" (__t),
2532 +          [clpr] "I" (_SFR_IO_ADDR(CLKPR)),
2533 +          [enable] "r" _BV(CLPCE),
2534 +          [not_CLKPS] "M" (0xFF & (~ ((1 << CLKPS2) | (1 << CLKPS1) | (1 << CLKPS0)))),
2535 +          [set_value] "r" (__x & 7)
2536 +        : "r0");
2537 +}
2538 +
2539 +#define system_clock_prescale_get()  (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)))
2540 +
2541 +typedef enum
2542 +{
2543 +    timer_clock_div_reset = 0,
2544 +    timer_clock_div_1 = 1,
2545 +    timer_clock_div_2 = 2,
2546 +    timer_clock_div_4 = 3,
2547 +    timer_clock_div_8 = 4,
2548 +    timer_clock_div_16 = 5,
2549 +    timer_clock_div_32 = 6,
2550 +    timer_clock_div_64 = 7
2551 +} timer_clock_div_t;
2552 +
2553 +static __inline__ void timer_clock_prescale_set(timer_clock_div_t) __attribute__((__always_inline__));
2554 +
2555 +void timer_clock_prescale_set(timer_clock_div_t __x)
2556 +{
2557 +    uint8_t __t;
2558 +    __asm__ __volatile__ (
2559 +        "in __tmp_reg__,__SREG__" "\n\t"
2560 +        "cli" "\n\t"
2561 +        "in %[temp],%[clpr]" "\n\t"
2562 +        "out %[clpr],%[enable]" "\n\t"
2563 +        "andi %[temp],%[not_CLTPS]" "\n\t"
2564 +        "or %[temp], %[set_value]" "\n\t"
2565 +        "out %[clpr],%[temp]" "\n\t"
2566 +        "sei" "\n\t"
2567 +        "out __SREG__,__tmp_reg__" "\n\t"
2568 +        : /* no outputs */
2569 +        : [temp] "r" (__t),
2570 +          [clpr] "I" (_SFR_IO_ADDR(CLKPR)),
2571 +          [enable] "r" (_BV(CLPCE)),     
2572 +          [not_CLTPS] "M" (0xFF & (~ ((1 << CLTPS2) | (1 << CLTPS1) | (1 << CLTPS0)))),
2573 +          [set_value] "r" ((__x & 7) << 3)
2574 +        : "r0");
2575 +}
2576 +
2577 +#define timer_clock_prescale_get()  (timer_clock_div_t)(CLKPR & (uint8_t)((1<<CLTPS0)|(1<<CLTPS1)|(1<<CLTPS2)))
2578 +
2579  #elif defined(__AVR_ATtiny24__) \
2580  || defined(__AVR_ATtiny24A__) \
2581  || defined(__AVR_ATtiny44__) \
2582 diff -Naurp include/avr/sleep.h include/avr/sleep.h
2583 --- include/avr/sleep.h 2012-11-22 19:55:03.000000000 +0530
2584 +++ include/avr/sleep.h 2012-11-22 19:58:10.000000000 +0530
2585 @@ -210,7 +210,8 @@
2586      } while(0)
2587  
2588  #elif defined(__AVR_ATtiny167__) \
2589 -|| defined(__AVR_ATtiny87__)
2590 +|| defined(__AVR_ATtiny87__) \
2591 +|| defined(__AVR_ATtiny828__)
2592  
2593      #define SLEEP_MODE_IDLE         0
2594      #define SLEEP_MODE_ADC          _BV(SM0)
2595 @@ -222,6 +223,8 @@
2596      } while(0)
2597  
2598  #elif defined(__AVR_AT90S4434__) \
2599 +|| defined(__AVR_ATA5505__) \
2600 +|| defined(__AVR_ATA5272__) \
2601  || defined(__AVR_AT76C711__) \
2602  || defined(__AVR_AT90S8535__) \
2603  || defined(__AVR_ATmega103__) \
2604 @@ -315,7 +318,8 @@
2605  || defined(__AVR_ATtiny461A__) \
2606  || defined(__AVR_ATtiny861__) \
2607  || defined(__AVR_ATtiny861A__) \
2608 -|| defined(__AVR_ATtiny43U__)
2609 +|| defined(__AVR_ATtiny43U__) \
2610 +|| defined(__AVR_ATtiny1634__)
2611  
2612      #define SLEEP_MODE_IDLE         0
2613      #define SLEEP_MODE_ADC          _BV(SM0)
2614 @@ -329,6 +333,7 @@
2615  
2616  #elif defined(__AVR_AT90PWM216__) \
2617  || defined(__AVR_AT90PWM316__) \
2618 +|| defined(__AVR_AT90PWM161__) \
2619  || defined(__AVR_AT90PWM81__) \
2620  || defined(__AVR_AT90PWM1__) \
2621  || defined(__AVR_AT90PWM2__) \
2622 @@ -354,8 +359,10 @@
2623  || defined(__AVR_AT90USB646__) \
2624  || defined(__AVR_AT90USB647__) \
2625  || defined(__AVR_ATmega128__) \
2626 +|| defined(__AVR_ATmega128A__) \
2627  || defined(__AVR_ATmega1280__) \
2628  || defined(__AVR_ATmega1281__) \
2629 +|| defined(__AVR_ATmega1284__) \
2630  || defined(__AVR_ATmega1284P__) \
2631  || defined(__AVR_ATmega128RFA1__) \
2632  || defined(__AVR_ATmega16__) \
2633 @@ -363,13 +370,16 @@
2634  || defined(__AVR_ATmega162__) \
2635  || defined(__AVR_ATmega164A__) \
2636  || defined(__AVR_ATmega164P__) \
2637 +|| defined(__AVR_ATmega164PA__) \
2638  || defined(__AVR_ATmega168A__) \
2639  || defined(__AVR_ATmega168P__) \
2640 +|| defined(__AVR_ATmega168PA__) \
2641  || defined(__AVR_ATmega16HVA2__) \
2642  || defined(__AVR_ATmega16U4__) \
2643  || defined(__AVR_ATmega2560__) \
2644  || defined(__AVR_ATmega2561__) \
2645  || defined(__AVR_ATmega32__) \
2646 +|| defined(__AVR_ATmega32A__) \
2647  || defined(__AVR_ATmega323__) \
2648  || defined(__AVR_ATmega324A__) \
2649  || defined(__AVR_ATmega324P__) \
2650 @@ -380,8 +390,10 @@
2651  || defined(__AVR_ATmega32U4__) \
2652  || defined(__AVR_ATmega32U6__) \
2653  || defined(__AVR_ATmega48A__) \
2654 +|| defined(__AVR_ATmega48PA__) \
2655  || defined(__AVR_ATmega48P__) \
2656  || defined(__AVR_ATmega64__) \
2657 +|| defined(__AVR_ATmega64A__) \
2658  || defined(__AVR_ATmega640__) \
2659  || defined(__AVR_ATmega644__) \
2660  || defined(__AVR_ATmega644A__) \
2661 @@ -407,21 +419,26 @@
2662          _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & ~(_BV(SM0) | _BV(SM1) | _BV(SM2))) | (mode)); \
2663      } while(0)
2664  
2665 -#elif defined(__AVR_ATmega8__) \
2666 +#elif defined(__AVR_ATmega8A__) \
2667 +|| defined(__AVR_ATmega8__) \
2668  || defined(__AVR_ATmega6450A__) \
2669  || defined(__AVR_ATmega6450P__) \
2670  || defined(__AVR_ATmega645A__) \
2671  || defined(__AVR_ATmega645P__) \
2672  || defined(__AVR_ATmega3250A__) \
2673 +|| defined(__AVR_ATmega3250PA__) \
2674  || defined(__AVR_ATmega325A__) \
2675 +|| defined(__AVR_ATmega325PA__) \
2676  || defined(__AVR_ATmega165A__) \
2677  || defined(__AVR_ATmega165P__) \
2678 +|| defined(__AVR_ATmega165PA__) \
2679  || defined(__AVR_ATmega169A__) \
2680  || defined(__AVR_ATmega169P__) \
2681  || defined(__AVR_ATmega169PA__) \
2682  || defined(__AVR_ATmega329A__) \
2683  || defined(__AVR_ATmega329PA__) \
2684  || defined(__AVR_ATmega3290A__) \
2685 +|| defined(__AVR_ATmega3290PA__) \
2686  || defined(__AVR_ATmega649A__) \
2687  || defined(__AVR_ATmega649P__) \
2688  || defined(__AVR_ATmega6490A__) \
2689 @@ -458,22 +475,45 @@
2690      } while(0)
2691  
2692  #elif defined(__AVR_ATxmega16A4__) \
2693 +|| defined(__AVR_ATxmega16A4U__) \
2694 +|| defined(__AVR_ATxmega16C4__) \
2695  || defined(__AVR_ATxmega16D4__) \
2696  || defined(__AVR_ATxmega32A4__) \
2697 +|| defined(__AVR_ATxmega32A4U__) \
2698 +|| defined(__AVR_ATxmega32C4__) \
2699  || defined(__AVR_ATxmega32D4__) \
2700  || defined(__AVR_ATxmega64A1__) \
2701  || defined(__AVR_ATxmega64A1U__) \
2702  || defined(__AVR_ATxmega64A3__) \
2703 +|| defined(__AVR_ATxmega64A3U__) \
2704 +|| defined(__AVR_ATxmega64A4U__) \
2705 +|| defined(__AVR_ATxmega64B1__) \
2706 +|| defined(__AVR_ATxmega64B3__) \
2707 +|| defined(__AVR_ATxmega64C3__) \
2708  || defined(__AVR_ATxmega64D3__) \
2709 +|| defined(__AVR_ATxmega64D4__) \
2710  || defined(__AVR_ATxmega128A1__) \
2711  || defined(__AVR_ATxmega128A1U__) \
2712  || defined(__AVR_ATxmega128A3__) \
2713 +|| defined(__AVR_ATxmega128A3U__) \
2714 +|| defined(__AVR_ATxmega128A4U__) \
2715 +|| defined(__AVR_ATxmega128B1__) \
2716 +|| defined(__AVR_ATxmega128B3__) \
2717 +|| defined(__AVR_ATxmega128C3__) \
2718  || defined(__AVR_ATxmega128D3__) \
2719 +|| defined(__AVR_ATxmega128D4__) \
2720  || defined(__AVR_ATxmega192A3__) \
2721 +|| defined(__AVR_ATxmega192A3U__) \
2722 +|| defined(__AVR_ATxmega192C3__) \
2723  || defined(__AVR_ATxmega192D3__) \
2724  || defined(__AVR_ATxmega256A3__) \
2725 +|| defined(__AVR_ATxmega256A3U__) \
2726 +|| defined(__AVR_ATxmega256C3__) \
2727  || defined(__AVR_ATxmega256D3__) \
2728 -|| defined(__AVR_ATxmega256A3B__)
2729 +|| defined(__AVR_ATxmega256A3B__) \
2730 +|| defined(__AVR_ATxmega256A3BU__) \
2731 +|| defined(__AVR_ATxmega384C3__) \
2732 +|| defined(__AVR_ATxmega384D3__)
2733  
2734      #define SLEEP_MODE_IDLE         (0)
2735      #define SLEEP_MODE_PWR_DOWN     (SLEEP_SMODE1_bm)
2736 @@ -504,7 +544,9 @@
2737          _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & ~(_BV(SM0) | _BV(SM1) | _BV(SM2))) | (mode)); \
2738      } while(0)
2739  
2740 -#elif defined(__AVR_ATA6289__)
2741 +#elif defined(__AVR_ATA6285__) \
2742 +|| defined(__AVR_ATA6286__) \
2743 +|| defined(__AVR_ATA6289__)
2744  
2745      #define SLEEP_MODE_IDLE                     (0)
2746      #define SLEEP_MODE_SENSOR_NOISE_REDUCTION   (_BV(SM0))
2747 @@ -515,6 +557,19 @@
2748          _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & ~(_BV(SM0) | _BV(SM1) | _BV(SM2))) | (mode)); \
2749      } while(0)
2750  
2751 +#elif defined (__AVR_ATA5790__) \
2752 +|| defined (__AVR_ATA5795__)
2753 +
2754 +    #define SLEEP_MODE_IDLE           (0)
2755 +    #define SLEEP_MODE_EXT_PWR_SAVE   (_BV(SM0))
2756 +    #define SLEEP_MODE_PWR_DOWN       (_BV(SM1))
2757 +    #define SLEEP_MODE_PWR_SAVE       (_BV(SM1) | _BV(SM0))     
2758 +    
2759 +    #define set_sleep_mode(mode) \
2760 +    do { \
2761 +        _SLEEP_CONTROL_REG = ((_SLEEP_CONTROL_REG & ~(_BV(SM0) | _BV(SM1) | _BV(SM2))) | (mode)); \
2762 +    } while(0)
2763 +
2764  #elif defined(__AVR_ATtiny4__) \
2765  || defined(__AVR_ATtiny5__) \
2766  || defined(__AVR_ATtiny9__) \
2767 diff -Naurp include/avr/wdt.h include/avr/wdt.h
2768 --- include/avr/wdt.h   2011-12-29 14:21:50.000000000 +0530
2769 +++ include/avr/wdt.h   2012-11-22 19:48:48.000000000 +0530
2770 @@ -131,21 +131,44 @@
2771  
2772  
2773  #if defined(__AVR_ATxmega16A4__) \
2774 +|| defined(__AVR_ATxmega16A4U__) \
2775 +|| defined(__AVR_ATxmega16C4__) \
2776  || defined(__AVR_ATxmega16D4__) \
2777  || defined(__AVR_ATxmega32A4__) \
2778 +|| defined(__AVR_ATxmega32A4U__) \
2779 +|| defined(__AVR_ATxmega32C4__) \
2780  || defined(__AVR_ATxmega32D4__) \
2781  || defined(__AVR_ATxmega64A1U__) \
2782  || defined(__AVR_ATxmega64A3__) \
2783 +|| defined(__AVR_ATxmega64A3U__) \
2784 +|| defined(__AVR_ATxmega64A4U__) \
2785 +|| defined(__AVR_ATxmega64B1__) \
2786 +|| defined(__AVR_ATxmega64B3__) \
2787 +|| defined(__AVR_ATxmega64C3__) \
2788  || defined(__AVR_ATxmega64D3__) \
2789 +|| defined(__AVR_ATxmega64D4__) \
2790  || defined(__AVR_ATxmega128A1__) \
2791  || defined(__AVR_ATxmega128A1U__) \
2792  || defined(__AVR_ATxmega128A3__) \
2793 +|| defined(__AVR_ATxmega128A3U__) \
2794 +|| defined(__AVR_ATxmega128A4U__) \
2795 +|| defined(__AVR_ATxmega128B1__) \
2796 +|| defined(__AVR_ATxmega128B3__) \
2797 +|| defined(__AVR_ATxmega128C3__) \
2798  || defined(__AVR_ATxmega128D3__) \
2799 +|| defined(__AVR_ATxmega128D4__) \
2800  || defined(__AVR_ATxmega192A3__) \
2801 +|| defined(__AVR_ATxmega192A3U__) \
2802 +|| defined(__AVR_ATxmega192C3__) \
2803  || defined(__AVR_ATxmega192D3__) \
2804  || defined(__AVR_ATxmega256A3__) \
2805 +|| defined(__AVR_ATxmega256A3U__) \
2806 +|| defined(__AVR_ATxmega256C3__) \
2807  || defined(__AVR_ATxmega256D3__) \
2808 -|| defined(__AVR_ATxmega256A3B__)
2809 +|| defined(__AVR_ATxmega256A3B__) \
2810 +|| defined(__AVR_ATxmega256A3BU__) \
2811 +|| defined(__AVR_ATxmega384C3__) \
2812 +|| defined(__AVR_ATxmega384D3__)
2813  
2814  /*
2815      wdt_enable(WDT_PER_8KCLK_gc);
2816 @@ -177,6 +200,7 @@ __asm__ __volatile__ ( \
2817  || defined(__AVR_AT90PWM3__) \
2818  || defined(__AVR_AT90PWM316__) \
2819  || defined(__AVR_AT90PWM3B__) \
2820 +|| defined(__AVR_AT90PWM161__) \
2821  || defined(__AVR_AT90PWM81__) \
2822  || defined(__AVR_AT90USB1286__) \
2823  || defined(__AVR_AT90USB1287__) \
2824 @@ -184,19 +208,24 @@ __asm__ __volatile__ ( \
2825  || defined(__AVR_AT90USB646__) \
2826  || defined(__AVR_AT90USB647__) \
2827  || defined(__AVR_AT90USB82__) \
2828 +|| defined(__AVR_ATmega128A__) \
2829  || defined(__AVR_ATmega1280__) \
2830  || defined(__AVR_ATmega1281__) \
2831 +|| defined(__AVR_ATmega1284__) \
2832  || defined(__AVR_ATmega1284P__) \
2833  || defined(__AVR_ATmega128RFA1__) \
2834  || defined(__AVR_ATmega164__) \
2835  || defined(__AVR_ATmega164A__) \
2836  || defined(__AVR_ATmega164P__) \
2837 +|| defined(__AVR_ATmega164PA__) \
2838  || defined(__AVR_ATmega165__) \
2839  || defined(__AVR_ATmega165A__) \
2840  || defined(__AVR_ATmega165P__) \
2841 +|| defined(__AVR_ATmega165PA__) \
2842  || defined(__AVR_ATmega168__) \
2843  || defined(__AVR_ATmega168A__) \
2844  || defined(__AVR_ATmega168P__) \
2845 +|| defined(__AVR_ATmega168PA__) \
2846  || defined(__AVR_ATmega169__) \
2847  || defined(__AVR_ATmega169A__) \
2848  || defined(__AVR_ATmega169P__) \
2849 @@ -210,6 +239,7 @@ __asm__ __volatile__ ( \
2850  || defined(__AVR_ATmega16U4__) \
2851  || defined(__AVR_ATmega2560__) \
2852  || defined(__AVR_ATmega2561__) \
2853 +|| defined(__AVR_ATmega32A__) \
2854  || defined(__AVR_ATmega324__) \
2855  || defined(__AVR_ATmega324A__) \
2856  || defined(__AVR_ATmega324P__) \
2857 @@ -217,9 +247,11 @@ __asm__ __volatile__ ( \
2858  || defined(__AVR_ATmega325__) \
2859  || defined(__AVR_ATmega325A__) \
2860  || defined(__AVR_ATmega325P__) \
2861 +|| defined(__AVR_ATmega325PA__) \
2862  || defined(__AVR_ATmega3250__) \
2863  || defined(__AVR_ATmega3250A__) \
2864  || defined(__AVR_ATmega3250P__) \
2865 +|| defined(__AVR_ATmega3250PA__) \
2866  || defined(__AVR_ATmega328__) \
2867  || defined(__AVR_ATmega328P__) \
2868  || defined(__AVR_ATmega329__) \
2869 @@ -229,6 +261,7 @@ __asm__ __volatile__ ( \
2870  || defined(__AVR_ATmega3290__) \
2871  || defined(__AVR_ATmega3290A__) \
2872  || defined(__AVR_ATmega3290P__) \
2873 +|| defined(__AVR_ATmega3290PA__) \
2874  || defined(__AVR_ATmega32C1__) \
2875  || defined(__AVR_ATmega32HVB__) \
2876  || defined(__AVR_ATmega32HVBREVB__) \
2877 @@ -239,7 +272,9 @@ __asm__ __volatile__ ( \
2878  || defined(__AVR_ATmega406__) \
2879  || defined(__AVR_ATmega48__) \
2880  || defined(__AVR_ATmega48A__) \
2881 +|| defined(__AVR_ATmega48PA__) \
2882  || defined(__AVR_ATmega48P__) \
2883 +|| defined(__AVR_ATmega64A__) \
2884  || defined(__AVR_ATmega640__) \
2885  || defined(__AVR_ATmega644__) \
2886  || defined(__AVR_ATmega644A__) \
2887 @@ -260,6 +295,7 @@ __asm__ __volatile__ ( \
2888  || defined(__AVR_ATmega64C1__) \
2889  || defined(__AVR_ATmega64HVE__) \
2890  || defined(__AVR_ATmega64M1__) \
2891 +|| defined(__AVR_ATmega8A__) \
2892  || defined(__AVR_ATmega88__) \
2893  || defined(__AVR_ATmega88A__) \
2894  || defined(__AVR_ATmega88P__) \
2895 @@ -271,7 +307,13 @@ __asm__ __volatile__ ( \
2896  || defined(__AVR_ATtiny87__) \
2897  || defined(__AVR_ATtiny167__) \
2898  || defined(__AVR_AT90SCR100__) \
2899 -|| defined(__AVR_ATA6289__)
2900 +|| defined(__AVR_ATA6285__) \
2901 +|| defined(__AVR_ATA6286__) \
2902 +|| defined(__AVR_ATA6289__) \
2903 +|| defined(__AVR_ATA5272__) \
2904 +|| defined(__AVR_ATA5505__) \
2905 +|| defined(__AVR_ATA5790__) \
2906 +|| defined(__AVR_ATA5795__)
2907  
2908  /* Use STS instruction. */
2909   
2910 @@ -416,7 +458,7 @@ __asm__ __volatile__ (  \
2911      ATmega8HVA, ATmega16HVA, ATmega32HVB,
2912      ATmega406, ATmega1284P,
2913      AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316,
2914 -    AT90PWM81,
2915 +    AT90PWM81, AT90PWM161,
2916      AT90USB82, AT90USB162,
2917      AT90USB646, AT90USB647, AT90USB1286, AT90USB1287,
2918      ATtiny48, ATtiny88.
2919 @@ -430,17 +472,20 @@ __asm__ __volatile__ (  \
2920      ATtiny24, ATtiny44, ATtiny84, ATtiny84A,
2921      ATtiny25, ATtiny45, ATtiny85, 
2922      ATtiny261, ATtiny461, ATtiny861, 
2923 -    ATmega48, ATmega88, ATmega168,
2924 +    ATmega48, ATmega48A, ATmega48PA, ATmega88, ATmega168,
2925      ATmega48P, ATmega88P, ATmega168P, ATmega328P,
2926      ATmega164P, ATmega324P, ATmega644P, ATmega644,
2927      ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561,
2928      ATmega8HVA, ATmega16HVA, ATmega32HVB,
2929      ATmega406, ATmega1284P,
2930      AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316,
2931 -    AT90PWM81,
2932 +    AT90PWM81, AT90PWM161,
2933      AT90USB82, AT90USB162,
2934      AT90USB646, AT90USB647, AT90USB1286, AT90USB1287,
2935 -    ATtiny48, ATtiny88.
2936 +    ATtiny48, ATtiny88,
2937 +    ATxmega16a4u, ATxmega32a4u,
2938 +    ATxmega16c4, ATxmega32c4,
2939 +    ATxmega128c3, ATxmega192c3, ATxmega256c3.
2940      */
2941  #define WDTO_8S     9
2942  
This page took 0.421538 seconds and 4 git commands to generate.