1 diff -Naurp configure.ac configure.ac
2 --- configure.ac 2013-01-29 12:20:43.000000000 +0530
3 +++ configure.ac 2013-01-29 12:28:06.000000000 +0530
4 @@ -853,6 +853,9 @@ AM_CONDITIONAL(HAS_atmega32u6, test "x$H
5 CHECK_AVR_DEVICE(atmega406)
6 AM_CONDITIONAL(HAS_atmega406, test "x$HAS_atmega406" = "xyes")
8 +CHECK_AVR_DEVICE(atmega64rfr2)
9 +AM_CONDITIONAL(HAS_atmega64rfr2, test "x$HAS_atmega64rfr2" = "xyes")
11 CHECK_AVR_DEVICE(atmega64)
12 AM_CONDITIONAL(HAS_atmega64, test "x$HAS_atmega64" = "xyes")
14 @@ -957,6 +960,9 @@ AM_CONDITIONAL(HAS_at90usb1286, test "x$
15 CHECK_AVR_DEVICE(at90usb1287)
16 AM_CONDITIONAL(HAS_at90usb1287, test "x$HAS_at90usb1287" = "xyes")
18 +CHECK_AVR_DEVICE(atmega128rfr2)
19 +AM_CONDITIONAL(HAS_atmega128rfr2, test "x$HAS_atmega128rfr2" = "xyes")
23 CHECK_AVR_DEVICE(avr6)
24 @@ -968,6 +974,9 @@ AM_CONDITIONAL(HAS_atmega2560, test "x$H
25 CHECK_AVR_DEVICE(atmega2561)
26 AM_CONDITIONAL(HAS_atmega2561, test "x$HAS_atmega2561" = "xyes")
28 +CHECK_AVR_DEVICE(atmega256rfr2)
29 +AM_CONDITIONAL(HAS_atmega256rfr2, test "x$HAS_atmega256rfr2" = "xyes")
33 CHECK_AVR_DEVICE(avrxmega2)
34 @@ -1366,6 +1375,7 @@ AC_CONFIG_FILES([
35 avr/lib/avr5/atmega32u4/Makefile
36 avr/lib/avr5/atmega32u6/Makefile
37 avr/lib/avr5/atmega406/Makefile
38 + avr/lib/avr5/atmega64rfr2/Makefile
39 avr/lib/avr5/atmega64/Makefile
40 avr/lib/avr5/atmega64a/Makefile
41 avr/lib/avr5/atmega640/Makefile
42 @@ -1406,6 +1416,7 @@ AC_CONFIG_FILES([
43 avr/lib/avr51/atmega1284/Makefile
44 avr/lib/avr51/atmega1284p/Makefile
45 avr/lib/avr51/atmega128rfa1/Makefile
46 + avr/lib/avr51/atmega128rfr2/Makefile
47 avr/lib/avr51/at90can128/Makefile
48 avr/lib/avr51/at90usb1286/Makefile
49 avr/lib/avr51/at90usb1287/Makefile
50 @@ -1416,6 +1427,7 @@ AC_CONFIG_FILES([
52 avr/lib/avr6/atmega2560/Makefile
53 avr/lib/avr6/atmega2561/Makefile
54 + avr/lib/avr6/atmega256rfr2/Makefile
58 diff -Naurp devtools/gen-avr-lib-tree.sh devtools/gen-avr-lib-tree.sh
59 --- devtools/gen-avr-lib-tree.sh 2013-01-29 12:20:43.000000000 +0530
60 +++ devtools/gen-avr-lib-tree.sh 2013-01-29 12:28:06.000000000 +0530
61 @@ -233,6 +233,7 @@ atmega32m1:crtm32m1.o:${DEV_DEFS}:${CFLA
62 atmega32u4:crtm32u4.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
63 atmega32u6:crtm32u6.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
64 atmega406:crtm406.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
65 +atmega64rfr2:crtm64rfr2.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
66 atmega64:crtm64.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
67 atmega64a:crtm64a.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
68 atmega640:crtm640.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
69 @@ -271,6 +272,7 @@ atmega1281:crtm1281.o:${DEV_DEFS}:${CFLA
70 atmega1284:crtm1284.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
71 atmega1284p:crtm1284p.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
72 atmega128rfa1:crtm128rfa1.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
73 +atmega128rfr2:crtm128rfr2.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS};\
74 at90can128:crtcan128.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
75 at90usb1286:crtusb1286.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
76 at90usb1287:crtusb1287.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS}\
77 @@ -278,7 +280,8 @@ at90usb1287:crtusb1287.o:${DEV_DEFS}:${C
80 atmega2560:crtm2560.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
81 -atmega2561:crtm2561.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS}\
82 +atmega2561:crtm2561.o:${DEV_DEFS}:${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\
83 +atmega256rfr2:crtm256rfr2.o:${DEV_DEFS}:${CFLAGS_SPACE}:${DEV_ASFLAGS}\
87 diff -Naurp doc/api/main_page.dox doc/api/main_page.dox
88 --- doc/api/main_page.dox 2013-01-29 12:20:43.000000000 +0530
89 +++ doc/api/main_page.dox 2013-01-29 12:28:06.000000000 +0530
90 @@ -321,6 +321,13 @@ compile-time.
94 +\par Wireless AVR devices:
101 \par Miscellaneous Devices:
103 - at94K \ref supp_dev_footnote_two "[2]"
104 diff -Naurp doc/api/using-tools.dox doc/api/using-tools.dox
105 --- doc/api/using-tools.dox 2013-01-29 12:20:43.000000000 +0530
106 +++ doc/api/using-tools.dox 2013-01-29 12:28:06.000000000 +0530
107 @@ -364,6 +364,7 @@ AVR will be defined as well when using t
108 <tr><td>avr5</td><td>atmega32u4</td><td>__AVR_ATmega32U4__</td></tr>
109 <tr><td>avr5</td><td>atmega32u6</td><td>__AVR_ATmega32U6__</td></tr>
110 <tr><td>avr5</td><td>atmega406</td><td>__AVR_ATmega406__</td></tr>
111 + <tr><td>avr5</td><td>atmega64rfr2</td><td>__AVR_ATmega64RFR2__</td></tr>
112 <tr><td>avr5</td><td>atmega64</td><td>__AVR_ATmega64__</td></tr>
113 <tr><td>avr5</td><td>atmega64a</td><td>__AVR_ATmega64A__</td></tr>
114 <tr><td>avr5</td><td>atmega640</td><td>__AVR_ATmega640__</td></tr>
115 @@ -397,9 +398,11 @@ AVR will be defined as well when using t
116 <tr><td>avr5/avr51 [3]</td><td>atmega1281</td><td>__AVR_ATmega1281__</td></tr>
117 <tr><td>avr5/avr51 [3]</td><td>atmega1284</td><td>__AVR_ATmega1284__</td></tr>
118 <tr><td>avr5/avr51 [3]</td><td>atmega1284p</td><td>__AVR_ATmega1284P__</td></tr>
119 + <tr><td>avr5/avr51 [3]</td><td>atmega128rfr2</td><td>__AVR_ATmega128RFR2__</td></tr>
121 <tr><td>avr6</td><td>atmega2560</td><td>__AVR_ATmega2560__</td></tr>
122 <tr><td>avr6</td><td>atmega2561</td><td>__AVR_ATmega2561__</td></tr>
123 + <tr><td>avr6</td><td>atmega256rfr2</td><td>__AVR_ATmega256RFR2__</td></tr>
125 <tr><td>avrxmega2</td><td>atxmega16a4</td><td>__AVR_ATxmega16A4__</td></tr>
126 <tr><td>avrxmega2</td><td>atxmega16a4u</td><td>__AVR_ATxmega16A4U__</td></tr>
127 diff -Naurp include/avr/eeprom.h include/avr/eeprom.h
128 --- include/avr/eeprom.h 2013-01-29 12:20:43.000000000 +0530
129 +++ include/avr/eeprom.h 2013-01-29 12:28:06.000000000 +0530
131 # define _EEPROM_SUFFIX _m1284p
132 #elif defined (__AVR_ATmega128RFA1__)
133 # define _EEPROM_SUFFIX _m128rfa1
134 +#elif defined (__AVR_ATmega128RFR2__)
135 +# define _EEPROM_SUFFIX _m128rfr2
136 +#elif defined (__AVR_ATmega256RFR2__)
137 +# define _EEPROM_SUFFIX _m256rfr2
138 #elif defined (__AVR_ATmega2560__)
139 # define _EEPROM_SUFFIX _m2560
140 #elif defined (__AVR_ATmega2561__)
142 # define _EEPROM_SUFFIX _usb1286
143 #elif defined (__AVR_AT90USB1287__)
144 # define _EEPROM_SUFFIX _usb1287
145 +#elif defined (__AVR_ATmega64RFR2__)
146 +# define _EEPROM_SUFFIX _m64rfr2
147 #elif defined (__AVR_ATmega64__)
148 # define _EEPROM_SUFFIX _m64
149 #elif defined (__AVR_ATmega64A__)
150 diff -Naurp include/avr/io.h include/avr/io.h
151 --- include/avr/io.h 2013-01-29 12:20:43.000000000 +0530
152 +++ include/avr/io.h 2013-01-29 12:28:06.000000000 +0530
154 # include <avr/iom1284p.h>
155 #elif defined (__AVR_ATmega128RFA1__)
156 # include <avr/iom128rfa1.h>
157 +#elif defined (__AVR_ATmega128RFR2__)
158 +# include <avr/iom128rfr2.h>
159 +#elif defined (__AVR_ATmega256RFR2__)
160 +# include <avr/iom256rfr2.h>
161 #elif defined (__AVR_ATmega2560__)
162 # include <avr/iom2560.h>
163 #elif defined (__AVR_ATmega2561__)
165 # include <avr/iousb1286.h>
166 #elif defined (__AVR_AT90USB1287__)
167 # include <avr/iousb1287.h>
168 +#elif defined (__AVR_ATmega64RFR2__)
169 +# include <avr/iom64rfr2.h>
170 #elif defined (__AVR_ATmega64__)
171 # include <avr/iom64.h>
172 #elif defined (__AVR_ATmega64A__)
173 diff -Naurp include/avr/Makefile.am include/avr/Makefile.am
174 --- include/avr/Makefile.am 2013-01-29 12:20:43.000000000 +0530
175 +++ include/avr/Makefile.am 2013-01-29 12:28:06.000000000 +0530
176 @@ -84,6 +84,7 @@ avr_HEADERS = \
184 @@ -109,6 +110,7 @@ avr_HEADERS = \
192 @@ -148,6 +150,7 @@ avr_HEADERS = \
200 diff -Naurp include/avr/power.h include/avr/power.h
201 --- include/avr/power.h 2013-01-29 12:20:43.000000000 +0530
202 +++ include/avr/power.h 2013-01-29 12:28:06.000000000 +0530
203 @@ -928,6 +928,74 @@ do{ \
204 PRR1 |= (uint8_t)((1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTIM5)|(1<<PRUSART1)); \
207 +#elif defined(__AVR_ATmega256RFR2__) \
208 +|| defined(__AVR_ATmega128RFR2__) \
209 +|| defined(__AVR_ATmega64RFR2__)
211 +#define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
212 +#define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
214 +#define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
215 +#define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
217 +#define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
218 +#define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
220 +#define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
221 +#define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
223 +#define power_pga_enable() (PRR0 &= (uint8_t)~(1 << PRPGA))
224 +#define power_pga_disable() (PRR0 |= (uint8_t)(1 << PRPGA))
226 +#define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
227 +#define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
229 +#define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
230 +#define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
232 +#define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
233 +#define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
235 +#define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
236 +#define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
238 +#define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
239 +#define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
241 +#define power_timer4_enable() (PRR1 &= (uint8_t)~(1 << PRTIM4))
242 +#define power_timer4_disable() (PRR1 |= (uint8_t)(1 << PRTIM4))
244 +#define power_timer5_enable() (PRR1 &= (uint8_t)~(1 << PRTIM5))
245 +#define power_timer5_disable() (PRR1 |= (uint8_t)(1 << PRTIM5))
247 +#define power_transceiver_enable() (PRR1 &= (uint8_t)~(1 << PRTRX24))
248 +#define power_transceiver_disable() (PRR1 |= (uint8_t)(1 << PRTRX24))
250 +#define power_ram0_enable() (PRR2 &= (uint8_t)~(1 << PRRAM0))
251 +#define power_ram0_disable() (PRR2 |= (uint8_t)(1 << PRRAM0))
253 +#define power_ram1_enable() (PRR2 &= (uint8_t)~(1 << PRRAM1))
254 +#define power_ram1_disable() (PRR2 |= (uint8_t)(1 << PRRAM1))
256 +#define power_ram2_enable() (PRR2 &= (uint8_t)~(1 << PRRAM2))
257 +#define power_ram2_disable() (PRR2 |= (uint8_t)(1 << PRRAM2))
259 +#define power_ram3_enable() (PRR2 &= (uint8_t)~(1 << PRRAM3))
260 +#define power_ram3_disable() (PRR2 |= (uint8_t)(1 << PRRAM3))
262 +#define power_all_enable() \
264 + PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
265 + PRR1 &= (uint8_t)~((1<<PRUSART1)|(1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTRX24)); \
266 + PRR2 &= (uint8_t)~((1<<PRRAM0)|(1<<PRRAM1)|(1<<PRRAM2)|(1<<PRRAM3)); \
269 +#define power_all_disable() \
271 + PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
272 + PRR1 |= (uint8_t)((1<<PRUSART1)|(1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTRX24)); \
273 + PRR2 |= (uint8_t)((1<<PRRAM0)|(1<<PRRAM1)|(1<<PRRAM2)|(1<<PRRAM3)); \
276 #elif defined(__AVR_AT90USB646__) \
277 || defined(__AVR_AT90USB647__) \
278 @@ -1808,6 +1876,7 @@ do{ \
279 || defined(__AVR_ATmega1281__) \
280 || defined(__AVR_ATmega1284__) \
281 || defined(__AVR_ATmega128RFA1__) \
282 +|| defined(__AVR_ATmega128RFR2__) \
283 || defined(__AVR_ATmega1284P__) \
284 || defined(__AVR_ATmega162__) \
285 || defined(__AVR_ATmega164A__) \
286 @@ -1827,6 +1896,7 @@ do{ \
287 || defined(__AVR_ATmega16U4__) \
288 || defined(__AVR_ATmega2560__) \
289 || defined(__AVR_ATmega2561__) \
290 +|| defined(__AVR_ATmega256RFR2__) \
291 || defined(__AVR_ATmega324A__) \
292 || defined(__AVR_ATmega324P__) \
293 || defined(__AVR_ATmega325__) \
294 @@ -1870,6 +1940,7 @@ do{ \
295 || defined(__AVR_ATmega6490__) \
296 || defined(__AVR_ATmega6490A__) \
297 || defined(__AVR_ATmega6490P__) \
298 +|| defined(__AVR_ATmega64RFR2__) \
299 || defined(__AVR_ATmega88__) \
300 || defined(__AVR_ATmega88P__) \
301 || defined(__AVR_ATmega8U2__) \
302 @@ -1922,7 +1993,10 @@ typedef enum
306 -#if defined(__AVR_ATmega128RFA1__)
307 +#if defined(__AVR_ATmega128RFA1__) \
308 +|| defined(__AVR_ATmega256RFR2__) \
309 +|| defined(__AVR_ATmega128RFR2__) \
310 +|| defined(__AVR_ATmega64RFR2__)
311 , clock_div_1_rc = 15
314 diff -Naurp include/avr/sleep.h include/avr/sleep.h
315 --- include/avr/sleep.h 2013-01-29 12:20:43.000000000 +0530
316 +++ include/avr/sleep.h 2013-01-29 12:28:06.000000000 +0530
318 || defined(__AVR_ATmega1284__) \
319 || defined(__AVR_ATmega1284P__) \
320 || defined(__AVR_ATmega128RFA1__) \
321 +|| defined(__AVR_ATmega128RFR2__) \
322 || defined(__AVR_ATmega16__) \
323 || defined(__AVR_ATmega16A__) \
324 || defined(__AVR_ATmega162__) \
326 || defined(__AVR_ATmega16U4__) \
327 || defined(__AVR_ATmega2560__) \
328 || defined(__AVR_ATmega2561__) \
329 +|| defined(__AVR_ATmega256RFR2__) \
330 || defined(__AVR_ATmega32__) \
331 || defined(__AVR_ATmega32A__) \
332 || defined(__AVR_ATmega323__) \
334 || defined(__AVR_ATmega644P__) \
335 || defined(__AVR_ATmega644PA__) \
336 || defined(__AVR_ATmega64C1__) \
337 +|| defined(__AVR_ATmega64RFR2__) \
338 || defined(__AVR_ATmega8515__) \
339 || defined(__AVR_ATmega8535__) \
340 || defined(__AVR_ATmega88A__) \
341 diff -Naurp include/avr/wdt.h include/avr/wdt.h
342 --- include/avr/wdt.h 2013-01-29 12:20:43.000000000 +0530
343 +++ include/avr/wdt.h 2013-01-29 12:30:47.000000000 +0530
344 @@ -214,6 +214,7 @@ __asm__ __volatile__ ( \
345 || defined(__AVR_ATmega1284__) \
346 || defined(__AVR_ATmega1284P__) \
347 || defined(__AVR_ATmega128RFA1__) \
348 +|| defined(__AVR_ATmega128RFR2__) \
349 || defined(__AVR_ATmega164__) \
350 || defined(__AVR_ATmega164A__) \
351 || defined(__AVR_ATmega164P__) \
352 @@ -239,6 +240,7 @@ __asm__ __volatile__ ( \
353 || defined(__AVR_ATmega16U4__) \
354 || defined(__AVR_ATmega2560__) \
355 || defined(__AVR_ATmega2561__) \
356 +|| defined(__AVR_ATmega256RFR2__) \
357 || defined(__AVR_ATmega32A__) \
358 || defined(__AVR_ATmega324__) \
359 || defined(__AVR_ATmega324A__) \
360 @@ -275,6 +277,7 @@ __asm__ __volatile__ ( \
361 || defined(__AVR_ATmega48PA__) \
362 || defined(__AVR_ATmega48P__) \
363 || defined(__AVR_ATmega64A__) \
364 +|| defined(__AVR_ATmega64RFR2__) \
365 || defined(__AVR_ATmega640__) \
366 || defined(__AVR_ATmega644__) \
367 || defined(__AVR_ATmega644A__) \
368 @@ -457,6 +460,7 @@ __asm__ __volatile__ ( \
369 ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561,
370 ATmega8HVA, ATmega16HVA, ATmega32HVB,
371 ATmega406, ATmega1284P,
372 + ATmega256RFR2, ATmega128RFR2, ATmega64RFR2,
373 AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316,
374 AT90PWM81, AT90PWM161,
375 AT90USB82, AT90USB162,
376 @@ -478,6 +482,7 @@ __asm__ __volatile__ ( \
377 ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561,
378 ATmega8HVA, ATmega16HVA, ATmega32HVB,
379 ATmega406, ATmega1284P,
380 + ATmega256RFR2, ATmega128RFR2, ATmega64RFR2,
381 AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316,
382 AT90PWM81, AT90PWM161,
383 AT90USB82, AT90USB162,