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

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

[avr-libc-commit] [2406] bug #39783: add CRC definitions and update PR d


From: Pitchumani
Subject: [avr-libc-commit] [2406] bug #39783: add CRC definitions and update PR definitions for xmega 64/128/ 192 and 256 d3 devices
Date: Mon, 17 Mar 2014 13:33:36 +0000

Revision: 2406
          http://svn.sv.gnu.org/viewvc/?view=rev&root=avr-libc&revision=2406
Author:   pitchumani
Date:     2014-03-17 13:33:35 +0000 (Mon, 17 Mar 2014)
Log Message:
-----------
bug #39783: add CRC definitions and update PR definitions for xmega 64/128/192 
and 256 d3 devices

Ticket Links:
------------
    http://savannah.gnu.org/bugs/?39783

Modified Paths:
--------------
    trunk/avr-libc/include/avr/iox128d3.h
    trunk/avr-libc/include/avr/iox192d3.h
    trunk/avr-libc/include/avr/iox256d3.h
    trunk/avr-libc/include/avr/iox64d3.h
    trunk/avr-libc/include/avr/power.h

Added Paths:
-----------
    trunk/avr-libc/ChangeLog

Added: trunk/avr-libc/ChangeLog
===================================================================
--- trunk/avr-libc/ChangeLog                            (rev 0)
+++ trunk/avr-libc/ChangeLog    2014-03-17 13:33:35 UTC (rev 2406)
@@ -0,0 +1,12 @@
+2014-03-17  Pitchumani Sivanupandi <address@hidden> 
+
+       * include/avr/iox64d3.h (PR_struct): Remove PRPB.
+       (CRC_struct): Add CRC definitions.
+       Remove incorrect PR definitions.
+       * include/avr/iox128d3.h: Same.
+       * include/avr/iox192d3.h: Same.
+       * include/avr/iox256d3.h (PR_struct): Add power reduction definitions.
+       (CRC_struct): Add CRC definitions.
+       Add PR and CRC macro definitions.
+       * include/avr/power.h: Add power reduction macro docs and update power
+       reduction macro definitions for xmega64/128/192/256 D3 devices.

Modified: trunk/avr-libc/include/avr/iox128d3.h
===================================================================
--- trunk/avr-libc/include/avr/iox128d3.h       2014-03-17 11:46:39 UTC (rev 
2405)
+++ trunk/avr-libc/include/avr/iox128d3.h       2014-03-17 13:33:35 UTC (rev 
2406)
@@ -174,7 +174,7 @@
 {
     register8_t PRGEN;  /* General Power Reduction */
     register8_t PRPA;  /* Power Reduction Port A */
-    register8_t PRPB;  /* Power Reduction Port B */
+    register8_t reserved_0x02;
     register8_t PRPC;  /* Power Reduction Port C */
     register8_t PRPD;  /* Power Reduction Port D */
     register8_t PRPE;  /* Power Reduction Port E */
@@ -416,6 +416,46 @@
 
 /*
 --------------------------------------------------------------------------
+CRC - Cyclic Redundancy Checker
+--------------------------------------------------------------------------
+*/
+
+/* Cyclic Redundancy Checker */
+typedef struct CRC_struct
+{
+    register8_t CTRL;  /* Control Register */
+    register8_t STATUS;  /* Status Register */
+    register8_t reserved_0x02;
+    register8_t DATAIN;  /* Data Input */
+    register8_t CHECKSUM0;  /* Checksum byte 0 */
+    register8_t CHECKSUM1;  /* Checksum byte 1 */
+    register8_t CHECKSUM2;  /* Checksum byte 2 */
+    register8_t CHECKSUM3;  /* Checksum byte 3 */
+} CRC_t;
+
+/* Reset */
+typedef enum CRC_RESET_enum
+{
+    CRC_RESET_NO_gc = (0x00<<6),  /* No Reset */
+    CRC_RESET_RESET0_gc = (0x02<<6),  /* Reset CRC with CHECKSUM to all zeros 
*/
+    CRC_RESET_RESET1_gc = (0x03<<6),  /* Reset CRC with CHECKSUM to all ones */
+} CRC_RESET_t;
+
+/* Input Source */
+typedef enum CRC_SOURCE_enum
+{
+    CRC_SOURCE_DISABLE_gc = (0x00<<0),  /* Disabled */
+    CRC_SOURCE_IO_gc = (0x01<<0),  /* I/O Interface */
+    CRC_SOURCE_FLASH_gc = (0x02<<0),  /* Flash */
+    CRC_SOURCE_DMAC0_gc = (0x04<<0),  /* DMAC Channel 0 */
+    CRC_SOURCE_DMAC1_gc = (0x05<<0),  /* DMAC Channel 1 */
+    CRC_SOURCE_DMAC2_gc = (0x06<<0),  /* DMAC Channel 2 */
+    CRC_SOURCE_DMAC3_gc = (0x07<<0),  /* DMAC Channel 3 */
+} CRC_SOURCE_t;
+
+
+/*
+--------------------------------------------------------------------------
 EVSYS - Event System
 --------------------------------------------------------------------------
 */
@@ -2180,6 +2220,7 @@
 #define MCU    (*(MCU_t *) 0x0090)  /* MCU Control */
 #define PMIC    (*(PMIC_t *) 0x00A0)  /* Programmable Interrupt Controller */
 #define PORTCFG    (*(PORTCFG_t *) 0x00B0)  /* Port Configuration */
+#define CRC    (*(CRC_t *) 0x00D0)  /* Cyclic Redundancy Checker */
 #define EVSYS    (*(EVSYS_t *) 0x0180)  /* Event System */
 #define NVM    (*(NVM_t *) 0x01C0)  /* Non Volatile Memory Controller */
 #define ADCA    (*(ADC_t *) 0x0200)  /* Analog to Digital Converter A */
@@ -2309,7 +2350,6 @@
 /* PR - Power Reduction */
 #define PR_PRGEN  _SFR_MEM8(0x0070)
 #define PR_PRPA  _SFR_MEM8(0x0071)
-#define PR_PRPB  _SFR_MEM8(0x0072)
 #define PR_PRPC  _SFR_MEM8(0x0073)
 #define PR_PRPD  _SFR_MEM8(0x0074)
 #define PR_PRPE  _SFR_MEM8(0x0075)
@@ -2345,6 +2385,15 @@
 #define PORTCFG_VPCTRLB  _SFR_MEM8(0x00B3)
 #define PORTCFG_CLKEVOUT  _SFR_MEM8(0x00B4)
 
+/* CRC - Cyclic Redundancy Checker */
+#define CRC_CTRL  _SFR_MEM8(0x00D0)
+#define CRC_STATUS  _SFR_MEM8(0x00D1)
+#define CRC_DATAIN  _SFR_MEM8(0x00D3)
+#define CRC_CHECKSUM0  _SFR_MEM8(0x00D4)
+#define CRC_CHECKSUM1  _SFR_MEM8(0x00D5)
+#define CRC_CHECKSUM2  _SFR_MEM8(0x00D6)
+#define CRC_CHECKSUM3  _SFR_MEM8(0x00D7)
+
 /* EVSYS - Event System */
 #define EVSYS_CH0MUX  _SFR_MEM8(0x0180)
 #define EVSYS_CH1MUX  _SFR_MEM8(0x0181)
@@ -2901,59 +2950,31 @@
 
 
 /* PR.PRGEN  bit masks and bit positions */
-#define PR_AES_bm  0x10  /* AES bit mask. */
-#define PR_AES_bp  4  /* AES bit position. */
-
-#define PR_EBI_bm  0x08  /* External Bus Interface bit mask. */
-#define PR_EBI_bp  3  /* External Bus Interface bit position. */
-
 #define PR_RTC_bm  0x04  /* Real-time Counter bit mask. */
 #define PR_RTC_bp  2  /* Real-time Counter bit position. */
 
 #define PR_EVSYS_bm  0x02  /* Event System bit mask. */
 #define PR_EVSYS_bp  1  /* Event System bit position. */
 
-#define PR_DMA_bm  0x01  /* DMA-Controller bit mask. */
-#define PR_DMA_bp  0  /* DMA-Controller bit position. */
-
-
 /* PR.PRPA  bit masks and bit positions */
-#define PR_DAC_bm  0x04  /* Port A DAC bit mask. */
-#define PR_DAC_bp  2  /* Port A DAC bit position. */
-
 #define PR_ADC_bm  0x02  /* Port A ADC bit mask. */
 #define PR_ADC_bp  1  /* Port A ADC bit position. */
 
 #define PR_AC_bm  0x01  /* Port A Analog Comparator bit mask. */
 #define PR_AC_bp  0  /* Port A Analog Comparator bit position. */
 
-
-/* PR.PRPB  bit masks and bit positions */
-/* PR_DAC_bm  Predefined. */
-/* PR_DAC_bp  Predefined. */
-
-/* PR_ADC_bm  Predefined. */
-/* PR_ADC_bp  Predefined. */
-
-/* PR_AC_bm  Predefined. */
-/* PR_AC_bp  Predefined. */
-
-
 /* PR.PRPC  bit masks and bit positions */
 #define PR_TWI_bm  0x40  /* Port C Two-wire Interface bit mask. */
 #define PR_TWI_bp  6  /* Port C Two-wire Interface bit position. */
 
-#define PR_USART1_bm  0x20  /* Port C USART1 bit mask. */
-#define PR_USART1_bp  5  /* Port C USART1 bit position. */
-
 #define PR_USART0_bm  0x10  /* Port C USART0 bit mask. */
 #define PR_USART0_bp  4  /* Port C USART0 bit position. */
 
 #define PR_SPI_bm  0x08  /* Port C SPI bit mask. */
 #define PR_SPI_bp  3  /* Port C SPI bit position. */
 
-#define PR_HIRES_bm  0x04  /* Port C AWEX bit mask. */
-#define PR_HIRES_bp  2  /* Port C AWEX bit position. */
+#define PR_HIRES_bm  0x04  /* Port C HIRES bit mask. */
+#define PR_HIRES_bp  2  /* Port C HIRES bit position. */
 
 #define PR_TC1_bm  0x02  /* Port C Timer/Counter1 bit mask. */
 #define PR_TC1_bp  1  /* Port C Timer/Counter1 bit position. */
@@ -2961,76 +2982,33 @@
 #define PR_TC0_bm  0x01  /* Port C Timer/Counter0 bit mask. */
 #define PR_TC0_bp  0  /* Port C Timer/Counter0 bit position. */
 
-
 /* PR.PRPD  bit masks and bit positions */
-/* PR_TWI_bm  Predefined. */
-/* PR_TWI_bp  Predefined. */
-
-/* PR_USART1_bm  Predefined. */
-/* PR_USART1_bp  Predefined. */
-
 /* PR_USART0_bm  Predefined. */
 /* PR_USART0_bp  Predefined. */
 
 /* PR_SPI_bm  Predefined. */
 /* PR_SPI_bp  Predefined. */
 
-/* PR_HIRES_bm  Predefined. */
-/* PR_HIRES_bp  Predefined. */
-
-/* PR_TC1_bm  Predefined. */
-/* PR_TC1_bp  Predefined. */
-
 /* PR_TC0_bm  Predefined. */
 /* PR_TC0_bp  Predefined. */
 
-
 /* PR.PRPE  bit masks and bit positions */
 /* PR_TWI_bm  Predefined. */
 /* PR_TWI_bp  Predefined. */
 
-/* PR_USART1_bm  Predefined. */
-/* PR_USART1_bp  Predefined. */
-
 /* PR_USART0_bm  Predefined. */
 /* PR_USART0_bp  Predefined. */
 
-/* PR_SPI_bm  Predefined. */
-/* PR_SPI_bp  Predefined. */
-
-/* PR_HIRES_bm  Predefined. */
-/* PR_HIRES_bp  Predefined. */
-
-/* PR_TC1_bm  Predefined. */
-/* PR_TC1_bp  Predefined. */
-
 /* PR_TC0_bm  Predefined. */
 /* PR_TC0_bp  Predefined. */
 
-
 /* PR.PRPF  bit masks and bit positions */
-/* PR_TWI_bm  Predefined. */
-/* PR_TWI_bp  Predefined. */
-
-/* PR_USART1_bm  Predefined. */
-/* PR_USART1_bp  Predefined. */
-
 /* PR_USART0_bm  Predefined. */
 /* PR_USART0_bp  Predefined. */
 
-/* PR_SPI_bm  Predefined. */
-/* PR_SPI_bp  Predefined. */
-
-/* PR_HIRES_bm  Predefined. */
-/* PR_HIRES_bp  Predefined. */
-
-/* PR_TC1_bm  Predefined. */
-/* PR_TC1_bp  Predefined. */
-
 /* PR_TC0_bm  Predefined. */
 /* PR_TC0_bp  Predefined. */
 
-
 /* SLEEP - Sleep Controller */
 /* SLEEP.CTRL  bit masks and bit positions */
 #define SLEEP_SMODE_gm  0x0E  /* Sleep Mode group mask. */
@@ -3311,6 +3289,37 @@
 #define PMIC_LOLVLEN_bp  0  /* Low Level Enable bit position. */
 
 
+/* CRC - Cyclic Redundancy Checker */
+/* CRC.CTRL  bit masks and bit positions */
+#define CRC_RESET_gm  0xC0  /* Reset group mask. */
+#define CRC_RESET_gp  6  /* Reset group position. */
+#define CRC_RESET0_bm  (1<<6)  /* Reset bit 0 mask. */
+#define CRC_RESET0_bp  6  /* Reset bit 0 position. */
+#define CRC_RESET1_bm  (1<<7)  /* Reset bit 1 mask. */
+#define CRC_RESET1_bp  7  /* Reset bit 1 position. */
+
+#define CRC_CRC32_bm  0x20  /* CRC Mode bit mask. */
+#define CRC_CRC32_bp  5  /* CRC Mode bit position. */
+
+#define CRC_SOURCE_gm  0x0F  /* Input Source group mask. */
+#define CRC_SOURCE_gp  0  /* Input Source group position. */
+#define CRC_SOURCE0_bm  (1<<0)  /* Input Source bit 0 mask. */
+#define CRC_SOURCE0_bp  0  /* Input Source bit 0 position. */
+#define CRC_SOURCE1_bm  (1<<1)  /* Input Source bit 1 mask. */
+#define CRC_SOURCE1_bp  1  /* Input Source bit 1 position. */
+#define CRC_SOURCE2_bm  (1<<2)  /* Input Source bit 2 mask. */
+#define CRC_SOURCE2_bp  2  /* Input Source bit 2 position. */
+#define CRC_SOURCE3_bm  (1<<3)  /* Input Source bit 3 mask. */
+#define CRC_SOURCE3_bp  3  /* Input Source bit 3 position. */
+
+/* CRC.STATUS  bit masks and bit positions */
+#define CRC_ZERO_bm  0x02  /* Zero detection bit mask. */
+#define CRC_ZERO_bp  1  /* Zero detection bit position. */
+
+#define CRC_BUSY_bm  0x01  /* Busy bit mask. */
+#define CRC_BUSY_bp  0  /* Busy bit position. */
+
+
 /* EVSYS - Event System */
 /* EVSYS.CH0MUX  bit masks and bit positions */
 #define EVSYS_CHMUX_gm  0xFF  /* Event Channel 0 Multiplexer group mask. */

Modified: trunk/avr-libc/include/avr/iox192d3.h
===================================================================
--- trunk/avr-libc/include/avr/iox192d3.h       2014-03-17 11:46:39 UTC (rev 
2405)
+++ trunk/avr-libc/include/avr/iox192d3.h       2014-03-17 13:33:35 UTC (rev 
2406)
@@ -174,7 +174,7 @@
 {
     register8_t PRGEN;  /* General Power Reduction */
     register8_t PRPA;  /* Power Reduction Port A */
-    register8_t PRPB;  /* Power Reduction Port B */
+    register8_t reserved_0x02;
     register8_t PRPC;  /* Power Reduction Port C */
     register8_t PRPD;  /* Power Reduction Port D */
     register8_t PRPE;  /* Power Reduction Port E */
@@ -416,6 +416,46 @@
 
 /*
 --------------------------------------------------------------------------
+CRC - Cyclic Redundancy Checker
+--------------------------------------------------------------------------
+*/
+
+/* Cyclic Redundancy Checker */
+typedef struct CRC_struct
+{
+    register8_t CTRL;  /* Control Register */
+    register8_t STATUS;  /* Status Register */
+    register8_t reserved_0x02;
+    register8_t DATAIN;  /* Data Input */
+    register8_t CHECKSUM0;  /* Checksum byte 0 */
+    register8_t CHECKSUM1;  /* Checksum byte 1 */
+    register8_t CHECKSUM2;  /* Checksum byte 2 */
+    register8_t CHECKSUM3;  /* Checksum byte 3 */
+} CRC_t;
+
+/* Reset */
+typedef enum CRC_RESET_enum
+{
+    CRC_RESET_NO_gc = (0x00<<6),  /* No Reset */
+    CRC_RESET_RESET0_gc = (0x02<<6),  /* Reset CRC with CHECKSUM to all zeros 
*/
+    CRC_RESET_RESET1_gc = (0x03<<6),  /* Reset CRC with CHECKSUM to all ones */
+} CRC_RESET_t;
+
+/* Input Source */
+typedef enum CRC_SOURCE_enum
+{
+    CRC_SOURCE_DISABLE_gc = (0x00<<0),  /* Disabled */
+    CRC_SOURCE_IO_gc = (0x01<<0),  /* I/O Interface */
+    CRC_SOURCE_FLASH_gc = (0x02<<0),  /* Flash */
+    CRC_SOURCE_DMAC0_gc = (0x04<<0),  /* DMAC Channel 0 */
+    CRC_SOURCE_DMAC1_gc = (0x05<<0),  /* DMAC Channel 1 */
+    CRC_SOURCE_DMAC2_gc = (0x06<<0),  /* DMAC Channel 2 */
+    CRC_SOURCE_DMAC3_gc = (0x07<<0),  /* DMAC Channel 3 */
+} CRC_SOURCE_t;
+
+
+/*
+--------------------------------------------------------------------------
 EVSYS - Event System
 --------------------------------------------------------------------------
 */
@@ -2180,6 +2220,7 @@
 #define MCU    (*(MCU_t *) 0x0090)  /* MCU Control */
 #define PMIC    (*(PMIC_t *) 0x00A0)  /* Programmable Interrupt Controller */
 #define PORTCFG    (*(PORTCFG_t *) 0x00B0)  /* Port Configuration */
+#define CRC    (*(CRC_t *) 0x00D0)  /* Cyclic Redundancy Checker */
 #define EVSYS    (*(EVSYS_t *) 0x0180)  /* Event System */
 #define NVM    (*(NVM_t *) 0x01C0)  /* Non Volatile Memory Controller */
 #define ADCA    (*(ADC_t *) 0x0200)  /* Analog to Digital Converter A */
@@ -2309,7 +2350,6 @@
 /* PR - Power Reduction */
 #define PR_PRGEN  _SFR_MEM8(0x0070)
 #define PR_PRPA  _SFR_MEM8(0x0071)
-#define PR_PRPB  _SFR_MEM8(0x0072)
 #define PR_PRPC  _SFR_MEM8(0x0073)
 #define PR_PRPD  _SFR_MEM8(0x0074)
 #define PR_PRPE  _SFR_MEM8(0x0075)
@@ -2345,6 +2385,15 @@
 #define PORTCFG_VPCTRLB  _SFR_MEM8(0x00B3)
 #define PORTCFG_CLKEVOUT  _SFR_MEM8(0x00B4)
 
+/* CRC - Cyclic Redundancy Checker */
+#define CRC_CTRL  _SFR_MEM8(0x00D0)
+#define CRC_STATUS  _SFR_MEM8(0x00D1)
+#define CRC_DATAIN  _SFR_MEM8(0x00D3)
+#define CRC_CHECKSUM0  _SFR_MEM8(0x00D4)
+#define CRC_CHECKSUM1  _SFR_MEM8(0x00D5)
+#define CRC_CHECKSUM2  _SFR_MEM8(0x00D6)
+#define CRC_CHECKSUM3  _SFR_MEM8(0x00D7)
+
 /* EVSYS - Event System */
 #define EVSYS_CH0MUX  _SFR_MEM8(0x0180)
 #define EVSYS_CH1MUX  _SFR_MEM8(0x0181)
@@ -2901,59 +2950,31 @@
 
 
 /* PR.PRGEN  bit masks and bit positions */
-#define PR_AES_bm  0x10  /* AES bit mask. */
-#define PR_AES_bp  4  /* AES bit position. */
-
-#define PR_EBI_bm  0x08  /* External Bus Interface bit mask. */
-#define PR_EBI_bp  3  /* External Bus Interface bit position. */
-
 #define PR_RTC_bm  0x04  /* Real-time Counter bit mask. */
 #define PR_RTC_bp  2  /* Real-time Counter bit position. */
 
 #define PR_EVSYS_bm  0x02  /* Event System bit mask. */
 #define PR_EVSYS_bp  1  /* Event System bit position. */
 
-#define PR_DMA_bm  0x01  /* DMA-Controller bit mask. */
-#define PR_DMA_bp  0  /* DMA-Controller bit position. */
-
-
 /* PR.PRPA  bit masks and bit positions */
-#define PR_DAC_bm  0x04  /* Port A DAC bit mask. */
-#define PR_DAC_bp  2  /* Port A DAC bit position. */
-
 #define PR_ADC_bm  0x02  /* Port A ADC bit mask. */
 #define PR_ADC_bp  1  /* Port A ADC bit position. */
 
 #define PR_AC_bm  0x01  /* Port A Analog Comparator bit mask. */
 #define PR_AC_bp  0  /* Port A Analog Comparator bit position. */
 
-
-/* PR.PRPB  bit masks and bit positions */
-/* PR_DAC_bm  Predefined. */
-/* PR_DAC_bp  Predefined. */
-
-/* PR_ADC_bm  Predefined. */
-/* PR_ADC_bp  Predefined. */
-
-/* PR_AC_bm  Predefined. */
-/* PR_AC_bp  Predefined. */
-
-
 /* PR.PRPC  bit masks and bit positions */
 #define PR_TWI_bm  0x40  /* Port C Two-wire Interface bit mask. */
 #define PR_TWI_bp  6  /* Port C Two-wire Interface bit position. */
 
-#define PR_USART1_bm  0x20  /* Port C USART1 bit mask. */
-#define PR_USART1_bp  5  /* Port C USART1 bit position. */
-
 #define PR_USART0_bm  0x10  /* Port C USART0 bit mask. */
 #define PR_USART0_bp  4  /* Port C USART0 bit position. */
 
 #define PR_SPI_bm  0x08  /* Port C SPI bit mask. */
 #define PR_SPI_bp  3  /* Port C SPI bit position. */
 
-#define PR_HIRES_bm  0x04  /* Port C AWEX bit mask. */
-#define PR_HIRES_bp  2  /* Port C AWEX bit position. */
+#define PR_HIRES_bm  0x04  /* Port C HIRES bit mask. */
+#define PR_HIRES_bp  2  /* Port C HIRES bit position. */
 
 #define PR_TC1_bm  0x02  /* Port C Timer/Counter1 bit mask. */
 #define PR_TC1_bp  1  /* Port C Timer/Counter1 bit position. */
@@ -2961,76 +2982,33 @@
 #define PR_TC0_bm  0x01  /* Port C Timer/Counter0 bit mask. */
 #define PR_TC0_bp  0  /* Port C Timer/Counter0 bit position. */
 
-
 /* PR.PRPD  bit masks and bit positions */
-/* PR_TWI_bm  Predefined. */
-/* PR_TWI_bp  Predefined. */
-
-/* PR_USART1_bm  Predefined. */
-/* PR_USART1_bp  Predefined. */
-
 /* PR_USART0_bm  Predefined. */
 /* PR_USART0_bp  Predefined. */
 
 /* PR_SPI_bm  Predefined. */
 /* PR_SPI_bp  Predefined. */
 
-/* PR_HIRES_bm  Predefined. */
-/* PR_HIRES_bp  Predefined. */
-
-/* PR_TC1_bm  Predefined. */
-/* PR_TC1_bp  Predefined. */
-
 /* PR_TC0_bm  Predefined. */
 /* PR_TC0_bp  Predefined. */
 
-
 /* PR.PRPE  bit masks and bit positions */
 /* PR_TWI_bm  Predefined. */
 /* PR_TWI_bp  Predefined. */
 
-/* PR_USART1_bm  Predefined. */
-/* PR_USART1_bp  Predefined. */
-
 /* PR_USART0_bm  Predefined. */
 /* PR_USART0_bp  Predefined. */
 
-/* PR_SPI_bm  Predefined. */
-/* PR_SPI_bp  Predefined. */
-
-/* PR_HIRES_bm  Predefined. */
-/* PR_HIRES_bp  Predefined. */
-
-/* PR_TC1_bm  Predefined. */
-/* PR_TC1_bp  Predefined. */
-
 /* PR_TC0_bm  Predefined. */
 /* PR_TC0_bp  Predefined. */
 
-
 /* PR.PRPF  bit masks and bit positions */
-/* PR_TWI_bm  Predefined. */
-/* PR_TWI_bp  Predefined. */
-
-/* PR_USART1_bm  Predefined. */
-/* PR_USART1_bp  Predefined. */
-
 /* PR_USART0_bm  Predefined. */
 /* PR_USART0_bp  Predefined. */
 
-/* PR_SPI_bm  Predefined. */
-/* PR_SPI_bp  Predefined. */
-
-/* PR_HIRES_bm  Predefined. */
-/* PR_HIRES_bp  Predefined. */
-
-/* PR_TC1_bm  Predefined. */
-/* PR_TC1_bp  Predefined. */
-
 /* PR_TC0_bm  Predefined. */
 /* PR_TC0_bp  Predefined. */
 
-
 /* SLEEP - Sleep Controller */
 /* SLEEP.CTRL  bit masks and bit positions */
 #define SLEEP_SMODE_gm  0x0E  /* Sleep Mode group mask. */
@@ -3311,6 +3289,37 @@
 #define PMIC_LOLVLEN_bp  0  /* Low Level Enable bit position. */
 
 
+/* CRC - Cyclic Redundancy Checker */
+/* CRC.CTRL  bit masks and bit positions */
+#define CRC_RESET_gm  0xC0  /* Reset group mask. */
+#define CRC_RESET_gp  6  /* Reset group position. */
+#define CRC_RESET0_bm  (1<<6)  /* Reset bit 0 mask. */
+#define CRC_RESET0_bp  6  /* Reset bit 0 position. */
+#define CRC_RESET1_bm  (1<<7)  /* Reset bit 1 mask. */
+#define CRC_RESET1_bp  7  /* Reset bit 1 position. */
+
+#define CRC_CRC32_bm  0x20  /* CRC Mode bit mask. */
+#define CRC_CRC32_bp  5  /* CRC Mode bit position. */
+
+#define CRC_SOURCE_gm  0x0F  /* Input Source group mask. */
+#define CRC_SOURCE_gp  0  /* Input Source group position. */
+#define CRC_SOURCE0_bm  (1<<0)  /* Input Source bit 0 mask. */
+#define CRC_SOURCE0_bp  0  /* Input Source bit 0 position. */
+#define CRC_SOURCE1_bm  (1<<1)  /* Input Source bit 1 mask. */
+#define CRC_SOURCE1_bp  1  /* Input Source bit 1 position. */
+#define CRC_SOURCE2_bm  (1<<2)  /* Input Source bit 2 mask. */
+#define CRC_SOURCE2_bp  2  /* Input Source bit 2 position. */
+#define CRC_SOURCE3_bm  (1<<3)  /* Input Source bit 3 mask. */
+#define CRC_SOURCE3_bp  3  /* Input Source bit 3 position. */
+
+/* CRC.STATUS  bit masks and bit positions */
+#define CRC_ZERO_bm  0x02  /* Zero detection bit mask. */
+#define CRC_ZERO_bp  1  /* Zero detection bit position. */
+
+#define CRC_BUSY_bm  0x01  /* Busy bit mask. */
+#define CRC_BUSY_bp  0  /* Busy bit position. */
+
+
 /* EVSYS - Event System */
 /* EVSYS.CH0MUX  bit masks and bit positions */
 #define EVSYS_CHMUX_gm  0xFF  /* Event Channel 0 Multiplexer group mask. */

Modified: trunk/avr-libc/include/avr/iox256d3.h
===================================================================
--- trunk/avr-libc/include/avr/iox256d3.h       2014-03-17 11:46:39 UTC (rev 
2405)
+++ trunk/avr-libc/include/avr/iox256d3.h       2014-03-17 13:33:35 UTC (rev 
2406)
@@ -163,6 +163,19 @@
     register8_t RTCCTRL;  /* RTC Control Register */
 } CLK_t;
 
+
+/* Power Reduction */
+typedef struct PR_struct
+{
+    register8_t PRGEN;  /* General Power Reduction */
+    register8_t PRPA;  /* Power Reduction Port A */
+    register8_t reserved_0x02;
+    register8_t PRPC;  /* Power Reduction Port C */
+    register8_t PRPD;  /* Power Reduction Port D */
+    register8_t PRPE;  /* Power Reduction Port E */
+    register8_t PRPF;  /* Power Reduction Port F */
+} PR_t;
+
 /* System Clock Selection */
 typedef enum CLK_SCLKSEL_enum
 {
@@ -398,6 +411,46 @@
 
 /*
 --------------------------------------------------------------------------
+CRC - Cyclic Redundancy Checker
+--------------------------------------------------------------------------
+*/
+
+/* Cyclic Redundancy Checker */
+typedef struct CRC_struct
+{
+    register8_t CTRL;  /* Control Register */
+    register8_t STATUS;  /* Status Register */
+    register8_t reserved_0x02;
+    register8_t DATAIN;  /* Data Input */
+    register8_t CHECKSUM0;  /* Checksum byte 0 */
+    register8_t CHECKSUM1;  /* Checksum byte 1 */
+    register8_t CHECKSUM2;  /* Checksum byte 2 */
+    register8_t CHECKSUM3;  /* Checksum byte 3 */
+} CRC_t;
+
+/* Reset */
+typedef enum CRC_RESET_enum
+{
+    CRC_RESET_NO_gc = (0x00<<6),  /* No Reset */
+    CRC_RESET_RESET0_gc = (0x02<<6),  /* Reset CRC with CHECKSUM to all zeros 
*/
+    CRC_RESET_RESET1_gc = (0x03<<6),  /* Reset CRC with CHECKSUM to all ones */
+} CRC_RESET_t;
+
+/* Input Source */
+typedef enum CRC_SOURCE_enum
+{
+    CRC_SOURCE_DISABLE_gc = (0x00<<0),  /* Disabled */
+    CRC_SOURCE_IO_gc = (0x01<<0),  /* I/O Interface */
+    CRC_SOURCE_FLASH_gc = (0x02<<0),  /* Flash */
+    CRC_SOURCE_DMAC0_gc = (0x04<<0),  /* DMAC Channel 0 */
+    CRC_SOURCE_DMAC1_gc = (0x05<<0),  /* DMAC Channel 1 */
+    CRC_SOURCE_DMAC2_gc = (0x06<<0),  /* DMAC Channel 2 */
+    CRC_SOURCE_DMAC3_gc = (0x07<<0),  /* DMAC Channel 3 */
+} CRC_SOURCE_t;
+
+
+/*
+--------------------------------------------------------------------------
 EVSYS - Event System
 --------------------------------------------------------------------------
 */
@@ -2144,6 +2197,7 @@
 #define MCU    (*(MCU_t *) 0x0090)  /* MCU Control */
 #define PMIC    (*(PMIC_t *) 0x00A0)  /* Programmable Interrupt Controller */
 #define PORTCFG    (*(PORTCFG_t *) 0x00B0)  /* Port Configuration */
+#define CRC    (*(CRC_t *) 0x00D0)  /* Cyclic Redundancy Checker */
 #define EVSYS    (*(EVSYS_t *) 0x0180)  /* Event System */
 #define NVM    (*(NVM_t *) 0x01C0)  /* Non Volatile Memory Controller */
 #define ADCA    (*(ADC_t *) 0x0200)  /* Analog to Digital Converter A */
@@ -2270,6 +2324,14 @@
 #define DFLLRC2M_COMP1  _SFR_MEM8(0x006D)
 #define DFLLRC2M_COMP2  _SFR_MEM8(0x006E)
 
+/* PR - Power Reduction */
+#define PR_PRGEN  _SFR_MEM8(0x0070)
+#define PR_PRPA  _SFR_MEM8(0x0071)
+#define PR_PRPC  _SFR_MEM8(0x0073)
+#define PR_PRPD  _SFR_MEM8(0x0074)
+#define PR_PRPE  _SFR_MEM8(0x0075)
+#define PR_PRPF  _SFR_MEM8(0x0076)
+
 /* RST - Reset Controller */
 #define RST_STATUS  _SFR_MEM8(0x0078)
 #define RST_CTRL  _SFR_MEM8(0x0079)
@@ -2300,6 +2362,15 @@
 #define PORTCFG_VPCTRLB  _SFR_MEM8(0x00B3)
 #define PORTCFG_CLKEVOUT  _SFR_MEM8(0x00B4)
 
+/* CRC - Cyclic Redundancy Checker */
+#define CRC_CTRL  _SFR_MEM8(0x00D0)
+#define CRC_STATUS  _SFR_MEM8(0x00D1)
+#define CRC_DATAIN  _SFR_MEM8(0x00D3)
+#define CRC_CHECKSUM0  _SFR_MEM8(0x00D4)
+#define CRC_CHECKSUM1  _SFR_MEM8(0x00D5)
+#define CRC_CHECKSUM2  _SFR_MEM8(0x00D6)
+#define CRC_CHECKSUM3  _SFR_MEM8(0x00D7)
+
 /* EVSYS - Event System */
 #define EVSYS_CH0MUX  _SFR_MEM8(0x0180)
 #define EVSYS_CH1MUX  _SFR_MEM8(0x0181)
@@ -2855,7 +2926,66 @@
 #define CLK_RTCEN_bm  0x01  /* RTC Clock Source Enable bit mask. */
 #define CLK_RTCEN_bp  0  /* RTC Clock Source Enable bit position. */
 
+/* PR.PRGEN  bit masks and bit positions */
+#define PR_RTC_bm  0x04  /* Real-time Counter bit mask. */
+#define PR_RTC_bp  2  /* Real-time Counter bit position. */
 
+#define PR_EVSYS_bm  0x02  /* Event System bit mask. */
+#define PR_EVSYS_bp  1  /* Event System bit position. */
+
+/* PR.PRPA  bit masks and bit positions */
+#define PR_ADC_bm  0x02  /* Port A ADC bit mask. */
+#define PR_ADC_bp  1  /* Port A ADC bit position. */
+
+#define PR_AC_bm  0x01  /* Port A Analog Comparator bit mask. */
+#define PR_AC_bp  0  /* Port A Analog Comparator bit position. */
+
+/* PR.PRPC  bit masks and bit positions */
+#define PR_TWI_bm  0x40  /* Port C Two-wire Interface bit mask. */
+#define PR_TWI_bp  6  /* Port C Two-wire Interface bit position. */
+
+#define PR_USART0_bm  0x10  /* Port C USART0 bit mask. */
+#define PR_USART0_bp  4  /* Port C USART0 bit position. */
+
+#define PR_SPI_bm  0x08  /* Port C SPI bit mask. */
+#define PR_SPI_bp  3  /* Port C SPI bit position. */
+
+#define PR_HIRES_bm  0x04  /* Port C HIRES bit mask. */
+#define PR_HIRES_bp  2  /* Port C HIRES bit position. */
+
+#define PR_TC1_bm  0x02  /* Port C Timer/Counter1 bit mask. */
+#define PR_TC1_bp  1  /* Port C Timer/Counter1 bit position. */
+
+#define PR_TC0_bm  0x01  /* Port C Timer/Counter0 bit mask. */
+#define PR_TC0_bp  0  /* Port C Timer/Counter0 bit position. */
+
+/* PR.PRPD  bit masks and bit positions */
+/* PR_USART0_bm  Predefined. */
+/* PR_USART0_bp  Predefined. */
+
+/* PR_SPI_bm  Predefined. */
+/* PR_SPI_bp  Predefined. */
+
+/* PR_TC0_bm  Predefined. */
+/* PR_TC0_bp  Predefined. */
+
+/* PR.PRPE  bit masks and bit positions */
+/* PR_TWI_bm  Predefined. */
+/* PR_TWI_bp  Predefined. */
+
+/* PR_USART0_bm  Predefined. */
+/* PR_USART0_bp  Predefined. */
+
+/* PR_TC0_bm  Predefined. */
+/* PR_TC0_bp  Predefined. */
+
+/* PR.PRPF  bit masks and bit positions */
+/* PR_USART0_bm  Predefined. */
+/* PR_USART0_bp  Predefined. */
+
+/* PR_TC0_bm  Predefined. */
+/* PR_TC0_bp  Predefined. */
+
 /* SLEEP - Sleep Controller */
 /* SLEEP.CTRL  bit masks and bit positions */
 #define SLEEP_SMODE_gm  0x0E  /* Sleep Mode group mask. */
@@ -3136,6 +3266,37 @@
 #define PMIC_LOLVLEN_bp  0  /* Low Level Enable bit position. */
 
 
+/* CRC - Cyclic Redundancy Checker */
+/* CRC.CTRL  bit masks and bit positions */
+#define CRC_RESET_gm  0xC0  /* Reset group mask. */
+#define CRC_RESET_gp  6  /* Reset group position. */
+#define CRC_RESET0_bm  (1<<6)  /* Reset bit 0 mask. */
+#define CRC_RESET0_bp  6  /* Reset bit 0 position. */
+#define CRC_RESET1_bm  (1<<7)  /* Reset bit 1 mask. */
+#define CRC_RESET1_bp  7  /* Reset bit 1 position. */
+
+#define CRC_CRC32_bm  0x20  /* CRC Mode bit mask. */
+#define CRC_CRC32_bp  5  /* CRC Mode bit position. */
+
+#define CRC_SOURCE_gm  0x0F  /* Input Source group mask. */
+#define CRC_SOURCE_gp  0  /* Input Source group position. */
+#define CRC_SOURCE0_bm  (1<<0)  /* Input Source bit 0 mask. */
+#define CRC_SOURCE0_bp  0  /* Input Source bit 0 position. */
+#define CRC_SOURCE1_bm  (1<<1)  /* Input Source bit 1 mask. */
+#define CRC_SOURCE1_bp  1  /* Input Source bit 1 position. */
+#define CRC_SOURCE2_bm  (1<<2)  /* Input Source bit 2 mask. */
+#define CRC_SOURCE2_bp  2  /* Input Source bit 2 position. */
+#define CRC_SOURCE3_bm  (1<<3)  /* Input Source bit 3 mask. */
+#define CRC_SOURCE3_bp  3  /* Input Source bit 3 position. */
+
+/* CRC.STATUS  bit masks and bit positions */
+#define CRC_ZERO_bm  0x02  /* Zero detection bit mask. */
+#define CRC_ZERO_bp  1  /* Zero detection bit position. */
+
+#define CRC_BUSY_bm  0x01  /* Busy bit mask. */
+#define CRC_BUSY_bp  0  /* Busy bit position. */
+
+
 /* EVSYS - Event System */
 /* EVSYS.CH0MUX  bit masks and bit positions */
 #define EVSYS_CHMUX_gm  0xFF  /* Event Channel 0 Multiplexer group mask. */

Modified: trunk/avr-libc/include/avr/iox64d3.h
===================================================================
--- trunk/avr-libc/include/avr/iox64d3.h        2014-03-17 11:46:39 UTC (rev 
2405)
+++ trunk/avr-libc/include/avr/iox64d3.h        2014-03-17 13:33:35 UTC (rev 
2406)
@@ -174,7 +174,7 @@
 {
     register8_t PRGEN;  /* General Power Reduction */
     register8_t PRPA;  /* Power Reduction Port A */
-    register8_t PRPB;  /* Power Reduction Port B */
+    register8_t reserved_0x02;
     register8_t PRPC;  /* Power Reduction Port C */
     register8_t PRPD;  /* Power Reduction Port D */
     register8_t PRPE;  /* Power Reduction Port E */
@@ -416,6 +416,46 @@
 
 /*
 --------------------------------------------------------------------------
+CRC - Cyclic Redundancy Checker
+--------------------------------------------------------------------------
+*/
+
+/* Cyclic Redundancy Checker */
+typedef struct CRC_struct
+{
+    register8_t CTRL;  /* Control Register */
+    register8_t STATUS;  /* Status Register */
+    register8_t reserved_0x02;
+    register8_t DATAIN;  /* Data Input */
+    register8_t CHECKSUM0;  /* Checksum byte 0 */
+    register8_t CHECKSUM1;  /* Checksum byte 1 */
+    register8_t CHECKSUM2;  /* Checksum byte 2 */
+    register8_t CHECKSUM3;  /* Checksum byte 3 */
+} CRC_t;
+
+/* Reset */
+typedef enum CRC_RESET_enum
+{
+    CRC_RESET_NO_gc = (0x00<<6),  /* No Reset */
+    CRC_RESET_RESET0_gc = (0x02<<6),  /* Reset CRC with CHECKSUM to all zeros 
*/
+    CRC_RESET_RESET1_gc = (0x03<<6),  /* Reset CRC with CHECKSUM to all ones */
+} CRC_RESET_t;
+
+/* Input Source */
+typedef enum CRC_SOURCE_enum
+{
+    CRC_SOURCE_DISABLE_gc = (0x00<<0),  /* Disabled */
+    CRC_SOURCE_IO_gc = (0x01<<0),  /* I/O Interface */
+    CRC_SOURCE_FLASH_gc = (0x02<<0),  /* Flash */
+    CRC_SOURCE_DMAC0_gc = (0x04<<0),  /* DMAC Channel 0 */
+    CRC_SOURCE_DMAC1_gc = (0x05<<0),  /* DMAC Channel 1 */
+    CRC_SOURCE_DMAC2_gc = (0x06<<0),  /* DMAC Channel 2 */
+    CRC_SOURCE_DMAC3_gc = (0x07<<0),  /* DMAC Channel 3 */
+} CRC_SOURCE_t;
+
+
+/*
+--------------------------------------------------------------------------
 EVSYS - Event System
 --------------------------------------------------------------------------
 */
@@ -2180,6 +2220,7 @@
 #define MCU    (*(MCU_t *) 0x0090)  /* MCU Control */
 #define PMIC    (*(PMIC_t *) 0x00A0)  /* Programmable Interrupt Controller */
 #define PORTCFG    (*(PORTCFG_t *) 0x00B0)  /* Port Configuration */
+#define CRC    (*(CRC_t *) 0x00D0)  /* Cyclic Redundancy Checker */
 #define EVSYS    (*(EVSYS_t *) 0x0180)  /* Event System */
 #define NVM    (*(NVM_t *) 0x01C0)  /* Non Volatile Memory Controller */
 #define ADCA    (*(ADC_t *) 0x0200)  /* Analog to Digital Converter A */
@@ -2311,7 +2352,6 @@
 /* PR - Power Reduction */
 #define PR_PRGEN  _SFR_MEM8(0x0070)
 #define PR_PRPA  _SFR_MEM8(0x0071)
-#define PR_PRPB  _SFR_MEM8(0x0072)
 #define PR_PRPC  _SFR_MEM8(0x0073)
 #define PR_PRPD  _SFR_MEM8(0x0074)
 #define PR_PRPE  _SFR_MEM8(0x0075)
@@ -2347,6 +2387,15 @@
 #define PORTCFG_VPCTRLB  _SFR_MEM8(0x00B3)
 #define PORTCFG_CLKEVOUT  _SFR_MEM8(0x00B4)
 
+/* CRC - Cyclic Redundancy Checker */
+#define CRC_CTRL  _SFR_MEM8(0x00D0)
+#define CRC_STATUS  _SFR_MEM8(0x00D1)
+#define CRC_DATAIN  _SFR_MEM8(0x00D3)
+#define CRC_CHECKSUM0  _SFR_MEM8(0x00D4)
+#define CRC_CHECKSUM1  _SFR_MEM8(0x00D5)
+#define CRC_CHECKSUM2  _SFR_MEM8(0x00D6)
+#define CRC_CHECKSUM3  _SFR_MEM8(0x00D7)
+
 /* EVSYS - Event System */
 #define EVSYS_CH0MUX  _SFR_MEM8(0x0180)
 #define EVSYS_CH1MUX  _SFR_MEM8(0x0181)
@@ -2915,59 +2964,31 @@
 
 
 /* PR.PRGEN  bit masks and bit positions */
-#define PR_AES_bm  0x10  /* AES bit mask. */
-#define PR_AES_bp  4  /* AES bit position. */
-
-#define PR_EBI_bm  0x08  /* External Bus Interface bit mask. */
-#define PR_EBI_bp  3  /* External Bus Interface bit position. */
-
 #define PR_RTC_bm  0x04  /* Real-time Counter bit mask. */
 #define PR_RTC_bp  2  /* Real-time Counter bit position. */
 
 #define PR_EVSYS_bm  0x02  /* Event System bit mask. */
 #define PR_EVSYS_bp  1  /* Event System bit position. */
 
-#define PR_DMA_bm  0x01  /* DMA-Controller bit mask. */
-#define PR_DMA_bp  0  /* DMA-Controller bit position. */
-
-
 /* PR.PRPA  bit masks and bit positions */
-#define PR_DAC_bm  0x04  /* Port A DAC bit mask. */
-#define PR_DAC_bp  2  /* Port A DAC bit position. */
-
 #define PR_ADC_bm  0x02  /* Port A ADC bit mask. */
 #define PR_ADC_bp  1  /* Port A ADC bit position. */
 
 #define PR_AC_bm  0x01  /* Port A Analog Comparator bit mask. */
 #define PR_AC_bp  0  /* Port A Analog Comparator bit position. */
 
-
-/* PR.PRPB  bit masks and bit positions */
-/* PR_DAC_bm  Predefined. */
-/* PR_DAC_bp  Predefined. */
-
-/* PR_ADC_bm  Predefined. */
-/* PR_ADC_bp  Predefined. */
-
-/* PR_AC_bm  Predefined. */
-/* PR_AC_bp  Predefined. */
-
-
 /* PR.PRPC  bit masks and bit positions */
 #define PR_TWI_bm  0x40  /* Port C Two-wire Interface bit mask. */
 #define PR_TWI_bp  6  /* Port C Two-wire Interface bit position. */
 
-#define PR_USART1_bm  0x20  /* Port C USART1 bit mask. */
-#define PR_USART1_bp  5  /* Port C USART1 bit position. */
-
 #define PR_USART0_bm  0x10  /* Port C USART0 bit mask. */
 #define PR_USART0_bp  4  /* Port C USART0 bit position. */
 
 #define PR_SPI_bm  0x08  /* Port C SPI bit mask. */
 #define PR_SPI_bp  3  /* Port C SPI bit position. */
 
-#define PR_HIRES_bm  0x04  /* Port C AWEX bit mask. */
-#define PR_HIRES_bp  2  /* Port C AWEX bit position. */
+#define PR_HIRES_bm  0x04  /* Port C HIRES bit mask. */
+#define PR_HIRES_bp  2  /* Port C HIRES bit position. */
 
 #define PR_TC1_bm  0x02  /* Port C Timer/Counter1 bit mask. */
 #define PR_TC1_bp  1  /* Port C Timer/Counter1 bit position. */
@@ -2975,76 +2996,33 @@
 #define PR_TC0_bm  0x01  /* Port C Timer/Counter0 bit mask. */
 #define PR_TC0_bp  0  /* Port C Timer/Counter0 bit position. */
 
-
 /* PR.PRPD  bit masks and bit positions */
-/* PR_TWI_bm  Predefined. */
-/* PR_TWI_bp  Predefined. */
-
-/* PR_USART1_bm  Predefined. */
-/* PR_USART1_bp  Predefined. */
-
 /* PR_USART0_bm  Predefined. */
 /* PR_USART0_bp  Predefined. */
 
 /* PR_SPI_bm  Predefined. */
 /* PR_SPI_bp  Predefined. */
 
-/* PR_HIRES_bm  Predefined. */
-/* PR_HIRES_bp  Predefined. */
-
-/* PR_TC1_bm  Predefined. */
-/* PR_TC1_bp  Predefined. */
-
 /* PR_TC0_bm  Predefined. */
 /* PR_TC0_bp  Predefined. */
 
-
 /* PR.PRPE  bit masks and bit positions */
 /* PR_TWI_bm  Predefined. */
 /* PR_TWI_bp  Predefined. */
 
-/* PR_USART1_bm  Predefined. */
-/* PR_USART1_bp  Predefined. */
-
 /* PR_USART0_bm  Predefined. */
 /* PR_USART0_bp  Predefined. */
 
-/* PR_SPI_bm  Predefined. */
-/* PR_SPI_bp  Predefined. */
-
-/* PR_HIRES_bm  Predefined. */
-/* PR_HIRES_bp  Predefined. */
-
-/* PR_TC1_bm  Predefined. */
-/* PR_TC1_bp  Predefined. */
-
 /* PR_TC0_bm  Predefined. */
 /* PR_TC0_bp  Predefined. */
 
-
 /* PR.PRPF  bit masks and bit positions */
-/* PR_TWI_bm  Predefined. */
-/* PR_TWI_bp  Predefined. */
-
-/* PR_USART1_bm  Predefined. */
-/* PR_USART1_bp  Predefined. */
-
 /* PR_USART0_bm  Predefined. */
 /* PR_USART0_bp  Predefined. */
 
-/* PR_SPI_bm  Predefined. */
-/* PR_SPI_bp  Predefined. */
-
-/* PR_HIRES_bm  Predefined. */
-/* PR_HIRES_bp  Predefined. */
-
-/* PR_TC1_bm  Predefined. */
-/* PR_TC1_bp  Predefined. */
-
 /* PR_TC0_bm  Predefined. */
 /* PR_TC0_bp  Predefined. */
 
-
 /* SLEEP - Sleep Controller */
 /* SLEEP.CTRL  bit masks and bit positions */
 #define SLEEP_SMODE_gm  0x0E  /* Sleep Mode group mask. */
@@ -3325,6 +3303,37 @@
 #define PMIC_LOLVLEN_bp  0  /* Low Level Enable bit position. */
 
 
+/* CRC - Cyclic Redundancy Checker */
+/* CRC.CTRL  bit masks and bit positions */
+#define CRC_RESET_gm  0xC0  /* Reset group mask. */
+#define CRC_RESET_gp  6  /* Reset group position. */
+#define CRC_RESET0_bm  (1<<6)  /* Reset bit 0 mask. */
+#define CRC_RESET0_bp  6  /* Reset bit 0 position. */
+#define CRC_RESET1_bm  (1<<7)  /* Reset bit 1 mask. */
+#define CRC_RESET1_bp  7  /* Reset bit 1 position. */
+
+#define CRC_CRC32_bm  0x20  /* CRC Mode bit mask. */
+#define CRC_CRC32_bp  5  /* CRC Mode bit position. */
+
+#define CRC_SOURCE_gm  0x0F  /* Input Source group mask. */
+#define CRC_SOURCE_gp  0  /* Input Source group position. */
+#define CRC_SOURCE0_bm  (1<<0)  /* Input Source bit 0 mask. */
+#define CRC_SOURCE0_bp  0  /* Input Source bit 0 position. */
+#define CRC_SOURCE1_bm  (1<<1)  /* Input Source bit 1 mask. */
+#define CRC_SOURCE1_bp  1  /* Input Source bit 1 position. */
+#define CRC_SOURCE2_bm  (1<<2)  /* Input Source bit 2 mask. */
+#define CRC_SOURCE2_bp  2  /* Input Source bit 2 position. */
+#define CRC_SOURCE3_bm  (1<<3)  /* Input Source bit 3 mask. */
+#define CRC_SOURCE3_bp  3  /* Input Source bit 3 position. */
+
+/* CRC.STATUS  bit masks and bit positions */
+#define CRC_ZERO_bm  0x02  /* Zero detection bit mask. */
+#define CRC_ZERO_bp  1  /* Zero detection bit position. */
+
+#define CRC_BUSY_bm  0x01  /* Busy bit mask. */
+#define CRC_BUSY_bp  0  /* Busy bit position. */
+
+
 /* EVSYS - Event System */
 /* EVSYS.CH0MUX  bit masks and bit positions */
 #define EVSYS_CHMUX_gm  0xFF  /* Event Channel 0 Multiplexer group mask. */

Modified: trunk/avr-libc/include/avr/power.h
===================================================================
--- trunk/avr-libc/include/avr/power.h  2014-03-17 11:46:39 UTC (rev 2405)
+++ trunk/avr-libc/include/avr/power.h  2014-03-17 13:33:35 UTC (rev 2406)
@@ -81,6 +81,18 @@
   </tr>
 
   <tr>
+    <td>power_aca_disable()</td>
+    <td>Disable the Analog Comparator on PortA.</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_aca_enable()</td>
+    <td>Enable the Analog Comparator on PortA.</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
     <td>power_adc_enable()</td>
     <td>Enable the Analog to Digital Converter module.</td>
     <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, 
ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, 
AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, AT90PWM81, 
ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega3250, ATmega3250A, 
ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, 
ATmega3290, ATmega3290A, ATmega649, ATmega6490, ATmega164P, ATmega324P, 
ATmega644, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, 
ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861, 
ATmega256RFR2, ATmega2564RFR2, ATmega128RFR2, ATmega1284RFR2, ATmega64RFR2, 
ATmega644RFR2</td>
@@ -93,6 +105,42 @@
   </tr>
 
   <tr>
+    <td>power_adca_disable()</td>
+    <td>Disable the Analog to Digital Converter module on PortA</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_adca_enable()</td>
+    <td>Enable the Analog to Digital Converter module on PortA</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_evsys_disable()</td>
+    <td>Disable the EVSYS module</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_evsys_enable()</td>
+    <td>Enable the EVSYS module</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_hiresc_disable()</td>
+    <td>Disable the HIRES module on PortC</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_hiresc_enable()</td>
+    <td>Enable the HIRES module on PortC</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+   <tr>
     <td>power_lcd_enable()</td>
     <td>Enable the LCD module.</td>
     <td>ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, 
ATmega649, ATmega6490</td>
@@ -213,6 +261,18 @@
   </tr>
 
   <tr>
+    <td>power_rtc_disable()</td>
+    <td>Disable the RTC module</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_rtc_enable()</td>
+    <td>Enable the RTC module</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
     <td>power_spi_enable()</td>
     <td>Enable the Serial Peripheral Interface module.</td>
     <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, 
ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, 
AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, AT90PWM81, 
ATmega165, ATmega165P, ATmega325, ATmega325A, ATmega3250, ATmega3250A, 
ATmega645, ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, 
ATmega3290, ATmega3290A, ATmega649, ATmega6490, ATmega164P, ATmega324P, 
ATmega644, ATmega48, ATmega88, ATmega168, ATmega256RFR2, ATmega2564RFR2, 
ATmega128RFR2, ATmega1284RFR2, ATmega64RFR2, ATmega644RFR2</td>
@@ -225,6 +285,114 @@
   </tr>
 
   <tr>
+    <td>power_spic_disable()</td>
+    <td>Disable the SPI module on PortC</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_spic_enable()</td>
+    <td>Enable the SPI module on PortC</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_spid_disable()</td>
+    <td>Disable the SPI module on PortD</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_spid_enable()</td>
+    <td>Enable the SPI module on PortD</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_tc0c_disable()</td>
+    <td>Disable the TC0 module on PortC</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_tc0c_enable()</td>
+    <td>Enable the TC0 module on PortC</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_tc0d_disable()</td>
+    <td>Disable the TC0 module on PortD</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_tc0d_enable()</td>
+    <td>Enable the TC0 module on PortD</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_tc0e_disable()</td>
+    <td>Disable the TC0 module on PortE</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_tc0e_enable()</td>
+    <td>Enable the TC0 module on PortE</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_tc0f_disable()</td>
+    <td>Disable the TC0 module on PortF</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_tc0f_enable()</td>
+    <td>Enable the TC0 module on PortF</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_tc1c_disable()</td>
+    <td>Disable the TC1 module on PortC</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_tc1c_enable()</td>
+    <td>Enable the TC1 module on PortC</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_twic_disable()</td>
+    <td>Disable the Two Wire Interface module on PortC</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_twic_enable()</td>
+    <td>Enable the Two Wire Interface module on PortC</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_twie_disable()</td>
+    <td>Disable the Two Wire Interface module on PortE</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
+    <td>power_twie_enable()</td>
+    <td>Enable the Two Wire Interface module on PortE</td>
+    <td>ATxmega64D3, ATxmega128D3, ATxmega192D3, ATxmega256D3</td>
+  </tr>
+
+  <tr>
     <td>power_timer0_enable()</td>
     <td>Enable the Timer 0 module.</td>
     <td>ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, 
ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, 
AT90PWM216, AT90PWM316, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, ATmega165, 
ATmega165P, ATmega325, ATmega325A, ATmega3250, ATmega3250A, ATmega645, 
ATmega6450, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, 
ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, 
ATtiny85, ATtiny261, ATtiny461, ATtiny861, ATmega256RFR2, ATmega2564RFR2, 
ATmega128RFR2, ATmega1284RFR2, ATmega64RFR2, ATmega644RFR2</td>
@@ -369,6 +537,54 @@
   </tr>
 
   <tr>
+    <td>power_usartc0_disable()</td>
+    <td> Disable the USART0 module on PortC</td>
+    <td>ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561</td>
+  </tr>
+
+  <tr>
+    <td>power_usartc0_enable()</td>
+    <td> Enable the USART0 module on PortC</td>
+    <td>ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561</td>
+  </tr>
+
+  <tr>
+    <td>power_usartd0_disable()</td>
+    <td> Disable the USART0 module on PortD</td>
+    <td>ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561</td>
+  </tr>
+
+  <tr>
+    <td>power_usartd0_enable()</td>
+    <td> Enable the USART0 module on PortD</td>
+    <td>ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561</td>
+  </tr>
+
+  <tr>
+    <td>power_usarte0_disable()</td>
+    <td> Disable the USART0 module on PortE</td>
+    <td>ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561</td>
+  </tr>
+
+  <tr>
+    <td>power_usarte0_enable()</td>
+    <td> Enable the USART0 module on PortE</td>
+    <td>ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561</td>
+  </tr>
+
+  <tr>
+    <td>power_usartf0_disable()</td>
+    <td> Disable the USART0 module on PortF</td>
+    <td>ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561</td>
+  </tr>
+
+  <tr>
+    <td>power_usartf0_enable()</td>
+    <td> Enable the USART0 module on PortF</td>
+    <td>ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561</td>
+  </tr>
+
+  <tr>
     <td>power_usb_enable()</td>
     <td>Enable the USB module.</td>
     <td>AT90USB646, AT90USB647, AT90USB1286, AT90USB1287</td>
@@ -407,13 +623,13 @@
   <tr>
     <td>power_all_enable()</td>
     <td>Enable all modules.</td>
-    <td>ATxmega6A4, ATxmega32A4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, 
ATxmegaA1, ATxmegaA1U, ATxmega128A3, ATxmega192A3, ATxmega256A3, ATxmegaA3B, 
ATxmega16D4, ATxmega32D4, ATxmega64D3, ATxmega128D3, ATxmega192D3, ATmega640, 
ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, 
AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, 
AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, 
ATmega325A, ATmega3250, ATmega325A, ATmega645, ATmega6450, ATmega169, 
ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega649, 
ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, 
ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, 
ATtiny85, ATtiny261, ATtiny461, ATtiny861, ATmega256RFR2, ATmega2564RFR2, 
ATmega128RFR2, ATmega1284RFR2, ATmega64RFR2, ATmega644RFR2</td>
+    <td>ATxmega6A4, ATxmega32A4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, 
ATxmegaA1, ATxmegaA1U, ATxmega128A3, ATxmega192A3, ATxmega256A3, ATxmegaA3B, 
ATxmega16D4, ATxmega32D4, ATxmega64D3, ATxmega128D3, ATxmega192D3, 
ATxmega256D3, ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, 
ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, 
AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, 
ATmega165P, ATmega325, ATmega325A, ATmega3250, ATmega325A, ATmega645, 
ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, 
ATmega3290A, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, 
ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, 
ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861, 
ATmega256RFR2, ATmega2564RFR2, ATmega128RFR2, ATmega1284RFR2, ATmega64RFR2, 
ATmega644RFR2</td>
   </tr>
 
   <tr>
     <td>power_all_disable()</td>
     <td>Disable all modules.</td>
-    <td>ATxmega6A4, ATxmega32A4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, 
ATxmegaA1, ATxmegaA1U, ATxmega128A3, ATxmega192A3, ATxmega256A3, ATxmegaA3B, 
ATxmega16D4, ATxmega32D4, ATxmega64D3, ATxmega128D3,ATxmega192D3, ATmega640, 
ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, ATmega2561, AT90USB646, 
AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, AT90PWM2, AT90PWM2B, AT90PWM3, 
AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, ATmega165P, ATmega325, 
ATmega325A, ATmega3250, ATmega325A, ATmega645, ATmega6450, ATmega169, 
ATmega169P, ATmega329, ATmega329A, ATmega3290, ATmega3290A, ATmega649, 
ATmega6490, ATmega164P, ATmega324P, ATmega644, ATmega406, ATmega48, ATmega88, 
ATmega168, ATtiny24, ATtiny44, ATtiny84, ATtiny84A, ATtiny25, ATtiny45, 
ATtiny85, ATtiny261, ATtiny461, ATtiny861, ATmega256RFR2, ATmega2564RFR2, 
ATmega128RFR2, ATmega1284RFR2, ATmega64RFR2, ATmega644RFR2</td>
+    <td>ATxmega6A4, ATxmega32A4, ATxmega64A1, ATxmega64A1U, ATxmega64A3, 
ATxmegaA1, ATxmegaA1U, ATxmega128A3, ATxmega192A3, ATxmega256A3, ATxmegaA3B, 
ATxmega16D4, ATxmega32D4, ATxmega64D3, ATxmega128D3, ATxmega192D3, 
ATxmega256D3, ATmega640, ATmega1280, ATmega1281, ATmega128RFA1, ATmega2560, 
ATmega2561, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287, AT90PWM1, 
AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90PWM216, AT90PWM316, ATmega165, 
ATmega165P, ATmega325, ATmega325A, ATmega3250, ATmega325A, ATmega645, 
ATmega6450, ATmega169, ATmega169P, ATmega329, ATmega329A, ATmega3290, 
ATmega3290A, ATmega649, ATmega6490, ATmega164P, ATmega324P, ATmega644, 
ATmega406, ATmega48, ATmega88, ATmega168, ATtiny24, ATtiny44, ATtiny84, 
ATtiny84A, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861, 
ATmega256RFR2, ATmega2564RFR2, ATmega128RFR2, ATmega1284RFR2, ATmega64RFR2, 
ATmega644RFR2</td>
   </tr>
 </table>
 </center>
@@ -482,6 +698,79 @@
 } while(0)
 #endif
 
+#if defined(__AVR_ATxmega64D3__) \
+|| defined(__AVR_ATxmega128D3__) \
+|| defined(__AVR_ATxmega192D3__) \
+|| defined(__AVR_ATxmega256D3__)
+
+#define power_rtc_enable()      (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
+#define power_rtc_disable()     (PR_PRGEN |= (uint8_t)PR_RTC_bm)
+
+#define power_evsys_enable()    (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
+#define power_evsys_disable()   (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
+
+#define power_adca_enable()     (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
+#define power_adca_disable()    (PR_PRPA |= (uint8_t)PR_ADC_bm)
+
+#define power_aca_enable()      (PR_PRPA &= (uint8_t)~(PR_AC_bm))
+#define power_aca_disable()     (PR_PRPA |= (uint8_t)PR_AC_bm)
+
+#define power_twic_enable()     (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
+#define power_twic_disable()    (PR_PRPC |= (uint8_t)PR_TWI_bm)
+#define power_twie_enable()     (PR_PRPE &= (uint8_t)~(PR_TWI_bm))
+#define power_twie_disable()    (PR_PRPE |= (uint8_t)PR_TWI_bm)
+
+#define power_usartc0_enable()  (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
+#define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
+#define power_usartd0_enable()  (PR_PRPD &= (uint8_t)~(PR_USART0_bm))
+#define power_usartd0_disable() (PR_PRPD |= (uint8_t)PR_USART0_bm)
+#define power_usarte0_enable()  (PR_PRPE &= (uint8_t)~(PR_USART0_bm))
+#define power_usarte0_disable() (PR_PRPE |= (uint8_t)PR_USART0_bm)
+#define power_usartf0_enable()  (PR_PRPF &= (uint8_t)~(PR_USART0_bm))
+#define power_usartf0_disable() (PR_PRPF |= (uint8_t)PR_USART0_bm)
+
+#define power_spic_enable()     (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
+#define power_spic_disable()    (PR_PRPC |= (uint8_t)PR_SPI_bm)
+#define power_spid_enable()     (PR_PRPD &= (uint8_t)~(PR_SPI_bm))
+#define power_spid_disable()    (PR_PRPD |= (uint8_t)PR_SPI_bm)
+
+#define power_hiresc_enable()   (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
+#define power_hiresc_disable()  (PR_PRPC |= (uint8_t)PR_HIRES_bm)
+
+#define power_tc1c_enable()     (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
+#define power_tc1c_disable()    (PR_PRPC |= (uint8_t)PR_TC1_bm)
+
+#define power_tc0c_enable()     (PR_PRPC &= (uint8_t)~(PR_TC0_bm))
+#define power_tc0c_disable()    (PR_PRPC |= (uint8_t)PR_TC0_bm)
+#define power_tc0d_enable()     (PR_PRPD &= (uint8_t)~(PR_TC0_bm))
+#define power_tc0d_disable()    (PR_PRPD |= (uint8_t)PR_TC0_bm)
+#define power_tc0e_enable()     (PR_PRPE &= (uint8_t)~(PR_TC0_bm))
+#define power_tc0e_disable()    (PR_PRPE |= (uint8_t)PR_TC0_bm)
+#define power_tc0f_enable()     (PR_PRPF &= (uint8_t)~(PR_TC0_bm))
+#define power_tc0f_disable()    (PR_PRPF |= (uint8_t)PR_TC0_bm)
+
+#define power_all_enable() \
+do { \
+    PR_PRGEN &= (uint8_t)~(PR_RTC_bm|PR_EVSYS_bm); \
+    PR_PRPA &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
+    PR_PRPC &= 
(uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
+    PR_PRPD &= (uint8_t)~(PR_USART0_bm|PR_SPI_bm|PR_TC0_bm); \
+    PR_PRPE &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_TC0_bm); \
+    PR_PRPF &= (uint8_t)~(PR_USART0_bm|PR_TC0_bm); \
+} while(0)
+
+
+#define power_all_disable() \
+do { \
+    PR_PRGEN|= (uint8_t)(PR_RTC_bm|PR_EVSYS_bm); \
+    PR_PRPA |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
+    PR_PRPC |= 
(uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
+    PR_PRPD |= (uint8_t)(PR_USART0_bm|PR_SPI_bm|PR_TC0_bm); \
+    PR_PRPE |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_TC0_bm); \
+    PR_PRPF |= (uint8_t)(PR_USART0_bm|PR_TC0_bm); \
+} while(0)
+#endif
+
 #if defined(__AVR_ATxmega16A4__) \
 || defined(__AVR_ATxmega16D4__) \
 || defined(__AVR_ATxmega32A4__) \
@@ -489,7 +778,6 @@
 || defined(__AVR_ATxmega64A1__) \
 || defined(__AVR_ATxmega64A1U__) \
 || defined(__AVR_ATxmega64A3__) \
-|| defined(__AVR_ATxmega64D3__) \
 || defined(__AVR_ATxmega128A1__) \
 || defined(__AVR_ATxmega128A1U__) \
 || defined(__AVR_ATxmega128A3__) \
@@ -570,13 +858,8 @@
 #define power_tc0f_enable()     (PR_PRPF &= (uint8_t)~(PR_TC0_bm))
 #define power_tc0f_disable()    (PR_PRPF |= (uint8_t)PR_TC0_bm)
 
-#endif
-
 #if defined(__AVR_ATxmega16D4__) \
-|| defined(__AVR_ATxmega32D4__) \
-|| defined(__AVR_ATxmega64D3__) \
-|| defined(__AVR_ATxmega128D3__) \
-|| defined(__AVR_ATxmega192D3__) 
+|| defined(__AVR_ATxmega32D4__) 
 
 #define power_all_enable() \
 do { \




reply via email to

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