1 diff -Naurp include/avr/power.h include/avr/power.h
2 --- include/avr/power.h 2013-03-15 12:19:39.000000000 +0530
3 +++ include/avr/power.h 2013-03-15 12:20:10.000000000 +0530
4 @@ -2976,12 +2976,16 @@ do{ \
5 || defined(__AVR_ATmega165P__) \
6 || defined(__AVR_ATmega165PA__) \
7 || defined(__AVR_ATmega168__) \
8 +|| defined(__AVR_ATmega168A__) \
9 || defined(__AVR_ATmega168P__) \
10 || defined(__AVR_ATmega168PA__) \
11 || defined(__AVR_ATmega169__) \
12 || defined(__AVR_ATmega169A__) \
13 || defined(__AVR_ATmega169P__) \
14 || defined(__AVR_ATmega169PA__) \
15 +|| defined(__AVR_ATmega16M1__) \
16 +|| defined(__AVR_ATmega16U2__) \
17 +|| defined(__AVR_ATmega324PA__) \
18 || defined(__AVR_ATmega16U4__) \
19 || defined(__AVR_ATmega2560__) \
20 || defined(__AVR_ATmega2561__) \
21 @@ -3003,6 +3007,7 @@ do{ \
22 || defined(__AVR_ATmega329PA__) \
23 || defined(__AVR_ATmega3290__) \
24 || defined(__AVR_ATmega3290A__) \
25 +|| defined(__AVR_ATmega3290P__) \
26 || defined(__AVR_ATmega3290PA__) \
27 || defined(__AVR_ATmega32C1__) \
28 || defined(__AVR_ATmega32M1__) \
29 @@ -3027,6 +3032,10 @@ do{ \
30 || defined(__AVR_ATmega6450P__) \
31 || defined(__AVR_ATmega649__) \
32 || defined(__AVR_ATmega649A__) \
33 +|| defined(__AVR_ATmega64M1__) \
34 +|| defined(__AVR_ATmega64C1__) \
35 +|| defined(__AVR_ATmega88A__) \
36 +|| defined(__AVR_ATmega88PA__) \
37 || defined(__AVR_ATmega6490__) \
38 || defined(__AVR_ATmega6490A__) \
39 || defined(__AVR_ATmega6490P__) \
40 @@ -3038,6 +3047,8 @@ do{ \
41 || defined(__AVR_ATmega16U2__) \
42 || defined(__AVR_ATmega32U2__) \
43 || defined(__AVR_ATtiny48__) \
44 +|| defined(__AVR_ATtiny88__) \
45 +|| defined(__AVR_ATtiny87__) \
46 || defined(__AVR_ATtiny167__) \
47 || defined(__DOXYGEN__)
49 @@ -3384,10 +3395,47 @@ void clock_prescale_set(clock_div_t __x)
51 #define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
53 +#elif defined(__AVR_ATtiny4__) \
54 +|| defined(__AVR_ATtiny5__) \
55 +|| defined(__AVR_ATtiny9__) \
56 +|| defined(__AVR_ATtiny10__) \
57 +|| defined(__AVR_ATtiny20__) \
58 +|| defined(__AVR_ATtiny40__) \
74 +static __inline__ void clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
76 +void clock_prescale_set(clock_div_t __x)
78 + uint8_t __tmp = 0xD8;
79 + __asm__ __volatile__ (
80 + "in __tmp_reg__,__SREG__" "\n\t"
84 + "out __SREG__, __tmp_reg__"
87 + "I" (_SFR_IO_ADDR(CCP)),
88 + "I" (_SFR_IO_ADDR(CLKPSR)),
93 +#define clock_prescale_get() (clock_div_t)(CLKPSR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
97 #endif /* _AVR_POWER_H_ */