avr-libc-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avr-libc-dev] [Patch] Add sleep modes to tiny and mega header files


From: Senthil Kumar Selvaraj
Subject: [avr-libc-dev] [Patch] Add sleep modes to tiny and mega header files
Date: Tue, 18 Nov 2014 15:03:30 +0530
User-agent: Mutt/1.5.23 (2014-03-12)

The below (rather big) patch adds sleep mode defines to individual
device header files for tiny and mega devices. This is in addition to
the patch already submitted for xmega devices.

Ok for trunk?

Regards
Senthil

ChangeLog

2014-11-18  Senthil Kumar Selvaraj <address@hidden>
        * include/avr/Makefile.am: Add new headers iom{48,88,168}a.h.
        * include/avr/io.h: Include them.
        * include/avr/iom48a.h: Add.
        * include/avr/iom88a.h: Likewise.
        * include/avr/iom168a.h: Likewise.
        * include/avr/io2313.h: Add supported sleep modes.
        * include/avr/io2323.h: Likewise.
        * include/avr/io2333.h: Likewise.
        * include/avr/io2343.h: Likewise.
        * include/avr/io43u32x.h: Likewise.
        * include/avr/io43u35x.h: Likewise.
        * include/avr/io4414.h: Likewise.
        * include/avr/io4433.h: Likewise.
        * include/avr/io4434.h: Likewise.
        * include/avr/io76c711.h: Likewise.
        * include/avr/io8515.h: Likewise.
        * include/avr/io8535.h: Likewise.
        * include/avr/io90pwm1.h: Likewise.
        * include/avr/io90pwm161.h: Likewise.
        * include/avr/io90pwm216.h: Likewise.
        * include/avr/io90pwm2b.h: Likewise.
        * include/avr/io90pwm316.h: Likewise.
        * include/avr/io90pwm3b.h: Likewise.
        * include/avr/io90pwm81.h: Likewise.
        * include/avr/io90pwmx.h: Likewise.
        * include/avr/io90scr100.h: Likewise.
        * include/avr/ioa5272.h: Likewise.
        * include/avr/ioa5505.h: Likewise.
        * include/avr/ioa5790.h: Likewise.
        * include/avr/ioa5795.h: Likewise.
        * include/avr/ioa6285.h: Likewise.
        * include/avr/ioa6286.h: Likewise.
        * include/avr/ioa6289.h: Likewise.
        * include/avr/ioat94k.h: Likewise.
        * include/avr/iocan128.h: Likewise.
        * include/avr/iocan32.h: Likewise.
        * include/avr/iocan64.h: Likewise.
        * include/avr/iom103.h: Likewise.
        * include/avr/iom128.h: Likewise.
        * include/avr/iom1280.h: Likewise.
        * include/avr/iom1281.h: Likewise.
        * include/avr/iom1284.h: Likewise.
        * include/avr/iom1284p.h: Likewise.
        * include/avr/iom1284rfr2.h: Likewise.
        * include/avr/iom128a.h: Likewise.
        * include/avr/iom128rfa1.h: Likewise.
        * include/avr/iom128rfr2.h: Likewise.
        * include/avr/iom16.h: Likewise.
        * include/avr/iom161.h: Likewise.
        * include/avr/iom162.h: Likewise.
        * include/avr/iom163.h: Likewise.
        * include/avr/iom164.h: Likewise.
        * include/avr/iom164pa.h: Likewise.
        * include/avr/iom165.h: Likewise.
        * include/avr/iom165a.h: Likewise.
        * include/avr/iom165p.h: Likewise.
        * include/avr/iom165pa.h: Likewise.
        * include/avr/iom168.h: Likewise.
        * include/avr/iom168p.h: Likewise.
        * include/avr/iom168pa.h: Likewise.
        * include/avr/iom169.h: Likewise.
        * include/avr/iom169p.h: Likewise.
        * include/avr/iom169pa.h: Likewise.
        * include/avr/iom16a.h: Likewise.
        * include/avr/iom16hva.h: Likewise.
        * include/avr/iom16hva2.h: Likewise.
        * include/avr/iom16hvb.h: Likewise.
        * include/avr/iom16hvbrevb.h: Likewise.
        * include/avr/iom16m1.h: Likewise.
        * include/avr/iom16u2.h: Likewise.
        * include/avr/iom16u4.h: Likewise.
        * include/avr/iom2560.h: Likewise.
        * include/avr/iom2561.h: Likewise.
        * include/avr/iom2564rfr2.h: Likewise.
        * include/avr/iom256rfr2.h: Likewise.
        * include/avr/iom32.h: Likewise.
        * include/avr/iom323.h: Likewise.
        * include/avr/iom324.h: Likewise.
        * include/avr/iom324pa.h: Likewise.
        * include/avr/iom325.h: Likewise.
        * include/avr/iom3250.h: Likewise.
        * include/avr/iom3250pa.h: Likewise.
        * include/avr/iom325pa.h: Likewise.
        * include/avr/iom328p.h: Likewise.
        * include/avr/iom329.h: Likewise.
        * include/avr/iom3290.h: Likewise.
        * include/avr/iom3290pa.h: Likewise.
        * include/avr/iom32a.h: Likewise.
        * include/avr/iom32c1.h: Likewise.
        * include/avr/iom32hvb.h: Likewise.
        * include/avr/iom32hvbrevb.h: Likewise.
        * include/avr/iom32m1.h: Likewise.
        * include/avr/iom32u2.h: Likewise.
        * include/avr/iom32u4.h: Likewise.
        * include/avr/iom32u6.h: Likewise.
        * include/avr/iom406.h: Likewise.
        * include/avr/iom48.h: Likewise.
        * include/avr/iom48p.h: Likewise.
        * include/avr/iom48pa.h: Likewise.
        * include/avr/iom64.h: Likewise.
        * include/avr/iom640.h: Likewise.
        * include/avr/iom644.h: Likewise.
        * include/avr/iom644p.h: Likewise.
        * include/avr/iom644pa.h: Likewise.
        * include/avr/iom644rfr2.h: Likewise.
        * include/avr/iom645.h: Likewise.
        * include/avr/iom6450.h: Likewise.
        * include/avr/iom649.h: Likewise.
        * include/avr/iom6490.h: Likewise.
        * include/avr/iom649p.h: Likewise.
        * include/avr/iom64a.h: Likewise.
        * include/avr/iom64c1.h: Likewise.
        * include/avr/iom64hve.h: Likewise.
        * include/avr/iom64m1.h: Likewise.
        * include/avr/iom64rfr2.h: Likewise.
        * include/avr/iom8.h: Likewise.
        * include/avr/iom8515.h: Likewise.
        * include/avr/iom8535.h: Likewise.
        * include/avr/iom88.h: Likewise.
        * include/avr/iom88p.h: Likewise.
        * include/avr/iom88pa.h: Likewise.
        * include/avr/iom8a.h: Likewise.
        * include/avr/iom8hva.h: Likewise.
        * include/avr/iom8u2.h: Likewise.
        * include/avr/iotn10.h: Likewise.
        * include/avr/iotn11.h: Likewise.
        * include/avr/iotn12.h: Likewise.
        * include/avr/iotn13.h: Likewise.
        * include/avr/iotn13a.h: Likewise.
        * include/avr/iotn15.h: Likewise.
        * include/avr/iotn1634.h: Likewise.
        * include/avr/iotn167.h: Likewise.
        * include/avr/iotn20.h: Likewise.
        * include/avr/iotn22.h: Likewise.
        * include/avr/iotn2313.h: Likewise.
        * include/avr/iotn2313a.h: Likewise.
        * include/avr/iotn24.h: Likewise.
        * include/avr/iotn24a.h: Likewise.
        * include/avr/iotn25.h: Likewise.
        * include/avr/iotn26.h: Likewise.
        * include/avr/iotn261.h: Likewise.
        * include/avr/iotn261a.h: Likewise.
        * include/avr/iotn28.h: Likewise.
        * include/avr/iotn4.h: Likewise.
        * include/avr/iotn40.h: Likewise.
        * include/avr/iotn4313.h: Likewise.
        * include/avr/iotn43u.h: Likewise.
        * include/avr/iotn44.h: Likewise.
        * include/avr/iotn44a.h: Likewise.
        * include/avr/iotn45.h: Likewise.
        * include/avr/iotn461.h: Likewise.
        * include/avr/iotn461a.h: Likewise.
        * include/avr/iotn48.h: Likewise.
        * include/avr/iotn5.h: Likewise.
        * include/avr/iotn828.h: Likewise.
        * include/avr/iotn84.h: Likewise.
        * include/avr/iotn84a.h: Likewise.
        * include/avr/iotn85.h: Likewise.
        * include/avr/iotn861.h: Likewise.
        * include/avr/iotn861a.h: Likewise.
        * include/avr/iotn87.h: Likewise.
        * include/avr/iotn88.h: Likewise.
        * include/avr/iotn9.h: Likewise.
        * include/avr/iousb1286.h: Likewise.
        * include/avr/iousb1287.h: Likewise.
        * include/avr/iousb162.h: Likewise.
        * include/avr/iousb646.h: Likewise.
        * include/avr/iousb647.h: Likewise.
        * include/avr/iousb82.h: Likewise.
        

diff --git avr-libc/include/avr/Makefile.am avr-libc/include/avr/Makefile.am
index 7d711e3..5f1ac8c 100644
--- avr-libc/include/avr/Makefile.am
+++ avr-libc/include/avr/Makefile.am
@@ -98,6 +98,7 @@ avr_HEADERS = \
     iom165p.h \
     iom165pa.h \
     iom168.h \
+    iom168a.h \
     iom168p.h \
     iom168pa.h \
     iom169.h \
@@ -136,6 +137,7 @@ avr_HEADERS = \
     iom32u4.h \
     iom32u6.h \
     iom48.h \
+    iom48a.h \
     iom48pa.h \
     iom48p.h \
     iom406.h \
@@ -160,6 +162,7 @@ avr_HEADERS = \
     iom8515.h \
     iom8535.h \
     iom88.h \
+    iom88a.h \
     iom88p.h \
     iom88pa.h \
     iom8hva.h \
diff --git avr-libc/include/avr/io.h avr-libc/include/avr/io.h
index 591a0b3..9a95432 100644
--- avr-libc/include/avr/io.h
+++ avr-libc/include/avr/io.h
@@ -284,8 +284,10 @@
 #  include <avr/iom165p.h>
 #elif defined (__AVR_ATmega165PA__)
 #  include <avr/iom165pa.h>
-#elif defined (__AVR_ATmega168__) || defined (__AVR_ATmega168A__)
+#elif defined (__AVR_ATmega168__)
 #  include <avr/iom168.h>
+#elif defined (__AVR_ATmega168A__)
+#  include <avr/iom168a.h>
 #elif defined (__AVR_ATmega168P__)
 #  include <avr/iom168p.h>
 #elif defined (__AVR_ATmega168PA__)
@@ -310,14 +312,18 @@
 #  include <avr/iom8.h>
 #elif defined (__AVR_ATmega8A__)
 #  include <avr/iom8a.h>
-#elif defined (__AVR_ATmega48__) || defined (__AVR_ATmega48A__)
+#elif defined (__AVR_ATmega48__)
 #  include <avr/iom48.h>
+#elif defined (__AVR_ATmega48A__)
+#  include <avr/iom48a.h>
 #elif defined (__AVR_ATmega48PA__)
 #  include <avr/iom48pa.h>
 #elif defined (__AVR_ATmega48P__)
 #  include <avr/iom48p.h>
-#elif defined (__AVR_ATmega88__) || defined (__AVR_ATmega88A__)
+#elif defined (__AVR_ATmega88__)
 #  include <avr/iom88.h>
+#elif defined (__AVR_ATmega88A__)
+#  include <avr/iom88a.h>
 #elif defined (__AVR_ATmega88P__)
 #  include <avr/iom88p.h>
 #elif defined (__AVR_ATmega88PA__)
diff --git avr-libc/include/avr/io2313.h avr-libc/include/avr/io2313.h
index 5ebb446..7ec5d16 100644
--- avr-libc/include/avr/io2313.h
+++ avr-libc/include/avr/io2313.h
@@ -379,4 +379,8 @@
 #define SIGNATURE_2 0x01
 
 
+#define SLEEP_MODE_IDLE         0
+#define SLEEP_MODE_PWR_DOWN     _BV(SM)
+
+
 #endif  /* _AVR_IO2313_H_ */
diff --git avr-libc/include/avr/io2323.h avr-libc/include/avr/io2323.h
index b3e8e5b..3715352 100644
--- avr-libc/include/avr/io2323.h
+++ avr-libc/include/avr/io2323.h
@@ -203,5 +203,9 @@
 /* Signature */
 #define SIGNATURE_0 0x1E
 #define SIGNATURE_1 0x91
+
+#define SLEEP_MODE_IDLE         0
+#define SLEEP_MODE_PWR_DOWN     _BV(SM)
+
 #define SIGNATURE_2 0x02
 
diff --git avr-libc/include/avr/io2333.h avr-libc/include/avr/io2333.h
index 4f7971f..befa866 100644
--- avr-libc/include/avr/io2333.h
+++ avr-libc/include/avr/io2333.h
@@ -455,4 +455,8 @@
 #define    E2END    0x7F
 #define    FLASHEND 0x7FF
 
+#define SLEEP_MODE_IDLE         0
+#define SLEEP_MODE_PWR_DOWN     _BV(SM)
+
+
 #endif /* _AVR_IO2333_H_ */
diff --git avr-libc/include/avr/io2343.h avr-libc/include/avr/io2343.h
index a7b4a17..8fa6366 100644
--- avr-libc/include/avr/io2343.h
+++ avr-libc/include/avr/io2343.h
@@ -209,4 +209,8 @@
 #define SIGNATURE_2 0x03
 
 
+#define SLEEP_MODE_IDLE         0
+#define SLEEP_MODE_PWR_DOWN     _BV(SM)
+
+
 #endif /* _AVR_IO2343_H_ */
diff --git avr-libc/include/avr/io43u32x.h avr-libc/include/avr/io43u32x.h
index e94b88d..cc9bb95 100644
--- avr-libc/include/avr/io43u32x.h
+++ avr-libc/include/avr/io43u32x.h
@@ -434,4 +434,8 @@
    but no RAMPZ causes gcrt1.S build to fail, so assume 64K for now...  */
 #define    FLASHEND 0x0FFFF
 
+#define SLEEP_MODE_IDLE         0
+#define SLEEP_MODE_PWR_DOWN     _BV(SM)
+
+
 #endif /* _AVR_43USB32X_H_ */
diff --git avr-libc/include/avr/io43u35x.h avr-libc/include/avr/io43u35x.h
index e317976..c590e63 100644
--- avr-libc/include/avr/io43u35x.h
+++ avr-libc/include/avr/io43u35x.h
@@ -426,4 +426,8 @@
 #define    E2END    0x0000
 #define    FLASHEND 0x5FFF
 
+#define SLEEP_MODE_IDLE         0
+#define SLEEP_MODE_PWR_DOWN     _BV(SM)
+
+
 #endif /* _AVR_43USB355_H_ */
diff --git avr-libc/include/avr/io4414.h avr-libc/include/avr/io4414.h
index 346a9ab..fe3ff3a 100644
--- avr-libc/include/avr/io4414.h
+++ avr-libc/include/avr/io4414.h
@@ -495,4 +495,8 @@
 #define SIGNATURE_2 0x01
 
 
+#define SLEEP_MODE_IDLE         0
+#define SLEEP_MODE_PWR_DOWN     _BV(SM)
+
+
 #endif /* _AVR_IO4414_H_ */
diff --git avr-libc/include/avr/io4433.h avr-libc/include/avr/io4433.h
index 2dfb4f2..7ab9f3c 100644
--- avr-libc/include/avr/io4433.h
+++ avr-libc/include/avr/io4433.h
@@ -484,4 +484,8 @@
 #define SIGNATURE_2 0x03
 
 
+#define SLEEP_MODE_IDLE         0
+#define SLEEP_MODE_PWR_DOWN     _BV(SM)
+
+
 #endif /* _AVR_IO4433_H_ */
diff --git avr-libc/include/avr/io4434.h avr-libc/include/avr/io4434.h
index a0c8ee9..66831b6 100644
--- avr-libc/include/avr/io4434.h
+++ avr-libc/include/avr/io4434.h
@@ -581,4 +581,10 @@
 #define SIGNATURE_2 0x03
 
 
+#define SLEEP_MODE_IDLE         0
+#define SLEEP_MODE_ADC          _BV(SM0)
+#define SLEEP_MODE_PWR_DOWN     _BV(SM1)
+#define SLEEP_MODE_PWR_SAVE     (_BV(SM0) | _BV(SM1))
+
+
 #endif /* _AVR_IO4434_H_ */
diff --git avr-libc/include/avr/io76c711.h avr-libc/include/avr/io76c711.h
index e3b5706..db21197 100644
--- avr-libc/include/avr/io76c711.h
+++ avr-libc/include/avr/io76c711.h
@@ -490,5 +490,12 @@
    0x3000 - 0x37FF - DPRAM
    0x8000 - 0xBFFF - program SRAM (read/write), would be nice if other
                      AVR devices did that as well (no need to use LPM!)
+
  */
+
+#define SLEEP_MODE_IDLE         0
+#define SLEEP_MODE_ADC          _BV(SM0)
+#define SLEEP_MODE_PWR_DOWN     _BV(SM1)
+#define SLEEP_MODE_PWR_SAVE     (_BV(SM0) | _BV(SM1))
+
 #endif /* _AVR_IO76C711_H_ */
diff --git avr-libc/include/avr/io8515.h avr-libc/include/avr/io8515.h
index 1a3a3f5..ccb7bdc 100644
--- avr-libc/include/avr/io8515.h
+++ avr-libc/include/avr/io8515.h
@@ -496,4 +496,8 @@
 #define SIGNATURE_2 0x01
 
 
+#define SLEEP_MODE_IDLE         0
+#define SLEEP_MODE_PWR_DOWN     _BV(SM)
+
+
 #endif /* _AVR_IO8515_H_ */
diff --git avr-libc/include/avr/io8535.h avr-libc/include/avr/io8535.h
index 0fbd923..fe651a7 100644
--- avr-libc/include/avr/io8535.h
+++ avr-libc/include/avr/io8535.h
@@ -582,4 +582,10 @@
 #define SIGNATURE_2 0x03
 
 
+#define SLEEP_MODE_IDLE         0
+#define SLEEP_MODE_ADC          _BV(SM0)
+#define SLEEP_MODE_PWR_DOWN     _BV(SM1)
+#define SLEEP_MODE_PWR_SAVE     (_BV(SM0) | _BV(SM1))
+
+
 #endif /* _AVR_IO8535_H_ */
diff --git avr-libc/include/avr/io90pwm1.h avr-libc/include/avr/io90pwm1.h
index ad3f12f..c0e3d56 100644
--- avr-libc/include/avr/io90pwm1.h
+++ avr-libc/include/avr/io90pwm1.h
@@ -1141,4 +1141,10 @@
 #define __BOOT_LOCK_BITS_1_EXIST 
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif /* _AVR_IOPWM1_H_ */
diff --git avr-libc/include/avr/io90pwm161.h avr-libc/include/avr/io90pwm161.h
index 56abb78..36154f6 100644
--- avr-libc/include/avr/io90pwm161.h
+++ avr-libc/include/avr/io90pwm161.h
@@ -857,5 +857,11 @@
 #define SIGNATURE_2 0x8B
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
 #endif /* #ifdef _AVR_AT90PWM161_H_INCLUDED */
 
diff --git avr-libc/include/avr/io90pwm216.h avr-libc/include/avr/io90pwm216.h
index 98155cd..2f815a3 100644
--- avr-libc/include/avr/io90pwm216.h
+++ avr-libc/include/avr/io90pwm216.h
@@ -1208,4 +1208,10 @@
 #define SIGNATURE_2 0x83
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif /* _AVR_IO90PWM216_H_ */
diff --git avr-libc/include/avr/io90pwm2b.h avr-libc/include/avr/io90pwm2b.h
index c41865d..8f6e6b0 100644
--- avr-libc/include/avr/io90pwm2b.h
+++ avr-libc/include/avr/io90pwm2b.h
@@ -1449,4 +1449,10 @@
 #define SIGNATURE_2 0x83
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif /* _AVR_IO90PWM2B_H_ */
diff --git avr-libc/include/avr/io90pwm316.h avr-libc/include/avr/io90pwm316.h
index 90f8a53..24632bf 100644
--- avr-libc/include/avr/io90pwm316.h
+++ avr-libc/include/avr/io90pwm316.h
@@ -1251,4 +1251,10 @@
 #define SIGNATURE_2 0x83
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif /* _AVR_IO90PWM316_H_ */
diff --git avr-libc/include/avr/io90pwm3b.h avr-libc/include/avr/io90pwm3b.h
index c99eb98..d8e16fc 100644
--- avr-libc/include/avr/io90pwm3b.h
+++ avr-libc/include/avr/io90pwm3b.h
@@ -1449,4 +1449,10 @@
 #define SIGNATURE_2 0x83
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif /* _AVR_IO90PWM3B_H_ */
diff --git avr-libc/include/avr/io90pwm81.h avr-libc/include/avr/io90pwm81.h
index f506658..c74ed9c 100644
--- avr-libc/include/avr/io90pwm81.h
+++ avr-libc/include/avr/io90pwm81.h
@@ -1021,5 +1021,11 @@
 #define SIGNATURE_2 0x88
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
 #endif /* _AVR_AT90PWM81_H_ */
 
diff --git avr-libc/include/avr/io90pwmx.h avr-libc/include/avr/io90pwmx.h
index bd06035..b8755a0 100644
--- avr-libc/include/avr/io90pwmx.h
+++ avr-libc/include/avr/io90pwmx.h
@@ -1398,4 +1398,10 @@
 #define __BOOT_LOCK_BITS_1_EXIST 
 
 
+#define SLEEP_MODE_IDLE         (0)
+#define SLEEP_MODE_ADC          _BV(SM0)
+#define SLEEP_MODE_PWR_DOWN     _BV(SM1)
+#define SLEEP_MODE_STANDBY      (_BV(SM1) | _BV(SM2))
+
+
 #endif /* _AVR_IO90PWMX_H_ */
diff --git avr-libc/include/avr/io90scr100.h avr-libc/include/avr/io90scr100.h
index c863b39..4da97f2 100644
--- avr-libc/include/avr/io90scr100.h
+++ avr-libc/include/avr/io90scr100.h
@@ -1694,5 +1694,12 @@
 #define SIGNATURE_2 0xC1
 
 
+
+#define SLEEP_MODE_IDLE         (0)
+#define SLEEP_MODE_PWR_DOWN     _BV(SM1)
+#define SLEEP_MODE_PWR_SAVE     (_BV(SM0) | _BV(SM1))
+#define SLEEP_MODE_STANDBY      (_BV(SM1) | _BV(SM2))
+#define SLEEP_MODE_EXT_STANDBY  (_BV(SM0) | _BV(SM1) | _BV(SM2))
+
 #endif /* _AVR_AT90SCR100_H_ */
 
diff --git avr-libc/include/avr/ioa5272.h avr-libc/include/avr/ioa5272.h
index ebe4fe7..60a6677 100644
--- avr-libc/include/avr/ioa5272.h
+++ avr-libc/include/avr/ioa5272.h
@@ -743,5 +743,11 @@
 #define SIGNATURE_2 0x87
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+
 #endif /* #ifdef _AVR_ATA5272_H_INCLUDED */
 
diff --git avr-libc/include/avr/ioa5505.h avr-libc/include/avr/ioa5505.h
index ea6af53..79b3a89 100644
--- avr-libc/include/avr/ioa5505.h
+++ avr-libc/include/avr/ioa5505.h
@@ -743,5 +743,11 @@
 #define SIGNATURE_2 0x87
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+
 #endif /* #ifdef _AVR_ATA5505_H_INCLUDED */
 
diff --git avr-libc/include/avr/ioa5790.h avr-libc/include/avr/ioa5790.h
index 1ddb928..2fa333f 100644
--- avr-libc/include/avr/ioa5790.h
+++ avr-libc/include/avr/ioa5790.h
@@ -832,5 +832,11 @@
 #define SIGNATURE_2 0x61
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_EXT_PWR_SAVE (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+
 #endif /* #ifdef _AVR_ATA5790_H_INCLUDED */
 
diff --git avr-libc/include/avr/ioa5795.h avr-libc/include/avr/ioa5795.h
index 9f57eca..39ec9a3 100644
--- avr-libc/include/avr/ioa5795.h
+++ avr-libc/include/avr/ioa5795.h
@@ -689,5 +689,11 @@
 #define SIGNATURE_2 0x61
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_EXT_PWR_SAVE (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+
 #endif /* #ifdef _AVR_ATA5795_H_INCLUDED */
 
diff --git avr-libc/include/avr/ioa6285.h avr-libc/include/avr/ioa6285.h
index 083307e..57a9e8c 100644
--- avr-libc/include/avr/ioa6285.h
+++ avr-libc/include/avr/ioa6285.h
@@ -689,5 +689,10 @@
 #define SIGNATURE_2 0x82
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_SENSOR_NOISE_REDUCTION (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+
 #endif /* #ifdef _AVR_ATA6285_H_INCLUDED */
 
diff --git avr-libc/include/avr/ioa6286.h avr-libc/include/avr/ioa6286.h
index 3f004fc..bcf1987 100644
--- avr-libc/include/avr/ioa6286.h
+++ avr-libc/include/avr/ioa6286.h
@@ -689,5 +689,10 @@
 #define SIGNATURE_2 0x82
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_SENSOR_NOISE_REDUCTION (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+
 #endif /* #ifdef _AVR_ATA6286_H_INCLUDED */
 
diff --git avr-libc/include/avr/ioa6289.h avr-libc/include/avr/ioa6289.h
index 9ac279c..0204aec 100644
--- avr-libc/include/avr/ioa6289.h
+++ avr-libc/include/avr/ioa6289.h
@@ -840,5 +840,10 @@
 #define SIGNATURE_2 0x82
 
 
+
+#define SLEEP_MODE_IDLE                     (0)
+#define SLEEP_MODE_SENSOR_NOISE_REDUCTION   (_BV(SM0))
+#define SLEEP_MODE_PWR_DOWN                 (_BV(SM1))
+
 #endif /* _AVR_ATA6289_H_ */
 
diff --git avr-libc/include/avr/ioat94k.h avr-libc/include/avr/ioat94k.h
index 34abdc0..c871922 100644
--- avr-libc/include/avr/ioat94k.h
+++ avr-libc/include/avr/ioat94k.h
@@ -558,4 +558,9 @@
 #define FLASHEND 0x7FFF
 #endif
 
+#define SLEEP_MODE_IDLE         0
+#define SLEEP_MODE_PWR_DOWN     _BV(SM1)
+#define SLEEP_MODE_PWR_SAVE     (_BV(SM0) | _BV(SM1))
+
+
 #endif /* _AVR_IOAT94K_H_ */
diff --git avr-libc/include/avr/iocan128.h avr-libc/include/avr/iocan128.h
index d8b5651..680d40d 100644
--- avr-libc/include/avr/iocan128.h
+++ avr-libc/include/avr/iocan128.h
@@ -92,4 +92,11 @@
 #define SIGNATURE_2 0x81
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif  /* _AVR_IOCAN128_H_ */
diff --git avr-libc/include/avr/iocan32.h avr-libc/include/avr/iocan32.h
index 5d1bfef..d5c80a9 100644
--- avr-libc/include/avr/iocan32.h
+++ avr-libc/include/avr/iocan32.h
@@ -92,4 +92,11 @@
 #define SIGNATURE_2 0x81
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif  /* _AVR_IOCAN32_H_ */
diff --git avr-libc/include/avr/iocan64.h avr-libc/include/avr/iocan64.h
index 364fa45..5252df0 100644
--- avr-libc/include/avr/iocan64.h
+++ avr-libc/include/avr/iocan64.h
@@ -92,4 +92,11 @@
 #define SIGNATURE_2 0x81
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif  /* _AVR_IOCAN64_H_ */
diff --git avr-libc/include/avr/iom103.h avr-libc/include/avr/iom103.h
index b0001a3..0897274 100644
--- avr-libc/include/avr/iom103.h
+++ avr-libc/include/avr/iom103.h
@@ -695,7 +695,10 @@
 #define SIGNATURE_1 0x97
 #define SIGNATURE_2 0x01
 
-
+#define SLEEP_MODE_IDLE         0
+#define SLEEP_MODE_ADC          _BV(SM0)
+#define SLEEP_MODE_PWR_DOWN     _BV(SM1)
+#define SLEEP_MODE_PWR_SAVE     (_BV(SM0) | _BV(SM1))
 
 /* Deprecated items */
 #if !defined(__AVR_LIBC_DEPRECATED_ENABLE__)
diff --git avr-libc/include/avr/iom128.h avr-libc/include/avr/iom128.h
index b0be01a..f9bc637 100644
--- avr-libc/include/avr/iom128.h
+++ avr-libc/include/avr/iom128.h
@@ -1291,4 +1291,12 @@
 
 
 
+#define SLEEP_MODE_IDLE (0x00<<2)
+#define SLEEP_MODE_ADC (0x02<<2)
+#define SLEEP_MODE_PWR_DOWN (0x04<<2)
+#define SLEEP_MODE_PWR_SAVE (0x06<<2)
+#define SLEEP_MODE_STANDBY (0x05<<2)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<2)
+
+
 #endif /* _AVR_IOM128_H_ */
diff --git avr-libc/include/avr/iom1280.h avr-libc/include/avr/iom1280.h
index 572813d..406e630 100644
--- avr-libc/include/avr/iom1280.h
+++ avr-libc/include/avr/iom1280.h
@@ -92,4 +92,12 @@
 #define SIGNATURE_2 0x03
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_IOM1280_H_ */
diff --git avr-libc/include/avr/iom1281.h avr-libc/include/avr/iom1281.h
index cf26c75..bc406f4 100644
--- avr-libc/include/avr/iom1281.h
+++ avr-libc/include/avr/iom1281.h
@@ -92,4 +92,12 @@
 #define SIGNATURE_2 0x04
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_IOM1281_H_ */
diff --git avr-libc/include/avr/iom1284.h avr-libc/include/avr/iom1284.h
index 7a5839f..4cfb3dd 100644
--- avr-libc/include/avr/iom1284.h
+++ avr-libc/include/avr/iom1284.h
@@ -1004,5 +1004,13 @@
 #define SIGNATURE_2 0x06
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
 #endif /* #ifdef _AVR_ATMEGA1284_H_INCLUDED */
 
diff --git avr-libc/include/avr/iom1284p.h avr-libc/include/avr/iom1284p.h
index 1fd0587..2ee176d 100644
--- avr-libc/include/avr/iom1284p.h
+++ avr-libc/include/avr/iom1284p.h
@@ -1197,4 +1197,12 @@
 #define SIGNATURE_2 0x05
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif  /* _AVR_IOM1284P_H_ */
diff --git avr-libc/include/avr/iom1284rfr2.h avr-libc/include/avr/iom1284rfr2.h
index fc41cf9..fc612c4 100644
--- avr-libc/include/avr/iom1284rfr2.h
+++ avr-libc/include/avr/iom1284rfr2.h
@@ -6252,4 +6252,12 @@ struct __reg_TST_RX_LENGTH {
 #define SIGNATURE_1 0xA7
 #define SIGNATURE_2 0x03
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_IOM1284RFR2_H_ */
diff --git avr-libc/include/avr/iom128a.h avr-libc/include/avr/iom128a.h
index c0af6d0..8083809 100644
--- avr-libc/include/avr/iom128a.h
+++ avr-libc/include/avr/iom128a.h
@@ -946,5 +946,13 @@
 #define SIGNATURE_2 0x02
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<2)
+#define SLEEP_MODE_ADC (0x02<<2)
+#define SLEEP_MODE_PWR_DOWN (0x04<<2)
+#define SLEEP_MODE_PWR_SAVE (0x06<<2)
+#define SLEEP_MODE_STANDBY (0x05<<2)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<2)
+
 #endif /* #ifdef _AVR_ATMEGA128A_H_INCLUDED */
 
diff --git avr-libc/include/avr/iom128rfa1.h avr-libc/include/avr/iom128rfa1.h
index 6ce8576..8b74a39 100644
--- avr-libc/include/avr/iom128rfa1.h
+++ avr-libc/include/avr/iom128rfa1.h
@@ -5348,4 +5348,12 @@ struct __reg_TST_RX_LENGTH {
 #define SIGNATURE_1 0xA7
 #define SIGNATURE_2 0x01
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_IOM128RFA1_H_ */
diff --git avr-libc/include/avr/iom128rfr2.h avr-libc/include/avr/iom128rfr2.h
index 5ec8d00..ab380a2 100644
--- avr-libc/include/avr/iom128rfr2.h
+++ avr-libc/include/avr/iom128rfr2.h
@@ -6333,4 +6333,12 @@ struct __reg_TST_SDM {
 #define SIGNATURE_1 0xA7
 #define SIGNATURE_2 0x02
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_IOM128RFR2_H_ */
diff --git avr-libc/include/avr/iom16.h avr-libc/include/avr/iom16.h
index dc71b77..20db646 100644
--- avr-libc/include/avr/iom16.h
+++ avr-libc/include/avr/iom16.h
@@ -667,4 +667,12 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+#define SLEEP_MODE_IDLE (0x00<<4)
+#define SLEEP_MODE_ADC (0x01<<4)
+#define SLEEP_MODE_PWR_DOWN (0x02<<4)
+#define SLEEP_MODE_PWR_SAVE (0x03<<4)
+#define SLEEP_MODE_STANDBY (0x0A<<4)
+#define SLEEP_MODE_EXT_STANDBY (0x0B<<4)
+
+
 #endif /* _AVR_IOM16_H_ */
diff --git avr-libc/include/avr/iom161.h avr-libc/include/avr/iom161.h
index d0a881f..b129d39 100644
--- avr-libc/include/avr/iom161.h
+++ avr-libc/include/avr/iom161.h
@@ -720,4 +720,9 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+#define SLEEP_MODE_IDLE         0
+#define SLEEP_MODE_PWR_DOWN     1
+#define SLEEP_MODE_PWR_SAVE     2
+
+
 #endif /* _AVR_IOM161_H_ */
diff --git avr-libc/include/avr/iom162.h avr-libc/include/avr/iom162.h
index f5a2b4f..550e5de 100644
--- avr-libc/include/avr/iom162.h
+++ avr-libc/include/avr/iom162.h
@@ -1013,4 +1013,12 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+#define SLEEP_MODE_IDLE         0
+#define SLEEP_MODE_PWR_DOWN     1
+#define SLEEP_MODE_PWR_SAVE     2
+#define SLEEP_MODE_ADC          3
+#define SLEEP_MODE_STANDBY      4
+#define SLEEP_MODE_EXT_STANDBY  5
+
+
 #endif  /* _AVR_IOM162_H_ */
diff --git avr-libc/include/avr/iom163.h avr-libc/include/avr/iom163.h
index dd376fc..f746a85 100644
--- avr-libc/include/avr/iom163.h
+++ avr-libc/include/avr/iom163.h
@@ -682,4 +682,10 @@
 
 
 
+#define SLEEP_MODE_IDLE         0
+#define SLEEP_MODE_ADC          _BV(SM0)
+#define SLEEP_MODE_PWR_DOWN     _BV(SM1)
+#define SLEEP_MODE_PWR_SAVE     (_BV(SM0) | _BV(SM1))
+
+
 #endif /* _AVR_IOM163_H_ */
diff --git avr-libc/include/avr/iom164.h avr-libc/include/avr/iom164.h
index dbd282c..fcd3181 100644
--- avr-libc/include/avr/iom164.h
+++ avr-libc/include/avr/iom164.h
@@ -92,4 +92,12 @@
 #define SIGNATURE_2 0x0A 
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_IOM164_H_ */
diff --git avr-libc/include/avr/iom164pa.h avr-libc/include/avr/iom164pa.h
index a938490..c5b9ee4 100644
--- avr-libc/include/avr/iom164pa.h
+++ avr-libc/include/avr/iom164pa.h
@@ -924,5 +924,13 @@
 #define SIGNATURE_2 0x0A
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
 #endif /* #ifdef _AVR_ATMEGA164PA_H_INCLUDED */
 
diff --git avr-libc/include/avr/iom165.h avr-libc/include/avr/iom165.h
index 53488c5..f0ba203 100644
--- avr-libc/include/avr/iom165.h
+++ avr-libc/include/avr/iom165.h
@@ -872,4 +872,11 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif /* _AVR_IOM165_H_ */
diff --git avr-libc/include/avr/iom165a.h avr-libc/include/avr/iom165a.h
index c21c97c..6fdae15 100644
--- avr-libc/include/avr/iom165a.h
+++ avr-libc/include/avr/iom165a.h
@@ -819,5 +819,12 @@
 #define SIGNATURE_2 0x10
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
 #endif /* #ifdef _AVR_ATMEGA165A_H_INCLUDED */
 
diff --git avr-libc/include/avr/iom165p.h avr-libc/include/avr/iom165p.h
index dff1d3c..91f5f5b 100644
--- avr-libc/include/avr/iom165p.h
+++ avr-libc/include/avr/iom165p.h
@@ -875,4 +875,11 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif /* _AVR_IOM165P_H_ */
diff --git avr-libc/include/avr/iom165pa.h avr-libc/include/avr/iom165pa.h
index 6b89932..0ad0805 100644
--- avr-libc/include/avr/iom165pa.h
+++ avr-libc/include/avr/iom165pa.h
@@ -819,5 +819,12 @@
 #define SIGNATURE_2 0x07
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
 #endif /* #ifdef _AVR_ATMEGA165PA_H_INCLUDED */
 
diff --git avr-libc/include/avr/iom168.h avr-libc/include/avr/iom168.h
index 85ac2ff..55d0611 100644
--- avr-libc/include/avr/iom168.h
+++ avr-libc/include/avr/iom168.h
@@ -89,4 +89,11 @@
 #define SIGNATURE_2 0x06
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif /* _AVR_IOM168_H_ */
diff --git avr-libc/include/avr/iom168a.h avr-libc/include/avr/iom168a.h
new file mode 100644
index 0000000..3438434
--- /dev/null
+++ avr-libc/include/avr/iom168a.h
@@ -0,0 +1,35 @@
+/*****************************************************************************
+ *
+ * Copyright (C) 2011 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in
+ *   the documentation and/or other materials provided with the
+ *   distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ *   contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ ****************************************************************************/
+
+#include "iom168.h"
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
diff --git avr-libc/include/avr/iom168p.h avr-libc/include/avr/iom168p.h
index bd1ecae..767e5d1 100644
--- avr-libc/include/avr/iom168p.h
+++ avr-libc/include/avr/iom168p.h
@@ -924,4 +924,12 @@
 #define SIGNATURE_2 0x0B
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif  /* _AVR_IOM168P_H_ */
diff --git avr-libc/include/avr/iom168pa.h avr-libc/include/avr/iom168pa.h
index 50b8571..5f348c6 100644
--- avr-libc/include/avr/iom168pa.h
+++ avr-libc/include/avr/iom168pa.h
@@ -769,5 +769,13 @@
 #define SIGNATURE_2 0x0B
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
 #endif /* #ifdef _AVR_ATMEGA168PA_H_INCLUDED */
 
diff --git avr-libc/include/avr/iom169.h avr-libc/include/avr/iom169.h
index 2e83054..a137c70 100644
--- avr-libc/include/avr/iom169.h
+++ avr-libc/include/avr/iom169.h
@@ -1159,4 +1159,11 @@
 
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif  /* _AVR_IOM169_H_ */
diff --git avr-libc/include/avr/iom169p.h avr-libc/include/avr/iom169p.h
index 21d96d3..af570d7 100644
--- avr-libc/include/avr/iom169p.h
+++ avr-libc/include/avr/iom169p.h
@@ -1082,4 +1082,11 @@
 
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif  /* _AVR_IOM169P_H_ */
diff --git avr-libc/include/avr/iom169pa.h avr-libc/include/avr/iom169pa.h
index 8804959..301c7a6 100644
--- avr-libc/include/avr/iom169pa.h
+++ avr-libc/include/avr/iom169pa.h
@@ -1468,5 +1468,12 @@
 #define ADC0_PIN   PINF
 #define ADC0_BIT   0
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
 #endif /* _AVR_ATmega169PA_H_ */
 
diff --git avr-libc/include/avr/iom16a.h avr-libc/include/avr/iom16a.h
index 4a668f8..2fb4cde 100644
--- avr-libc/include/avr/iom16a.h
+++ avr-libc/include/avr/iom16a.h
@@ -912,5 +912,13 @@
 #define SS_PIN   PINB
 #define SS_BIT   4
 
+
+#define SLEEP_MODE_IDLE (0x00<<4)
+#define SLEEP_MODE_ADC (0x01<<4)
+#define SLEEP_MODE_PWR_DOWN (0x02<<4)
+#define SLEEP_MODE_PWR_SAVE (0x03<<4)
+#define SLEEP_MODE_STANDBY (0x0A<<4)
+#define SLEEP_MODE_EXT_STANDBY (0x0B<<4)
+
 #endif /* _AVR_ATmega16A_H_ */
 
diff --git avr-libc/include/avr/iom16hva.h avr-libc/include/avr/iom16hva.h
index c8f5108..60abeda 100644
--- avr-libc/include/avr/iom16hva.h
+++ avr-libc/include/avr/iom16hva.h
@@ -73,4 +73,10 @@
 #define SIGNATURE_2 0x0C
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_PWR_OFF (0x04<<1)
+
+
 #endif /* _AVR_IOM16HVA_H_ */
diff --git avr-libc/include/avr/iom16hva2.h avr-libc/include/avr/iom16hva2.h
index f4c4654..71e89d6 100644
--- avr-libc/include/avr/iom16hva2.h
+++ avr-libc/include/avr/iom16hva2.h
@@ -867,5 +867,11 @@
 #define OC_PIN   PINOC
 #define OC_BIT   OC
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_PWR_OFF (0x04<<1)
+
 #endif /* _AVR_ATmega16HVA2_H_ */
 
diff --git avr-libc/include/avr/iom16hvb.h avr-libc/include/avr/iom16hvb.h
index 3f9774c..a744e06 100644
--- avr-libc/include/avr/iom16hvb.h
+++ avr-libc/include/avr/iom16hvb.h
@@ -1035,5 +1035,11 @@
 #define OC_PIN   PINOC
 #define OC_BIT   OC
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_PWR_OFF (0x04<<1)
+
 #endif /* _AVR_ATmega16HVB_H_ */
 
diff --git avr-libc/include/avr/iom16hvbrevb.h 
avr-libc/include/avr/iom16hvbrevb.h
index b7d6cee..c0cb865 100755
--- avr-libc/include/avr/iom16hvbrevb.h
+++ avr-libc/include/avr/iom16hvbrevb.h
@@ -1035,5 +1035,11 @@
 #define OC_PIN   PINOC
 #define OC_BIT   OC
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_PWR_OFF (0x04<<1)
+
 #endif /* _AVR_ATmega16HVBREVB_H_ */
 
diff --git avr-libc/include/avr/iom16m1.h avr-libc/include/avr/iom16m1.h
index 7c3000b..27b855c 100644
--- avr-libc/include/avr/iom16m1.h
+++ avr-libc/include/avr/iom16m1.h
@@ -1553,5 +1553,11 @@
 #define SIGNATURE_2 0x84
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
 #endif /* _AVR_ATmega16M1_H_ */
 
diff --git avr-libc/include/avr/iom16u2.h avr-libc/include/avr/iom16u2.h
index 6378de4..b512f66 100644
--- avr-libc/include/avr/iom16u2.h
+++ avr-libc/include/avr/iom16u2.h
@@ -982,5 +982,12 @@
 
 
 /* Device Pin Definitions */
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
 #endif /* _AVR_ATmega16U2_H_ */
 
diff --git avr-libc/include/avr/iom16u4.h avr-libc/include/avr/iom16u4.h
index beca49d..146bde8 100644
--- avr-libc/include/avr/iom16u4.h
+++ avr-libc/include/avr/iom16u4.h
@@ -1398,5 +1398,13 @@
 #define SIGNATURE_2 0x88
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
 #endif /* _AVR_ATmega16U4_H_ */
 
diff --git avr-libc/include/avr/iom2560.h avr-libc/include/avr/iom2560.h
index 691fa8f..a30a9ac 100644
--- avr-libc/include/avr/iom2560.h
+++ avr-libc/include/avr/iom2560.h
@@ -92,4 +92,12 @@
 #define SIGNATURE_2 0x01
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_IOM2560_H_ */
diff --git avr-libc/include/avr/iom2561.h avr-libc/include/avr/iom2561.h
index 1d40147..c475617 100644
--- avr-libc/include/avr/iom2561.h
+++ avr-libc/include/avr/iom2561.h
@@ -92,4 +92,12 @@
 #define SIGNATURE_2 0x02
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_IOM2561_H_ */
diff --git avr-libc/include/avr/iom2564rfr2.h avr-libc/include/avr/iom2564rfr2.h
index 3cc4b0d..b62b129 100644
--- avr-libc/include/avr/iom2564rfr2.h
+++ avr-libc/include/avr/iom2564rfr2.h
@@ -6260,4 +6260,12 @@ struct __reg_TST_RX_LENGTH {
 #define SIGNATURE_1 0xA8
 #define SIGNATURE_2 0x03
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_IOM2564RFR2_H_ */
diff --git avr-libc/include/avr/iom256rfr2.h avr-libc/include/avr/iom256rfr2.h
index f60041a..9717b3e 100644
--- avr-libc/include/avr/iom256rfr2.h
+++ avr-libc/include/avr/iom256rfr2.h
@@ -6341,4 +6341,12 @@ struct __reg_TST_SDM {
 #define SIGNATURE_1 0xA8
 #define SIGNATURE_2 0x02
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_IOM256RFR2_H_ */
diff --git avr-libc/include/avr/iom32.h avr-libc/include/avr/iom32.h
index 4c372a3..0c1577b 100644
--- avr-libc/include/avr/iom32.h
+++ avr-libc/include/avr/iom32.h
@@ -746,4 +746,12 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+#define SLEEP_MODE_IDLE (0x00<<4)
+#define SLEEP_MODE_ADC (0x01<<4)
+#define SLEEP_MODE_PWR_DOWN (0x02<<4)
+#define SLEEP_MODE_PWR_SAVE (0x03<<4)
+#define SLEEP_MODE_STANDBY (0x06<<4)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<4)
+
+
 #endif /* _AVR_IOM32_H_ */
diff --git avr-libc/include/avr/iom323.h avr-libc/include/avr/iom323.h
index 8545208..e0236f5 100644
--- avr-libc/include/avr/iom323.h
+++ avr-libc/include/avr/iom323.h
@@ -735,4 +735,12 @@
 
 
 
+#define SLEEP_MODE_IDLE (0x00<<4)
+#define SLEEP_MODE_ADC (0x01<<4)
+#define SLEEP_MODE_PWR_DOWN (0x02<<4)
+#define SLEEP_MODE_PWR_SAVE (0x03<<4)
+#define SLEEP_MODE_STANDBY (0x06<<4)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<4)
+
+
 #endif /* _AVR_IOM323_H_ */
diff --git avr-libc/include/avr/iom324.h avr-libc/include/avr/iom324.h
index 5de170d..4820f89 100644
--- avr-libc/include/avr/iom324.h
+++ avr-libc/include/avr/iom324.h
@@ -91,5 +91,19 @@
 #define SIGNATURE_1 0x95
 #define SIGNATURE_2 0x08 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
 
 #endif /* _AVR_IOM324_H_ */
diff --git avr-libc/include/avr/iom324pa.h avr-libc/include/avr/iom324pa.h
index 8231a9b..72e4feb 100644
--- avr-libc/include/avr/iom324pa.h
+++ avr-libc/include/avr/iom324pa.h
@@ -1351,5 +1351,13 @@
 #define PCINT12_PIN   PINB
 #define PCINT12_BIT   4
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
 #endif /* _AVR_ATmega324PA_H_ */
 
diff --git avr-libc/include/avr/iom325.h avr-libc/include/avr/iom325.h
index bd6eab5..5941ec1 100644
--- avr-libc/include/avr/iom325.h
+++ avr-libc/include/avr/iom325.h
@@ -872,4 +872,11 @@
 
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif /* _AVR_IOM325_H_ */
diff --git avr-libc/include/avr/iom3250.h avr-libc/include/avr/iom3250.h
index 4956d12..9e2cbcb 100644
--- avr-libc/include/avr/iom3250.h
+++ avr-libc/include/avr/iom3250.h
@@ -968,4 +968,11 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif /* _AVR_IOM3250_H_ */
diff --git avr-libc/include/avr/iom3250pa.h avr-libc/include/avr/iom3250pa.h
index 65eb637..606005e 100644
--- avr-libc/include/avr/iom3250pa.h
+++ avr-libc/include/avr/iom3250pa.h
@@ -882,5 +882,12 @@
 #define SIGNATURE_2 0x0E
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
 #endif /* #ifdef _AVR_ATMEGA3250PA_H_INCLUDED */
 
diff --git avr-libc/include/avr/iom325pa.h avr-libc/include/avr/iom325pa.h
index 64374e0..cd50e84 100644
--- avr-libc/include/avr/iom325pa.h
+++ avr-libc/include/avr/iom325pa.h
@@ -807,5 +807,12 @@
 #define SIGNATURE_2 0x0D
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
 #endif /* #ifdef _AVR_ATMEGA325PA_H_INCLUDED */
 
diff --git avr-libc/include/avr/iom328p.h avr-libc/include/avr/iom328p.h
index f8334e0..875c931 100644
--- avr-libc/include/avr/iom328p.h
+++ avr-libc/include/avr/iom328p.h
@@ -930,4 +930,12 @@
 #endif
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif  /* _AVR_IOM328P_H_ */
diff --git avr-libc/include/avr/iom329.h avr-libc/include/avr/iom329.h
index ad81804..6bc38bd 100644
--- avr-libc/include/avr/iom329.h
+++ avr-libc/include/avr/iom329.h
@@ -1056,4 +1056,11 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif /* _AVR_IOM329_H_ */
diff --git avr-libc/include/avr/iom3290.h avr-libc/include/avr/iom3290.h
index 775e65e..ca10df1 100644
--- avr-libc/include/avr/iom3290.h
+++ avr-libc/include/avr/iom3290.h
@@ -1214,4 +1214,11 @@
 
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif /* _AVR_IOM3290_H_ */
diff --git avr-libc/include/avr/iom3290pa.h avr-libc/include/avr/iom3290pa.h
index d627cdb..64b93eb 100644
--- avr-libc/include/avr/iom3290pa.h
+++ avr-libc/include/avr/iom3290pa.h
@@ -963,5 +963,12 @@
 #define SIGNATURE_2 0x0C
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
 #endif /* #ifdef _AVR_ATMEGA3290PA_H_INCLUDED */
 
diff --git avr-libc/include/avr/iom32a.h avr-libc/include/avr/iom32a.h
index f44937a..e1a4047 100644
--- avr-libc/include/avr/iom32a.h
+++ avr-libc/include/avr/iom32a.h
@@ -606,5 +606,13 @@
 #define SIGNATURE_2 0x02
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<4)
+#define SLEEP_MODE_ADC (0x01<<4)
+#define SLEEP_MODE_PWR_DOWN (0x02<<4)
+#define SLEEP_MODE_PWR_SAVE (0x03<<4)
+#define SLEEP_MODE_STANDBY (0x06<<4)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<4)
+
 #endif /* #ifdef _AVR_ATMEGA32A_H_INCLUDED */
 
diff --git avr-libc/include/avr/iom32c1.h avr-libc/include/avr/iom32c1.h
index e6e7c10..cb63329 100644
--- avr-libc/include/avr/iom32c1.h
+++ avr-libc/include/avr/iom32c1.h
@@ -1302,5 +1302,11 @@
 #define SIGNATURE_2 0x86
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
 #endif /* _AVR_ATmega32C1_H_ */
 
diff --git avr-libc/include/avr/iom32hvb.h avr-libc/include/avr/iom32hvb.h
index 01816a0..09f8a15 100644
--- avr-libc/include/avr/iom32hvb.h
+++ avr-libc/include/avr/iom32hvb.h
@@ -1035,5 +1035,11 @@
 #define OC_PIN   PINOC
 #define OC_BIT   OC
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_PWR_OFF (0x04<<1)
+
 #endif /* _AVR_ATmega32HVB_H_ */
 
diff --git avr-libc/include/avr/iom32hvbrevb.h 
avr-libc/include/avr/iom32hvbrevb.h
index b4b5273..f1c7f19 100755
--- avr-libc/include/avr/iom32hvbrevb.h
+++ avr-libc/include/avr/iom32hvbrevb.h
@@ -938,4 +938,10 @@
 #define __LOCK_BITS_EXIST
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_PWR_OFF (0x04<<1)
+
+
 #endif  /* _AVR_IOM32HVBREVB_H_ */
diff --git avr-libc/include/avr/iom32m1.h avr-libc/include/avr/iom32m1.h
index b620b3e..da874bd 100644
--- avr-libc/include/avr/iom32m1.h
+++ avr-libc/include/avr/iom32m1.h
@@ -1607,5 +1607,11 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
 #endif /* _AVR_ATmega32M1_H_ */
 
diff --git avr-libc/include/avr/iom32u2.h avr-libc/include/avr/iom32u2.h
index f958936..fd6d403 100644
--- avr-libc/include/avr/iom32u2.h
+++ avr-libc/include/avr/iom32u2.h
@@ -982,5 +982,12 @@
 
 
 /* Device Pin Definitions */
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
 #endif /* _AVR_ATmega32U2_H_ */
 
diff --git avr-libc/include/avr/iom32u4.h avr-libc/include/avr/iom32u4.h
index 7ea2a73..6a21bec 100644
--- avr-libc/include/avr/iom32u4.h
+++ avr-libc/include/avr/iom32u4.h
@@ -1530,4 +1530,12 @@
 
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif  /* _AVR_IOM32U4_H_ */
diff --git avr-libc/include/avr/iom32u6.h avr-libc/include/avr/iom32u6.h
index 667b166..0f4bb6b 100644
--- avr-libc/include/avr/iom32u6.h
+++ avr-libc/include/avr/iom32u6.h
@@ -1407,5 +1407,13 @@
 #define SIGNATURE_2 0x88
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
 #endif /* _AVR_ATmega32U6_H_ */
 
diff --git avr-libc/include/avr/iom406.h avr-libc/include/avr/iom406.h
index 5e2e945..92b8e43 100644
--- avr-libc/include/avr/iom406.h
+++ avr-libc/include/avr/iom406.h
@@ -769,4 +769,10 @@
 #define SIGNATURE_2 0x07
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+
+
 #endif /* _AVR_IOM406_H_ */
diff --git avr-libc/include/avr/iom48.h avr-libc/include/avr/iom48.h
index 23aafc2..9d11dba 100644
--- avr-libc/include/avr/iom48.h
+++ avr-libc/include/avr/iom48.h
@@ -85,4 +85,11 @@
 #define SIGNATURE_2 0x05
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif /* _AVR_IOM48_H_ */
diff --git avr-libc/include/avr/iom48a.h avr-libc/include/avr/iom48a.h
new file mode 100644
index 0000000..0673f62
--- /dev/null
+++ avr-libc/include/avr/iom48a.h
@@ -0,0 +1,36 @@
+
+/* Copyright (c) 2004, Theodore A. Roth
+   All rights reserved.
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions are met:
+
+   * Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+   * Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in
+     the documentation and/or other materials provided with the
+     distribution.
+
+   * Neither the name of the copyright holders nor the names of
+     contributors may be used to endorse or promote products derived
+     from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE. */
+
+/* $Id$ */
+
+#include "iom48.h"
+
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
diff --git avr-libc/include/avr/iom48p.h avr-libc/include/avr/iom48p.h
index ba48ea1..b513b2d 100644
--- avr-libc/include/avr/iom48p.h
+++ avr-libc/include/avr/iom48p.h
@@ -918,4 +918,12 @@
 #define SIGNATURE_2 0x0A
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif  /* _AVR_IOM48P_H_ */
diff --git avr-libc/include/avr/iom48pa.h avr-libc/include/avr/iom48pa.h
index ca018a6..8cbf19b 100644
--- avr-libc/include/avr/iom48pa.h
+++ avr-libc/include/avr/iom48pa.h
@@ -761,5 +761,13 @@
 #define SIGNATURE_2 0x0A
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
 #endif /* #ifdef _AVR_ATMEGA48PA_H_INCLUDED */
 
diff --git avr-libc/include/avr/iom64.h avr-libc/include/avr/iom64.h
index 12c6418..0eeaacb 100644
--- avr-libc/include/avr/iom64.h
+++ avr-libc/include/avr/iom64.h
@@ -1302,4 +1302,12 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+#define SLEEP_MODE_IDLE (0x00<<2)
+#define SLEEP_MODE_ADC (0x02<<2)
+#define SLEEP_MODE_PWR_DOWN (0x04<<2)
+#define SLEEP_MODE_PWR_SAVE (0x06<<2)
+#define SLEEP_MODE_STANDBY (0x05<<2)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<2)
+
+
 #endif /* _AVR_IOM64_H_ */
diff --git avr-libc/include/avr/iom640.h avr-libc/include/avr/iom640.h
index 8fa21a8..dfe0fee 100644
--- avr-libc/include/avr/iom640.h
+++ avr-libc/include/avr/iom640.h
@@ -92,4 +92,12 @@
 #define SIGNATURE_2 0x08
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_IOM640_H_ */
diff --git avr-libc/include/avr/iom644.h avr-libc/include/avr/iom644.h
index 174a129..4af7754 100644
--- avr-libc/include/avr/iom644.h
+++ avr-libc/include/avr/iom644.h
@@ -92,4 +92,12 @@
 #define SIGNATURE_2 0x09
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_IOM644_H_ */
diff --git avr-libc/include/avr/iom644p.h avr-libc/include/avr/iom644p.h
index f4fe30a..55618e8 100644
--- avr-libc/include/avr/iom644p.h
+++ avr-libc/include/avr/iom644p.h
@@ -92,4 +92,12 @@
 #define SIGNATURE_2 0x0A
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_IOM644P_H_ */
diff --git avr-libc/include/avr/iom644pa.h avr-libc/include/avr/iom644pa.h
index da68676..c55a344 100644
--- avr-libc/include/avr/iom644pa.h
+++ avr-libc/include/avr/iom644pa.h
@@ -1366,5 +1366,13 @@
 #define PCINT12_PIN   PINB
 #define PCINT12_BIT   4
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
 #endif /* _AVR_ATmega644PA_H_ */
 
diff --git avr-libc/include/avr/iom644rfr2.h avr-libc/include/avr/iom644rfr2.h
index 0f34415..92afed7 100644
--- avr-libc/include/avr/iom644rfr2.h
+++ avr-libc/include/avr/iom644rfr2.h
@@ -6234,4 +6234,12 @@ struct __reg_TST_RX_LENGTH {
 #define SIGNATURE_1 0xA6
 #define SIGNATURE_2 0x03
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_IOM644RFR2_H_ */
diff --git avr-libc/include/avr/iom645.h avr-libc/include/avr/iom645.h
index 7ed8f45..8196061 100644
--- avr-libc/include/avr/iom645.h
+++ avr-libc/include/avr/iom645.h
@@ -867,4 +867,11 @@
 
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif /* _AVR_IOM645_H_ */
diff --git avr-libc/include/avr/iom6450.h avr-libc/include/avr/iom6450.h
index 12ba74e..710568e 100644
--- avr-libc/include/avr/iom6450.h
+++ avr-libc/include/avr/iom6450.h
@@ -964,4 +964,11 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif /* _AVR_IOM6450_H_ */
diff --git avr-libc/include/avr/iom649.h avr-libc/include/avr/iom649.h
index 306c084..a1987dd 100644
--- avr-libc/include/avr/iom649.h
+++ avr-libc/include/avr/iom649.h
@@ -1048,4 +1048,11 @@
 
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif /* _AVR_IOM649_H_ */
diff --git avr-libc/include/avr/iom6490.h avr-libc/include/avr/iom6490.h
index ae2c865..11fe1e4 100644
--- avr-libc/include/avr/iom6490.h
+++ avr-libc/include/avr/iom6490.h
@@ -1169,4 +1169,11 @@
 #define SIGNATURE_2 0x04
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif /* _AVR_IOM6490_H_ */
diff --git avr-libc/include/avr/iom649p.h avr-libc/include/avr/iom649p.h
index f44ce20..504b9b2 100644
--- avr-libc/include/avr/iom649p.h
+++ avr-libc/include/avr/iom649p.h
@@ -1473,5 +1473,12 @@
 #define ADC0_PIN   PINF
 #define ADC0_BIT   0
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
 #endif /* _AVR_ATmega649_H_ */
 
diff --git avr-libc/include/avr/iom64a.h avr-libc/include/avr/iom64a.h
index 772ff7a..b5bb706 100644
--- avr-libc/include/avr/iom64a.h
+++ avr-libc/include/avr/iom64a.h
@@ -959,6 +959,20 @@
 #define SIGNATURE_1 0x96
 #define SIGNATURE_2 0x02
 
+#define SLEEP_MODE_IDLE (0x00<<2)
+#define SLEEP_MODE_ADC (0x02<<2)
+#define SLEEP_MODE_PWR_DOWN (0x04<<2)
+#define SLEEP_MODE_PWR_SAVE (0x06<<2)
+#define SLEEP_MODE_STANDBY (0x05<<2)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<2)
+
+
+#define SLEEP_MODE_IDLE (0x00<<2)
+#define SLEEP_MODE_ADC (0x02<<2)
+#define SLEEP_MODE_PWR_DOWN (0x04<<2)
+#define SLEEP_MODE_PWR_SAVE (0x06<<2)
+#define SLEEP_MODE_STANDBY (0x05<<2)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<2)
 
 #endif /* #ifdef _AVR_ATMEGA64A_H_INCLUDED */
 
diff --git avr-libc/include/avr/iom64c1.h avr-libc/include/avr/iom64c1.h
index 292f7c9..fadc18f 100644
--- avr-libc/include/avr/iom64c1.h
+++ avr-libc/include/avr/iom64c1.h
@@ -1303,5 +1303,11 @@
 #define SIGNATURE_2 0x86
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
 #endif /* _AVR_ATmega64C1_H_ */
 
diff --git avr-libc/include/avr/iom64hve.h avr-libc/include/avr/iom64hve.h
index b1429e6..e5d7c7b 100644
--- avr-libc/include/avr/iom64hve.h
+++ avr-libc/include/avr/iom64hve.h
@@ -1016,5 +1016,13 @@
 #define OC_PIN   PINOC
 #define OC_BIT   OC
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
 #endif /* _AVR_ATmega64HVE_H_ */
 
diff --git avr-libc/include/avr/iom64m1.h avr-libc/include/avr/iom64m1.h
index 2ff79c8..2950772 100644
--- avr-libc/include/avr/iom64m1.h
+++ avr-libc/include/avr/iom64m1.h
@@ -1554,5 +1554,11 @@
 #define SIGNATURE_2 0x84
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
 #endif /* _AVR_ATmega64M1_H_ */
 
diff --git avr-libc/include/avr/iom64rfr2.h avr-libc/include/avr/iom64rfr2.h
index 90db88f..f84e957 100644
--- avr-libc/include/avr/iom64rfr2.h
+++ avr-libc/include/avr/iom64rfr2.h
@@ -6315,4 +6315,12 @@ struct __reg_TST_SDM {
 #define SIGNATURE_1 0xA6
 #define SIGNATURE_2 0x02
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_IOM64RFR2_H_ */
diff --git avr-libc/include/avr/iom8.h avr-libc/include/avr/iom8.h
index c24db1a..9f185d9 100644
--- avr-libc/include/avr/iom8.h
+++ avr-libc/include/avr/iom8.h
@@ -657,4 +657,11 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+#define SLEEP_MODE_IDLE (0x00<<4)
+#define SLEEP_MODE_ADC (0x01<<4)
+#define SLEEP_MODE_PWR_DOWN (0x02<<4)
+#define SLEEP_MODE_PWR_SAVE (0x03<<4)
+#define SLEEP_MODE_STANDBY (0x06<<4)
+
+
 #endif /* _AVR_IOM8_H_ */
diff --git avr-libc/include/avr/iom8515.h avr-libc/include/avr/iom8515.h
index cc7ebba..a62432f 100644
--- avr-libc/include/avr/iom8515.h
+++ avr-libc/include/avr/iom8515.h
@@ -678,4 +678,12 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+#define SLEEP_MODE_IDLE         0
+#define SLEEP_MODE_PWR_DOWN     1
+#define SLEEP_MODE_PWR_SAVE     2
+#define SLEEP_MODE_ADC          3
+#define SLEEP_MODE_STANDBY      4
+#define SLEEP_MODE_EXT_STANDBY  5
+
+
 #endif /* _AVR_IOM8515_H_ */
diff --git avr-libc/include/avr/iom8535.h avr-libc/include/avr/iom8535.h
index c1e8f96..9754e34 100644
--- avr-libc/include/avr/iom8535.h
+++ avr-libc/include/avr/iom8535.h
@@ -763,4 +763,12 @@
 
 
 
+#define SLEEP_MODE_IDLE (0x00<<4)
+#define SLEEP_MODE_ADC (0x01<<4)
+#define SLEEP_MODE_PWR_DOWN (0x02<<4)
+#define SLEEP_MODE_PWR_SAVE (0x03<<4)
+#define SLEEP_MODE_STANDBY (0x0A<<4)
+#define SLEEP_MODE_EXT_STANDBY (0x0B<<4)
+
+
 #endif /* _AVR_IOM8535_H_ */
diff --git avr-libc/include/avr/iom88.h avr-libc/include/avr/iom88.h
index bca791a..3286413 100644
--- avr-libc/include/avr/iom88.h
+++ avr-libc/include/avr/iom88.h
@@ -89,4 +89,11 @@
 #define SIGNATURE_2 0x0A
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+
+
 #endif /* _AVR_IOM88_H_ */
diff --git avr-libc/include/avr/iom88a.h avr-libc/include/avr/iom88a.h
new file mode 100644
index 0000000..d01dbf4
--- /dev/null
+++ avr-libc/include/avr/iom88a.h
@@ -0,0 +1,35 @@
+/*****************************************************************************
+ *
+ * Copyright (C) 2011 Atmel Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in
+ *   the documentation and/or other materials provided with the
+ *   distribution.
+ *
+ * * Neither the name of the copyright holders nor the names of
+ *   contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ ****************************************************************************/
+
+#include "iom88.h"
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
diff --git avr-libc/include/avr/iom88p.h avr-libc/include/avr/iom88p.h
index 0b0b357..ddc160a 100644
--- avr-libc/include/avr/iom88p.h
+++ avr-libc/include/avr/iom88p.h
@@ -923,4 +923,12 @@
 #define SIGNATURE_2 0x0F
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif  /* _AVR_IOM88P_H_ */
diff --git avr-libc/include/avr/iom88pa.h avr-libc/include/avr/iom88pa.h
index 7e19083..50c17ee 100644
--- avr-libc/include/avr/iom88pa.h
+++ avr-libc/include/avr/iom88pa.h
@@ -1165,5 +1165,13 @@
 #define PCINT18_PIN   PIND
 #define PCINT18_BIT   2
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
 #endif /* _AVR_ATmega88PA_H_ */
 
diff --git avr-libc/include/avr/iom8a.h avr-libc/include/avr/iom8a.h
index e0b1f31..50ace10 100644
--- avr-libc/include/avr/iom8a.h
+++ avr-libc/include/avr/iom8a.h
@@ -560,5 +560,12 @@
 #define SIGNATURE_2 0x07
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<4)
+#define SLEEP_MODE_ADC (0x01<<4)
+#define SLEEP_MODE_PWR_DOWN (0x02<<4)
+#define SLEEP_MODE_PWR_SAVE (0x03<<4)
+#define SLEEP_MODE_STANDBY (0x06<<4)
+
 #endif /* #ifdef _AVR_ATMEGA8A_H_INCLUDED */
 
diff --git avr-libc/include/avr/iom8hva.h avr-libc/include/avr/iom8hva.h
index 329e132..fba48f2 100644
--- avr-libc/include/avr/iom8hva.h
+++ avr-libc/include/avr/iom8hva.h
@@ -67,5 +67,11 @@
 #define __LOCK_BITS_EXIST
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_PWR_OFF (0x04<<1)
+
 #endif /* _AVR_IOM8HVA_H_ */
 
diff --git avr-libc/include/avr/iom8u2.h avr-libc/include/avr/iom8u2.h
index a443ae8..734ea3d 100644
--- avr-libc/include/avr/iom8u2.h
+++ avr-libc/include/avr/iom8u2.h
@@ -979,5 +979,12 @@
 
 
 /* Device Pin Definitions */
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
 #endif /* _AVR_ATmega8U2_H_ */
 
diff --git avr-libc/include/avr/iotn10.h avr-libc/include/avr/iotn10.h
index 34c701c..192ef02 100644
--- avr-libc/include/avr/iotn10.h
+++ avr-libc/include/avr/iotn10.h
@@ -499,5 +499,11 @@
 #define PB3_PIN   PINRESET
 #define PB3_BIT   RESET
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_STANDBY (0x04<<1)
+
 #endif /* _AVR_ATtiny10_H_ */
 
diff --git avr-libc/include/avr/iotn11.h avr-libc/include/avr/iotn11.h
index bc4e570..eb487ed 100644
--- avr-libc/include/avr/iotn11.h
+++ avr-libc/include/avr/iotn11.h
@@ -250,4 +250,8 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+#define SLEEP_MODE_IDLE (0x00<<4)
+#define SLEEP_MODE_PWR_DOWN (0x01<<4)
+
+
 #endif /* _AVR_IOTN11_H_ */
diff --git avr-libc/include/avr/iotn12.h avr-libc/include/avr/iotn12.h
index 69c0e45..b572e78 100644
--- avr-libc/include/avr/iotn12.h
+++ avr-libc/include/avr/iotn12.h
@@ -283,4 +283,8 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+#define SLEEP_MODE_IDLE (0x00<<4)
+#define SLEEP_MODE_PWR_DOWN (0x01<<4)
+
+
 #endif /* _AVR_IOTN12_H_ */
diff --git avr-libc/include/avr/iotn13.h avr-libc/include/avr/iotn13.h
index 61d0184..0c80f66 100644
--- avr-libc/include/avr/iotn13.h
+++ avr-libc/include/avr/iotn13.h
@@ -389,4 +389,9 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+#define SLEEP_MODE_IDLE (0x00<<3)
+#define SLEEP_MODE_ADC (0x01<<3)
+#define SLEEP_MODE_PWR_DOWN (0x02<<3)
+
+
 #endif /* _AVR_IOTN13_H_*/
diff --git avr-libc/include/avr/iotn13a.h avr-libc/include/avr/iotn13a.h
index adfd871..897439c 100644
--- avr-libc/include/avr/iotn13a.h
+++ avr-libc/include/avr/iotn13a.h
@@ -382,5 +382,10 @@
 #define SIGNATURE_2 0x07
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<3)
+#define SLEEP_MODE_ADC (0x01<<3)
+#define SLEEP_MODE_PWR_DOWN (0x02<<3)
+
 #endif /* _AVR_ATTINY13A_H_ */
 
diff --git avr-libc/include/avr/iotn15.h avr-libc/include/avr/iotn15.h
index d05c3a3..f29fa09 100644
--- avr-libc/include/avr/iotn15.h
+++ avr-libc/include/avr/iotn15.h
@@ -357,4 +357,9 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+#define SLEEP_MODE_IDLE (0x00<<3)
+#define SLEEP_MODE_ADC (0x01<<3)
+#define SLEEP_MODE_PWR_DOWN (0x02<<3)
+
+
 #endif /* _AVR_IOTN15_H_ */
diff --git avr-libc/include/avr/iotn1634.h avr-libc/include/avr/iotn1634.h
index d6fdfc5..859b74a 100644
--- avr-libc/include/avr/iotn1634.h
+++ avr-libc/include/avr/iotn1634.h
@@ -853,5 +853,11 @@
 #define SIGNATURE_2 0x12
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<5)
+#define SLEEP_MODE_ADC (0x01<<5)
+#define SLEEP_MODE_PWR_DOWN (0x02<<5)
+#define SLEEP_MODE_STANDBY (0x03<<5)
+
 #endif /* #ifdef _AVR_ATTINY1634_H_INCLUDED */
 
diff --git avr-libc/include/avr/iotn167.h avr-libc/include/avr/iotn167.h
index 867b562..5a3179f 100644
--- avr-libc/include/avr/iotn167.h
+++ avr-libc/include/avr/iotn167.h
@@ -866,4 +866,9 @@
 
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+
+
 #endif  /* _AVR_IOTN167_H_ */
diff --git avr-libc/include/avr/iotn20.h avr-libc/include/avr/iotn20.h
index c0a0831..735ccd6 100644
--- avr-libc/include/avr/iotn20.h
+++ avr-libc/include/avr/iotn20.h
@@ -760,5 +760,11 @@
 #define PCINT5_PIN   PINADC
 #define PCINT5_BIT   ADC5
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_STANDBY (0x04<<1)
+
 #endif /* _AVR_ATtiny20_H_ */
 
diff --git avr-libc/include/avr/iotn22.h avr-libc/include/avr/iotn22.h
index fe9cbdc..da83bc1 100644
--- avr-libc/include/avr/iotn22.h
+++ avr-libc/include/avr/iotn22.h
@@ -216,4 +216,8 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+#define SLEEP_MODE_IDLE (0x00<<4)
+#define SLEEP_MODE_PWR_DOWN (0x01<<4)
+
+
 #endif /* _AVR_IOTN22_H_ */
diff --git avr-libc/include/avr/iotn2313.h avr-libc/include/avr/iotn2313.h
index 46c259b..bc131d9 100644
--- avr-libc/include/avr/iotn2313.h
+++ avr-libc/include/avr/iotn2313.h
@@ -695,4 +695,9 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+#define SLEEP_MODE_IDLE (0x00<<4)
+#define SLEEP_MODE_STANDBY (0x04<<4)
+#define SLEEP_MODE_PWR_DOWN (0x05<<4)
+
+
 #endif  /* _AVR_IOTN2313_H_ */
diff --git avr-libc/include/avr/iotn2313a.h avr-libc/include/avr/iotn2313a.h
index 7890e71..c39034a 100644
--- avr-libc/include/avr/iotn2313a.h
+++ avr-libc/include/avr/iotn2313a.h
@@ -798,5 +798,10 @@
 #define SCL_PIN   PINB
 #define SCL_BIT   7
 
+
+#define SLEEP_MODE_IDLE (0x00<<4)
+#define SLEEP_MODE_STANDBY (0x04<<4)
+#define SLEEP_MODE_PWR_DOWN (0x05<<4)
+
 #endif /* _AVR_ATtiny2313A_H_ */
 
diff --git avr-libc/include/avr/iotn24.h avr-libc/include/avr/iotn24.h
index 4d73118..7c6266b 100644
--- avr-libc/include/avr/iotn24.h
+++ avr-libc/include/avr/iotn24.h
@@ -87,4 +87,10 @@
 #define SIGNATURE_2 0x0B
 
 
+#define SLEEP_MODE_IDLE (0x00<<3)
+#define SLEEP_MODE_ADC (0x01<<3)
+#define SLEEP_MODE_PWR_DOWN (0x02<<3)
+#define SLEEP_MODE_STANDBY (0x03<<3)
+
+
 #endif /* _AVR_IOTN24_H_ */
diff --git avr-libc/include/avr/iotn24a.h avr-libc/include/avr/iotn24a.h
index 3e74750..12d7eaa 100644
--- avr-libc/include/avr/iotn24a.h
+++ avr-libc/include/avr/iotn24a.h
@@ -831,5 +831,11 @@
 #define PCINT5_PIN   PINA
 #define PCINT5_BIT   5
 
+
+#define SLEEP_MODE_IDLE (0x00<<3)
+#define SLEEP_MODE_ADC (0x01<<3)
+#define SLEEP_MODE_PWR_DOWN (0x02<<3)
+#define SLEEP_MODE_STANDBY (0x03<<3)
+
 #endif /* _AVR_ATtiny24A_H_ */
 
diff --git avr-libc/include/avr/iotn25.h avr-libc/include/avr/iotn25.h
index be12aee..212359b 100644
--- avr-libc/include/avr/iotn25.h
+++ avr-libc/include/avr/iotn25.h
@@ -87,4 +87,9 @@
 #define SIGNATURE_2 0x08
 
 
+#define SLEEP_MODE_IDLE (0x00<<3)
+#define SLEEP_MODE_ADC (0x01<<3)
+#define SLEEP_MODE_PWR_DOWN (0x02<<3)
+
+
 #endif /* _AVR_IOTN25_H_ */
diff --git avr-libc/include/avr/iotn26.h avr-libc/include/avr/iotn26.h
index f66c97b..5df1ded 100644
--- avr-libc/include/avr/iotn26.h
+++ avr-libc/include/avr/iotn26.h
@@ -415,4 +415,10 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+#define SLEEP_MODE_IDLE (0x00<<3)
+#define SLEEP_MODE_ADC (0x01<<3)
+#define SLEEP_MODE_PWR_DOWN (0x02<<3)
+#define SLEEP_MODE_STANDBY (0x03<<3)
+
+
 #endif  /* _AVR_IOTN26_H_ */
diff --git avr-libc/include/avr/iotn261.h avr-libc/include/avr/iotn261.h
index a08100d..e7756bc 100644
--- avr-libc/include/avr/iotn261.h
+++ avr-libc/include/avr/iotn261.h
@@ -86,4 +86,10 @@
 #define SIGNATURE_2 0x0C
 
 
+#define SLEEP_MODE_IDLE (0x00<<3)
+#define SLEEP_MODE_ADC (0x01<<3)
+#define SLEEP_MODE_PWR_DOWN (0x02<<3)
+#define SLEEP_MODE_STANDBY (0x03<<3)
+
+
 #endif /* _AVR_IOTN261_H_ */
diff --git avr-libc/include/avr/iotn261a.h avr-libc/include/avr/iotn261a.h
index 23fa2f5..c3f106c 100644
--- avr-libc/include/avr/iotn261a.h
+++ avr-libc/include/avr/iotn261a.h
@@ -972,5 +972,11 @@
 #define PA0_PIN   PINADC
 #define PA0_BIT   ADC0
 
+
+#define SLEEP_MODE_IDLE (0x00<<3)
+#define SLEEP_MODE_ADC (0x01<<3)
+#define SLEEP_MODE_PWR_DOWN (0x02<<3)
+#define SLEEP_MODE_STANDBY (0x03<<3)
+
 #endif /* _AVR_ATtiny261A_H_ */
 
diff --git avr-libc/include/avr/iotn28.h avr-libc/include/avr/iotn28.h
index 3a12d19..3ffc69c 100644
--- avr-libc/include/avr/iotn28.h
+++ avr-libc/include/avr/iotn28.h
@@ -292,4 +292,8 @@
 #endif  /* !defined(__AVR_LIBC_DEPRECATED_ENABLE__) */
 
 
+#define SLEEP_MODE_IDLE (0x00<<4)
+#define SLEEP_MODE_PWR_DOWN (0x01<<4)
+
+
 #endif /* _AVR_IOTN28_H_ */
diff --git avr-libc/include/avr/iotn4.h avr-libc/include/avr/iotn4.h
index 039b974..5a9786f 100644
--- avr-libc/include/avr/iotn4.h
+++ avr-libc/include/avr/iotn4.h
@@ -464,5 +464,11 @@
 #define PB3_PIN   PINRESET
 #define PB3_BIT   RESET
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_STANDBY (0x04<<1)
+
 #endif /* _AVR_ATtiny4_H_ */
 
diff --git avr-libc/include/avr/iotn40.h avr-libc/include/avr/iotn40.h
index a07f194..16c3bc8 100644
--- avr-libc/include/avr/iotn40.h
+++ avr-libc/include/avr/iotn40.h
@@ -751,5 +751,11 @@
 #define PCINT7_PIN   PINADC
 #define PCINT7_BIT   ADC7
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_STANDBY (0x04<<1)
+
 #endif /* _AVR_ATtiny40_H_ */
 
diff --git avr-libc/include/avr/iotn4313.h avr-libc/include/avr/iotn4313.h
index 0a6f425..3d6e83e 100644
--- avr-libc/include/avr/iotn4313.h
+++ avr-libc/include/avr/iotn4313.h
@@ -798,5 +798,10 @@
 #define SCL_PIN   PINB
 #define SCL_BIT   7
 
+
+#define SLEEP_MODE_IDLE (0x00<<4)
+#define SLEEP_MODE_STANDBY (0x04<<4)
+#define SLEEP_MODE_PWR_DOWN (0x05<<4)
+
 #endif /* _AVR_ATtiny4313_H_ */
 
diff --git avr-libc/include/avr/iotn43u.h avr-libc/include/avr/iotn43u.h
index a6bc279..24c1a49 100644
--- avr-libc/include/avr/iotn43u.h
+++ avr-libc/include/avr/iotn43u.h
@@ -591,4 +591,10 @@
 #define SIGNATURE_2 0x0C
 
 
+#define SLEEP_MODE_IDLE (0x00<<3)
+#define SLEEP_MODE_ADC (0x01<<3)
+#define SLEEP_MODE_PWR_DOWN (0x02<<3)
+#define SLEEP_MODE_STANDBY (0x03<<3)
+
+
 #endif /* _AVR_IOTN43U_H_ */
diff --git avr-libc/include/avr/iotn44.h avr-libc/include/avr/iotn44.h
index 9431025..8f5e0a9 100644
--- avr-libc/include/avr/iotn44.h
+++ avr-libc/include/avr/iotn44.h
@@ -87,4 +87,10 @@
 #define SIGNATURE_2 0x07
 
 
+#define SLEEP_MODE_IDLE (0x00<<3)
+#define SLEEP_MODE_ADC (0x01<<3)
+#define SLEEP_MODE_PWR_DOWN (0x02<<3)
+#define SLEEP_MODE_STANDBY (0x03<<3)
+
+
 #endif /* _AVR_IOTN44_H_ */
diff --git avr-libc/include/avr/iotn44a.h avr-libc/include/avr/iotn44a.h
index b0a2b63..e6f1562 100644
--- avr-libc/include/avr/iotn44a.h
+++ avr-libc/include/avr/iotn44a.h
@@ -829,5 +829,11 @@
 #define PCINT5_PIN   PINA
 #define PCINT5_BIT   5
 
+
+#define SLEEP_MODE_IDLE (0x00<<3)
+#define SLEEP_MODE_ADC (0x01<<3)
+#define SLEEP_MODE_PWR_DOWN (0x02<<3)
+#define SLEEP_MODE_STANDBY (0x03<<3)
+
 #endif /* _AVR_ATtiny44A_H_ */
 
diff --git avr-libc/include/avr/iotn45.h avr-libc/include/avr/iotn45.h
index 63a33e9..38ab526 100644
--- avr-libc/include/avr/iotn45.h
+++ avr-libc/include/avr/iotn45.h
@@ -87,4 +87,9 @@
 #define SIGNATURE_2 0x06
 
 
+#define SLEEP_MODE_IDLE (0x00<<3)
+#define SLEEP_MODE_ADC (0x01<<3)
+#define SLEEP_MODE_PWR_DOWN (0x02<<3)
+
+
 #endif /* _AVR_IOTN45_H_ */
diff --git avr-libc/include/avr/iotn461.h avr-libc/include/avr/iotn461.h
index 6e64c71..6727195 100644
--- avr-libc/include/avr/iotn461.h
+++ avr-libc/include/avr/iotn461.h
@@ -87,4 +87,10 @@
 #define SIGNATURE_2 0x08
 
 
+#define SLEEP_MODE_IDLE (0x00<<3)
+#define SLEEP_MODE_ADC (0x01<<3)
+#define SLEEP_MODE_PWR_DOWN (0x02<<3)
+#define SLEEP_MODE_STANDBY (0x03<<3)
+
+
 #endif /* _AVR_IOTN461_H_ */
diff --git avr-libc/include/avr/iotn461a.h avr-libc/include/avr/iotn461a.h
index afae35c..533965f 100644
--- avr-libc/include/avr/iotn461a.h
+++ avr-libc/include/avr/iotn461a.h
@@ -972,5 +972,11 @@
 #define PA0_PIN   PINADC
 #define PA0_BIT   ADC0
 
+
+#define SLEEP_MODE_IDLE (0x00<<3)
+#define SLEEP_MODE_ADC (0x01<<3)
+#define SLEEP_MODE_PWR_DOWN (0x02<<3)
+#define SLEEP_MODE_STANDBY (0x03<<3)
+
 #endif /* _AVR_ATtiny461A_H_ */
 
diff --git avr-libc/include/avr/iotn48.h avr-libc/include/avr/iotn48.h
index 3163d2a..769e654 100644
--- avr-libc/include/avr/iotn48.h
+++ avr-libc/include/avr/iotn48.h
@@ -792,4 +792,10 @@
 #define SIGNATURE_2 0x09
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+
+
 #endif /* _AVR_IOTN48_H_ */
diff --git avr-libc/include/avr/iotn5.h avr-libc/include/avr/iotn5.h
index b8df24f..b2a1c70 100644
--- avr-libc/include/avr/iotn5.h
+++ avr-libc/include/avr/iotn5.h
@@ -499,5 +499,11 @@
 #define PB3_PIN   PINRESET
 #define PB3_BIT   RESET
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_STANDBY (0x04<<1)
+
 #endif /* _AVR_ATtiny5_H_ */
 
diff --git avr-libc/include/avr/iotn828.h avr-libc/include/avr/iotn828.h
index 661c5a2..1932758 100644
--- avr-libc/include/avr/iotn828.h
+++ avr-libc/include/avr/iotn828.h
@@ -830,5 +830,10 @@
 #define SIGNATURE_2 0x14
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+
 #endif /* #ifdef _AVR_ATTINY828_H_INCLUDED */
 
diff --git avr-libc/include/avr/iotn84.h avr-libc/include/avr/iotn84.h
index d554bf6..cf89d2c 100644
--- avr-libc/include/avr/iotn84.h
+++ avr-libc/include/avr/iotn84.h
@@ -87,4 +87,10 @@
 #define SIGNATURE_2 0x0C
 
 
+#define SLEEP_MODE_IDLE (0x00<<3)
+#define SLEEP_MODE_ADC (0x01<<3)
+#define SLEEP_MODE_PWR_DOWN (0x02<<3)
+#define SLEEP_MODE_STANDBY (0x03<<3)
+
+
 #endif /* _AVR_IOTN84_H_ */
diff --git avr-libc/include/avr/iotn84a.h avr-libc/include/avr/iotn84a.h
index 9653b91..ba6dfc6 100755
--- avr-libc/include/avr/iotn84a.h
+++ avr-libc/include/avr/iotn84a.h
@@ -829,5 +829,11 @@
 #define PCINT5_PIN   PINA
 #define PCINT5_BIT   5
 
+
+#define SLEEP_MODE_IDLE (0x00<<3)
+#define SLEEP_MODE_ADC (0x01<<3)
+#define SLEEP_MODE_PWR_DOWN (0x02<<3)
+#define SLEEP_MODE_STANDBY (0x03<<3)
+
 #endif /* _AVR_ATtiny84A_H_ */
 
diff --git avr-libc/include/avr/iotn85.h avr-libc/include/avr/iotn85.h
index b4b2a4d..e66fd92 100644
--- avr-libc/include/avr/iotn85.h
+++ avr-libc/include/avr/iotn85.h
@@ -87,4 +87,9 @@
 #define SIGNATURE_2 0x0B
 
 
+#define SLEEP_MODE_IDLE (0x00<<3)
+#define SLEEP_MODE_ADC (0x01<<3)
+#define SLEEP_MODE_PWR_DOWN (0x02<<3)
+
+
 #endif /* _AVR_IOTN85_H_ */
diff --git avr-libc/include/avr/iotn861.h avr-libc/include/avr/iotn861.h
index ab04147..3322dd1 100644
--- avr-libc/include/avr/iotn861.h
+++ avr-libc/include/avr/iotn861.h
@@ -87,4 +87,10 @@
 #define SIGNATURE_2 0x0D
 
 
+#define SLEEP_MODE_IDLE (0x00<<3)
+#define SLEEP_MODE_ADC (0x01<<3)
+#define SLEEP_MODE_PWR_DOWN (0x02<<3)
+#define SLEEP_MODE_STANDBY (0x03<<3)
+
+
 #endif /* _AVR_IOTN861_H_ */
diff --git avr-libc/include/avr/iotn861a.h avr-libc/include/avr/iotn861a.h
index 9d12327..d4f8e6d 100644
--- avr-libc/include/avr/iotn861a.h
+++ avr-libc/include/avr/iotn861a.h
@@ -972,5 +972,11 @@
 #define PA0_PIN   PINADC
 #define PA0_BIT   ADC0
 
+
+#define SLEEP_MODE_IDLE (0x00<<3)
+#define SLEEP_MODE_ADC (0x01<<3)
+#define SLEEP_MODE_PWR_DOWN (0x02<<3)
+#define SLEEP_MODE_STANDBY (0x03<<3)
+
 #endif /* _AVR_ATtiny861A_H_ */
 
diff --git avr-libc/include/avr/iotn87.h avr-libc/include/avr/iotn87.h
index 65648b1..e7a1d8a 100644
--- avr-libc/include/avr/iotn87.h
+++ avr-libc/include/avr/iotn87.h
@@ -843,5 +843,10 @@
 #define SIGNATURE_2 0x87
 
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+
 #endif /* _AVR_ATtiny87_H_ */
 
diff --git avr-libc/include/avr/iotn88.h avr-libc/include/avr/iotn88.h
index 209b727..7548ea2 100644
--- avr-libc/include/avr/iotn88.h
+++ avr-libc/include/avr/iotn88.h
@@ -792,4 +792,10 @@
 #define SIGNATURE_2 0x11
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+
+
 #endif /* _AVR_IOTN88_H_ */
diff --git avr-libc/include/avr/iotn9.h avr-libc/include/avr/iotn9.h
index 8f35078..bf80a3a 100644
--- avr-libc/include/avr/iotn9.h
+++ avr-libc/include/avr/iotn9.h
@@ -464,5 +464,11 @@
 #define PB3_PIN   PINRESET
 #define PB3_BIT   RESET
 
+
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_STANDBY (0x04<<1)
+
 #endif /* _AVR_ATtiny9_H_ */
 
diff --git avr-libc/include/avr/iousb1286.h avr-libc/include/avr/iousb1286.h
index 853ce19..d1fb780 100644
--- avr-libc/include/avr/iousb1286.h
+++ avr-libc/include/avr/iousb1286.h
@@ -92,4 +92,12 @@
 #define SIGNATURE_2 0x82
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_AT90USB1286_H_ */
diff --git avr-libc/include/avr/iousb1287.h avr-libc/include/avr/iousb1287.h
index 9fd39e0..8a10b38 100644
--- avr-libc/include/avr/iousb1287.h
+++ avr-libc/include/avr/iousb1287.h
@@ -92,4 +92,12 @@
 #define SIGNATURE_2 0x82
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_AT90USB1287_H_ */
diff --git avr-libc/include/avr/iousb162.h avr-libc/include/avr/iousb162.h
index 174a125..e774f95 100644
--- avr-libc/include/avr/iousb162.h
+++ avr-libc/include/avr/iousb162.h
@@ -93,4 +93,11 @@
 #define SIGNATURE_2 0x82
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_AT90USB162_H_ */
diff --git avr-libc/include/avr/iousb646.h avr-libc/include/avr/iousb646.h
index 71eb51e..54978fd 100644
--- avr-libc/include/avr/iousb646.h
+++ avr-libc/include/avr/iousb646.h
@@ -93,4 +93,12 @@
 #define SIGNATURE_2 0x82
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_AT90USB646_H_ */
diff --git avr-libc/include/avr/iousb647.h avr-libc/include/avr/iousb647.h
index 8e87641..1a6ba4d 100644
--- avr-libc/include/avr/iousb647.h
+++ avr-libc/include/avr/iousb647.h
@@ -93,4 +93,12 @@
 #define SIGNATURE_2 0x82
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_ADC (0x01<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_AT90USB647_H_ */
diff --git avr-libc/include/avr/iousb82.h avr-libc/include/avr/iousb82.h
index 03da249..c6e826f 100644
--- avr-libc/include/avr/iousb82.h
+++ avr-libc/include/avr/iousb82.h
@@ -87,4 +87,11 @@
 #define __BOOT_LOCK_BITS_1_EXIST 
 
 
+#define SLEEP_MODE_IDLE (0x00<<1)
+#define SLEEP_MODE_PWR_DOWN (0x02<<1)
+#define SLEEP_MODE_PWR_SAVE (0x03<<1)
+#define SLEEP_MODE_STANDBY (0x06<<1)
+#define SLEEP_MODE_EXT_STANDBY (0x07<<1)
+
+
 #endif /* _AVR_AT90USB82_H_ */



reply via email to

[Prev in Thread] Current Thread [Next in Thread]