diff --git a/.vs/TE_Controller/v14/.atsuo b/.vs/TE_Controller/v14/.atsuo
index 5f98ff5..703f950 100644
Binary files a/.vs/TE_Controller/v14/.atsuo and b/.vs/TE_Controller/v14/.atsuo differ
diff --git a/EXTINT_QUICK_START_CALLBACK1/EXTINT_QUICK_START_CALLBACK1.componentinfo.xml b/EXTINT_QUICK_START_CALLBACK1/EXTINT_QUICK_START_CALLBACK1.componentinfo.xml
deleted file mode 100644
index e275755..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/EXTINT_QUICK_START_CALLBACK1.componentinfo.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/EXTINT_QUICK_START_CALLBACK1/EXTINT_QUICK_START_CALLBACK1.cproj b/EXTINT_QUICK_START_CALLBACK1/EXTINT_QUICK_START_CALLBACK1.cproj
deleted file mode 100644
index c4333eb..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/EXTINT_QUICK_START_CALLBACK1.cproj
+++ /dev/null
@@ -1,1132 +0,0 @@
-
-
-
- 2.0
- 7.0
- com.Atmel.ARMGCC.C
- {a4542753-d3f8-4028-8e3a-8c0bba191252}
- ATSAMD21J18A
- samd21
- Executable
- C
- $(MSBuildProjectName)
- .elf
- $(MSBuildProjectDirectory)\$(Configuration)
- EXTINT_QUICK_START_CALLBACK1
- EXTINT_QUICK_START_CALLBACK1
- EXTINT_QUICK_START_CALLBACK1
- Native
- true
- false
- true
- true
-
-
- true
-
- 2
- 0
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- True
- True
- True
- True
- True
-
-
- NDEBUG
- BOARD=SAMD21_XPLAINED_PRO
- __SAMD21J18A__
- ARM_MATH_CM0PLUS=true
- EXTINT_CALLBACK_MODE=true
-
-
-
-
- ../src/ASF/sam0/boards/samd21_xplained_pro
- ../src/ASF/sam0/boards
- ../src/ASF/sam0/utils/cmsis/samd21/include
- ../src/ASF/sam0/utils/cmsis/samd21/source
- ../src/ASF/sam0/utils
- ../src/ASF/sam0/utils/header_files
- ../src/ASF/sam0/utils/preprocessor
- ../src/ASF/thirdparty/CMSIS/Include
- ../src/ASF/thirdparty/CMSIS/Lib/GCC
- ../src/ASF/common/utils
- ../src/ASF/common/boards
- ../src/ASF/sam0/drivers/port
- ../src/ASF/sam0/drivers/system/pinmux
- ../src/ASF/sam0/drivers/extint
- ../src/ASF/sam0/drivers/system
- ../src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1
- ../src/ASF/sam0/drivers/system/clock
- ../src/ASF/sam0/drivers/system/interrupt
- ../src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21
- ../src/ASF/sam0/drivers/system/power
- ../src/ASF/sam0/drivers/system/power/power_sam_d_r_h
- ../src/ASF/sam0/drivers/system/reset
- ../src/ASF/sam0/drivers/system/reset/reset_sam_d_r_h
- ../src
- ../src/config
-
-
- Optimize for size (-Os)
- -fdata-sections
- True
- True
- -pipe -fno-strict-aliasing -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror-implicit-function-declaration -Wpointer-arith -std=gnu99 -ffunction-sections -fdata-sections -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int -Wmain -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused -Wuninitialized -Wunknown-pragmas -Wfloat-equal -Wundef -Wshadow -Wbad-function-cast -Wwrite-strings -Wsign-compare -Waggregate-return -Wmissing-declarations -Wformat -Wmissing-format-attribute -Wno-deprecated-declarations -Wpacked -Wredundant-decls -Wnested-externs -Wlong-long -Wunreachable-code -Wcast-align --param max-inline-insns-single=500
- True
-
-
- libarm_cortexM0l_math
- libm
-
-
-
-
- ../src/ASF/thirdparty/CMSIS/Lib/GCC
-
-
- True
- -Wl,--entry=Reset_Handler -Wl,--cref -mthumb -T../src/ASF/sam0/utils/linker_scripts/samd21/gcc/samd21j18a_flash.ld
-
-
- ../src/ASF/sam0/boards/samd21_xplained_pro
- ../src/ASF/sam0/boards
- ../src/ASF/sam0/utils/cmsis/samd21/include
- ../src/ASF/sam0/utils/cmsis/samd21/source
- ../src/ASF/sam0/utils
- ../src/ASF/sam0/utils/header_files
- ../src/ASF/sam0/utils/preprocessor
- ../src/ASF/thirdparty/CMSIS/Include
- ../src/ASF/thirdparty/CMSIS/Lib/GCC
- ../src/ASF/common/utils
- ../src/ASF/common/boards
- ../src/ASF/sam0/drivers/port
- ../src/ASF/sam0/drivers/system/pinmux
- ../src/ASF/sam0/drivers/extint
- ../src/ASF/sam0/drivers/system
- ../src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1
- ../src/ASF/sam0/drivers/system/clock
- ../src/ASF/sam0/drivers/system/interrupt
- ../src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21
- ../src/ASF/sam0/drivers/system/power
- ../src/ASF/sam0/drivers/system/power/power_sam_d_r_h
- ../src/ASF/sam0/drivers/system/reset
- ../src/ASF/sam0/drivers/system/reset/reset_sam_d_r_h
- ../src
- ../src/config
-
-
- -DARM_MATH_CM0PLUS=true -DBOARD=SAMD21_XPLAINED_PRO -DEXTINT_CALLBACK_MODE=true -D__SAMD21J18A__
-
-
- ../src/ASF/sam0/boards/samd21_xplained_pro
- ../src/ASF/sam0/boards
- ../src/ASF/sam0/utils/cmsis/samd21/include
- ../src/ASF/sam0/utils/cmsis/samd21/source
- ../src/ASF/sam0/utils
- ../src/ASF/sam0/utils/header_files
- ../src/ASF/sam0/utils/preprocessor
- ../src/ASF/thirdparty/CMSIS/Include
- ../src/ASF/thirdparty/CMSIS/Lib/GCC
- ../src/ASF/common/utils
- ../src/ASF/common/boards
- ../src/ASF/sam0/drivers/port
- ../src/ASF/sam0/drivers/system/pinmux
- ../src/ASF/sam0/drivers/extint
- ../src/ASF/sam0/drivers/system
- ../src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1
- ../src/ASF/sam0/drivers/system/clock
- ../src/ASF/sam0/drivers/system/interrupt
- ../src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21
- ../src/ASF/sam0/drivers/system/power
- ../src/ASF/sam0/drivers/system/power/power_sam_d_r_h
- ../src/ASF/sam0/drivers/system/reset
- ../src/ASF/sam0/drivers/system/reset/reset_sam_d_r_h
- ../src
- ../src/config
-
-
-
-
-
-
-
-
- True
- True
- True
- True
- True
-
-
- DEBUG
- BOARD=SAMD21_XPLAINED_PRO
- __SAMD21J18A__
- ARM_MATH_CM0PLUS=true
- EXTINT_CALLBACK_MODE=true
-
-
-
-
- ../src/ASF/sam0/boards/samd21_xplained_pro
- ../src/ASF/sam0/boards
- ../src/ASF/sam0/utils/cmsis/samd21/include
- ../src/ASF/sam0/utils/cmsis/samd21/source
- ../src/ASF/sam0/utils
- ../src/ASF/sam0/utils/header_files
- ../src/ASF/sam0/utils/preprocessor
- ../src/ASF/thirdparty/CMSIS/Include
- ../src/ASF/thirdparty/CMSIS/Lib/GCC
- ../src/ASF/common/utils
- ../src/ASF/common/boards
- ../src/ASF/sam0/drivers/port
- ../src/ASF/sam0/drivers/system/pinmux
- ../src/ASF/sam0/drivers/extint
- ../src/ASF/sam0/drivers/system
- ../src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1
- ../src/ASF/sam0/drivers/system/clock
- ../src/ASF/sam0/drivers/system/interrupt
- ../src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21
- ../src/ASF/sam0/drivers/system/power
- ../src/ASF/sam0/drivers/system/power/power_sam_d_r_h
- ../src/ASF/sam0/drivers/system/reset
- ../src/ASF/sam0/drivers/system/reset/reset_sam_d_r_h
- ../src
- ../src/config
-
-
- Optimize (-O1)
- -fdata-sections
- True
- Maximum (-g3)
- True
- -pipe -fno-strict-aliasing -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror-implicit-function-declaration -Wpointer-arith -std=gnu99 -ffunction-sections -fdata-sections -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int -Wmain -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused -Wuninitialized -Wunknown-pragmas -Wfloat-equal -Wundef -Wshadow -Wbad-function-cast -Wwrite-strings -Wsign-compare -Waggregate-return -Wmissing-declarations -Wformat -Wmissing-format-attribute -Wno-deprecated-declarations -Wpacked -Wredundant-decls -Wnested-externs -Wlong-long -Wunreachable-code -Wcast-align --param max-inline-insns-single=500
- True
-
-
- libarm_cortexM0l_math
- libm
-
-
-
-
- ../src/ASF/thirdparty/CMSIS/Lib/GCC
-
-
- True
- -Wl,--entry=Reset_Handler -Wl,--cref -mthumb -T../src/ASF/sam0/utils/linker_scripts/samd21/gcc/samd21j18a_flash.ld
-
-
- ../src/ASF/sam0/boards/samd21_xplained_pro
- ../src/ASF/sam0/boards
- ../src/ASF/sam0/utils/cmsis/samd21/include
- ../src/ASF/sam0/utils/cmsis/samd21/source
- ../src/ASF/sam0/utils
- ../src/ASF/sam0/utils/header_files
- ../src/ASF/sam0/utils/preprocessor
- ../src/ASF/thirdparty/CMSIS/Include
- ../src/ASF/thirdparty/CMSIS/Lib/GCC
- ../src/ASF/common/utils
- ../src/ASF/common/boards
- ../src/ASF/sam0/drivers/port
- ../src/ASF/sam0/drivers/system/pinmux
- ../src/ASF/sam0/drivers/extint
- ../src/ASF/sam0/drivers/system
- ../src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1
- ../src/ASF/sam0/drivers/system/clock
- ../src/ASF/sam0/drivers/system/interrupt
- ../src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21
- ../src/ASF/sam0/drivers/system/power
- ../src/ASF/sam0/drivers/system/power/power_sam_d_r_h
- ../src/ASF/sam0/drivers/system/reset
- ../src/ASF/sam0/drivers/system/reset/reset_sam_d_r_h
- ../src
- ../src/config
-
-
- Default (-g)
- -DARM_MATH_CM0PLUS=true -DBOARD=SAMD21_XPLAINED_PRO -DEXTINT_CALLBACK_MODE=true -D__SAMD21J18A__
-
-
- ../src/ASF/sam0/boards/samd21_xplained_pro
- ../src/ASF/sam0/boards
- ../src/ASF/sam0/utils/cmsis/samd21/include
- ../src/ASF/sam0/utils/cmsis/samd21/source
- ../src/ASF/sam0/utils
- ../src/ASF/sam0/utils/header_files
- ../src/ASF/sam0/utils/preprocessor
- ../src/ASF/thirdparty/CMSIS/Include
- ../src/ASF/thirdparty/CMSIS/Lib/GCC
- ../src/ASF/common/utils
- ../src/ASF/common/boards
- ../src/ASF/sam0/drivers/port
- ../src/ASF/sam0/drivers/system/pinmux
- ../src/ASF/sam0/drivers/extint
- ../src/ASF/sam0/drivers/system
- ../src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1
- ../src/ASF/sam0/drivers/system/clock
- ../src/ASF/sam0/drivers/system/interrupt
- ../src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21
- ../src/ASF/sam0/drivers/system/power
- ../src/ASF/sam0/drivers/system/power/power_sam_d_r_h
- ../src/ASF/sam0/drivers/system/reset
- ../src/ASF/sam0/drivers/system/reset/reset_sam_d_r_h
- ../src
- ../src/config
-
-
- Default (-Wa,-g)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
-
-
\ No newline at end of file
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/common/boards/board.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/common/boards/board.h
deleted file mode 100644
index f6b0c32..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/common/boards/board.h
+++ /dev/null
@@ -1,453 +0,0 @@
-/**
- * \file
- *
- * \brief Standard board header file.
- *
- * This file includes the appropriate board header file according to the
- * defined board (parameter BOARD).
- *
- * Copyright (c) 2009-2020 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _BOARD_H_
-#define _BOARD_H_
-
-/**
- * \defgroup group_common_boards Generic board support
- *
- * The generic board support module includes board-specific definitions
- * and function prototypes, such as the board initialization function.
- *
- * \{
- */
-
-#include "compiler.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*! \name Base Boards
- */
-//! @{
-#define EVK1100 1 //!< AT32UC3A EVK1100 board.
-#define EVK1101 2 //!< AT32UC3B EVK1101 board.
-#define UC3C_EK 3 //!< AT32UC3C UC3C-EK board.
-#define EVK1104 4 //!< AT32UC3A3 EVK1104 board.
-#define EVK1105 5 //!< AT32UC3A EVK1105 board.
-#define STK600_RCUC3L0 6 //!< STK600 RCUC3L0 board.
-#define UC3L_EK 7 //!< AT32UC3L-EK board.
-#define XPLAIN 8 //!< ATxmega128A1 Xplain board.
-#define STK600_RC064X 10 //!< ATxmega256A3 STK600 board.
-#define STK600_RC100X 11 //!< ATxmega128A1 STK600 board.
-#define UC3_A3_XPLAINED 13 //!< ATUC3A3 UC3-A3 Xplained board.
-#define UC3_L0_XPLAINED 15 //!< ATUC3L0 UC3-L0 Xplained board.
-#define STK600_RCUC3D 16 //!< STK600 RCUC3D board.
-#define STK600_RCUC3C0 17 //!< STK600 RCUC3C board.
-#define XMEGA_B1_XPLAINED 18 //!< ATxmega128B1 Xplained board.
-#define XMEGA_A1_XPLAINED 19 //!< ATxmega128A1 Xplain-A1 board.
-#define XMEGA_A1U_XPLAINED_PRO 20 //!< ATxmega128A1U XMEGA-A1U Xplained Pro board.
-#define STK600_RCUC3L4 21 //!< ATUCL4 STK600 board.
-#define UC3_L0_XPLAINED_BC 22 //!< ATUC3L0 UC3-L0 Xplained board controller board.
-#define MEGA1284P_XPLAINED_BC 23 //!< ATmega1284P-Xplained board controller board.
-#define STK600_RC044X 24 //!< STK600 with RC044X routing card board.
-#define STK600_RCUC3B0 25 //!< STK600 RCUC3B0 board.
-#define UC3_L0_QT600 26 //!< QT600 UC3L0 MCU board.
-#define XMEGA_A3BU_XPLAINED 27 //!< ATxmega256A3BU Xplained board.
-#define STK600_RC064X_LCDX 28 //!< XMEGAB3 STK600 RC064X LCDX board.
-#define STK600_RC100X_LCDX 29 //!< XMEGAB1 STK600 RC100X LCDX board.
-#define UC3B_BOARD_CONTROLLER 30 //!< AT32UC3B1 board controller for Atmel boards.
-#define RZ600 31 //!< AT32UC3A RZ600 MCU board.
-#define SAM3S_EK 32 //!< SAM3S-EK board.
-#define SAM3U_EK 33 //!< SAM3U-EK board.
-#define SAM3X_EK 34 //!< SAM3X-EK board.
-#define SAM3N_EK 35 //!< SAM3N-EK board.
-#define SAM3S_EK2 36 //!< SAM3S-EK2 board.
-#define SAM4S_EK 37 //!< SAM4S-EK board.
-#define STK600_RCUC3A0 38 //!< STK600 RCUC3A0 board.
-#define STK600_MEGA 39 //!< STK600 MEGA board.
-#define MEGA_1284P_XPLAINED 40 //!< ATmega1284P Xplained board.
-#define SAM4S_XPLAINED 41 //!< SAM4S Xplained board.
-#define ATXMEGA128A1_QT600 42 //!< QT600 ATXMEGA128A1 MCU board.
-#define ARDUINO_DUE_X 43 //!< Arduino Due/X board.
-#define STK600_RCUC3L3 44 //!< ATUCL3 STK600 board.
-#define SAM4L_EK 45 //!< SAM4L-EK board.
-#define STK600_MEGA_RF 46 //!< STK600 MEGA RF EVK board.
-#define XMEGA_C3_XPLAINED 47 //!< ATxmega384C3 Xplained board.
-#define STK600_RC032X 48 //!< STK600 with RC032X routing card board.
-#define SAM4S_EK2 49 //!< SAM4S-EK2 board.
-#define XMEGA_E5_XPLAINED 50 //!< ATxmega32E5 Xplained board.
-#define SAM4E_EK 51 //!< SAM4E-EK board.
-#define ATMEGA256RFR2_XPLAINED_PRO 52 //!< ATmega256RFR2 Xplained Pro board.
-#define SAM4S_XPLAINED_PRO 53 //!< SAM4S Xplained Pro board.
-#define SAM4L_XPLAINED_PRO 54 //!< SAM4L Xplained Pro board.
-#define ATMEGA256RFR2_ZIGBIT 55 //!< ATmega256RFR2 zigbit.
-#define XMEGA_RF233_ZIGBIT 56 //!< ATxmega256A3U with AT86RF233 Zigbit.
-#define XMEGA_RF212B_ZIGBIT 57 //!< ATxmega256A3U with AT86RF212B Zigbit.
-#define SAM4S_WPIR_RD 58 //!< SAM4S-WPIR-RD board.
-#define SAMD20_XPLAINED_PRO 59 //!< SAM D20 Xplained Pro board.
-#define SAM4L8_XPLAINED_PRO 60 //!< SAM4L8 Xplained Pro board.
-#define SAM4N_XPLAINED_PRO 61 //!< SAM4N Xplained Pro board.
-#define XMEGA_A3_REB_CBB 62 //!< XMEGA REB Controller Base board.
-#define ATMEGARFX_RCB 63 //!< RFR2 & RFA1 RCB.
-#define SAM4C_EK 64 //!< SAM4C-EK board.
-#define RCB256RFR2_XPRO 65 //!< RFR2 RCB Xplained Pro board.
-#define SAMG53_XPLAINED_PRO 66 //!< SAMG53 Xplained Pro board.
-#define SAM4CP16BMB 67 //!< SAM4CP16BMB board.
-#define SAM4E_XPLAINED_PRO 68 //!< SAM4E Xplained Pro board.
-#define SAMD21_XPLAINED_PRO 69 //!< SAM D21 Xplained Pro board.
-#define SAMR21_XPLAINED_PRO 70 //!< SAM R21 Xplained Pro board.
-#define SAM4CMP_DB 71 //!< SAM4CMP demo board.
-#define SAM4CMS_DB 72 //!< SAM4CMS demo board.
-#define ATPL230AMB 73 //!< ATPL230AMB board.
-#define SAMD11_XPLAINED_PRO 74 //!< SAM D11 Xplained Pro board.
-#define SAMG55_XPLAINED_PRO 75 //!< SAMG55 Xplained Pro board.
-#define SAML21_XPLAINED_PRO 76 //!< SAM L21 Xplained Pro board.
-#define SAMD10_XPLAINED_MINI 77 //!< SAM D10 Xplained Mini board.
-#define SAMDA1_XPLAINED_PRO 78 //!< SAM DA1 Xplained Pro board.
-#define SAMW25_XPLAINED_PRO 79 //!< SAMW25 Xplained Pro board.
-#define SAMC21_XPLAINED_PRO 80 //!< SAM C21 Xplained Pro board.
-#define SAMV71_XPLAINED_ULTRA 81 //!< SAMV71 Xplained Ultra board.
-#define ATMEGA328P_XPLAINED_MINI 82 //!< ATMEGA328P Xplained MINI board.
-#define ATMEGA328PB_XPLAINED_MINI 83 //!< ATMEGA328PB Xplained MINI board.
-#define SAMB11_XPLAINED_PRO 84 //!< SAM B11 Xplained Pro board.
-#define SAME70_XPLAINED 85 //!< SAME70 Xplained board.
-#define SAML22_XPLAINED_PRO 86 //!< SAM L22 Xplained Pro board.
-#define SAML22_XPLAINED_PRO_B 87 //!< SAM L22 Xplained Pro board.
-#define SAMR21ZLL_EK 88 //!< SAMR21ZLL-EK board.
-#define ATMEGA168PB_XPLAINED_MINI 89 //!< ATMEGA168PB Xplained MINI board.
-#define ATMEGA324PB_XPLAINED_PRO 90 //!< ATMEGA324PB Xplained Pro board.
-#define SAMB11ZR_XPLAINED_PRO 92 //!< SAM B11 ZR Xplained Pro board.
-#define SAMR30_XPLAINED_PRO 93 //!< SAM R30 Xplained Pro board.
-#define SAMHA1G16A_XPLAINED_PRO 94 //!< SAM HA1G16A Xplained Pro board.
-#define SAMR34_XPLAINED_PRO 95 //!< SAM R34 Xplained Pro board.
-#define SIMULATOR_XMEGA_A1 97 //!< Simulator for XMEGA A1 devices.
-#define AVR_SIMULATOR_UC3 98 //!< Simulator for the AVR UC3 device family.
-#define USER_BOARD 99 //!< User-reserved board (if any).
-#define DUMMY_BOARD 100 //!< Dummy board to support board-independent applications (e.g. bootloader).
-#define SAMB11ZR_SENSOR_TAG 101 //!< SAMB11ZR sensor tag board
-#define SAMR30_MODULE_XPLAINED_PRO 102 //!< SAM R30 Module Xplained Pro board.
-#define SAMR21G18_MODULE 103 //!< SAMR21G18-MR210UA Module.
-#define SAMR21B18_MODULE 104 //!< SAMR21B18-MZ210PA Module.
-#define WLR089_XPLAINED_PRO 105 //!< WLR089_XPLAINED_PRO board.
-//! @}
-
-/*! \name Extension Boards
- */
-//! @{
-#define EXT1102 1 //!< AT32UC3B EXT1102 board
-#define MC300 2 //!< AT32UC3 MC300 board
-#define SENSORS_XPLAINED_INERTIAL_1 3 //!< Xplained inertial sensor board 1
-#define SENSORS_XPLAINED_INERTIAL_2 4 //!< Xplained inertial sensor board 2
-#define SENSORS_XPLAINED_PRESSURE_1 5 //!< Xplained pressure sensor board
-#define SENSORS_XPLAINED_LIGHTPROX_1 6 //!< Xplained light & proximity sensor board
-#define SENSORS_XPLAINED_INERTIAL_A1 7 //!< Xplained inertial sensor board "A"
-#define RZ600_AT86RF231 8 //!< AT86RF231 RF board in RZ600
-#define RZ600_AT86RF230B 9 //!< AT86RF230B RF board in RZ600
-#define RZ600_AT86RF212 10 //!< AT86RF212 RF board in RZ600
-#define SENSORS_XPLAINED_BREADBOARD 11 //!< Xplained sensor development breadboard
-#define SECURITY_XPLAINED 12 //!< Xplained ATSHA204 board
-#define USER_EXT_BOARD 99 //!< User-reserved extension board (if any).
-//! @}
-
-#if BOARD == EVK1100
-# include "evk1100/evk1100.h"
-#elif BOARD == EVK1101
-# include "evk1101/evk1101.h"
-#elif BOARD == UC3C_EK
-# include "uc3c_ek/uc3c_ek.h"
-#elif BOARD == EVK1104
-# include "evk1104/evk1104.h"
-#elif BOARD == EVK1105
-# include "evk1105/evk1105.h"
-#elif BOARD == STK600_RCUC3L0
-# include "stk600/rcuc3l0/stk600_rcuc3l0.h"
-#elif BOARD == UC3L_EK
-# include "uc3l_ek/uc3l_ek.h"
-#elif BOARD == STK600_RCUC3L4
-# include "stk600/rcuc3l4/stk600_rcuc3l4.h"
-#elif BOARD == XPLAIN
-# include "xplain/xplain.h"
-#elif BOARD == STK600_MEGA
- /*No header-file to include*/
-#elif BOARD == STK600_MEGA_RF
-# include "stk600.h"
-#elif BOARD == ATMEGA256RFR2_XPLAINED_PRO
-# include "atmega256rfr2_xplained_pro/atmega256rfr2_xplained_pro.h"
-#elif BOARD == ATMEGA256RFR2_ZIGBIT
-# include "atmega256rfr2_zigbit/atmega256rfr2_zigbit.h"
-#elif BOARD == STK600_RC032X
-# include "stk600/rc032x/stk600_rc032x.h"
-#elif BOARD == STK600_RC044X
-# include "stk600/rc044x/stk600_rc044x.h"
-#elif BOARD == STK600_RC064X
-# include "stk600/rc064x/stk600_rc064x.h"
-#elif BOARD == STK600_RC100X
-# include "stk600/rc100x/stk600_rc100x.h"
-#elif BOARD == UC3_A3_XPLAINED
-# include "uc3_a3_xplained/uc3_a3_xplained.h"
-#elif BOARD == UC3_L0_XPLAINED
-# include "uc3_l0_xplained/uc3_l0_xplained.h"
-#elif BOARD == STK600_RCUC3B0
-# include "stk600/rcuc3b0/stk600_rcuc3b0.h"
-#elif BOARD == STK600_RCUC3D
-# include "stk600/rcuc3d/stk600_rcuc3d.h"
-#elif BOARD == STK600_RCUC3C0
-# include "stk600/rcuc3c0/stk600_rcuc3c0.h"
-#elif BOARD == SAMG53_XPLAINED_PRO
-# include "samg53_xplained_pro/samg53_xplained_pro.h"
-#elif BOARD == SAMG55_XPLAINED_PRO
-# include "samg55_xplained_pro/samg55_xplained_pro.h"
-#elif BOARD == XMEGA_B1_XPLAINED
-# include "xmega_b1_xplained/xmega_b1_xplained.h"
-#elif BOARD == STK600_RC064X_LCDX
-# include "stk600/rc064x_lcdx/stk600_rc064x_lcdx.h"
-#elif BOARD == STK600_RC100X_LCDX
-# include "stk600/rc100x_lcdx/stk600_rc100x_lcdx.h"
-#elif BOARD == XMEGA_A1_XPLAINED
-# include "xmega_a1_xplained/xmega_a1_xplained.h"
-#elif BOARD == XMEGA_A1U_XPLAINED_PRO
-# include "xmega_a1u_xplained_pro/xmega_a1u_xplained_pro.h"
-#elif BOARD == UC3_L0_XPLAINED_BC
-# include "uc3_l0_xplained_bc/uc3_l0_xplained_bc.h"
-#elif BOARD == SAM3S_EK
-# include "sam3s_ek/sam3s_ek.h"
-# include "system_sam3s.h"
-#elif BOARD == SAM3S_EK2
-# include "sam3s_ek2/sam3s_ek2.h"
-# include "system_sam3sd8.h"
-#elif BOARD == SAM3U_EK
-# include "sam3u_ek/sam3u_ek.h"
-# include "system_sam3u.h"
-#elif BOARD == SAM3X_EK
-# include "sam3x_ek/sam3x_ek.h"
-# include "system_sam3x.h"
-#elif BOARD == SAM3N_EK
-# include "sam3n_ek/sam3n_ek.h"
-# include "system_sam3n.h"
-#elif BOARD == SAM4S_EK
-# include "sam4s_ek/sam4s_ek.h"
-# include "system_sam4s.h"
-#elif BOARD == SAM4S_WPIR_RD
-# include "sam4s_wpir_rd/sam4s_wpir_rd.h"
-# include "system_sam4s.h"
-#elif BOARD == SAM4S_XPLAINED
-# include "sam4s_xplained/sam4s_xplained.h"
-# include "system_sam4s.h"
-#elif BOARD == SAM4S_EK2
-# include "sam4s_ek2/sam4s_ek2.h"
-# include "system_sam4s.h"
-#elif BOARD == MEGA_1284P_XPLAINED
- /*No header-file to include*/
-#elif BOARD == ARDUINO_DUE_X
-# include "arduino_due_x/arduino_due_x.h"
-# include "system_sam3x.h"
-#elif BOARD == SAM4L_EK
-# include "sam4l_ek/sam4l_ek.h"
-#elif BOARD == SAM4E_EK
-# include "sam4e_ek/sam4e_ek.h"
-#elif BOARD == SAMD20_XPLAINED_PRO
-# include "samd20_xplained_pro/samd20_xplained_pro.h"
-#elif BOARD == SAMD21_XPLAINED_PRO
-# include "samd21_xplained_pro/samd21_xplained_pro.h"
-#elif BOARD == SAMR21_XPLAINED_PRO
-# include "samr21_xplained_pro/samr21_xplained_pro.h"
-#elif BOARD == SAMR30_XPLAINED_PRO && defined(__SAMR30G18A__)
-# include "samr30_xplained_pro/samr30_xplained_pro.h"
-#elif BOARD == SAMR30_MODULE_XPLAINED_PRO && defined(__SAMR30E18A__)
-# include "samr30_module_xplained_pro/samr30_module_xplained_pro.h"
-#elif BOARD == SAMR21ZLL_EK
-# include "samr21zll_ek/samr21zll_ek.h"
-#elif BOARD == SAMD11_XPLAINED_PRO
-# include "samd11_xplained_pro/samd11_xplained_pro.h"
-#elif BOARD == SAML21_XPLAINED_PRO && defined(__SAML21J18A__)
-# include "saml21_xplained_pro/saml21_xplained_pro.h"
-#elif BOARD == SAML22_XPLAINED_PRO
-# include "saml22_xplained_pro/saml22_xplained_pro.h"
-#elif BOARD == SAML22_XPLAINED_PRO_B
-# include "saml22_xplained_pro_b/saml22_xplained_pro_b.h"
-#elif BOARD == SAML21_XPLAINED_PRO && defined(__SAML21J18B__)
-# include "saml21_xplained_pro_b/saml21_xplained_pro.h"
-#elif BOARD == SAMD10_XPLAINED_MINI
-# include "samd10_xplained_mini/samd10_xplained_mini.h"
-#elif BOARD == SAMDA1_XPLAINED_PRO
-# include "samda1_xplained_pro/samda1_xplained_pro.h"
-#elif BOARD == SAMHA1G16A_XPLAINED_PRO
-# include "samha1g16a_xplained_pro/samha1g16a_xplained_pro.h"
-#elif BOARD == SAMC21_XPLAINED_PRO
-# include "samc21_xplained_pro/samc21_xplained_pro.h"
-#elif BOARD == SAM4N_XPLAINED_PRO
-# include "sam4n_xplained_pro/sam4n_xplained_pro.h"
-#elif BOARD == SAMW25_XPLAINED_PRO
-# include "samw25_xplained_pro/samw25_xplained_pro.h"
-#elif BOARD == SAMV71_XPLAINED_ULTRA
-# include "samv71_xplained_ultra/samv71_xplained_ultra.h"
-#elif BOARD == MEGA1284P_XPLAINED_BC
-# include "mega1284p_xplained_bc/mega1284p_xplained_bc.h"
-#elif BOARD == UC3_L0_QT600
-# include "uc3_l0_qt600/uc3_l0_qt600.h"
-#elif BOARD == XMEGA_A3BU_XPLAINED
-# include "xmega_a3bu_xplained/xmega_a3bu_xplained.h"
-#elif BOARD == XMEGA_E5_XPLAINED
-# include "xmega_e5_xplained/xmega_e5_xplained.h"
-#elif BOARD == UC3B_BOARD_CONTROLLER
-# include "uc3b_board_controller/uc3b_board_controller.h"
-#elif BOARD == RZ600
-# include "rz600/rz600.h"
-#elif BOARD == STK600_RCUC3A0
-# include "stk600/rcuc3a0/stk600_rcuc3a0.h"
-#elif BOARD == ATXMEGA128A1_QT600
-# include "atxmega128a1_qt600/atxmega128a1_qt600.h"
-#elif BOARD == STK600_RCUC3L3
-# include "stk600/rcuc3l3/stk600_rcuc3l3.h"
-#elif BOARD == SAM4S_XPLAINED_PRO
-# include "sam4s_xplained_pro/sam4s_xplained_pro.h"
-#elif BOARD == SAM4L_XPLAINED_PRO
-# include "sam4l_xplained_pro/sam4l_xplained_pro.h"
-#elif BOARD == SAM4L8_XPLAINED_PRO
-# include "sam4l8_xplained_pro/sam4l8_xplained_pro.h"
-#elif BOARD == SAM4C_EK
-# include "sam4c_ek/sam4c_ek.h"
-#elif BOARD == SAM4CMP_DB
-# include "sam4cmp_db/sam4cmp_db.h"
-#elif BOARD == SAM4CMS_DB
-# include "sam4cms_db/sam4cms_db.h"
-#elif BOARD == SAM4CP16BMB
-# include "sam4cp16bmb/sam4cp16bmb.h"
-#elif BOARD == ATPL230AMB
-# include "atpl230amb/atpl230amb.h"
-#elif BOARD == XMEGA_C3_XPLAINED
-# include "xmega_c3_xplained/xmega_c3_xplained.h"
-#elif BOARD == XMEGA_RF233_ZIGBIT
-# include "xmega_rf233_zigbit/xmega_rf233_zigbit.h"
-#elif BOARD == XMEGA_A3_REB_CBB
-# include "xmega_a3_reb_cbb/xmega_a3_reb_cbb.h"
-#elif BOARD == ATMEGARFX_RCB
-# include "atmegarfx_rcb/atmegarfx_rcb.h"
-#elif BOARD == RCB256RFR2_XPRO
-# include "atmega256rfr2_rcb_xpro/atmega256rfr2_rcb_xpro.h"
-#elif BOARD == XMEGA_RF212B_ZIGBIT
-# include "xmega_rf212b_zigbit/xmega_rf212b_zigbit.h"
-#elif BOARD == SAM4E_XPLAINED_PRO
-# include "sam4e_xplained_pro/sam4e_xplained_pro.h"
-#elif BOARD == ATMEGA328P_XPLAINED_MINI
-# include "atmega328p_xplained_mini/atmega328p_xplained_mini.h"
-#elif BOARD == ATMEGA328PB_XPLAINED_MINI
-# include "atmega328pb_xplained_mini/atmega328pb_xplained_mini.h"
-#elif BOARD == SAMB11_XPLAINED_PRO
-# include "samb11_xplained_pro/samb11_xplained_pro.h"
-#elif BOARD == SAME70_XPLAINED
-# include "same70_xplained/same70_xplained.h"
-#elif BOARD == ATMEGA168PB_XPLAINED_MINI
-# include "atmega168pb_xplained_mini/atmega168pb_xplained_mini.h"
-#elif BOARD == ATMEGA324PB_XPLAINED_PRO
-# include "atmega324pb_xplained_pro/atmega324pb_xplained_pro.h"
-#elif BOARD == SAMB11ZR_XPLAINED_PRO
-# include "samb11zr_xplained_pro/samb11zr_xplained_pro.h"
-#elif BOARD == SIMULATOR_XMEGA_A1
-# include "simulator/xmega_a1/simulator_xmega_a1.h"
-#elif BOARD == AVR_SIMULATOR_UC3
-# include "avr_simulator_uc3/avr_simulator_uc3.h"
-#elif BOARD == SAMR21G18_MODULE
-# include "samr21g18_module/samr21g18_module.h"
-#elif BOARD == SAMR21B18_MODULE
-# include "samr21b18_module/samr21b18_module.h"
-#elif BOARD == SAMR34_XPLAINED_PRO && defined(__SAMR34J18B__)
-# include "samr34_xplained_pro/samr34_xplained_pro.h"
-#elif BOARD == WLR089_XPLAINED_PRO && defined(__WLR089U0__)
-# include "wlr089_xplained_pro/wlr089_xplained_pro.h"
-#elif BOARD == USER_BOARD
-// User-reserved area: #include the header file of your board here (if any).
-# include "user_board.h"
-#elif BOARD == DUMMY_BOARD
-# include "dummy/dummy_board.h"
-#elif BOARD == SAMB11ZR_SENSOR_TAG
-# include "samb11zr_sensor_tag/samb11zr_sensor_tag.h"
-#else
-# error No known Atmel board defined
-#endif
-
-#if (defined EXT_BOARD)
-# if EXT_BOARD == MC300
-# include "mc300/mc300.h"
-# elif (EXT_BOARD == SENSORS_XPLAINED_INERTIAL_1) || \
- (EXT_BOARD == SENSORS_XPLAINED_INERTIAL_2) || \
- (EXT_BOARD == SENSORS_XPLAINED_INERTIAL_A1) || \
- (EXT_BOARD == SENSORS_XPLAINED_PRESSURE_1) || \
- (EXT_BOARD == SENSORS_XPLAINED_LIGHTPROX_1) || \
- (EXT_BOARD == SENSORS_XPLAINED_BREADBOARD)
-# include "sensors_xplained/sensors_xplained.h"
-# elif EXT_BOARD == RZ600_AT86RF231
-# include "at86rf231/at86rf231.h"
-# elif EXT_BOARD == RZ600_AT86RF230B
-# include "at86rf230b/at86rf230b.h"
-# elif EXT_BOARD == RZ600_AT86RF212
-# include "at86rf212/at86rf212.h"
-# elif EXT_BOARD == SECURITY_XPLAINED
-# include "security_xplained.h"
-# elif EXT_BOARD == USER_EXT_BOARD
- // User-reserved area: #include the header file of your extension board here
- // (if any).
-# endif
-#endif
-
-
-#if (defined(__GNUC__) && defined(__AVR32__)) || (defined(__ICCAVR32__) || defined(__AAVR32__))
-#ifdef __AVR32_ABI_COMPILER__ // Automatically defined when compiling for AVR32, not when assembling.
-
-/*! \brief This function initializes the board target resources
- *
- * This function should be called to ensure proper initialization of the target
- * board hardware connected to the part.
- */
-extern void board_init(void);
-
-#endif // #ifdef __AVR32_ABI_COMPILER__
-#else
-/*! \brief This function initializes the board target resources
- *
- * This function should be called to ensure proper initialization of the target
- * board hardware connected to the part.
- */
-extern void board_init(void);
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/**
- * \}
- */
-
-#endif // _BOARD_H_
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/common/utils/interrupt.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/common/utils/interrupt.h
deleted file mode 100644
index 450d0f9..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/common/utils/interrupt.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/**
- * \file
- *
- * \brief Global interrupt management for 8- and 32-bit AVR
- *
- * Copyright (c) 2010-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef UTILS_INTERRUPT_H
-#define UTILS_INTERRUPT_H
-
-#include
-
-#if XMEGA || MEGA
-# include "interrupt/interrupt_avr8.h"
-#elif UC3
-# include "interrupt/interrupt_avr32.h"
-#elif SAM || SAMB
-# include "interrupt/interrupt_sam_nvic.h"
-#else
-# error Unsupported device.
-#endif
-
-/**
- * \defgroup interrupt_group Global interrupt management
- *
- * This is a driver for global enabling and disabling of interrupts.
- *
- * @{
- */
-
-#if defined(__DOXYGEN__)
-/**
- * \def CONFIG_INTERRUPT_FORCE_INTC
- * \brief Force usage of the ASF INTC driver
- *
- * Predefine this symbol when preprocessing to force the use of the ASF INTC driver.
- * This is useful to ensure compatibility across compilers and shall be used only when required
- * by the application needs.
- */
-# define CONFIG_INTERRUPT_FORCE_INTC
-#endif
-
-//! \name Global interrupt flags
-//@{
-/**
- * \typedef irqflags_t
- * \brief Type used for holding state of interrupt flag
- */
-
-/**
- * \def cpu_irq_enable
- * \brief Enable interrupts globally
- */
-
-/**
- * \def cpu_irq_disable
- * \brief Disable interrupts globally
- */
-
-/**
- * \fn irqflags_t cpu_irq_save(void)
- * \brief Get and clear the global interrupt flags
- *
- * Use in conjunction with \ref cpu_irq_restore.
- *
- * \return Current state of interrupt flags.
- *
- * \note This function leaves interrupts disabled.
- */
-
-/**
- * \fn void cpu_irq_restore(irqflags_t flags)
- * \brief Restore global interrupt flags
- *
- * Use in conjunction with \ref cpu_irq_save.
- *
- * \param flags State to set interrupt flag to.
- */
-
-/**
- * \fn bool cpu_irq_is_enabled_flags(irqflags_t flags)
- * \brief Check if interrupts are globally enabled in supplied flags
- *
- * \param flags Currents state of interrupt flags.
- *
- * \return True if interrupts are enabled.
- */
-
-/**
- * \def cpu_irq_is_enabled
- * \brief Check if interrupts are globally enabled
- *
- * \return True if interrupts are enabled.
- */
-//@}
-
-//! @}
-
-/**
- * \ingroup interrupt_group
- * \defgroup interrupt_deprecated_group Deprecated interrupt definitions
- */
-
-#endif /* UTILS_INTERRUPT_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/common/utils/interrupt/interrupt_sam_nvic.c b/EXTINT_QUICK_START_CALLBACK1/src/ASF/common/utils/interrupt/interrupt_sam_nvic.c
deleted file mode 100644
index 269b4ce..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/common/utils/interrupt/interrupt_sam_nvic.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/**
- * \file
- *
- * \brief Global interrupt management for SAM D20, SAM3 and SAM4 (NVIC based)
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#include "interrupt_sam_nvic.h"
-
-#if !defined(__DOXYGEN__)
-/* Deprecated - global flag to determine the global interrupt state. Required by
- * QTouch library, however new applications should use cpu_irq_is_enabled()
- * which probes the true global interrupt state from the CPU special registers.
- */
-volatile bool g_interrupt_enabled = true;
-#endif
-
-void cpu_irq_enter_critical(void)
-{
- if (cpu_irq_critical_section_counter == 0) {
- if (cpu_irq_is_enabled()) {
- cpu_irq_disable();
- cpu_irq_prev_interrupt_state = true;
- } else {
- /* Make sure the to save the prev state as false */
- cpu_irq_prev_interrupt_state = false;
- }
-
- }
-
- cpu_irq_critical_section_counter++;
-}
-
-void cpu_irq_leave_critical(void)
-{
- /* Check if the user is trying to leave a critical section when not in a critical section */
- Assert(cpu_irq_critical_section_counter > 0);
-
- cpu_irq_critical_section_counter--;
-
- /* Only enable global interrupts when the counter reaches 0 and the state of the global interrupt flag
- was enabled when entering critical state */
- if ((cpu_irq_critical_section_counter == 0) && (cpu_irq_prev_interrupt_state)) {
- cpu_irq_enable();
- }
-}
-
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/common/utils/interrupt/interrupt_sam_nvic.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/common/utils/interrupt/interrupt_sam_nvic.h
deleted file mode 100644
index 7d215cf..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/common/utils/interrupt/interrupt_sam_nvic.h
+++ /dev/null
@@ -1,179 +0,0 @@
-/**
- * \file
- *
- * \brief Global interrupt management for SAM D20, SAM3 and SAM4 (NVIC based)
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef UTILS_INTERRUPT_INTERRUPT_H
-#define UTILS_INTERRUPT_INTERRUPT_H
-
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \weakgroup interrupt_group
- *
- * @{
- */
-
-/**
- * \name Interrupt Service Routine definition
- *
- * @{
- */
-
-/**
- * \brief Define service routine
- *
- * \note For NVIC devices the interrupt service routines are predefined to
- * add to vector table in binary generation, so there is no service
- * register at run time. The routine collections are in exceptions.h.
- *
- * Usage:
- * \code
- ISR(foo_irq_handler)
- {
- // Function definition
- ...
- }
-\endcode
- *
- * \param func Name for the function.
- */
-# define ISR(func) \
- void func (void)
-
-/**
- * \brief Initialize interrupt vectors
- *
- * For NVIC the interrupt vectors are put in vector table. So nothing
- * to do to initialize them, except defined the vector function with
- * right name.
- *
- * This must be called prior to \ref irq_register_handler.
- */
-# define irq_initialize_vectors() \
- do { \
- } while(0)
-
-/**
- * \brief Register handler for interrupt
- *
- * For NVIC the interrupt vectors are put in vector table. So nothing
- * to do to register them, except defined the vector function with
- * right name.
- *
- * Usage:
- * \code
- irq_initialize_vectors();
- irq_register_handler(foo_irq_handler);
-\endcode
- *
- * \note The function \a func must be defined with the \ref ISR macro.
- * \note The functions prototypes can be found in the device exception header
- * files (exceptions.h).
- */
-# define irq_register_handler(int_num, int_prio) \
- NVIC_ClearPendingIRQ( (IRQn_Type)int_num); \
- NVIC_SetPriority( (IRQn_Type)int_num, int_prio); \
- NVIC_EnableIRQ( (IRQn_Type)int_num); \
-
-//@}
-
-# define cpu_irq_enable() \
- do { \
- g_interrupt_enabled = true; \
- __DMB(); \
- __enable_irq(); \
- } while (0)
-# define cpu_irq_disable() \
- do { \
- __disable_irq(); \
- __DMB(); \
- g_interrupt_enabled = false; \
- } while (0)
-
-typedef uint32_t irqflags_t;
-
-#if !defined(__DOXYGEN__)
-extern volatile bool g_interrupt_enabled;
-#endif
-
-#define cpu_irq_is_enabled() (__get_PRIMASK() == 0)
-
-static volatile uint32_t cpu_irq_critical_section_counter;
-static volatile bool cpu_irq_prev_interrupt_state;
-
-static inline irqflags_t cpu_irq_save(void)
-{
- volatile irqflags_t flags = cpu_irq_is_enabled();
- cpu_irq_disable();
- return flags;
-}
-
-static inline bool cpu_irq_is_enabled_flags(irqflags_t flags)
-{
- return (flags);
-}
-
-static inline void cpu_irq_restore(irqflags_t flags)
-{
- if (cpu_irq_is_enabled_flags(flags))
- cpu_irq_enable();
-}
-
-void cpu_irq_enter_critical(void);
-void cpu_irq_leave_critical(void);
-
-/**
- * \weakgroup interrupt_deprecated_group
- * @{
- */
-
-#define Enable_global_interrupt() cpu_irq_enable()
-#define Disable_global_interrupt() cpu_irq_disable()
-#define Is_global_interrupt_enabled() cpu_irq_is_enabled()
-
-//@}
-
-//@}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* UTILS_INTERRUPT_INTERRUPT_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/common/utils/parts.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/common/utils/parts.h
deleted file mode 100644
index 85689a8..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/common/utils/parts.h
+++ /dev/null
@@ -1,1768 +0,0 @@
-/**
- * \file
- *
- * \brief Atmel part identification macros
- *
- * Copyright (c) 2012-2020 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef ATMEL_PARTS_H
-#define ATMEL_PARTS_H
-
-/**
- * \defgroup part_macros_group Atmel part identification macros
- *
- * This collection of macros identify which series and families that the various
- * Atmel parts belong to. These can be used to select part-dependent sections of
- * code at compile time.
- *
- * @{
- */
-
-/**
- * \name Convenience macros for part checking
- * @{
- */
-/* ! Check GCC and IAR part definition for 8-bit AVR */
-#define AVR8_PART_IS_DEFINED(part) \
- (defined(__ ## part ## __) || defined(__AVR_ ## part ## __))
-
-/* ! Check GCC and IAR part definition for 32-bit AVR */
-#define AVR32_PART_IS_DEFINED(part) \
- (defined(__AT32 ## part ## __) || defined(__AVR32_ ## part ## __))
-
-/* ! Check GCC and IAR part definition for SAM */
-#define SAM_PART_IS_DEFINED(part) (defined(__ ## part ## __))
-/** @} */
-
-/**
- * \defgroup uc3_part_macros_group AVR UC3 parts
- * @{
- */
-
-/**
- * \name AVR UC3 A series
- * @{
- */
-#define UC3A0 ( \
- AVR32_PART_IS_DEFINED(UC3A0128) || \
- AVR32_PART_IS_DEFINED(UC3A0256) || \
- AVR32_PART_IS_DEFINED(UC3A0512) \
- )
-
-#define UC3A1 ( \
- AVR32_PART_IS_DEFINED(UC3A1128) || \
- AVR32_PART_IS_DEFINED(UC3A1256) || \
- AVR32_PART_IS_DEFINED(UC3A1512) \
- )
-
-#define UC3A3 ( \
- AVR32_PART_IS_DEFINED(UC3A364) || \
- AVR32_PART_IS_DEFINED(UC3A364S) || \
- AVR32_PART_IS_DEFINED(UC3A3128) || \
- AVR32_PART_IS_DEFINED(UC3A3128S) || \
- AVR32_PART_IS_DEFINED(UC3A3256) || \
- AVR32_PART_IS_DEFINED(UC3A3256S) \
- )
-
-#define UC3A4 ( \
- AVR32_PART_IS_DEFINED(UC3A464) || \
- AVR32_PART_IS_DEFINED(UC3A464S) || \
- AVR32_PART_IS_DEFINED(UC3A4128) || \
- AVR32_PART_IS_DEFINED(UC3A4128S) || \
- AVR32_PART_IS_DEFINED(UC3A4256) || \
- AVR32_PART_IS_DEFINED(UC3A4256S) \
- )
-/** @} */
-
-/**
- * \name AVR UC3 B series
- * @{
- */
-#define UC3B0 ( \
- AVR32_PART_IS_DEFINED(UC3B064) || \
- AVR32_PART_IS_DEFINED(UC3B0128) || \
- AVR32_PART_IS_DEFINED(UC3B0256) || \
- AVR32_PART_IS_DEFINED(UC3B0512) \
- )
-
-#define UC3B1 ( \
- AVR32_PART_IS_DEFINED(UC3B164) || \
- AVR32_PART_IS_DEFINED(UC3B1128) || \
- AVR32_PART_IS_DEFINED(UC3B1256) || \
- AVR32_PART_IS_DEFINED(UC3B1512) \
- )
-/** @} */
-
-/**
- * \name AVR UC3 C series
- * @{
- */
-#define UC3C0 ( \
- AVR32_PART_IS_DEFINED(UC3C064C) || \
- AVR32_PART_IS_DEFINED(UC3C0128C) || \
- AVR32_PART_IS_DEFINED(UC3C0256C) || \
- AVR32_PART_IS_DEFINED(UC3C0512C) \
- )
-
-#define UC3C1 ( \
- AVR32_PART_IS_DEFINED(UC3C164C) || \
- AVR32_PART_IS_DEFINED(UC3C1128C) || \
- AVR32_PART_IS_DEFINED(UC3C1256C) || \
- AVR32_PART_IS_DEFINED(UC3C1512C) \
- )
-
-#define UC3C2 ( \
- AVR32_PART_IS_DEFINED(UC3C264C) || \
- AVR32_PART_IS_DEFINED(UC3C2128C) || \
- AVR32_PART_IS_DEFINED(UC3C2256C) || \
- AVR32_PART_IS_DEFINED(UC3C2512C) \
- )
-/** @} */
-
-/**
- * \name AVR UC3 D series
- * @{
- */
-#define UC3D3 ( \
- AVR32_PART_IS_DEFINED(UC64D3) || \
- AVR32_PART_IS_DEFINED(UC128D3) \
- )
-
-#define UC3D4 ( \
- AVR32_PART_IS_DEFINED(UC64D4) || \
- AVR32_PART_IS_DEFINED(UC128D4) \
- )
-/** @} */
-
-/**
- * \name AVR UC3 L series
- * @{
- */
-#define UC3L0 ( \
- AVR32_PART_IS_DEFINED(UC3L016) || \
- AVR32_PART_IS_DEFINED(UC3L032) || \
- AVR32_PART_IS_DEFINED(UC3L064) \
- )
-
-#define UC3L0128 ( \
- AVR32_PART_IS_DEFINED(UC3L0128) \
- )
-
-#define UC3L0256 ( \
- AVR32_PART_IS_DEFINED(UC3L0256) \
- )
-
-#define UC3L3 ( \
- AVR32_PART_IS_DEFINED(UC64L3U) || \
- AVR32_PART_IS_DEFINED(UC128L3U) || \
- AVR32_PART_IS_DEFINED(UC256L3U) \
- )
-
-#define UC3L4 ( \
- AVR32_PART_IS_DEFINED(UC64L4U) || \
- AVR32_PART_IS_DEFINED(UC128L4U) || \
- AVR32_PART_IS_DEFINED(UC256L4U) \
- )
-
-#define UC3L3_L4 (UC3L3 || UC3L4)
-/** @} */
-
-/**
- * \name AVR UC3 families
- * @{
- */
-/** AVR UC3 A family */
-#define UC3A (UC3A0 || UC3A1 || UC3A3 || UC3A4)
-
-/** AVR UC3 B family */
-#define UC3B (UC3B0 || UC3B1)
-
-/** AVR UC3 C family */
-#define UC3C (UC3C0 || UC3C1 || UC3C2)
-
-/** AVR UC3 D family */
-#define UC3D (UC3D3 || UC3D4)
-
-/** AVR UC3 L family */
-#define UC3L (UC3L0 || UC3L0128 || UC3L0256 || UC3L3_L4)
-/** @} */
-
-/** AVR UC3 product line */
-#define UC3 (UC3A || UC3B || UC3C || UC3D || UC3L)
-
-/** @} */
-
-/**
- * \defgroup xmega_part_macros_group AVR XMEGA parts
- * @{
- */
-
-/**
- * \name AVR XMEGA A series
- * @{
- */
-#define XMEGA_A1 ( \
- AVR8_PART_IS_DEFINED(ATxmega64A1) || \
- AVR8_PART_IS_DEFINED(ATxmega128A1) \
- )
-
-#define XMEGA_A3 ( \
- AVR8_PART_IS_DEFINED(ATxmega64A3) || \
- AVR8_PART_IS_DEFINED(ATxmega128A3) || \
- AVR8_PART_IS_DEFINED(ATxmega192A3) || \
- AVR8_PART_IS_DEFINED(ATxmega256A3) \
- )
-
-#define XMEGA_A3B ( \
- AVR8_PART_IS_DEFINED(ATxmega256A3B) \
- )
-
-#define XMEGA_A4 ( \
- AVR8_PART_IS_DEFINED(ATxmega16A4) || \
- AVR8_PART_IS_DEFINED(ATxmega32A4) \
- )
-/** @} */
-
-/**
- * \name AVR XMEGA AU series
- * @{
- */
-#define XMEGA_A1U ( \
- AVR8_PART_IS_DEFINED(ATxmega64A1U) || \
- AVR8_PART_IS_DEFINED(ATxmega128A1U) \
- )
-
-#define XMEGA_A3U ( \
- AVR8_PART_IS_DEFINED(ATxmega64A3U) || \
- AVR8_PART_IS_DEFINED(ATxmega128A3U) || \
- AVR8_PART_IS_DEFINED(ATxmega192A3U) || \
- AVR8_PART_IS_DEFINED(ATxmega256A3U) \
- )
-
-#define XMEGA_A3BU ( \
- AVR8_PART_IS_DEFINED(ATxmega256A3BU) \
- )
-
-#define XMEGA_A4U ( \
- AVR8_PART_IS_DEFINED(ATxmega16A4U) || \
- AVR8_PART_IS_DEFINED(ATxmega32A4U) || \
- AVR8_PART_IS_DEFINED(ATxmega64A4U) || \
- AVR8_PART_IS_DEFINED(ATxmega128A4U) \
- )
-/** @} */
-
-/**
- * \name AVR XMEGA B series
- * @{
- */
-#define XMEGA_B1 ( \
- AVR8_PART_IS_DEFINED(ATxmega64B1) || \
- AVR8_PART_IS_DEFINED(ATxmega128B1) \
- )
-
-#define XMEGA_B3 ( \
- AVR8_PART_IS_DEFINED(ATxmega64B3) || \
- AVR8_PART_IS_DEFINED(ATxmega128B3) \
- )
-/** @} */
-
-/**
- * \name AVR XMEGA C series
- * @{
- */
-#define XMEGA_C3 ( \
- AVR8_PART_IS_DEFINED(ATxmega384C3) || \
- AVR8_PART_IS_DEFINED(ATxmega256C3) || \
- AVR8_PART_IS_DEFINED(ATxmega192C3) || \
- AVR8_PART_IS_DEFINED(ATxmega128C3) || \
- AVR8_PART_IS_DEFINED(ATxmega64C3) || \
- AVR8_PART_IS_DEFINED(ATxmega32C3) \
- )
-
-#define XMEGA_C4 ( \
- AVR8_PART_IS_DEFINED(ATxmega32C4) || \
- AVR8_PART_IS_DEFINED(ATxmega16C4) \
- )
-/** @} */
-
-/**
- * \name AVR XMEGA D series
- * @{
- */
-#define XMEGA_D3 ( \
- AVR8_PART_IS_DEFINED(ATxmega32D3) || \
- AVR8_PART_IS_DEFINED(ATxmega64D3) || \
- AVR8_PART_IS_DEFINED(ATxmega128D3) || \
- AVR8_PART_IS_DEFINED(ATxmega192D3) || \
- AVR8_PART_IS_DEFINED(ATxmega256D3) || \
- AVR8_PART_IS_DEFINED(ATxmega384D3) \
- )
-
-#define XMEGA_D4 ( \
- AVR8_PART_IS_DEFINED(ATxmega16D4) || \
- AVR8_PART_IS_DEFINED(ATxmega32D4) || \
- AVR8_PART_IS_DEFINED(ATxmega64D4) || \
- AVR8_PART_IS_DEFINED(ATxmega128D4) \
- )
-/** @} */
-
-/**
- * \name AVR XMEGA E series
- * @{
- */
-#define XMEGA_E5 ( \
- AVR8_PART_IS_DEFINED(ATxmega8E5) || \
- AVR8_PART_IS_DEFINED(ATxmega16E5) || \
- AVR8_PART_IS_DEFINED(ATxmega32E5) \
- )
-/** @} */
-
-
-/**
- * \name AVR XMEGA families
- * @{
- */
-/** AVR XMEGA A family */
-#define XMEGA_A (XMEGA_A1 || XMEGA_A3 || XMEGA_A3B || XMEGA_A4)
-
-/** AVR XMEGA AU family */
-#define XMEGA_AU (XMEGA_A1U || XMEGA_A3U || XMEGA_A3BU || XMEGA_A4U)
-
-/** AVR XMEGA B family */
-#define XMEGA_B (XMEGA_B1 || XMEGA_B3)
-
-/** AVR XMEGA C family */
-#define XMEGA_C (XMEGA_C3 || XMEGA_C4)
-
-/** AVR XMEGA D family */
-#define XMEGA_D (XMEGA_D3 || XMEGA_D4)
-
-/** AVR XMEGA E family */
-#define XMEGA_E (XMEGA_E5)
-/** @} */
-
-
-/** AVR XMEGA product line */
-#define XMEGA (XMEGA_A || XMEGA_AU || XMEGA_B || XMEGA_C || XMEGA_D || XMEGA_E)
-
-/** @} */
-
-/**
- * \defgroup mega_part_macros_group megaAVR parts
- *
- * \note These megaAVR groupings are based on the groups in AVR Libc for the
- * part header files. They are not names of official megaAVR device series or
- * families.
- *
- * @{
- */
-
-/**
- * \name ATmegaxx0/xx1 subgroups
- * @{
- */
-#define MEGA_XX0 ( \
- AVR8_PART_IS_DEFINED(ATmega640) || \
- AVR8_PART_IS_DEFINED(ATmega1280) || \
- AVR8_PART_IS_DEFINED(ATmega2560) \
- )
-
-#define MEGA_XX1 ( \
- AVR8_PART_IS_DEFINED(ATmega1281) || \
- AVR8_PART_IS_DEFINED(ATmega2561) \
- )
-/** @} */
-
-/**
- * \name megaAVR groups
- * @{
- */
-/** ATmegaxx0/xx1 group */
-#define MEGA_XX0_1 (MEGA_XX0 || MEGA_XX1)
-
-/** ATmegaxx4 group */
-#define MEGA_XX4 ( \
- AVR8_PART_IS_DEFINED(ATmega164A) || \
- AVR8_PART_IS_DEFINED(ATmega164PA) || \
- AVR8_PART_IS_DEFINED(ATmega324A) || \
- AVR8_PART_IS_DEFINED(ATmega324PA) || \
- AVR8_PART_IS_DEFINED(ATmega324PB) || \
- AVR8_PART_IS_DEFINED(ATmega644) || \
- AVR8_PART_IS_DEFINED(ATmega644A) || \
- AVR8_PART_IS_DEFINED(ATmega644PA) || \
- AVR8_PART_IS_DEFINED(ATmega1284P) || \
- AVR8_PART_IS_DEFINED(ATmega128RFA1) \
- )
-
-/** ATmegaxx4 group */
-#define MEGA_XX4_A ( \
- AVR8_PART_IS_DEFINED(ATmega164A) || \
- AVR8_PART_IS_DEFINED(ATmega164PA) || \
- AVR8_PART_IS_DEFINED(ATmega324A) || \
- AVR8_PART_IS_DEFINED(ATmega324PA) || \
- AVR8_PART_IS_DEFINED(ATmega644A) || \
- AVR8_PART_IS_DEFINED(ATmega644PA) || \
- AVR8_PART_IS_DEFINED(ATmega1284P) \
- )
-
-/** ATmegaxx8 group */
-#define MEGA_XX8 ( \
- AVR8_PART_IS_DEFINED(ATmega48) || \
- AVR8_PART_IS_DEFINED(ATmega48A) || \
- AVR8_PART_IS_DEFINED(ATmega48PA) || \
- AVR8_PART_IS_DEFINED(ATmega48PB) || \
- AVR8_PART_IS_DEFINED(ATmega88) || \
- AVR8_PART_IS_DEFINED(ATmega88A) || \
- AVR8_PART_IS_DEFINED(ATmega88PA) || \
- AVR8_PART_IS_DEFINED(ATmega88PB) || \
- AVR8_PART_IS_DEFINED(ATmega168) || \
- AVR8_PART_IS_DEFINED(ATmega168A) || \
- AVR8_PART_IS_DEFINED(ATmega168PA) || \
- AVR8_PART_IS_DEFINED(ATmega168PB) || \
- AVR8_PART_IS_DEFINED(ATmega328) || \
- AVR8_PART_IS_DEFINED(ATmega328P) || \
- AVR8_PART_IS_DEFINED(ATmega328PB) \
- )
-
-/** ATmegaxx8A/P/PA group */
-#define MEGA_XX8_A ( \
- AVR8_PART_IS_DEFINED(ATmega48A) || \
- AVR8_PART_IS_DEFINED(ATmega48PA) || \
- AVR8_PART_IS_DEFINED(ATmega88A) || \
- AVR8_PART_IS_DEFINED(ATmega88PA) || \
- AVR8_PART_IS_DEFINED(ATmega168A) || \
- AVR8_PART_IS_DEFINED(ATmega168PA) || \
- AVR8_PART_IS_DEFINED(ATmega328P) \
- )
-
-/** ATmegaxx group */
-#define MEGA_XX ( \
- AVR8_PART_IS_DEFINED(ATmega16) || \
- AVR8_PART_IS_DEFINED(ATmega16A) || \
- AVR8_PART_IS_DEFINED(ATmega32) || \
- AVR8_PART_IS_DEFINED(ATmega32A) || \
- AVR8_PART_IS_DEFINED(ATmega64) || \
- AVR8_PART_IS_DEFINED(ATmega64A) || \
- AVR8_PART_IS_DEFINED(ATmega128) || \
- AVR8_PART_IS_DEFINED(ATmega128A) \
- )
-
-/** ATmegaxxA/P/PA group */
-#define MEGA_XX_A ( \
- AVR8_PART_IS_DEFINED(ATmega16A) || \
- AVR8_PART_IS_DEFINED(ATmega32A) || \
- AVR8_PART_IS_DEFINED(ATmega64A) || \
- AVR8_PART_IS_DEFINED(ATmega128A) \
- )
-/** ATmegaxxRFA1 group */
-#define MEGA_RFA1 ( \
- AVR8_PART_IS_DEFINED(ATmega128RFA1) \
- )
-
-/** ATmegaxxRFR2 group */
-#define MEGA_RFR2 ( \
- AVR8_PART_IS_DEFINED(ATmega64RFR2) || \
- AVR8_PART_IS_DEFINED(ATmega128RFR2) || \
- AVR8_PART_IS_DEFINED(ATmega256RFR2) || \
- AVR8_PART_IS_DEFINED(ATmega644RFR2) || \
- AVR8_PART_IS_DEFINED(ATmega1284RFR2) || \
- AVR8_PART_IS_DEFINED(ATmega2564RFR2) \
- )
-
-
-/** ATmegaxxRFxx group */
-#define MEGA_RF (MEGA_RFA1 || MEGA_RFR2)
-
-/**
- * \name ATmegaxx_un0/un1/un2 subgroups
- * @{
- */
-#define MEGA_XX_UN0 ( \
- AVR8_PART_IS_DEFINED(ATmega16) || \
- AVR8_PART_IS_DEFINED(ATmega16A) || \
- AVR8_PART_IS_DEFINED(ATmega32) || \
- AVR8_PART_IS_DEFINED(ATmega32A) \
- )
-
-/** ATmegaxx group without power reduction and
- * And interrupt sense register.
- */
-#define MEGA_XX_UN1 ( \
- AVR8_PART_IS_DEFINED(ATmega64) || \
- AVR8_PART_IS_DEFINED(ATmega64A) || \
- AVR8_PART_IS_DEFINED(ATmega128) || \
- AVR8_PART_IS_DEFINED(ATmega128A) \
- )
-
-/** ATmegaxx group without power reduction and
- * And interrupt sense register.
- */
-#define MEGA_XX_UN2 ( \
- AVR8_PART_IS_DEFINED(ATmega169P) || \
- AVR8_PART_IS_DEFINED(ATmega169PA) || \
- AVR8_PART_IS_DEFINED(ATmega329P) || \
- AVR8_PART_IS_DEFINED(ATmega329PA) \
- )
-
-/** Devices added to complete megaAVR offering.
- * Please do not use this group symbol as it is not intended
- * to be permanent: the devices should be regrouped.
- */
-#define MEGA_UNCATEGORIZED ( \
- AVR8_PART_IS_DEFINED(AT90CAN128) || \
- AVR8_PART_IS_DEFINED(AT90CAN32) || \
- AVR8_PART_IS_DEFINED(AT90CAN64) || \
- AVR8_PART_IS_DEFINED(AT90PWM1) || \
- AVR8_PART_IS_DEFINED(AT90PWM216) || \
- AVR8_PART_IS_DEFINED(AT90PWM2B) || \
- AVR8_PART_IS_DEFINED(AT90PWM316) || \
- AVR8_PART_IS_DEFINED(AT90PWM3B) || \
- AVR8_PART_IS_DEFINED(AT90PWM81) || \
- AVR8_PART_IS_DEFINED(AT90USB1286) || \
- AVR8_PART_IS_DEFINED(AT90USB1287) || \
- AVR8_PART_IS_DEFINED(AT90USB162) || \
- AVR8_PART_IS_DEFINED(AT90USB646) || \
- AVR8_PART_IS_DEFINED(AT90USB647) || \
- AVR8_PART_IS_DEFINED(AT90USB82) || \
- AVR8_PART_IS_DEFINED(ATmega1284) || \
- AVR8_PART_IS_DEFINED(ATmega162) || \
- AVR8_PART_IS_DEFINED(ATmega164P) || \
- AVR8_PART_IS_DEFINED(ATmega165A) || \
- AVR8_PART_IS_DEFINED(ATmega165P) || \
- AVR8_PART_IS_DEFINED(ATmega165PA) || \
- AVR8_PART_IS_DEFINED(ATmega168P) || \
- AVR8_PART_IS_DEFINED(ATmega169A) || \
- AVR8_PART_IS_DEFINED(ATmega16M1) || \
- AVR8_PART_IS_DEFINED(ATmega16U2) || \
- AVR8_PART_IS_DEFINED(ATmega16U4) || \
- AVR8_PART_IS_DEFINED(ATmega256RFA2) || \
- AVR8_PART_IS_DEFINED(ATmega324P) || \
- AVR8_PART_IS_DEFINED(ATmega325) || \
- AVR8_PART_IS_DEFINED(ATmega3250) || \
- AVR8_PART_IS_DEFINED(ATmega3250A) || \
- AVR8_PART_IS_DEFINED(ATmega3250P) || \
- AVR8_PART_IS_DEFINED(ATmega3250PA) || \
- AVR8_PART_IS_DEFINED(ATmega325A) || \
- AVR8_PART_IS_DEFINED(ATmega325P) || \
- AVR8_PART_IS_DEFINED(ATmega325PA) || \
- AVR8_PART_IS_DEFINED(ATmega329) || \
- AVR8_PART_IS_DEFINED(ATmega3290) || \
- AVR8_PART_IS_DEFINED(ATmega3290A) || \
- AVR8_PART_IS_DEFINED(ATmega3290P) || \
- AVR8_PART_IS_DEFINED(ATmega3290PA) || \
- AVR8_PART_IS_DEFINED(ATmega329A) || \
- AVR8_PART_IS_DEFINED(ATmega32M1) || \
- AVR8_PART_IS_DEFINED(ATmega32U2) || \
- AVR8_PART_IS_DEFINED(ATmega32U4) || \
- AVR8_PART_IS_DEFINED(ATmega48P) || \
- AVR8_PART_IS_DEFINED(ATmega644P) || \
- AVR8_PART_IS_DEFINED(ATmega645) || \
- AVR8_PART_IS_DEFINED(ATmega6450) || \
- AVR8_PART_IS_DEFINED(ATmega6450A) || \
- AVR8_PART_IS_DEFINED(ATmega6450P) || \
- AVR8_PART_IS_DEFINED(ATmega645A) || \
- AVR8_PART_IS_DEFINED(ATmega645P) || \
- AVR8_PART_IS_DEFINED(ATmega649) || \
- AVR8_PART_IS_DEFINED(ATmega6490) || \
- AVR8_PART_IS_DEFINED(ATmega6490A) || \
- AVR8_PART_IS_DEFINED(ATmega6490P) || \
- AVR8_PART_IS_DEFINED(ATmega649A) || \
- AVR8_PART_IS_DEFINED(ATmega649P) || \
- AVR8_PART_IS_DEFINED(ATmega64M1) || \
- AVR8_PART_IS_DEFINED(ATmega64RFA2) || \
- AVR8_PART_IS_DEFINED(ATmega8) || \
- AVR8_PART_IS_DEFINED(ATmega8515) || \
- AVR8_PART_IS_DEFINED(ATmega8535) || \
- AVR8_PART_IS_DEFINED(ATmega88P) || \
- AVR8_PART_IS_DEFINED(ATmega8A) || \
- AVR8_PART_IS_DEFINED(ATmega8U2) \
- )
-
-/** Unspecified group */
-#define MEGA_UNSPECIFIED (MEGA_XX_UN0 || MEGA_XX_UN1 || MEGA_XX_UN2 || \
- MEGA_UNCATEGORIZED)
-
-/** @} */
-
-/** megaAVR product line */
-#define MEGA (MEGA_XX0_1 || MEGA_XX4 || MEGA_XX8 || MEGA_XX || MEGA_RF || \
- MEGA_UNSPECIFIED)
-
-/** @} */
-
-/**
- * \defgroup sam_part_macros_group SAM parts
- * @{
- */
-
-/**
- * \name SAM3S series
- * @{
- */
-#define SAM3S1 ( \
- SAM_PART_IS_DEFINED(SAM3S1A) || \
- SAM_PART_IS_DEFINED(SAM3S1B) || \
- SAM_PART_IS_DEFINED(SAM3S1C) \
- )
-
-#define SAM3S2 ( \
- SAM_PART_IS_DEFINED(SAM3S2A) || \
- SAM_PART_IS_DEFINED(SAM3S2B) || \
- SAM_PART_IS_DEFINED(SAM3S2C) \
- )
-
-#define SAM3S4 ( \
- SAM_PART_IS_DEFINED(SAM3S4A) || \
- SAM_PART_IS_DEFINED(SAM3S4B) || \
- SAM_PART_IS_DEFINED(SAM3S4C) \
- )
-
-#define SAM3S8 ( \
- SAM_PART_IS_DEFINED(SAM3S8B) || \
- SAM_PART_IS_DEFINED(SAM3S8C) \
- )
-
-#define SAM3SD8 ( \
- SAM_PART_IS_DEFINED(SAM3SD8B) || \
- SAM_PART_IS_DEFINED(SAM3SD8C) \
- )
-/** @} */
-
-/**
- * \name SAM3U series
- * @{
- */
-#define SAM3U1 ( \
- SAM_PART_IS_DEFINED(SAM3U1C) || \
- SAM_PART_IS_DEFINED(SAM3U1E) \
- )
-
-#define SAM3U2 ( \
- SAM_PART_IS_DEFINED(SAM3U2C) || \
- SAM_PART_IS_DEFINED(SAM3U2E) \
- )
-
-#define SAM3U4 ( \
- SAM_PART_IS_DEFINED(SAM3U4C) || \
- SAM_PART_IS_DEFINED(SAM3U4E) \
- )
-/** @} */
-
-/**
- * \name SAM3N series
- * @{
- */
-#define SAM3N00 ( \
- SAM_PART_IS_DEFINED(SAM3N00A) || \
- SAM_PART_IS_DEFINED(SAM3N00B) \
- )
-
-#define SAM3N0 ( \
- SAM_PART_IS_DEFINED(SAM3N0A) || \
- SAM_PART_IS_DEFINED(SAM3N0B) || \
- SAM_PART_IS_DEFINED(SAM3N0C) \
- )
-
-#define SAM3N1 ( \
- SAM_PART_IS_DEFINED(SAM3N1A) || \
- SAM_PART_IS_DEFINED(SAM3N1B) || \
- SAM_PART_IS_DEFINED(SAM3N1C) \
- )
-
-#define SAM3N2 ( \
- SAM_PART_IS_DEFINED(SAM3N2A) || \
- SAM_PART_IS_DEFINED(SAM3N2B) || \
- SAM_PART_IS_DEFINED(SAM3N2C) \
- )
-
-#define SAM3N4 ( \
- SAM_PART_IS_DEFINED(SAM3N4A) || \
- SAM_PART_IS_DEFINED(SAM3N4B) || \
- SAM_PART_IS_DEFINED(SAM3N4C) \
- )
-/** @} */
-
-/**
- * \name SAM3X series
- * @{
- */
-#define SAM3X4 ( \
- SAM_PART_IS_DEFINED(SAM3X4C) || \
- SAM_PART_IS_DEFINED(SAM3X4E) \
- )
-
-#define SAM3X8 ( \
- SAM_PART_IS_DEFINED(SAM3X8C) || \
- SAM_PART_IS_DEFINED(SAM3X8E) || \
- SAM_PART_IS_DEFINED(SAM3X8H) \
- )
-/** @} */
-
-/**
- * \name SAM3A series
- * @{
- */
-#define SAM3A4 ( \
- SAM_PART_IS_DEFINED(SAM3A4C) \
- )
-
-#define SAM3A8 ( \
- SAM_PART_IS_DEFINED(SAM3A8C) \
- )
-/** @} */
-
-/**
- * \name SAM4S series
- * @{
- */
-#define SAM4S2 ( \
- SAM_PART_IS_DEFINED(SAM4S2A) || \
- SAM_PART_IS_DEFINED(SAM4S2B) || \
- SAM_PART_IS_DEFINED(SAM4S2C) \
- )
-
-#define SAM4S4 ( \
- SAM_PART_IS_DEFINED(SAM4S4A) || \
- SAM_PART_IS_DEFINED(SAM4S4B) || \
- SAM_PART_IS_DEFINED(SAM4S4C) \
- )
-
-#define SAM4S8 ( \
- SAM_PART_IS_DEFINED(SAM4S8B) || \
- SAM_PART_IS_DEFINED(SAM4S8C) \
- )
-
-#define SAM4S16 ( \
- SAM_PART_IS_DEFINED(SAM4S16B) || \
- SAM_PART_IS_DEFINED(SAM4S16C) \
- )
-
-#define SAM4SA16 ( \
- SAM_PART_IS_DEFINED(SAM4SA16B) || \
- SAM_PART_IS_DEFINED(SAM4SA16C) \
- )
-
-#define SAM4SD16 ( \
- SAM_PART_IS_DEFINED(SAM4SD16B) || \
- SAM_PART_IS_DEFINED(SAM4SD16C) \
- )
-
-#define SAM4SD32 ( \
- SAM_PART_IS_DEFINED(SAM4SD32B) || \
- SAM_PART_IS_DEFINED(SAM4SD32C) \
- )
-/** @} */
-
-/**
- * \name SAM4L series
- * @{
- */
-#define SAM4LS ( \
- SAM_PART_IS_DEFINED(SAM4LS2A) || \
- SAM_PART_IS_DEFINED(SAM4LS2B) || \
- SAM_PART_IS_DEFINED(SAM4LS2C) || \
- SAM_PART_IS_DEFINED(SAM4LS4A) || \
- SAM_PART_IS_DEFINED(SAM4LS4B) || \
- SAM_PART_IS_DEFINED(SAM4LS4C) || \
- SAM_PART_IS_DEFINED(SAM4LS8A) || \
- SAM_PART_IS_DEFINED(SAM4LS8B) || \
- SAM_PART_IS_DEFINED(SAM4LS8C) \
- )
-
-#define SAM4LC ( \
- SAM_PART_IS_DEFINED(SAM4LC2A) || \
- SAM_PART_IS_DEFINED(SAM4LC2B) || \
- SAM_PART_IS_DEFINED(SAM4LC2C) || \
- SAM_PART_IS_DEFINED(SAM4LC4A) || \
- SAM_PART_IS_DEFINED(SAM4LC4B) || \
- SAM_PART_IS_DEFINED(SAM4LC4C) || \
- SAM_PART_IS_DEFINED(SAM4LC8A) || \
- SAM_PART_IS_DEFINED(SAM4LC8B) || \
- SAM_PART_IS_DEFINED(SAM4LC8C) \
- )
-/** @} */
-
-/**
- * \name SAMD20 series
- * @{
- */
-#define SAMD20J ( \
- SAM_PART_IS_DEFINED(SAMD20J14) || \
- SAM_PART_IS_DEFINED(SAMD20J15) || \
- SAM_PART_IS_DEFINED(SAMD20J16) || \
- SAM_PART_IS_DEFINED(SAMD20J14B) || \
- SAM_PART_IS_DEFINED(SAMD20J15B) || \
- SAM_PART_IS_DEFINED(SAMD20J16B) || \
- SAM_PART_IS_DEFINED(SAMD20J17) || \
- SAM_PART_IS_DEFINED(SAMD20J18) \
- )
-
-#define SAMD20G ( \
- SAM_PART_IS_DEFINED(SAMD20G14) || \
- SAM_PART_IS_DEFINED(SAMD20G15) || \
- SAM_PART_IS_DEFINED(SAMD20G16) || \
- SAM_PART_IS_DEFINED(SAMD20G14B) || \
- SAM_PART_IS_DEFINED(SAMD20G15B) || \
- SAM_PART_IS_DEFINED(SAMD20G16B) || \
- SAM_PART_IS_DEFINED(SAMD20G17) || \
- SAM_PART_IS_DEFINED(SAMD20G17U) || \
- SAM_PART_IS_DEFINED(SAMD20G18) || \
- SAM_PART_IS_DEFINED(SAMD20G18U) \
- )
-
-#define SAMD20E ( \
- SAM_PART_IS_DEFINED(SAMD20E14) || \
- SAM_PART_IS_DEFINED(SAMD20E15) || \
- SAM_PART_IS_DEFINED(SAMD20E16) || \
- SAM_PART_IS_DEFINED(SAMD20E14B) || \
- SAM_PART_IS_DEFINED(SAMD20E15B) || \
- SAM_PART_IS_DEFINED(SAMD20E16B) || \
- SAM_PART_IS_DEFINED(SAMD20E17) || \
- SAM_PART_IS_DEFINED(SAMD20E18) \
- )
-
-/** @} */
-
-/**
- * \name SAMD21 series
- * @{
- */
-#define SAMD21J ( \
- SAM_PART_IS_DEFINED(SAMD21J15A) || \
- SAM_PART_IS_DEFINED(SAMD21J16A) || \
- SAM_PART_IS_DEFINED(SAMD21J17A) || \
- SAM_PART_IS_DEFINED(SAMD21J18A) || \
- SAM_PART_IS_DEFINED(SAMD21J15B) || \
- SAM_PART_IS_DEFINED(SAMD21J16B) || \
- SAM_PART_IS_DEFINED(SAMD21J17D) \
- )
-
-#define SAMD21G ( \
- SAM_PART_IS_DEFINED(SAMD21G15A) || \
- SAM_PART_IS_DEFINED(SAMD21G16A) || \
- SAM_PART_IS_DEFINED(SAMD21G17A) || \
- SAM_PART_IS_DEFINED(SAMD21G17AU) || \
- SAM_PART_IS_DEFINED(SAMD21G18A) || \
- SAM_PART_IS_DEFINED(SAMD21G18AU) || \
- SAM_PART_IS_DEFINED(SAMD21G15B) || \
- SAM_PART_IS_DEFINED(SAMD21G16B) || \
- SAM_PART_IS_DEFINED(SAMD21G15L) || \
- SAM_PART_IS_DEFINED(SAMD21G16L) || \
- SAM_PART_IS_DEFINED(SAMD21G17D) || \
- SAM_PART_IS_DEFINED(SAMD21G17L) \
- )
-
-#define SAMD21GXXL ( \
- SAM_PART_IS_DEFINED(SAMD21G15L) || \
- SAM_PART_IS_DEFINED(SAMD21G16L) || \
- SAM_PART_IS_DEFINED(SAMD21G17L) \
- )
-
-#define SAMD21E ( \
- SAM_PART_IS_DEFINED(SAMD21E15A) || \
- SAM_PART_IS_DEFINED(SAMD21E16A) || \
- SAM_PART_IS_DEFINED(SAMD21E17A) || \
- SAM_PART_IS_DEFINED(SAMD21E18A) || \
- SAM_PART_IS_DEFINED(SAMD21E15B) || \
- SAM_PART_IS_DEFINED(SAMD21E15BU) || \
- SAM_PART_IS_DEFINED(SAMD21E16B) || \
- SAM_PART_IS_DEFINED(SAMD21E16BU) || \
- SAM_PART_IS_DEFINED(SAMD21E15L) || \
- SAM_PART_IS_DEFINED(SAMD21E16L) || \
- SAM_PART_IS_DEFINED(SAMD21E17D) || \
- SAM_PART_IS_DEFINED(SAMD21E17DU) || \
- SAM_PART_IS_DEFINED(SAMD21E17L) \
- )
-
-#define SAMD21EXXL ( \
- SAM_PART_IS_DEFINED(SAMD21E15L) || \
- SAM_PART_IS_DEFINED(SAMD21E16L) || \
- SAM_PART_IS_DEFINED(SAMD21E17L) \
- )
-
-/** @} */
-
-/**
- * \name SAMR21 series
- * @{
- */
-#define SAMR21G ( \
- SAM_PART_IS_DEFINED(SAMR21G16A) || \
- SAM_PART_IS_DEFINED(SAMR21G17A) || \
- SAM_PART_IS_DEFINED(SAMR21G18A) \
- )
-
-#define SAMR21E ( \
- SAM_PART_IS_DEFINED(SAMR21E16A) || \
- SAM_PART_IS_DEFINED(SAMR21E17A) || \
- SAM_PART_IS_DEFINED(SAMR21E18A) || \
- SAM_PART_IS_DEFINED(SAMR21E19A) \
- )
-/** @} */
-
-/**
- * \name SAMR30 series
- * @{
- */
-#define SAMR30G ( \
- SAM_PART_IS_DEFINED(SAMR30G18A) \
- )
-
-#define SAMR30E ( \
- SAM_PART_IS_DEFINED(SAMR30E18A) \
- )
-/** @} */
-
-/**
- * \name SAMR34 series
- * @{
- */
-#define SAMR34J ( \
- SAM_PART_IS_DEFINED(SAMR34J18A) || \
- SAM_PART_IS_DEFINED(SAMR34J17A) || \
- SAM_PART_IS_DEFINED(SAMR34J16A) || \
- SAM_PART_IS_DEFINED(SAMR34J18B) || \
- SAM_PART_IS_DEFINED(SAMR34J17B) || \
- SAM_PART_IS_DEFINED(SAMR34J16B) \
- )
-
-/* Group for SAMR34 A variant: SAMR34J [16/17/18]A */
-#define SAMR34JXXA ( \
- SAM_PART_IS_DEFINED(SAMR34J18A) || \
- SAM_PART_IS_DEFINED(SAMR34J17A) || \
- SAM_PART_IS_DEFINED(SAMR34J16A) \
-)
-/* Group for SAMR34 B variant: SAMR34J [16/17/18]B */
-#define SAMR34JXXB ( \
- SAM_PART_IS_DEFINED(SAMR34J18B) || \
- SAM_PART_IS_DEFINED(SAMR34J17B) || \
- SAM_PART_IS_DEFINED(SAMR34J16B) \
-)
-
-/* Group for SAMR35 B variant: SAMR35J [16/17/18]B */
-#define SAMR35J ( \
- SAM_PART_IS_DEFINED(SAMR35J18B) || \
- SAM_PART_IS_DEFINED(SAMR35J17B) || \
- SAM_PART_IS_DEFINED(SAMR35J16B) \
-)
-
-/* Group for SAMR35 B variant: SAMR35J [16/17/18]B */
-#define SAMR35JXXB ( \
- SAM_PART_IS_DEFINED(SAMR35J18B) || \
- SAM_PART_IS_DEFINED(SAMR35J17B) || \
- SAM_PART_IS_DEFINED(SAMR35J16B) \
-)
-
-/* Group for SAMR35 B variant: SAMR35J [16/17/18]B */
-#define WLR089U ( \
- SAM_PART_IS_DEFINED(WLR089U0) \
-)
-
-/* Group for WLR089U variant: SAMR35U [0] */
-#define WLR089U0 ( \
- SAM_PART_IS_DEFINED(WLR089U0) \
-)
-
-/**
- * \name SAMB11 series
- * @{
- */
-#define SAMB11G ( \
- SAM_PART_IS_DEFINED(SAMB11G18A) || \
- SAM_PART_IS_DEFINED(SAMB11ZR) \
- )
-#define BTLC1000 ( \
- SAM_PART_IS_DEFINED(BTLC1000WLCSP) \
- )
-
-/** @} */
-
-/**
- * \name SAMD09 series
- * @{
- */
-#define SAMD09C ( \
- SAM_PART_IS_DEFINED(SAMD09C13A) \
- )
-
-#define SAMD09D ( \
- SAM_PART_IS_DEFINED(SAMD09D14A) \
- )
-/** @} */
-
-/**
- * \name SAMD10 series
- * @{
- */
-#define SAMD10C ( \
- SAM_PART_IS_DEFINED(SAMD10C12A) || \
- SAM_PART_IS_DEFINED(SAMD10C13A) || \
- SAM_PART_IS_DEFINED(SAMD10C14A) \
- )
-
-#define SAMD10DS ( \
- SAM_PART_IS_DEFINED(SAMD10D12AS) || \
- SAM_PART_IS_DEFINED(SAMD10D13AS) || \
- SAM_PART_IS_DEFINED(SAMD10D14AS) \
- )
-
-#define SAMD10DM ( \
- SAM_PART_IS_DEFINED(SAMD10D12AM) || \
- SAM_PART_IS_DEFINED(SAMD10D13AM) || \
- SAM_PART_IS_DEFINED(SAMD10D14AM) \
- )
-
-#define SAMD10DU ( \
- SAM_PART_IS_DEFINED(SAMD10D14AU) \
- )
-/** @} */
-
-/**
- * \name SAMD11 series
- * @{
- */
-#define SAMD11C ( \
- SAM_PART_IS_DEFINED(SAMD11C14A) \
- )
-
-#define SAMD11DS ( \
- SAM_PART_IS_DEFINED(SAMD11D14AS) \
- )
-
-#define SAMD11DM ( \
- SAM_PART_IS_DEFINED(SAMD11D14AM) \
- )
-
-#define SAMD11DU ( \
- SAM_PART_IS_DEFINED(SAMD11D14AU) \
- )
-/** @} */
-
-/**
- * \name SAML21 series
- * @{
- */
-#define SAML21E ( \
- SAM_PART_IS_DEFINED(SAML21E18A) || \
- SAM_PART_IS_DEFINED(SAML21E15B) || \
- SAM_PART_IS_DEFINED(SAML21E16B) || \
- SAM_PART_IS_DEFINED(SAML21E17B) || \
- SAM_PART_IS_DEFINED(SAML21E18B) \
- )
-
-#define SAML21G ( \
- SAM_PART_IS_DEFINED(SAML21G18A) || \
- SAM_PART_IS_DEFINED(SAML21G16B) || \
- SAM_PART_IS_DEFINED(SAML21G17B) || \
- SAM_PART_IS_DEFINED(SAML21G18B) \
- )
-
-#define SAML21J ( \
- SAM_PART_IS_DEFINED(SAML21J18A) || \
- SAM_PART_IS_DEFINED(SAML21J16B) || \
- SAM_PART_IS_DEFINED(SAML21J17B) || \
- SAM_PART_IS_DEFINED(SAML21J18B) \
- )
-
-/* Group for SAML21 A variant: SAML21[E/G/J][18]A */
-#define SAML21XXXA ( \
- SAM_PART_IS_DEFINED(SAML21E18A) || \
- SAM_PART_IS_DEFINED(SAML21G18A) || \
- SAM_PART_IS_DEFINED(SAML21J18A) \
- )
-
-/* Group for SAML21 B variant: SAML21[E/G/J][15/16/1718]B */
-#define SAML21XXXB ( \
- SAM_PART_IS_DEFINED(SAML21E15B) || \
- SAM_PART_IS_DEFINED(SAML21E16B) || \
- SAM_PART_IS_DEFINED(SAML21E17B) || \
- SAM_PART_IS_DEFINED(SAML21E18B) || \
- SAM_PART_IS_DEFINED(SAML21G16B) || \
- SAM_PART_IS_DEFINED(SAML21G17B) || \
- SAM_PART_IS_DEFINED(SAML21G18B) || \
- SAM_PART_IS_DEFINED(SAML21J16B) || \
- SAM_PART_IS_DEFINED(SAML21J17B) || \
- SAM_PART_IS_DEFINED(SAML21J18B) \
- )
-
-/** @} */
-
-/**
- * \name SAML22 series
- * @{
- */
-#define SAML22N ( \
- SAM_PART_IS_DEFINED(SAML22N16A) || \
- SAM_PART_IS_DEFINED(SAML22N17A) || \
- SAM_PART_IS_DEFINED(SAML22N18A) \
- )
-
-#define SAML22G ( \
- SAM_PART_IS_DEFINED(SAML22G16A) || \
- SAM_PART_IS_DEFINED(SAML22G17A) || \
- SAM_PART_IS_DEFINED(SAML22G18A) \
- )
-
-#define SAML22J ( \
- SAM_PART_IS_DEFINED(SAML22J16A) || \
- SAM_PART_IS_DEFINED(SAML22J17A) || \
- SAM_PART_IS_DEFINED(SAML22J18A) \
- )
-/** @} */
-
-/**
- * \name SAMDA1 series
- * @{
- */
-#define SAMDA1J ( \
- SAM_PART_IS_DEFINED(SAMDA1J14A) || \
- SAM_PART_IS_DEFINED(SAMDA1J15B) || \
- SAM_PART_IS_DEFINED(SAMDA1J15A) || \
- SAM_PART_IS_DEFINED(SAMDA1J15B) || \
- SAM_PART_IS_DEFINED(SAMDA1J16A) || \
- SAM_PART_IS_DEFINED(SAMDA1J16B) \
- )
-
-#define SAMDA1G ( \
- SAM_PART_IS_DEFINED(SAMDA1G14A) || \
- SAM_PART_IS_DEFINED(SAMDA1G14B) || \
- SAM_PART_IS_DEFINED(SAMDA1G15A) || \
- SAM_PART_IS_DEFINED(SAMDA1G15B) || \
- SAM_PART_IS_DEFINED(SAMDA1G16A) || \
- SAM_PART_IS_DEFINED(SAMDA1G16B) \
- )
-
-#define SAMDA1E ( \
- SAM_PART_IS_DEFINED(SAMDA1E14A) || \
- SAM_PART_IS_DEFINED(SAMDA1E14B) || \
- SAM_PART_IS_DEFINED(SAMDA1E15A) || \
- SAM_PART_IS_DEFINED(SAMDA1E15B) || \
- SAM_PART_IS_DEFINED(SAMDA1E16A) || \
- SAM_PART_IS_DEFINED(SAMDA1E16B) \
- )
-/** @} */
-
-/**
- * \name SAMHA1 series
- * @{
- */
-#define SAMHA1G ( \
- SAM_PART_IS_DEFINED(SAMHA1G14A) || \
- SAM_PART_IS_DEFINED(SAMHA1G15A) || \
- SAM_PART_IS_DEFINED(SAMHA1G16A) || \
- SAM_PART_IS_DEFINED(SAMHA1G14AB) || \
- SAM_PART_IS_DEFINED(SAMHA1G15AB) || \
- SAM_PART_IS_DEFINED(SAMHA1G16AB) \
- )
-
-#define SAMHA1E ( \
- SAM_PART_IS_DEFINED(SAMHA1E14A) || \
- SAM_PART_IS_DEFINED(SAMHA1E15A) || \
- SAM_PART_IS_DEFINED(SAMHA1E16A) || \
- SAM_PART_IS_DEFINED(SAMHA1E14AB) || \
- SAM_PART_IS_DEFINED(SAMHA1E15AB) || \
- SAM_PART_IS_DEFINED(SAMHA1E16AB) \
- )
-
-/** @} */
-
-/**
- * \name SAMHA0 series
- * @{
- */
-#define SAMHA0G ( \
- SAM_PART_IS_DEFINED(SAMHA0G14AB) || \
- SAM_PART_IS_DEFINED(SAMHA0G15AB) || \
- SAM_PART_IS_DEFINED(SAMHA0G16AB) \
- )
-
-#define SAMHA0E ( \
- SAM_PART_IS_DEFINED(SAMHA0E14AB) || \
- SAM_PART_IS_DEFINED(SAMHA0E15AB) || \
- SAM_PART_IS_DEFINED(SAMHA0E16AB) \
- )
-
-/** @} */
-
-/**
- * \name SAMC20 series
- * @{
- */
-#define SAMC20E ( \
- SAM_PART_IS_DEFINED(SAMC20E15A) || \
- SAM_PART_IS_DEFINED(SAMC20E16A) || \
- SAM_PART_IS_DEFINED(SAMC20E17A) || \
- SAM_PART_IS_DEFINED(SAMC20E18A) \
- )
-
-#define SAMC20G ( \
- SAM_PART_IS_DEFINED(SAMC20G15A) || \
- SAM_PART_IS_DEFINED(SAMC20G16A) || \
- SAM_PART_IS_DEFINED(SAMC20G17A) || \
- SAM_PART_IS_DEFINED(SAMC20G18A) \
- )
-
-#define SAMC20J ( \
- SAM_PART_IS_DEFINED(SAMC20J15A) || \
- SAM_PART_IS_DEFINED(SAMC20J16A) || \
- SAM_PART_IS_DEFINED(SAMC20J17A) || \
- SAM_PART_IS_DEFINED(SAMC20J18A) \
- )
-/** @} */
-
-/**
- * \name SAMC21 series
- * @{
- */
-#define SAMC21E ( \
- SAM_PART_IS_DEFINED(SAMC21E15A) || \
- SAM_PART_IS_DEFINED(SAMC21E16A) || \
- SAM_PART_IS_DEFINED(SAMC21E17A) || \
- SAM_PART_IS_DEFINED(SAMC21E18A) \
- )
-
-#define SAMC21G ( \
- SAM_PART_IS_DEFINED(SAMC21G15A) || \
- SAM_PART_IS_DEFINED(SAMC21G16A) || \
- SAM_PART_IS_DEFINED(SAMC21G17A) || \
- SAM_PART_IS_DEFINED(SAMC21G18A) \
- )
-
-#define SAMC21J ( \
- SAM_PART_IS_DEFINED(SAMC21J15A) || \
- SAM_PART_IS_DEFINED(SAMC21J16A) || \
- SAM_PART_IS_DEFINED(SAMC21J17A) || \
- SAM_PART_IS_DEFINED(SAMC21J18A) \
- )
-/** @} */
-
-/**
- * \name SAM4E series
- * @{
- */
-#define SAM4E8 ( \
- SAM_PART_IS_DEFINED(SAM4E8C) || \
- SAM_PART_IS_DEFINED(SAM4E8CB) || \
- SAM_PART_IS_DEFINED(SAM4E8E) \
- )
-
-#define SAM4E16 ( \
- SAM_PART_IS_DEFINED(SAM4E16C) || \
- SAM_PART_IS_DEFINED(SAM4E16CB) || \
- SAM_PART_IS_DEFINED(SAM4E16E) \
- )
-/** @} */
-
-/**
- * \name SAM4N series
- * @{
- */
-#define SAM4N8 ( \
- SAM_PART_IS_DEFINED(SAM4N8A) || \
- SAM_PART_IS_DEFINED(SAM4N8B) || \
- SAM_PART_IS_DEFINED(SAM4N8C) \
- )
-
-#define SAM4N16 ( \
- SAM_PART_IS_DEFINED(SAM4N16B) || \
- SAM_PART_IS_DEFINED(SAM4N16C) \
- )
-/** @} */
-
-/**
- * \name SAM4C series
- * @{
- */
-#define SAM4C4_0 ( \
- SAM_PART_IS_DEFINED(SAM4C4C_0) \
- )
-
-#define SAM4C4_1 ( \
- SAM_PART_IS_DEFINED(SAM4C4C_1) \
- )
-
-#define SAM4C4 (SAM4C4_0 || SAM4C4_1)
-
-#define SAM4C8_0 ( \
- SAM_PART_IS_DEFINED(SAM4C8C_0) \
- )
-
-#define SAM4C8_1 ( \
- SAM_PART_IS_DEFINED(SAM4C8C_1) \
- )
-
-#define SAM4C8 (SAM4C8_0 || SAM4C8_1)
-
-#define SAM4C16_0 ( \
- SAM_PART_IS_DEFINED(SAM4C16C_0) \
- )
-
-#define SAM4C16_1 ( \
- SAM_PART_IS_DEFINED(SAM4C16C_1) \
- )
-
-#define SAM4C16 (SAM4C16_0 || SAM4C16_1)
-
-#define SAM4C32_0 ( \
- SAM_PART_IS_DEFINED(SAM4C32C_0) ||\
- SAM_PART_IS_DEFINED(SAM4C32E_0) \
- )
-
-#define SAM4C32_1 ( \
- SAM_PART_IS_DEFINED(SAM4C32C_1) ||\
- SAM_PART_IS_DEFINED(SAM4C32E_1) \
- )
-
-
-#define SAM4C32 (SAM4C32_0 || SAM4C32_1)
-
-/** @} */
-
-/**
- * \name SAM4CM series
- * @{
- */
-#define SAM4CMP8_0 ( \
- SAM_PART_IS_DEFINED(SAM4CMP8C_0) \
- )
-
-#define SAM4CMP8_1 ( \
- SAM_PART_IS_DEFINED(SAM4CMP8C_1) \
- )
-
-#define SAM4CMP8 (SAM4CMP8_0 || SAM4CMP8_1)
-
-#define SAM4CMP16_0 ( \
- SAM_PART_IS_DEFINED(SAM4CMP16C_0) \
- )
-
-#define SAM4CMP16_1 ( \
- SAM_PART_IS_DEFINED(SAM4CMP16C_1) \
- )
-
-#define SAM4CMP16 (SAM4CMP16_0 || SAM4CMP16_1)
-
-#define SAM4CMP32_0 ( \
- SAM_PART_IS_DEFINED(SAM4CMP32C_0) \
- )
-
-#define SAM4CMP32_1 ( \
- SAM_PART_IS_DEFINED(SAM4CMP32C_1) \
- )
-
-#define SAM4CMP32 (SAM4CMP32_0 || SAM4CMP32_1)
-
-#define SAM4CMS4_0 ( \
- SAM_PART_IS_DEFINED(SAM4CMS4C_0) \
- )
-
-#define SAM4CMS4_1 ( \
- SAM_PART_IS_DEFINED(SAM4CMS4C_1) \
- )
-
-#define SAM4CMS4 (SAM4CMS4_0 || SAM4CMS4_1)
-
-#define SAM4CMS8_0 ( \
- SAM_PART_IS_DEFINED(SAM4CMS8C_0) \
- )
-
-#define SAM4CMS8_1 ( \
- SAM_PART_IS_DEFINED(SAM4CMS8C_1) \
- )
-
-#define SAM4CMS8 (SAM4CMS8_0 || SAM4CMS8_1)
-
-#define SAM4CMS16_0 ( \
- SAM_PART_IS_DEFINED(SAM4CMS16C_0) \
- )
-
-#define SAM4CMS16_1 ( \
- SAM_PART_IS_DEFINED(SAM4CMS16C_1) \
- )
-
-#define SAM4CMS16 (SAM4CMS16_0 || SAM4CMS16_1)
-
-#define SAM4CMS32_0 ( \
- SAM_PART_IS_DEFINED(SAM4CMS32C_0) \
- )
-
-#define SAM4CMS32_1 ( \
- SAM_PART_IS_DEFINED(SAM4CMS32C_1) \
- )
-
-#define SAM4CMS32 (SAM4CMS32_0 || SAM4CMS32_1)
-
-/** @} */
-
-/**
- * \name SAM4CP series
- * @{
- */
-#define SAM4CP16_0 ( \
- SAM_PART_IS_DEFINED(SAM4CP16B_0) \
- )
-
-#define SAM4CP16_1 ( \
- SAM_PART_IS_DEFINED(SAM4CP16B_1) \
- )
-
-#define SAM4CP16 (SAM4CP16_0 || SAM4CP16_1)
-/** @} */
-
-/**
- * \name SAMG series
- * @{
- */
-#define SAMG51 ( \
- SAM_PART_IS_DEFINED(SAMG51G18) \
- )
-
-#define SAMG53 ( \
- SAM_PART_IS_DEFINED(SAMG53G19) ||\
- SAM_PART_IS_DEFINED(SAMG53N19) \
- )
-
-#define SAMG54 ( \
- SAM_PART_IS_DEFINED(SAMG54G19) ||\
- SAM_PART_IS_DEFINED(SAMG54J19) ||\
- SAM_PART_IS_DEFINED(SAMG54N19) \
- )
-
-#define SAMG55 ( \
- SAM_PART_IS_DEFINED(SAMG55G18) ||\
- SAM_PART_IS_DEFINED(SAMG55G19) ||\
- SAM_PART_IS_DEFINED(SAMG55J18) ||\
- SAM_PART_IS_DEFINED(SAMG55J19) ||\
- SAM_PART_IS_DEFINED(SAMG55N19) \
- )
-/** @} */
-
-/**
- * \name SAMV71 series
- * @{
- */
-#define SAMV71J ( \
- SAM_PART_IS_DEFINED(SAMV71J19) || \
- SAM_PART_IS_DEFINED(SAMV71J20) || \
- SAM_PART_IS_DEFINED(SAMV71J21) \
- )
-
-#define SAMV71JB ( \
- SAM_PART_IS_DEFINED(SAMV71J19B) || \
- SAM_PART_IS_DEFINED(SAMV71J20B) || \
- SAM_PART_IS_DEFINED(SAMV71J21B) \
- )
-
-#define SAMV71N ( \
- SAM_PART_IS_DEFINED(SAMV71N19) || \
- SAM_PART_IS_DEFINED(SAMV71N20) || \
- SAM_PART_IS_DEFINED(SAMV71N21) \
- )
-
-#define SAMV71NB ( \
- SAM_PART_IS_DEFINED(SAMV71N19B) || \
- SAM_PART_IS_DEFINED(SAMV71N20B) || \
- SAM_PART_IS_DEFINED(SAMV71N21B) \
- )
-
-#define SAMV71Q ( \
- SAM_PART_IS_DEFINED(SAMV71Q19) || \
- SAM_PART_IS_DEFINED(SAMV71Q20) || \
- SAM_PART_IS_DEFINED(SAMV71Q21) \
- )
-
-#define SAMV71QB ( \
- SAM_PART_IS_DEFINED(SAMV71Q19B) || \
- SAM_PART_IS_DEFINED(SAMV71Q20B) || \
- SAM_PART_IS_DEFINED(SAMV71Q21B) \
- )
-
-/** @} */
-
-/**
- * \name SAMV70 series
- * @{
- */
-#define SAMV70J ( \
- SAM_PART_IS_DEFINED(SAMV70J19) || \
- SAM_PART_IS_DEFINED(SAMV70J20) \
- )
-
-#define SAMV70JB ( \
- SAM_PART_IS_DEFINED(SAMV70J19B) || \
- SAM_PART_IS_DEFINED(SAMV70J20B) \
- )
-
-#define SAMV70N ( \
- SAM_PART_IS_DEFINED(SAMV70N19) || \
- SAM_PART_IS_DEFINED(SAMV70N20) \
- )
-
-#define SAMV70NB ( \
- SAM_PART_IS_DEFINED(SAMV70N19B) || \
- SAM_PART_IS_DEFINED(SAMV70N20B) \
- )
-
-#define SAMV70Q ( \
- SAM_PART_IS_DEFINED(SAMV70Q19) || \
- SAM_PART_IS_DEFINED(SAMV70Q20) \
- )
-#define SAMV70QB ( \
- SAM_PART_IS_DEFINED(SAMV70Q19B) || \
- SAM_PART_IS_DEFINED(SAMV70Q20B) \
- )
-/** @} */
-
-/**
- * \name SAMS70 series
- * @{
- */
-#define SAMS70J ( \
- SAM_PART_IS_DEFINED(SAMS70J19) || \
- SAM_PART_IS_DEFINED(SAMS70J20) || \
- SAM_PART_IS_DEFINED(SAMS70J21) \
- )
-
-#define SAMS70JB ( \
- SAM_PART_IS_DEFINED(SAMS70J19B) || \
- SAM_PART_IS_DEFINED(SAMS70J20B) || \
- SAM_PART_IS_DEFINED(SAMS70J21B) \
- )
-
-#define SAMS70N ( \
- SAM_PART_IS_DEFINED(SAMS70N19) || \
- SAM_PART_IS_DEFINED(SAMS70N20) || \
- SAM_PART_IS_DEFINED(SAMS70N21) \
- )
-
-#define SAMS70NB ( \
- SAM_PART_IS_DEFINED(SAMS70N19B) || \
- SAM_PART_IS_DEFINED(SAMS70N20B) || \
- SAM_PART_IS_DEFINED(SAMS70N21B) \
- )
-
-#define SAMS70Q ( \
- SAM_PART_IS_DEFINED(SAMS70Q19) || \
- SAM_PART_IS_DEFINED(SAMS70Q20) || \
- SAM_PART_IS_DEFINED(SAMS70Q21) \
- )
-
-#define SAMS70QB ( \
- SAM_PART_IS_DEFINED(SAMS70Q19B) || \
- SAM_PART_IS_DEFINED(SAMS70Q20B) || \
- SAM_PART_IS_DEFINED(SAMS70Q21B) \
- )
-/** @} */
-
-/**
- * \name SAME70 series
- * @{
- */
-#define SAME70J ( \
- SAM_PART_IS_DEFINED(SAME70J19) || \
- SAM_PART_IS_DEFINED(SAME70J20) || \
- SAM_PART_IS_DEFINED(SAME70J21) \
- )
-
-#define SAME70JB ( \
- SAM_PART_IS_DEFINED(SAME70J19B) || \
- SAM_PART_IS_DEFINED(SAME70J20B) || \
- SAM_PART_IS_DEFINED(SAME70J21B) \
- )
-
-#define SAME70N ( \
- SAM_PART_IS_DEFINED(SAME70N19) || \
- SAM_PART_IS_DEFINED(SAME70N20) || \
- SAM_PART_IS_DEFINED(SAME70N21) \
- )
-
-#define SAME70NB ( \
- SAM_PART_IS_DEFINED(SAME70N19B) || \
- SAM_PART_IS_DEFINED(SAME70N20B) || \
- SAM_PART_IS_DEFINED(SAME70N21B) \
- )
-
-#define SAME70Q ( \
- SAM_PART_IS_DEFINED(SAME70Q19) || \
- SAM_PART_IS_DEFINED(SAME70Q20) || \
- SAM_PART_IS_DEFINED(SAME70Q21) \
- )
-
-#define SAME70QB ( \
- SAM_PART_IS_DEFINED(SAME70Q19B) || \
- SAM_PART_IS_DEFINED(SAME70Q20B) || \
- SAM_PART_IS_DEFINED(SAME70Q21B) \
- )
-/** @} */
-
-/**
- * \name SAM families
- * @{
- */
-/** SAM3S Family */
-#define SAM3S (SAM3S1 || SAM3S2 || SAM3S4 || SAM3S8 || SAM3SD8)
-
-/** SAM3U Family */
-#define SAM3U (SAM3U1 || SAM3U2 || SAM3U4)
-
-/** SAM3N Family */
-#define SAM3N (SAM3N00 || SAM3N0 || SAM3N1 || SAM3N2 || SAM3N4)
-
-/** SAM3XA Family */
-#define SAM3XA (SAM3X4 || SAM3X8 || SAM3A4 || SAM3A8)
-
-/** SAM4S Family */
-#define SAM4S (SAM4S2 || SAM4S4 || SAM4S8 || SAM4S16 || SAM4SA16 || SAM4SD16 || SAM4SD32)
-
-/** SAM4L Family */
-#define SAM4L (SAM4LS || SAM4LC)
-
-/** SAMD20 Family */
-#define SAMD20 (SAMD20J || SAMD20G || SAMD20E)
-
-/** SAMD21 Family */
-#define SAMD21 (SAMD21J || SAMD21G || SAMD21E)
-
-/** SAMD09 Family */
-#define SAMD09 (SAMD09C || SAMD09D)
-
-/** SAMD10 Family */
-#define SAMD10 (SAMD10C || SAMD10DS || SAMD10DM || SAMD10DU)
-
-/** SAMD11 Family */
-#define SAMD11 (SAMD11C || SAMD11DS || SAMD11DM || SAMD11DU)
-
-/** SAMDA1 Family */
-#define SAMDA1 (SAMDA1J || SAMDA1G || SAMDA1E)
-
-/** SAMHA1 Family */
-#define SAMHA1 (SAMHA1G || SAMHA1E)
-
-/** SAMHA0 Family */
-#define SAMHA0 (SAMHA0G || SAMHA0E)
-
-/** SAMD Family */
-#define SAMD (SAMD20 || SAMD21 || SAMD09 || SAMD10 || SAMD11 || SAMDA1)
-
-/** SAMR21 Family */
-#define SAMR21 (SAMR21G || SAMR21E)
-
-/** SAMR30 Family */
-#define SAMR30 (SAMR30G || SAMR30E)
-
-/** SAMR34 Family */
-#define SAMR34 (SAMR34J)
-
-/** SAMR35 Family */
-#define SAMR35 (SAMR35J)
-
-/** SAMR35 Family */
-#define WLR089 (WLR089U)
-
-/** SAMB11 Family */
-#define SAMB11 (SAMB11G || BTLC1000)
-
-/** SAML21 Family */
-#define SAML21 (SAML21J || SAML21G || SAML21E)
-
-/** SAML22 Family */
-#define SAML22 (SAML22J || SAML22G || SAML22N)
-/** SAMC20 Family */
-#define SAMC20 (SAMC20J || SAMC20G || SAMC20E)
-
-/** SAMC21 Family */
-#define SAMC21 (SAMC21J || SAMC21G || SAMC21E)
-
-/** SAM4E Family */
-#define SAM4E (SAM4E8 || SAM4E16)
-
-/** SAM4N Family */
-#define SAM4N (SAM4N8 || SAM4N16)
-
-/** SAM4C Family */
-#define SAM4C_0 (SAM4C4_0 || SAM4C8_0 || SAM4C16_0 || SAM4C32_0)
-#define SAM4C_1 (SAM4C4_1 || SAM4C8_1 || SAM4C16_1 || SAM4C32_1)
-#define SAM4C (SAM4C4 || SAM4C8 || SAM4C16 || SAM4C32)
-
-/** SAM4CM Family */
-#define SAM4CM_0 (SAM4CMP8_0 || SAM4CMP16_0 || SAM4CMP32_0 || \
- SAM4CMS4_0 || SAM4CMS8_0 || SAM4CMS16_0 || SAM4CMS32_0)
-#define SAM4CM_1 (SAM4CMP8_1 || SAM4CMP16_1 || SAM4CMP32_1 || \
- SAM4CMS4_1 || SAM4CMS8_1 || SAM4CMS16_1 || SAM4CMS32_1)
-#define SAM4CM (SAM4CMP8 || SAM4CMP16 || SAM4CMP32 || \
- SAM4CMS4 || SAM4CMS8 || SAM4CMS16 || SAM4CMS32)
-
-/** SAM4CP Family */
-#define SAM4CP_0 (SAM4CP16_0)
-#define SAM4CP_1 (SAM4CP16_1)
-#define SAM4CP (SAM4CP16)
-
-/** SAMG Family */
-#define SAMG (SAMG51 || SAMG53 || SAMG54 || SAMG55)
-
-/** SAMB Family */
-#define SAMB (SAMB11)
-
-/** SAMV71 Family */
-#define SAMV71 (SAMV71J || SAMV71N || SAMV71Q || SAMV71JB || SAMV71NB || SAMV71QB)
-#define SAMV71B (SAMV71JB || SAMV71NB || SAMV71QB)
-
-/** SAMV70 Family */
-#define SAMV70 (SAMV70J || SAMV70N || SAMV70Q || SAMV70JB || SAMV70NB || SAMV70QB)
-#define SAMV70B (SAMV70JB || SAMV70NB || SAMV70QB)
-
-/** SAME70 Family */
-#define SAME70 (SAME70J || SAME70N || SAME70Q || SAME70JB || SAME70NB || SAME70QB)
-#define SAME70B (SAME70JB || SAME70NB || SAME70QB)
-
-/** SAMS70 Family */
-#define SAMS70 (SAMS70J || SAMS70N || SAMS70Q || SAMS70JB || SAMS70NB || SAMS70QB)
-#define SAMS70B (SAMS70JB || SAMS70NB || SAMS70QB)
-
-/** SAM0 product line (cortex-m0+) */
-#define SAM0 (SAMD20 || SAMD21 || SAMR21 || SAMD10 || SAMD11 || SAML21 ||\
- SAMDA1 || SAMC20 || SAMC21 || SAML22 || SAMD09 || SAMR30 || SAMHA1 ||\
- SAMHA0 || SAMR34 || SAMR35 || WLR089)
-
-/** @} */
-
-/** SAM product line */
-#define SAM (SAM3S || SAM3U || SAM3N || SAM3XA || SAM4S || SAM4L || SAM4E || \
- SAM0 || SAM4N || SAM4C || SAM4CM || SAM4CP || SAMG || SAMV71 || SAMV70 || SAME70 || SAMS70)
-
-/** @} */
-
-/** @} */
-
-/** @} */
-
-#endif /* ATMEL_PARTS_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/boards/samd21_xplained_pro/board_init.c b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/boards/samd21_xplained_pro/board_init.c
deleted file mode 100644
index 2d36580..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/boards/samd21_xplained_pro/board_init.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
- * \file
- *
- * \brief SAM D21 Xplained Pro board initialization
- *
- * Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#include
-#include
-#include
-#include
-
-#if defined(__GNUC__)
-void board_init(void) WEAK __attribute__((alias("system_board_init")));
-#elif defined(__ICCARM__)
-void board_init(void);
-# pragma weak board_init=system_board_init
-#endif
-
-void system_board_init(void)
-{
- struct port_config pin_conf;
- port_get_config_defaults(&pin_conf);
-
- /* Configure LEDs as outputs, turn them off */
- pin_conf.direction = PORT_PIN_DIR_OUTPUT;
- port_pin_set_config(LED_0_PIN, &pin_conf);
- port_pin_set_output_level(LED_0_PIN, LED_0_INACTIVE);
-
- /* Set buttons as inputs */
- pin_conf.direction = PORT_PIN_DIR_INPUT;
- pin_conf.input_pull = PORT_PIN_PULL_UP;
- port_pin_set_config(BUTTON_0_PIN, &pin_conf);
-
-#ifdef CONF_BOARD_AT86RFX
- port_get_config_defaults(&pin_conf);
- pin_conf.direction = PORT_PIN_DIR_OUTPUT;
- port_pin_set_config(AT86RFX_SPI_SCK, &pin_conf);
- port_pin_set_config(AT86RFX_SPI_MOSI, &pin_conf);
- port_pin_set_config(AT86RFX_SPI_CS, &pin_conf);
- port_pin_set_config(AT86RFX_RST_PIN, &pin_conf);
- port_pin_set_config(AT86RFX_SLP_PIN, &pin_conf);
- port_pin_set_output_level(AT86RFX_SPI_SCK, true);
- port_pin_set_output_level(AT86RFX_SPI_MOSI, true);
- port_pin_set_output_level(AT86RFX_SPI_CS, true);
- port_pin_set_output_level(AT86RFX_RST_PIN, true);
- port_pin_set_output_level(AT86RFX_SLP_PIN, true);
- pin_conf.direction = PORT_PIN_DIR_INPUT;
- port_pin_set_config(AT86RFX_SPI_MISO, &pin_conf);
-#endif
-}
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/boards/samd21_xplained_pro/samd21_xplained_pro.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/boards/samd21_xplained_pro/samd21_xplained_pro.h
deleted file mode 100644
index f166cde..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/boards/samd21_xplained_pro/samd21_xplained_pro.h
+++ /dev/null
@@ -1,699 +0,0 @@
-/**
- * \file
- *
- * \brief SAM D21 Xplained Pro board definition
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef SAMD21_XPLAINED_PRO_H_INCLUDED
-#define SAMD21_XPLAINED_PRO_H_INCLUDED
-
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \ingroup group_common_boards
- * \defgroup samd21_xplained_pro_group SAM D21 Xplained Pro board
- *
- * @{
- */
-
-void system_board_init(void);
-
-/**
- * \defgroup samd21_xplained_pro_features_group Features
- *
- * Symbols that describe features and capabilities of the board.
- *
- * @{
- */
-
-/** Name string macro */
-#define BOARD_NAME "SAMD21_XPLAINED_PRO"
-
-/** \name Resonator definitions
- * @{ */
-#define BOARD_FREQ_SLCK_XTAL (32768U)
-#define BOARD_FREQ_SLCK_BYPASS (32768U)
-#define BOARD_FREQ_MAINCK_XTAL 0 /* Not Mounted */
-#define BOARD_FREQ_MAINCK_BYPASS 0 /* Not Mounted */
-#define BOARD_MCK CHIP_FREQ_CPU_MAX
-#define BOARD_OSC_STARTUP_US 15625
-/** @} */
-
-/** \name LED0 definitions
- * @{ */
-#define LED0_PIN PIN_PB30
-#define LED0_ACTIVE false
-#define LED0_INACTIVE !LED0_ACTIVE
-/** @} */
-
-/** \name SW0 definitions
- * @{ */
-#define SW0_PIN PIN_PA15
-#define SW0_ACTIVE false
-#define SW0_INACTIVE !SW0_ACTIVE
-#define SW0_EIC_PIN PIN_PA15A_EIC_EXTINT15
-#define SW0_EIC_MUX MUX_PA15A_EIC_EXTINT15
-#define SW0_EIC_PINMUX PINMUX_PA15A_EIC_EXTINT15
-#define SW0_EIC_LINE 15
-/** @} */
-
-/**
- * \name LED #0 definitions
- *
- * Wrapper macros for LED0, to ensure common naming across all Xplained Pro
- * boards.
- *
- * @{ */
-#define LED_0_NAME "LED0 (yellow)"
-#define LED_0_PIN LED0_PIN
-#define LED_0_ACTIVE LED0_ACTIVE
-#define LED_0_INACTIVE LED0_INACTIVE
-#define LED0_GPIO LED0_PIN
-#define LED0 LED0_PIN
-
-#define LED_0_PWM4CTRL_MODULE TCC0
-#define LED_0_PWM4CTRL_CHANNEL 0
-#define LED_0_PWM4CTRL_OUTPUT 0
-#define LED_0_PWM4CTRL_PIN PIN_PB30E_TCC0_WO0
-#define LED_0_PWM4CTRL_MUX MUX_PB30E_TCC0_WO0
-#define LED_0_PWM4CTRL_PINMUX PINMUX_PB30E_TCC0_WO0
-/** @} */
-
-/** Number of on-board LEDs */
-#define LED_COUNT 1
-
-/**
- * \name Serialflash definitions
- *
- * On board Serialflash definitions.
- *
- * @{ */
-#define SERIALFLASH_SPI_MODULE SERCOM5
-#define SERIALFLASH_SPI_MUX_SETTING SPI_SIGNAL_MUX_SETTING_E
-#define SERIALFLASH_SPI_PINMUX_PAD0 PINMUX_PB16C_SERCOM5_PAD0
-#define SERIALFLASH_SPI_PINMUX_PAD1 PINMUX_UNUSED
-#define SERIALFLASH_SPI_PINMUX_PAD2 PINMUX_PB22D_SERCOM5_PAD2
-#define SERIALFLASH_SPI_PINMUX_PAD3 PINMUX_PB23D_SERCOM5_PAD3
-#define SERIALFLASH_SPI_CS PIN_PA13
-/** @} */
-
-/**
- * \name Button #0 definitions
- *
- * Wrapper macros for SW0, to ensure common naming across all Xplained Pro
- * boards.
- *
- * @{ */
-#define BUTTON_0_NAME "SW0"
-#define BUTTON_0_PIN SW0_PIN
-#define BUTTON_0_ACTIVE SW0_ACTIVE
-#define BUTTON_0_INACTIVE SW0_INACTIVE
-#define BUTTON_0_EIC_PIN SW0_EIC_PIN
-#define BUTTON_0_EIC_MUX SW0_EIC_MUX
-#define BUTTON_0_EIC_PINMUX SW0_EIC_PINMUX
-#define BUTTON_0_EIC_LINE SW0_EIC_LINE
-/** @} */
-
-/** Number of on-board buttons */
-#define BUTTON_COUNT 1
-
-/** \name Extension header #1 pin definitions
- * @{
- */
-#define EXT1_PIN_3 PIN_PB00
-#define EXT1_PIN_4 PIN_PB01
-#define EXT1_PIN_5 PIN_PB06
-#define EXT1_PIN_6 PIN_PB07
-#define EXT1_PIN_7 PIN_PB02
-#define EXT1_PIN_8 PIN_PB03
-#define EXT1_PIN_9 PIN_PB04
-#define EXT1_PIN_10 PIN_PB05
-#define EXT1_PIN_11 PIN_PA08
-#define EXT1_PIN_12 PIN_PA09
-#define EXT1_PIN_13 PIN_PB09
-#define EXT1_PIN_14 PIN_PB08
-#define EXT1_PIN_15 PIN_PA05
-#define EXT1_PIN_16 PIN_PA06
-#define EXT1_PIN_17 PIN_PA04
-#define EXT1_PIN_18 PIN_PA07
-/** @} */
-
-/** \name Extension header #1 pin definitions by function
- * @{
- */
-#define EXT1_PIN_ADC_0 EXT1_PIN_3
-#define EXT1_PIN_ADC_1 EXT1_PIN_4
-#define EXT1_PIN_GPIO_0 EXT1_PIN_5
-#define EXT1_PIN_GPIO_1 EXT1_PIN_6
-#define EXT1_PIN_PWM_0 EXT1_PIN_7
-#define EXT1_PIN_PWM_1 EXT1_PIN_8
-#define EXT1_PIN_IRQ EXT1_PIN_9
-#define EXT1_PIN_I2C_SDA EXT1_PIN_11
-#define EXT1_PIN_I2C_SCL EXT1_PIN_12
-#define EXT1_PIN_UART_RX EXT1_PIN_13
-#define EXT1_PIN_UART_TX EXT1_PIN_14
-#define EXT1_PIN_SPI_SS_1 EXT1_PIN_10
-#define EXT1_PIN_SPI_SS_0 EXT1_PIN_15
-#define EXT1_PIN_SPI_MOSI EXT1_PIN_16
-#define EXT1_PIN_SPI_MISO EXT1_PIN_17
-#define EXT1_PIN_SPI_SCK EXT1_PIN_18
-/** @} */
-
-/** \name Extension header #1 ADC definitions
- * @{
- */
-#define EXT1_ADC_MODULE ADC
-#define EXT1_ADC_0_CHANNEL 8
-#define EXT1_ADC_0_PIN PIN_PB00B_ADC_AIN8
-#define EXT1_ADC_0_MUX MUX_PB00B_ADC_AIN8
-#define EXT1_ADC_0_PINMUX PINMUX_PB00B_ADC_AIN8
-#define EXT1_ADC_1_CHANNEL 9
-#define EXT1_ADC_1_PIN PIN_PB01B_ADC_AIN9
-#define EXT1_ADC_1_MUX MUX_PB01B_ADC_AIN9
-#define EXT1_ADC_1_PINMUX PINMUX_PB01B_ADC_AIN9
-/** @} */
-
-/** \name Extension header #1 PWM definitions
- * @{
- */
-#define EXT1_PWM_MODULE TC6
-#define EXT1_PWM_0_CHANNEL 0
-#define EXT1_PWM_0_PIN PIN_PB02E_TC6_WO0
-#define EXT1_PWM_0_MUX MUX_PB02E_TC6_WO0
-#define EXT1_PWM_0_PINMUX PINMUX_PB02E_TC6_WO0
-#define EXT1_PWM_1_CHANNEL 1
-#define EXT1_PWM_1_PIN PIN_PB03E_TC6_WO1
-#define EXT1_PWM_1_MUX MUX_PB03E_TC6_WO1
-#define EXT1_PWM_1_PINMUX PINMUX_PB03E_TC6_WO1
-/** @} */
-
-/** \name Extension header #1 IRQ/External interrupt definitions
- * @{
- */
-#define EXT1_IRQ_MODULE EIC
-#define EXT1_IRQ_INPUT 4
-#define EXT1_IRQ_PIN PIN_PB04A_EIC_EXTINT4
-#define EXT1_IRQ_MUX MUX_PB04A_EIC_EXTINT4
-#define EXT1_IRQ_PINMUX PINMUX_PB04A_EIC_EXTINT4
-/** @} */
-
-/** \name Extension header #1 I2C definitions
- * @{
- */
-#define EXT1_I2C_MODULE SERCOM2
-#define EXT1_I2C_SERCOM_PINMUX_PAD0 PINMUX_PA08D_SERCOM2_PAD0
-#define EXT1_I2C_SERCOM_PINMUX_PAD1 PINMUX_PA09D_SERCOM2_PAD1
-#define EXT1_I2C_SERCOM_DMAC_ID_TX SERCOM2_DMAC_ID_TX
-#define EXT1_I2C_SERCOM_DMAC_ID_RX SERCOM2_DMAC_ID_RX
-/** @} */
-
-/** \name Extension header #1 UART definitions
- * @{
- */
-#define EXT1_UART_MODULE SERCOM4
-#define EXT1_UART_SERCOM_MUX_SETTING USART_RX_1_TX_0_XCK_1
-#define EXT1_UART_SERCOM_PINMUX_PAD0 PINMUX_PB08D_SERCOM4_PAD0
-#define EXT1_UART_SERCOM_PINMUX_PAD1 PINMUX_PB09D_SERCOM4_PAD1
-#define EXT1_UART_SERCOM_PINMUX_PAD2 PINMUX_UNUSED
-#define EXT1_UART_SERCOM_PINMUX_PAD3 PINMUX_UNUSED
-#define EXT1_UART_SERCOM_DMAC_ID_TX SERCOM4_DMAC_ID_TX
-#define EXT1_UART_SERCOM_DMAC_ID_RX SERCOM4_DMAC_ID_RX
-/** @} */
-
-/** \name Extension header #1 SPI definitions
- * @{
- */
-#define EXT1_SPI_MODULE SERCOM0
-#define EXT1_SPI_SERCOM_MUX_SETTING SPI_SIGNAL_MUX_SETTING_E
-#define EXT1_SPI_SERCOM_PINMUX_PAD0 PINMUX_PA04D_SERCOM0_PAD0
-#define EXT1_SPI_SERCOM_PINMUX_PAD1 PINMUX_PA05D_SERCOM0_PAD1
-#define EXT1_SPI_SERCOM_PINMUX_PAD2 PINMUX_PA06D_SERCOM0_PAD2
-#define EXT1_SPI_SERCOM_PINMUX_PAD3 PINMUX_PA07D_SERCOM0_PAD3
-#define EXT1_SPI_SERCOM_DMAC_ID_TX SERCOM0_DMAC_ID_TX
-#define EXT1_SPI_SERCOM_DMAC_ID_RX SERCOM0_DMAC_ID_RX
-/** @} */
-
-/** \name Extension header #2 pin definitions
- * @{
- */
-#define EXT2_PIN_3 PIN_PA10
-#define EXT2_PIN_4 PIN_PA11
-#define EXT2_PIN_5 PIN_PA20
-#define EXT2_PIN_6 PIN_PA21
-#define EXT2_PIN_7 PIN_PB12
-#define EXT2_PIN_8 PIN_PB13
-#define EXT2_PIN_9 PIN_PB14
-#define EXT2_PIN_10 PIN_PB15
-#define EXT2_PIN_11 PIN_PA08
-#define EXT2_PIN_12 PIN_PA09
-#define EXT2_PIN_13 PIN_PB11
-#define EXT2_PIN_14 PIN_PB10
-#define EXT2_PIN_15 PIN_PA17
-#define EXT2_PIN_16 PIN_PA18
-#define EXT2_PIN_17 PIN_PA16
-#define EXT2_PIN_18 PIN_PA19
-/** @} */
-
-/** \name Extension header #2 pin definitions by function
- * @{
- */
-#define EXT2_PIN_ADC_0 EXT2_PIN_3
-#define EXT2_PIN_ADC_1 EXT2_PIN_4
-#define EXT2_PIN_GPIO_0 EXT2_PIN_5
-#define EXT2_PIN_GPIO_1 EXT2_PIN_6
-#define EXT2_PIN_PWM_0 EXT2_PIN_7
-#define EXT2_PIN_PWM_1 EXT2_PIN_8
-#define EXT2_PIN_IRQ EXT2_PIN_9
-#define EXT2_PIN_I2C_SDA EXT2_PIN_11
-#define EXT2_PIN_I2C_SCL EXT2_PIN_12
-#define EXT2_PIN_UART_RX EXT2_PIN_13
-#define EXT2_PIN_UART_TX EXT2_PIN_14
-#define EXT2_PIN_SPI_SS_1 EXT2_PIN_10
-#define EXT2_PIN_SPI_SS_0 EXT2_PIN_15
-#define EXT2_PIN_SPI_MOSI EXT2_PIN_16
-#define EXT2_PIN_SPI_MISO EXT2_PIN_17
-#define EXT2_PIN_SPI_SCK EXT2_PIN_18
-/** @} */
-
-/** \name Extension header #2 ADC definitions
- * @{
- */
-#define EXT2_ADC_MODULE ADC
-#define EXT2_ADC_0_CHANNEL 18
-#define EXT2_ADC_0_PIN PIN_PA10B_ADC_AIN18
-#define EXT2_ADC_0_MUX MUX_PA10B_ADC_AIN18
-#define EXT2_ADC_0_PINMUX PINMUX_PA10B_ADC_AIN18
-#define EXT2_ADC_1_CHANNEL 19
-#define EXT2_ADC_1_PIN PIN_PA11B_ADC_AIN19
-#define EXT2_ADC_1_MUX MUX_PA11B_ADC_AIN19
-#define EXT2_ADC_1_PINMUX PINMUX_PA11B_ADC_AIN19
-/** @} */
-
-/** \name Extension header #2 PWM definitions
- * @{
- */
-#define EXT2_PWM_MODULE TC4
-#define EXT2_PWM_0_CHANNEL 0
-#define EXT2_PWM_0_PIN PIN_PB12E_TC4_WO0
-#define EXT2_PWM_0_MUX MUX_PB12E_TC4_WO0
-#define EXT2_PWM_0_PINMUX PINMUX_PB12E_TC4_WO0
-#define EXT2_PWM_1_CHANNEL 1
-#define EXT2_PWM_1_PIN PIN_PB13E_TC4_WO1
-#define EXT2_PWM_1_MUX MUX_PB13E_TC4_WO1
-#define EXT2_PWM_1_PINMUX PINMUX_PB13E_TC4_WO1
-/** @} */
-
-/** \name Extension header #2 PWM for Control definitions
- * @{
- */
-#define EXT2_PWM4CTRL_MODULE TCC0
-#define EXT2_PWM4CTRL_0_CHANNEL 2
-#define EXT2_PWM4CTRL_0_OUTPUT 6
-#define EXT2_PWM4CTRL_0_PIN PIN_PB12F_TCC0_WO6
-#define EXT2_PWM4CTRL_0_MUX MUX_PB12F_TCC0_WO6
-#define EXT2_PWM4CTRL_0_PINMUX PINMUX_PB12F_TCC0_WO6
-#define EXT2_PWM4CTRL_1_CHANNEL 3
-#define EXT2_PWM4CTRL_1_OUTPUT 7
-#define EXT2_PWM4CTRL_1_PIN PIN_PB13F_TCC0_WO7
-#define EXT2_PWM4CTRL_1_MUX MUX_PB13F_TCC0_WO7
-#define EXT2_PWM4CTRL_1_PINMUX PINMUX_PB13F_TCC0_WO7
-/** @} */
-
-/** \name Extension header #2 IRQ/External interrupt definitions
- * @{
- */
-#define EXT2_IRQ_MODULE EIC
-#define EXT2_IRQ_INPUT 14
-#define EXT2_IRQ_PIN PIN_PB14A_EIC_EXTINT14
-#define EXT2_IRQ_MUX MUX_PB14A_EIC_EXTINT14
-#define EXT2_IRQ_PINMUX PINMUX_PB14A_EIC_EXTINT14
-/** @} */
-
- /** \name Extension header #2 I2C definitions
- * @{
- */
-#define EXT2_I2C_MODULE SERCOM2
-#define EXT2_I2C_SERCOM_PINMUX_PAD0 PINMUX_PA08D_SERCOM2_PAD0
-#define EXT2_I2C_SERCOM_PINMUX_PAD1 PINMUX_PA09D_SERCOM2_PAD1
-#define EXT2_I2C_SERCOM_DMAC_ID_TX SERCOM2_DMAC_ID_TX
-#define EXT2_I2C_SERCOM_DMAC_ID_RX SERCOM2_DMAC_ID_RX
-/** @} */
-
-/** \name Extension header #2 UART definitions
- * @{
- */
-#define EXT2_UART_MODULE SERCOM4
-#define EXT2_UART_SERCOM_MUX_SETTING USART_RX_1_TX_0_XCK_1
-#define EXT2_UART_SERCOM_PINMUX_PAD0 PINMUX_PB12C_SERCOM4_PAD0
-#define EXT2_UART_SERCOM_PINMUX_PAD1 PINMUX_PB13C_SERCOM4_PAD1
-#define EXT2_UART_SERCOM_PINMUX_PAD2 PINMUX_UNUSED
-#define EXT2_UART_SERCOM_PINMUX_PAD3 PINMUX_UNUSED
-#define EXT2_UART_SERCOM_DMAC_ID_TX SERCOM4_DMAC_ID_TX
-#define EXT2_UART_SERCOM_DMAC_ID_RX SERCOM4_DMAC_ID_RX
-/** @} */
-
-/** \name Extension header #2 SPI definitions
- * @{
- */
-#define EXT2_SPI_MODULE SERCOM1
-#define EXT2_SPI_SERCOM_MUX_SETTING SPI_SIGNAL_MUX_SETTING_E
-#define EXT2_SPI_SERCOM_PINMUX_PAD0 PINMUX_PA16C_SERCOM1_PAD0
-#define EXT2_SPI_SERCOM_PINMUX_PAD1 PINMUX_PA17C_SERCOM1_PAD1
-#define EXT2_SPI_SERCOM_PINMUX_PAD2 PINMUX_PA18C_SERCOM1_PAD2
-#define EXT2_SPI_SERCOM_PINMUX_PAD3 PINMUX_PA19C_SERCOM1_PAD3
-#define EXT2_SPI_SERCOM_DMAC_ID_TX SERCOM1_DMAC_ID_TX
-#define EXT2_SPI_SERCOM_DMAC_ID_RX SERCOM1_DMAC_ID_RX
-/** @} */
-
-/** \name Extension header #3 pin definitions
- * @{
- */
-#define EXT3_PIN_3 PIN_PA02
-#define EXT3_PIN_4 PIN_PA03
-#define EXT3_PIN_5 PIN_PB30
-#define EXT3_PIN_6 PIN_PA15
-#define EXT3_PIN_7 PIN_PA12
-#define EXT3_PIN_8 PIN_PA13
-#define EXT3_PIN_9 PIN_PA28
-#define EXT3_PIN_10 PIN_PA27
-#define EXT3_PIN_11 PIN_PA08
-#define EXT3_PIN_12 PIN_PA09
-#define EXT3_PIN_13 PIN_PB11
-#define EXT3_PIN_14 PIN_PB10
-#define EXT3_PIN_15 PIN_PB17
-#define EXT3_PIN_16 PIN_PB22
-#define EXT3_PIN_17 PIN_PB16
-#define EXT3_PIN_18 PIN_PB23
-/** @} */
-
-/** \name Extension header #3 pin definitions by function
- * @{
- */
-#define EXT3_PIN_ADC_0 EXT3_PIN_3
-#define EXT3_PIN_ADC_1 EXT3_PIN_4
-#define EXT3_PIN_GPIO_0 EXT3_PIN_5
-#define EXT3_PIN_GPIO_1 EXT3_PIN_6
-#define EXT3_PIN_PWM_0 EXT3_PIN_7
-#define EXT3_PIN_PWM_1 EXT3_PIN_8
-#define EXT3_PIN_IRQ EXT3_PIN_9
-#define EXT3_PIN_I2C_SDA EXT3_PIN_11
-#define EXT3_PIN_I2C_SCL EXT3_PIN_12
-#define EXT3_PIN_UART_RX EXT3_PIN_13
-#define EXT3_PIN_UART_TX EXT3_PIN_14
-#define EXT3_PIN_SPI_SS_1 EXT3_PIN_10
-#define EXT3_PIN_SPI_SS_0 EXT3_PIN_15
-#define EXT3_PIN_SPI_MOSI EXT3_PIN_16
-#define EXT3_PIN_SPI_MISO EXT3_PIN_17
-#define EXT3_PIN_SPI_SCK EXT3_PIN_18
-/** @} */
-
-/** \name Extension header #3 ADC definitions
- * @{
- */
-#define EXT3_ADC_MODULE ADC
-#define EXT3_ADC_0_CHANNEL 0
-#define EXT3_ADC_0_PIN PIN_PA02B_ADC_AIN0
-#define EXT3_ADC_0_MUX MUX_PA02B_ADC_AIN0
-#define EXT3_ADC_0_PINMUX PINMUX_PA02B_ADC_AIN0
-#define EXT3_ADC_1_CHANNEL 1
-#define EXT3_ADC_1_PIN PIN_PA03B_ADC_AIN1
-#define EXT3_ADC_1_MUX MUX_PA03B_ADC_AIN1
-#define EXT3_ADC_1_PINMUX PINMUX_PA03B_ADC_AIN1
-/** @} */
-
-/** \name Extension header #3 PWM for Control definitions
- * @{
- */
-#define EXT3_PWM4CTRL_MODULE TCC2
-#define EXT3_PWM4CTRL_0_CHANNEL 0
-#define EXT3_PWM4CTRL_0_OUTPUT 0
-#define EXT3_PWM4CTRL_0_PIN PIN_PA12E_TCC2_WO0
-#define EXT3_PWM4CTRL_0_MUX MUX_PA12E_TCC2_WO0
-#define EXT3_PWM4CTRL_0_PINMUX PINMUX_PA12E_TCC2_WO0
-#define EXT3_PWM4CTRL_1_CHANNEL 1
-#define EXT3_PWM4CTRL_1_OUTPUT 1
-#define EXT3_PWM4CTRL_1_PIN PIN_PA13E_TCC2_WO1
-#define EXT3_PWM4CTRL_1_MUX MUX_PA13E_TCC2_WO1
-#define EXT3_PWM4CTRL_1_PINMUX PINMUX_PA13E_TCC2_WO1
-/** @} */
-
-/** \name Extension header #3 IRQ/External interrupt definitions
- * @{
- */
-#define EXT3_IRQ_MODULE EIC
-#define EXT3_IRQ_INPUT 8
-#define EXT3_IRQ_PIN PIN_PA28A_EIC_EXTINT8
-#define EXT3_IRQ_MUX MUX_PA28A_EIC_EXTINT8
-#define EXT3_IRQ_PINMUX PINMUX_PA28A_EIC_EXTINT8
-/** @} */
-
-/** \name Extension header #3 I2C definitions
- * @{
- */
-#define EXT3_I2C_MODULE SERCOM2
-#define EXT3_I2C_SERCOM_PINMUX_PAD0 PINMUX_PA08D_SERCOM2_PAD0
-#define EXT3_I2C_SERCOM_PINMUX_PAD1 PINMUX_PA09D_SERCOM2_PAD1
-#define EXT3_I2C_SERCOM_DMAC_ID_TX SERCOM2_DMAC_ID_TX
-#define EXT3_I2C_SERCOM_DMAC_ID_RX SERCOM2_DMAC_ID_RX
-/** @} */
-
-/** \name Extension header #3 UART definitions
- * @{
- */
-#define EXT3_UART_MODULE SERCOM4
-#define EXT3_UART_SERCOM_MUX_SETTING USART_RX_3_TX_2_XCK_3
-#define EXT3_UART_SERCOM_PINMUX_PAD0 PINMUX_UNUSED
-#define EXT3_UART_SERCOM_PINMUX_PAD1 PINMUX_UNUSED
-#define EXT3_UART_SERCOM_PINMUX_PAD2 PINMUX_PB10D_SERCOM4_PAD2
-#define EXT3_UART_SERCOM_PINMUX_PAD3 PINMUX_PB11D_SERCOM4_PAD3
-#define EXT3_UART_SERCOM_DMAC_ID_TX SERCOM4_DMAC_ID_TX
-#define EXT3_UART_SERCOM_DMAC_ID_RX SERCOM4_DMAC_ID_RX
-/** @} */
-
-/** \name Extension header #3 SPI definitions
- * @{
- */
-#define EXT3_SPI_MODULE SERCOM5
-#define EXT3_SPI_SERCOM_MUX_SETTING SPI_SIGNAL_MUX_SETTING_E
-#define EXT3_SPI_SERCOM_PINMUX_PAD0 PINMUX_PB16C_SERCOM5_PAD0
-#define EXT3_SPI_SERCOM_PINMUX_PAD1 PINMUX_PB17C_SERCOM5_PAD1
-#define EXT3_SPI_SERCOM_PINMUX_PAD2 PINMUX_PB22D_SERCOM5_PAD2
-#define EXT3_SPI_SERCOM_PINMUX_PAD3 PINMUX_PB23D_SERCOM5_PAD3
-#define EXT3_SPI_SERCOM_DMAC_ID_TX SERCOM5_DMAC_ID_TX
-#define EXT3_SPI_SERCOM_DMAC_ID_RX SERCOM5_DMAC_ID_RX
-/** @} */
-
-/** \name Extension header #3 Dataflash
- * @{
- */
-#define EXT3_DATAFLASH_SPI_MODULE EXT3_SPI_MODULE
-#define EXT3_DATAFLASH_SPI_MUX_SETTING EXT3_SPI_SERCOM_MUX_SETTING
-#define EXT3_DATAFLASH_SPI_PINMUX_PAD0 EXT3_SPI_SERCOM_PINMUX_PAD0
-#define EXT3_DATAFLASH_SPI_PINMUX_PAD1 EXT3_SPI_SERCOM_PINMUX_PAD1
-#define EXT3_DATAFLASH_SPI_PINMUX_PAD2 EXT3_SPI_SERCOM_PINMUX_PAD2
-#define EXT3_DATAFLASH_SPI_PINMUX_PAD3 EXT3_SPI_SERCOM_PINMUX_PAD3
-/** @} */
-
-/** \name USB definitions
- * @{
- */
-#define USB_ID
-#define USB_TARGET_DP_PIN PIN_PA25G_USB_DP
-#define USB_TARGET_DP_MUX MUX_PA25G_USB_DP
-#define USB_TARGET_DP_PINMUX PINMUX_PA25G_USB_DP
-#define USB_TARGET_DM_PIN PIN_PA24G_USB_DM
-#define USB_TARGET_DM_MUX MUX_PA24G_USB_DM
-#define USB_TARGET_DM_PINMUX PINMUX_PA24G_USB_DM
-#define USB_VBUS_PIN PIN_PA14
-#define USB_VBUS_EIC_LINE 14
-#define USB_VBUS_EIC_MUX MUX_PA14A_EIC_EXTINT14
-#define USB_VBUS_EIC_PINMUX PINMUX_PA14A_EIC_EXTINT14
-#define USB_ID_PIN PIN_PA03
-#define USB_ID_EIC_LINE 3
-#define USB_ID_EIC_MUX MUX_PA03A_EIC_EXTINT3
-#define USB_ID_EIC_PINMUX PINMUX_PA03A_EIC_EXTINT3
-/** @} */
-
-/** \name Embedded debugger GPIO interface definitions
- * @{
- */
-#define EDBG_GPIO0_PIN PIN_PA27
-#define EDBG_GPIO1_PIN PIN_PA28
-#define EDBG_GPIO2_PIN PIN_PA20
-#define EDBG_GPIO3_PIN PIN_PA21
-/** @} */
-
-/** \name Embedded debugger USART interface definitions
- * @{
- */
-#define EDBG_UART_MODULE -1 /* Not available on this board */
-#define EDBG_UART_RX_PIN -1 /* Not available on this board */
-#define EDBG_UART_RX_MUX -1 /* Not available on this board */
-#define EDBG_UART_RX_PINMUX -1 /* Not available on this board */
-#define EDBG_UART_RX_SERCOM_PAD -1 /* Not available on this board */
-#define EDBG_UART_TX_PIN -1 /* Not available on this board */
-#define EDBG_UART_TX_MUX -1 /* Not available on this board */
-#define EDBG_UART_TX_PINMUX -1 /* Not available on this board */
-#define EDBG_UART_TX_SERCOM_PAD -1 /* Not available on this board */
-/** @} */
-
-/** \name Embedded debugger I2C interface definitions
- * @{
- */
-#define EDBG_I2C_MODULE SERCOM2
-#define EDBG_I2C_SERCOM_PINMUX_PAD0 PINMUX_PA08D_SERCOM2_PAD0
-#define EDBG_I2C_SERCOM_PINMUX_PAD1 PINMUX_PA09D_SERCOM2_PAD1
-#define EDBG_I2C_SERCOM_DMAC_ID_TX SERCOM2_DMAC_ID_TX
-#define EDBG_I2C_SERCOM_DMAC_ID_RX SERCOM2_DMAC_ID_RX
-/** @} */
-
-/** \name Embedded debugger SPI interface definitions
- * @{
- */
-#define EDBG_SPI_MODULE SERCOM5
-#define EDBG_SPI_SERCOM_MUX_SETTING SPI_SIGNAL_MUX_SETTING_E
-#define EDBG_SPI_SERCOM_PINMUX_PAD0 PINMUX_PB16C_SERCOM5_PAD0
-#define EDBG_SPI_SERCOM_PINMUX_PAD1 PINMUX_PB31D_SERCOM5_PAD1
-#define EDBG_SPI_SERCOM_PINMUX_PAD2 PINMUX_PB22D_SERCOM5_PAD2
-#define EDBG_SPI_SERCOM_PINMUX_PAD3 PINMUX_PB23D_SERCOM5_PAD3
-#define EDBG_SPI_SERCOM_DMAC_ID_TX SERCOM5_DMAC_ID_TX
-#define EDBG_SPI_SERCOM_DMAC_ID_RX SERCOM5_DMAC_ID_RX
-/** @} */
-
-/** \name Embedded debugger CDC Gateway USART interface definitions
- * @{
- */
-#define EDBG_CDC_MODULE SERCOM3
-#define EDBG_CDC_SERCOM_MUX_SETTING USART_RX_1_TX_0_XCK_1
-#define EDBG_CDC_SERCOM_PINMUX_PAD0 PINMUX_PA22C_SERCOM3_PAD0
-#define EDBG_CDC_SERCOM_PINMUX_PAD1 PINMUX_PA23C_SERCOM3_PAD1
-#define EDBG_CDC_SERCOM_PINMUX_PAD2 PINMUX_UNUSED
-#define EDBG_CDC_SERCOM_PINMUX_PAD3 PINMUX_UNUSED
-#define EDBG_CDC_SERCOM_DMAC_ID_TX SERCOM3_DMAC_ID_TX
-#define EDBG_CDC_SERCOM_DMAC_ID_RX SERCOM3_DMAC_ID_RX
-/** @} */
-
-/** @} */
-
-/** \name 802.15.4 TRX Interface definitions
- * @{
- */
-#ifndef EXT2_CONFIG
-#define AT86RFX_SPI EXT1_SPI_MODULE
-#define AT86RFX_RST_PIN EXT1_PIN_7
-#define AT86RFX_MISC_PIN EXT1_PIN_12
-#define AT86RFX_IRQ_PIN EXT1_PIN_9
-#define AT86RFX_SLP_PIN EXT1_PIN_10
-#define AT86RFX_SPI_CS EXT1_PIN_15
-#define AT86RFX_SPI_MOSI EXT1_PIN_16
-#define AT86RFX_SPI_MISO EXT1_PIN_17
-#define AT86RFX_SPI_SCK EXT1_PIN_18
-#define AT86RFX_CSD EXT1_PIN_5
-#define AT86RFX_CPS EXT1_PIN_8
-
-#define AT86RFX_SPI_SERCOM_MUX_SETTING EXT1_SPI_SERCOM_MUX_SETTING
-#define AT86RFX_SPI_SERCOM_PINMUX_PAD0 EXT1_SPI_SERCOM_PINMUX_PAD0
-#define AT86RFX_SPI_SERCOM_PINMUX_PAD1 PINMUX_UNUSED
-#define AT86RFX_SPI_SERCOM_PINMUX_PAD2 EXT1_SPI_SERCOM_PINMUX_PAD2
-#define AT86RFX_SPI_SERCOM_PINMUX_PAD3 EXT1_SPI_SERCOM_PINMUX_PAD3
-
-#define AT86RFX_IRQ_CHAN EXT1_IRQ_INPUT
-#define AT86RFX_IRQ_PINMUX EXT1_IRQ_PINMUX
-
-
-#endif
-/** Enables the transceiver main interrupt. */
-#define ENABLE_TRX_IRQ() \
- extint_chan_enable_callback(AT86RFX_IRQ_CHAN, EXTINT_CALLBACK_TYPE_DETECT)
-
-/** Disables the transceiver main interrupt. */
-#define DISABLE_TRX_IRQ() \
- extint_chan_disable_callback(AT86RFX_IRQ_CHAN, EXTINT_CALLBACK_TYPE_DETECT)
-
-/** Clears the transceiver main interrupt. */
-#define CLEAR_TRX_IRQ() \
- extint_chan_clear_detected(AT86RFX_IRQ_CHAN);
-
-/*
- * This macro saves the trx interrupt status and disables the trx interrupt.
- */
-#define ENTER_TRX_REGION() \
- { extint_chan_disable_callback(AT86RFX_IRQ_CHAN, EXTINT_CALLBACK_TYPE_DETECT)
-
-/*
- * This macro restores the transceiver interrupt status
- */
-#define LEAVE_TRX_REGION() \
- extint_chan_enable_callback(AT86RFX_IRQ_CHAN, EXTINT_CALLBACK_TYPE_DETECT); }
-
-/** @} */
-
-/**
- * \brief Turns off the specified LEDs.
- *
- * \param led_gpio LED to turn off (LEDx_GPIO).
- *
- * \note The pins of the specified LEDs are set to GPIO output mode.
- */
-#define LED_Off(led_gpio) port_pin_set_output_level(led_gpio,true)
-
-/**
- * \brief Turns on the specified LEDs.
- *
- * \param led_gpio LED to turn on (LEDx_GPIO).
- *
- * \note The pins of the specified LEDs are set to GPIO output mode.
- */
-#define LED_On(led_gpio) port_pin_set_output_level(led_gpio,false)
-
-/**
- * \brief Toggles the specified LEDs.
- *
- * \param led_gpio LED to toggle (LEDx_GPIO).
- *
- * \note The pins of the specified LEDs are set to GPIO output mode.
- */
-#define LED_Toggle(led_gpio) port_pin_toggle_output_level(led_gpio)
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* SAMD21_XPLAINED_PRO_H_INCLUDED */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/extint/extint.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/extint/extint.h
deleted file mode 100644
index 1cd46cb..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/extint/extint.h
+++ /dev/null
@@ -1,699 +0,0 @@
-/**
- * \file
- *
- * \brief SAM External Interrupt Driver
- *
- * Copyright (c) 2012-2020 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef EXTINT_H_INCLUDED
-#define EXTINT_H_INCLUDED
-
-/**
- * \defgroup asfdoc_sam0_extint_group SAM External Interrupt (EXTINT) Driver
- *
- * This driver for Atmel® | SMART ARM®-based microcontrollers provides
- * an interface for the configuration and management of external interrupts
- * generated by the physical device pins, including edge detection.
- * The following driver API modes are covered by this
- * manual:
- *
- * - Polled APIs
- * \if EXTINT_CALLBACK_MODE
- * - Callback APIs
- * \endif
- *
- * The following peripheral is used by this module:
- * - EIC (External Interrupt Controller)
- *
- * The following devices can use this module:
- * - Atmel | SMART SAM D20/D21
- * - Atmel | SMART SAM R21
- * - Atmel | SMART SAM D09/D10/D11
- * - Atmel | SMART SAM L21/L22
- * - Atmel | SMART SAM DA1
- * - Atmel | SMART SAM C20/C21
- * - Atmel | SMART SAM HA1
- * - Atmel | SMART SAM R34/R35
- *
- * The outline of this documentation is as follows:
- * - \ref asfdoc_sam0_extint_prerequisites
- * - \ref asfdoc_sam0_extint_module_overview
- * - \ref asfdoc_sam0_extint_special_considerations
- * - \ref asfdoc_sam0_extint_extra_info
- * - \ref asfdoc_sam0_extint_examples
- * - \ref asfdoc_sam0_extint_api_overview
- *
- *
- * \section asfdoc_sam0_extint_prerequisites Prerequisites
- *
- * There are no prerequisites for this module.
- *
- *
- * \section asfdoc_sam0_extint_module_overview Module Overview
- *
- * The External Interrupt (EXTINT) module provides a method of asynchronously
- * detecting rising edge, falling edge, or specific level detection on individual
- * I/O pins of a device. This detection can then be used to trigger a software
- * interrupt or event, or polled for later use if required. External interrupts
- * can also optionally be used to automatically wake up the device from sleep
- * mode, allowing the device to conserve power while still being able to react
- * to an external stimulus in a timely manner.
- *
- * \subsection asfdoc_sam0_extint_logical_channels Logical Channels
- * The External Interrupt module contains a number of logical channels, each of
- * which is capable of being individually configured for a given pin routing,
- * detection mode, and filtering/wake up characteristics.
- *
- * Each individual logical external interrupt channel may be routed to a single
- * physical device I/O pin in order to detect a particular edge or level of the
- * incoming signal.
- *
- * \subsection asfdoc_sam0_extint_module_overview_nmi_chanel NMI Channels
- *
- * One or more Non Maskable Interrupt (NMI) channels are provided within each
- * physical External Interrupt Controller module, allowing a single physical pin
- * of the device to fire a single NMI interrupt in response to a particular
- * edge or level stimulus. An NMI cannot, as the name suggests, be disabled in
- * firmware and will take precedence over any in-progress interrupt sources.
- *
- * NMIs can be used to implement critical device features such as forced
- * software reset or other functionality where the action should be executed in
- * preference to all other running code with a minimum amount of latency.
- *
- * \subsection asfdoc_sam0_extint_module_overview_filtering Input Filtering and Detection
- *
- * To reduce the possibility of noise or other transient signals causing
- * unwanted device wake-ups, interrupts, and/or events via an external interrupt
- * channel. A hardware signal filter can be enabled on individual channels. This
- * filter provides a Majority-of-Three voter filter on the incoming signal, so
- * that the input state is considered to be the majority vote of three
- * subsequent samples of the pin input buffer. The possible sampled input and
- * resulting filtered output when the filter is enabled is shown in
- * \ref asfdoc_sam0_extint_filter_table "the table below".
- *
- * \anchor asfdoc_sam0_extint_filter_table
- *
- *
Sampled Input and Resulting Filtered Output
- *
- *
Input Sample 1
- *
Input Sample 2
- *
Input Sample 3
- *
Filtered Output
- *
- *
- *
0
0
0
0
- *
- *
- *
0
0
1
0
- *
- *
- *
0
1
0
0
- *
- *
- *
0
1
1
1
- *
- *
- *
1
0
0
0
- *
- *
- *
1
0
1
1
- *
- *
- *
1
1
0
1
- *
- *
- *
1
1
1
1
- *
- *
- *
- * \subsection asfdoc_sam0_extint_module_overview_events Events and Interrupts
- *
- * Channel detection states may be polled inside the application for synchronous
- * detection, or events and interrupts may be used for asynchronous behavior.
- * Each channel can be configured to give an asynchronous hardware event (which
- * may in turn trigger actions in other hardware modules) or an asynchronous
- * software interrupt.
- *
- * \note The connection of events between modules requires the use of the
- * \ref asfdoc_sam0_events_group "SAM Event System Driver (EVENTS)"
- * to route output event of one module to the input event of another.
- * For more information on event routing, refer to the event driver
- * documentation.
- *
- * \subsection asfdoc_sam0_extint_module_overview_physical Physical Connection
- *
- * \ref asfdoc_sam0_extint_int_connections "The diagram below" shows how this
- * module is interconnected within the device.
- *
- * \anchor asfdoc_sam0_extint_int_connections
- * \dot
- * digraph overview {
- * node [label="Port Pad" shape=square] pad;
- *
- * subgraph driver {
- * node [label="Peripheral MUX" shape=trapezium] pinmux;
- * node [label="EIC Module" shape=ellipse] eic;
- * node [label="Other Peripheral Modules" shape=ellipse style=filled fillcolor=lightgray] peripherals;
- * }
- *
- * pinmux -> eic;
- * pad -> pinmux;
- * pinmux -> peripherals;
- * }
- * \enddot
- *
- * \section asfdoc_sam0_extint_special_considerations Special Considerations
- *
- * Not all devices support disabling of the NMI channel(s) detection mode - see
- * your device datasheet.
- *
- *
- * \section asfdoc_sam0_extint_extra_info Extra Information
- *
- * For extra information, see \ref asfdoc_sam0_extint_extra. This includes:
- * - \ref asfdoc_sam0_extint_extra_acronyms
- * - \ref asfdoc_sam0_extint_extra_dependencies
- * - \ref asfdoc_sam0_extint_extra_errata
- * - \ref asfdoc_sam0_extint_extra_history
- *
- *
- * \section asfdoc_sam0_extint_examples Examples
- *
- * For a list of examples related to this driver, see
- * \ref asfdoc_sam0_extint_exqsg.
- *
- *
- * \section asfdoc_sam0_extint_api_overview API Overview
- * @{
- */
-
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief External interrupt edge detection configuration enum.
- *
- * Enum for the possible signal edge detection modes of the External
- * Interrupt Controller module.
- */
-enum extint_detect {
- /** No edge detection. Not allowed as a NMI detection mode on some
- * devices. */
- EXTINT_DETECT_NONE = 0,
- /** Detect rising signal edges */
- EXTINT_DETECT_RISING = 1,
- /** Detect falling signal edges */
- EXTINT_DETECT_FALLING = 2,
- /** Detect both signal edges */
- EXTINT_DETECT_BOTH = 3,
- /** Detect high signal levels */
- EXTINT_DETECT_HIGH = 4,
- /** Detect low signal levels */
- EXTINT_DETECT_LOW = 5,
-};
-
-/**
- * \brief External interrupt internal pull configuration enum.
- *
- * Enum for the possible pin internal pull configurations.
- *
- * \note Disabling the internal pull resistor is not recommended if the driver
- * is used in interrupt (callback) mode, due the possibility of floating
- * inputs generating continuous interrupts.
- */
-enum extint_pull {
- /** Internal pull-up resistor is enabled on the pin */
- EXTINT_PULL_UP = SYSTEM_PINMUX_PIN_PULL_UP,
- /** Internal pull-down resistor is enabled on the pin */
- EXTINT_PULL_DOWN = SYSTEM_PINMUX_PIN_PULL_DOWN,
- /** Internal pull resistor is disconnected from the pin */
- EXTINT_PULL_NONE = SYSTEM_PINMUX_PIN_PULL_NONE,
-};
-
-/** The EIC is clocked by GCLK_EIC. */
-#define EXTINT_CLK_GCLK 0
-/** The EIC is clocked by CLK_ULP32K. */
-#define EXTINT_CLK_ULP32K 1
-
-/**
- * \brief External Interrupt Controller channel configuration structure.
- *
- * Configuration structure for the edge detection mode of an external
- * interrupt channel.
- */
-struct extint_chan_conf {
- /** GPIO pin the NMI should be connected to */
- uint32_t gpio_pin;
- /** MUX position the GPIO pin should be configured to */
- uint32_t gpio_pin_mux;
- /** Internal pull to enable on the input pin */
- enum extint_pull gpio_pin_pull;
-#if (SAML21) || (SAML22) || (SAMC20) || (SAMC21) || (SAMR30) || (SAMR34) || (SAMR35) || (WLR089)
- /** Enable asynchronous edge detection. */
- bool enable_async_edge_detection;
-#else
- /** Wake up the device if the channel interrupt fires during sleep mode */
- bool wake_if_sleeping;
-#endif
- /** Filter the raw input signal to prevent noise from triggering an
- * interrupt accidentally, using a three sample majority filter */
- bool filter_input_signal;
- /** Edge detection mode to use */
- enum extint_detect detection_criteria;
-};
-
-/**
- * \brief External Interrupt event enable/disable structure.
- *
- * Event flags for the \ref extint_enable_events() and
- * \ref extint_disable_events().
- */
-struct extint_events {
- /** If \c true, an event will be generated when an external interrupt
- * channel detection state changes */
- bool generate_event_on_detect[32 * EIC_INST_NUM];
-};
-
-/**
- * \brief External Interrupt Controller NMI configuration structure.
- *
- * Configuration structure for the edge detection mode of an external
- * interrupt NMI channel.
- */
-struct extint_nmi_conf {
- /** GPIO pin the NMI should be connected to */
- uint32_t gpio_pin;
- /** MUX position the GPIO pin should be configured to */
- uint32_t gpio_pin_mux;
- /** Internal pull to enable on the input pin */
- enum extint_pull gpio_pin_pull;
- /** Filter the raw input signal to prevent noise from triggering an
- * interrupt accidentally, using a three sample majority filter */
- bool filter_input_signal;
- /** Edge detection mode to use. Not all devices support all possible
- * detection modes for NMIs.
- */
- enum extint_detect detection_criteria;
-#if (SAML21) || (SAML22) || (SAMC20) || (SAMC21) || (SAMR30) || (SAMR34) || (SAMR35) || (WLR089)
- /** Enable asynchronous edge detection. */
- bool enable_async_edge_detection;
-#endif
-};
-
-#if EXTINT_CALLBACK_MODE == true
-/** Type definition for an EXTINT module callback function */
-typedef void (*extint_callback_t)(void);
-
-#ifndef EIC_NUMBER_OF_INTERRUPTS
-# define EIC_NUMBER_OF_INTERRUPTS 16
-#endif
-#endif
-
-#if !defined(__DOXYGEN__)
-/** \internal
- * Internal EXTINT module device instance structure definition.
- */
-struct _extint_module
-{
-# if EXTINT_CALLBACK_MODE == true
- /** Asynchronous channel callback table, for user-registered handlers */
- extint_callback_t callbacks[EIC_NUMBER_OF_INTERRUPTS];
-# else
- /** Dummy value to ensure the struct has at least one member */
- uint8_t _dummy;
-# endif
-};
-
-/**
- * \brief Retrieves the base EIC module address from a given channel number.
- *
- * Retrieves the base address of a EIC hardware module associated with the
- * given external interrupt channel.
- *
- * \param[in] channel External interrupt channel index to convert
- *
- * \return Base address of the associated EIC module.
- */
-static inline Eic * _extint_get_eic_from_channel(
- const uint8_t channel)
-{
- uint8_t eic_index = (channel / 32);
-
- if (eic_index < EIC_INST_NUM) {
- /* Array of available EICs */
- Eic *const eics[EIC_INST_NUM] = EIC_INSTS;
-
- return eics[eic_index];
- } else {
- Assert(false);
- return NULL;
- }
-}
-
-/**
- * \brief Retrieves the base EIC module address from a given NMI channel number.
- *
- * Retrieves the base address of a EIC hardware module associated with the
- * given non-maskable external interrupt channel.
- *
- * \param[in] nmi_channel Non-Maskable interrupt channel index to convert
- *
- * \return Base address of the associated EIC module.
- */
-static inline Eic * _extint_get_eic_from_nmi(
- const uint8_t nmi_channel)
-{
- uint8_t eic_index = nmi_channel;
-
- if (eic_index < EIC_INST_NUM) {
- /* Array of available EICs */
- Eic *const eics[EIC_INST_NUM] = EIC_INSTS;
-
- return eics[eic_index];
- } else {
- Assert(false);
- return NULL;
- }
-}
-#endif
-
-/** \name Event Management
- * @{
- */
-
-void extint_enable_events(
- struct extint_events *const events);
-
-void extint_disable_events(
- struct extint_events *const events);
-
-/** @} */
-
-/** \name Configuration and Initialization (Channel)
- * @{
- */
-
-void extint_chan_get_config_defaults(
- struct extint_chan_conf *const config);
-
-void extint_chan_set_config(
- const uint8_t channel,
- const struct extint_chan_conf *const config);
-
-/** @} */
-
-/** \name Configuration and Initialization (NMI)
- * @{
- */
-
-/**
- * \brief Initializes an External Interrupt NMI channel configuration structure to defaults.
- *
- * Initializes a given External Interrupt NMI channel configuration structure
- * to a set of known default values. This function should be called on all new
- * instances of these configuration structures before being modified by the
- * user application.
- *
- * The default configuration is as follows:
- * \li Input filtering disabled
- * \li Detect falling edges of a signal
- * \li Asynchronous edge detection is disabled
- *
- * \param[out] config Configuration structure to initialize to default values
- */
-static inline void extint_nmi_get_config_defaults(
- struct extint_nmi_conf *const config)
-{
- /* Sanity check arguments */
- Assert(config);
-
- /* Default configuration values */
- config->gpio_pin = 0;
- config->gpio_pin_mux = 0;
- config->gpio_pin_pull = EXTINT_PULL_UP;
- config->filter_input_signal = false;
- config->detection_criteria = EXTINT_DETECT_FALLING;
-#if (SAML21) || (SAML22) || (SAMC20) || (SAMC21) || (SAMR30) || (SAMR34) || (SAMR35) || (WLR089)
- config->enable_async_edge_detection = false;
-#endif
-
-}
-
-enum status_code extint_nmi_set_config(
- const uint8_t nmi_channel,
- const struct extint_nmi_conf *const config);
-
-/** @} */
-
-/** \name Detection testing and clearing (channel)
- * @{
- */
-
-/**
- * \brief Retrieves the edge detection state of a configured channel.
- *
- * Reads the current state of a configured channel, and determines
- * if the detection criteria of the channel has been met.
- *
- * \param[in] channel External Interrupt channel index to check
- *
- * \return Status of the requested channel's edge detection state.
- * \retval true If the channel's edge/level detection criteria was met
- * \retval false If the channel has not detected its configured criteria
- */
-static inline bool extint_chan_is_detected(
- const uint8_t channel)
-{
- Eic *const eic_module = _extint_get_eic_from_channel(channel);
- uint32_t eic_mask = (1UL << (channel % 32));
-
- return (eic_module->INTFLAG.reg & eic_mask);
-}
-
-/**
- * \brief Clears the edge detection state of a configured channel.
- *
- * Clears the current state of a configured channel, readying it for
- * the next level or edge detection.
- *
- * \param[in] channel External Interrupt channel index to check
- */
-static inline void extint_chan_clear_detected(
- const uint8_t channel)
-{
- Eic *const eic_module = _extint_get_eic_from_channel(channel);
- uint32_t eic_mask = (1UL << (channel % 32));
-
- eic_module->INTFLAG.reg = eic_mask;
-}
-
-/** @} */
-
-/** \name Detection Testing and Clearing (NMI)
- * @{
- */
-
-/**
- * \brief Retrieves the edge detection state of a configured NMI channel.
- *
- * Reads the current state of a configured NMI channel, and determines
- * if the detection criteria of the NMI channel has been met.
- *
- * \param[in] nmi_channel External Interrupt NMI channel index to check
- *
- * \return Status of the requested NMI channel's edge detection state.
- * \retval true If the NMI channel's edge/level detection criteria was met
- * \retval false If the NMI channel has not detected its configured criteria
- */
-static inline bool extint_nmi_is_detected(
- const uint8_t nmi_channel)
-{
- Eic *const eic_module = _extint_get_eic_from_nmi(nmi_channel);
-
- return (eic_module->NMIFLAG.reg & EIC_NMIFLAG_NMI);
-}
-
-/**
- * \brief Clears the edge detection state of a configured NMI channel.
- *
- * Clears the current state of a configured NMI channel, readying it for
- * the next level or edge detection.
- *
- * \param[in] nmi_channel External Interrupt NMI channel index to check
- */
-static inline void extint_nmi_clear_detected(
- const uint8_t nmi_channel)
-{
- Eic *const eic_module = _extint_get_eic_from_nmi(nmi_channel);
-
- eic_module->NMIFLAG.reg = EIC_NMIFLAG_NMI;
-}
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#if EXTINT_CALLBACK_MODE == true
-# include "extint_callback.h"
-#endif
-
-/**
- * \page asfdoc_sam0_extint_extra Extra Information for EXTINT Driver
- *
- * \section asfdoc_sam0_extint_extra_acronyms Acronyms
- * The table below presents the acronyms used in this module:
- *
- *
- *
- *
Acronym
- *
Description
- *
- *
- *
EIC
- *
External Interrupt Controller
- *
- *
- *
MUX
- *
Multiplexer
- *
- *
- *
NMI
- *
Non-Maskable Interrupt
- *
- *
- *
- *
- * \section asfdoc_sam0_extint_extra_dependencies Dependencies
- * This driver has the following dependencies:
- *
- * - \ref asfdoc_sam0_system_pinmux_group "System Pin Multiplexer Driver"
- *
- *
- * \section asfdoc_sam0_extint_extra_errata Errata
- * There are no errata related to this driver.
- *
- *
- * \section asfdoc_sam0_extint_extra_history Module History
- * An overview of the module history is presented in the table below, with
- * details on the enhancements and fixes made to the module since its first
- * release. The current version of this corresponds to the newest version in
- * the table.
- *
- *
- *
- *
Changelog
- *
- *
- *
- * \li Driver updated to follow driver type convention
- * \li Removed \c %extint_reset(), \c %extint_disable() and
- * \c extint_enable() functions. Added internal function
- * \c %_system_extint_init().
- * \li Added configuration EXTINT_CLOCK_SOURCE in conf_extint.h
- * \li Removed configuration EXTINT_CALLBACKS_MAX in conf_extint.h, and
- * added channel parameter in the register functions
- * \c %extint_register_callback() and \c %extint_unregister_callback()
- *
- *
- *
- *
Updated interrupt handler to clear interrupt flag before calling
- * callback function
- *
- *
- *
Updated initialization function to also enable the digital interface
- * clock to the module if it is disabled
- *
- *
- *
Initial Release
- *
- *
- */
-
-/**
- * \page asfdoc_sam0_extint_exqsg Examples for EXTINT Driver
- *
- * This is a list of the available Quick Start guides (QSGs) and example
- * applications for \ref asfdoc_sam0_extint_group.
- * QSGs are simple examples with step-by-step instructions to configure and
- * use this driver in a selection of use cases. Note that a QSG can be compiled
- * as a standalone application or be added to the user application.
- *
- * - \subpage asfdoc_sam0_extint_basic_use_case
- * \if EXTINT_CALLBACK_MODE
- * - \subpage asfdoc_sam0_extint_callback_use_case
- * \endif
- *
- * \page asfdoc_sam0_extint_document_revision_history Document Revision History
- *
- *
- *
- *
Doc. Rev.
- *
Date
- *
Comments
- *
- *
- *
42112E
- *
12/2015
- *
Added support for SAM L21/L22, SAM C21, SAM D09, and SAM DA1
- *
- *
- *
42112D
- *
12/2014
- *
Added support for SAM R21 and SAM D10/D11
- *
- *
- *
42112C
- *
01/2014
- *
Added support for SAM D21
- *
- *
- *
42112B
- *
06/2013
- *
Added additional documentation on the event system. Corrected
- * documentation typos.
- *
- *
- *
42112A
- *
06/2013
- *
Initial release
- *
- *
- */
-
-#endif
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/extint/extint_callback.c b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/extint/extint_callback.c
deleted file mode 100644
index 04a0af8..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/extint/extint_callback.c
+++ /dev/null
@@ -1,222 +0,0 @@
-/**
- * \file
- *
- * \brief SAM External Interrupt Driver
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#include "extint.h"
-#include "extint_callback.h"
-
-/**
- * \internal
- * Internal driver device instance struct, declared in the main module driver.
- */
-extern struct _extint_module _extint_dev;
-
-/**
- * \internal
- * This is the number of the channel whose callback is currently running.
- */
-uint8_t _current_channel;
-
-/**
- * \brief Registers an asynchronous callback function with the driver.
- *
- * Registers an asynchronous callback with the EXTINT driver, fired when a
- * channel detects the configured channel detection criteria
- * (e.g. edge or level). Callbacks are fired once for each detected channel.
- *
- * \note NMI channel callbacks cannot be registered via this function; the
- * device's NMI interrupt should be hooked directly in the user
- * application and the NMI flags manually cleared via
- * \ref extint_nmi_clear_detected().
- *
- * \param[in] callback Pointer to the callback function to register
- * \param[in] channel Logical channel to register callback for
- * \param[in] type Type of callback function to register
- *
- * \return Status of the registration operation.
- * \retval STATUS_OK The callback was registered successfully
- * \retval STATUS_ERR_INVALID_ARG If an invalid callback type was supplied
- * \retval STATUS_ERR_ALREADY_INITIALIZED Callback function has been
- * registered, need unregister first
- */
-enum status_code extint_register_callback(
- const extint_callback_t callback,
- const uint8_t channel,
- const enum extint_callback_type type)
-{
- /* Sanity check arguments */
- Assert(callback);
-
- if (type != EXTINT_CALLBACK_TYPE_DETECT) {
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
- }
-
- if (_extint_dev.callbacks[channel] == NULL) {
- _extint_dev.callbacks[channel] = callback;
- return STATUS_OK;
- } else if (_extint_dev.callbacks[channel] == callback) {
- return STATUS_OK;
- }
-
- return STATUS_ERR_ALREADY_INITIALIZED;
-}
-
-/**
- * \brief Unregisters an asynchronous callback function with the driver.
- *
- * Unregisters an asynchronous callback with the EXTINT driver, removing it
- * from the internal callback registration table.
- *
- * \param[in] callback Pointer to the callback function to unregister
- * \param[in] channel Logical channel to unregister callback for
- * \param[in] type Type of callback function to unregister
- *
- * \return Status of the de-registration operation.
- * \retval STATUS_OK The callback was unregistered successfully
- * \retval STATUS_ERR_INVALID_ARG If an invalid callback type was supplied
- * \retval STATUS_ERR_BAD_ADDRESS No matching entry was found in the
- * registration table
- */
-enum status_code extint_unregister_callback(
- const extint_callback_t callback,
- const uint8_t channel,
- const enum extint_callback_type type)
-{
- /* Sanity check arguments */
- Assert(callback);
-
- if (type != EXTINT_CALLBACK_TYPE_DETECT) {
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
- }
-
- if (_extint_dev.callbacks[channel] == callback) {
- _extint_dev.callbacks[channel] = NULL;
- return STATUS_OK;
- }
-
- return STATUS_ERR_BAD_ADDRESS;
-}
-
-/**
- * \brief Enables asynchronous callback generation for a given channel and type.
- *
- * Enables asynchronous callbacks for a given logical external interrupt channel
- * and type. This must be called before an external interrupt channel will
- * generate callback events.
- *
- * \param[in] channel Logical channel to enable callback generation for
- * \param[in] type Type of callback function callbacks to enable
- *
- * \return Status of the callback enable operation.
- * \retval STATUS_OK The callback was enabled successfully
- * \retval STATUS_ERR_INVALID_ARG If an invalid callback type was supplied
- */
-enum status_code extint_chan_enable_callback(
- const uint8_t channel,
- const enum extint_callback_type type)
-{
- if (type == EXTINT_CALLBACK_TYPE_DETECT) {
- Eic *const eic = _extint_get_eic_from_channel(channel);
-
- eic->INTENSET.reg = (1UL << channel);
- }
- else {
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
- }
-
- return STATUS_OK;
-}
-
-/**
- * \brief Disables asynchronous callback generation for a given channel and type.
- *
- * Disables asynchronous callbacks for a given logical external interrupt
- * channel and type.
- *
- * \param[in] channel Logical channel to disable callback generation for
- * \param[in] type Type of callback function callbacks to disable
- *
- * \return Status of the callback disable operation.
- * \retval STATUS_OK The callback was disabled successfully
- * \retval STATUS_ERR_INVALID_ARG If an invalid callback type was supplied
- */
-enum status_code extint_chan_disable_callback(
- const uint8_t channel,
- const enum extint_callback_type type)
-{
- if (type == EXTINT_CALLBACK_TYPE_DETECT) {
- Eic *const eic = _extint_get_eic_from_channel(channel);
-
- eic->INTENCLR.reg = (1UL << channel);
- }
- else {
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
- }
-
- return STATUS_OK;
-}
-
-/**
- * \brief Find what channel caused the callback.
- *
- * Can be used in an EXTINT callback function to find what channel caused
- * the callback in case the same callback is used by multiple channels.
- *
- * \return Channel number.
- */
-uint8_t extint_get_current_channel(void)
-{
- return _current_channel;
-}
-
-/** Handler for the EXTINT hardware module interrupt. */
-void EIC_Handler(void)
-{
- /* Find any triggered channels, run associated callback handlers */
- for (_current_channel = 0; _current_channel < EIC_NUMBER_OF_INTERRUPTS ; _current_channel++) {
- if (extint_chan_is_detected(_current_channel)) {
- /* Clear flag */
- extint_chan_clear_detected(_current_channel);
- /* Find any associated callback entries in the callback table */
- if (_extint_dev.callbacks[_current_channel] != NULL) {
- /* Run the registered callback */
- _extint_dev.callbacks[_current_channel]();
- }
- }
- }
-}
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/extint/extint_callback.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/extint/extint_callback.h
deleted file mode 100644
index a2941f1..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/extint/extint_callback.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- * \file
- *
- * \brief SAM External Interrupt Driver
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef EXTINT_CALLBACK_H_INCLUDED
-#define EXTINT_CALLBACK_H_INCLUDED
-
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \addtogroup asfdoc_sam0_extint_group
- *
- * @{
- */
-
-/** \name Callback Configuration and Initialization
- * @{
- */
-
-/** Enum for the possible callback types for the EXTINT module. */
-enum extint_callback_type
-{
- /** Callback type for when an external interrupt detects the configured
- * channel criteria (i.e. edge or level detection)
- */
- EXTINT_CALLBACK_TYPE_DETECT,
-};
-
-enum status_code extint_register_callback(
- const extint_callback_t callback,
- const uint8_t channel,
- const enum extint_callback_type type);
-
-enum status_code extint_unregister_callback(
- const extint_callback_t callback,
- const uint8_t channel,
- const enum extint_callback_type type);
-
-uint8_t extint_get_current_channel(void);
-
-/** @} */
-
-/** \name Callback Enabling and Disabling (Channel)
- * @{
- */
-
-enum status_code extint_chan_enable_callback(
- const uint8_t channel,
- const enum extint_callback_type type);
-
-enum status_code extint_chan_disable_callback(
- const uint8_t channel,
- const enum extint_callback_type type);
-
-/** @} */
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/extint/extint_sam_d_r_h/extint.c b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/extint/extint_sam_d_r_h/extint.c
deleted file mode 100644
index 6de9740..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/extint/extint_sam_d_r_h/extint.c
+++ /dev/null
@@ -1,415 +0,0 @@
-/**
- * \file
- *
- * \brief SAM External Interrupt Driver
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#include
-#include
-#include
-#include
-
-#if !defined(EXTINT_CLOCK_SOURCE) || defined(__DOXYGEN__)
-# warning EXTINT_CLOCK_SOURCE is not defined, assuming GCLK_GENERATOR_0.
-
-/** Configuration option, setting the EIC clock source which can be used for
- * EIC edge detection or filtering. This option may be overridden in the module
- * configuration header file \c conf_extint.h.
- */
-# define EXTINT_CLOCK_SOURCE GCLK_GENERATOR_0
-#endif
-
-/**
- * \internal
- * Internal driver device instance struct.
- */
-struct _extint_module _extint_dev;
-
-/**
- * \brief Determin if the general clock is required
- *
- * \param[in] filter_input_signal Filter the raw input signal to prevent noise
- * \param[in] detection_criteria Edge detection mode to use (\ref extint_detect)
- */
-#define _extint_is_gclk_required(filter_input_signal, detection_criteria) \
- ((filter_input_signal) ? true : (\
- (EXTINT_DETECT_RISING == (detection_criteria)) ? true : (\
- (EXTINT_DETECT_FALLING == (detection_criteria)) ? true : (\
- (EXTINT_DETECT_BOTH == (detection_criteria)) ? true : false))))
-
-static void _extint_enable(void);
-static void _extint_disable(void);
-
-/**
- * \brief Determines if the hardware module(s) are currently synchronizing to the bus.
- *
- * Checks to see if the underlying hardware peripheral module(s) are currently
- * synchronizing across multiple clock domains to the hardware bus, This
- * function can be used to delay further operations on a module until such time
- * that it is ready, to prevent blocking delays for synchronization in the
- * user application.
- *
- * \return Synchronization status of the underlying hardware module(s).
- *
- * \retval true If the module synchronization is ongoing
- * \retval false If the module has completed synchronization
- */
-static inline bool extint_is_syncing(void)
-{
- Eic *const eics[EIC_INST_NUM] = EIC_INSTS;
-
- for (uint32_t i = 0; i < EIC_INST_NUM; i++) {
- if (eics[i]->STATUS.reg & EIC_STATUS_SYNCBUSY) {
- return true;
- }
- }
- return false;
-}
-/**
- * \internal
- * \brief Initializes and enables the External Interrupt driver.
- *
- * Enable the clocks used by External Interrupt driver.
- *
- * Resets the External Interrupt driver, resetting all hardware
- * module registers to their power-on defaults, then enable it for further use.
- *
- * Reset the callback list if callback mode is used.
- *
- * This function must be called before attempting to use any NMI or standard
- * external interrupt channel functions.
- *
- * \note When SYSTEM module is used, this function will be invoked by
- * \ref system_init() automatically if the module is included.
- */
-void _system_extint_init(void);
-void _system_extint_init(void)
-{
- Eic *const eics[EIC_INST_NUM] = EIC_INSTS;
-
- /* Turn on the digital interface clock */
- system_apb_clock_set_mask(SYSTEM_CLOCK_APB_APBA, PM_APBAMASK_EIC);
-
- /* Configure the generic clock for the module and enable it */
- struct system_gclk_chan_config gclk_chan_conf;
- system_gclk_chan_get_config_defaults(&gclk_chan_conf);
- gclk_chan_conf.source_generator = EXTINT_CLOCK_SOURCE;
- system_gclk_chan_set_config(EIC_GCLK_ID, &gclk_chan_conf);
-
- /* Enable the clock anyway, since when needed it will be requested
- * by External Interrupt driver */
- system_gclk_chan_enable(EIC_GCLK_ID);
-
- /* Reset all EIC hardware modules. */
- for (uint32_t i = 0; i < EIC_INST_NUM; i++) {
- eics[i]->CTRL.reg |= EIC_CTRL_SWRST;
- }
-
- while (extint_is_syncing()) {
- /* Wait for all hardware modules to complete synchronization */
- }
-
- /* Reset the software module */
-#if EXTINT_CALLBACK_MODE == true
- /* Clear callback registration table */
- for (uint8_t j = 0; j < EIC_NUMBER_OF_INTERRUPTS; j++) {
- _extint_dev.callbacks[j] = NULL;
- }
- system_interrupt_enable(SYSTEM_INTERRUPT_MODULE_EIC);
-#endif
-
- /* Enables the driver for further use */
- _extint_enable();
-}
-
-/**
- * \internal
- * \brief Enables the External Interrupt driver.
- *
- * Enables EIC modules.
- * Registered callback list will not be affected if callback mode is used.
- */
-void _extint_enable(void)
-{
- Eic *const eics[EIC_INST_NUM] = EIC_INSTS;
-
- /* Enable all EIC hardware modules. */
- for (uint32_t i = 0; i < EIC_INST_NUM; i++) {
- eics[i]->CTRL.reg |= EIC_CTRL_ENABLE;
- }
-
- while (extint_is_syncing()) {
- /* Wait for all hardware modules to complete synchronization */
- }
-}
-
-/**
- * \internal
- * \brief Disables the External Interrupt driver.
- *
- * Disables EIC modules that were previously started via a call to
- * \ref _extint_enable().
- * Registered callback list will not be affected if callback mode is used.
- */
-void _extint_disable(void)
-{
- Eic *const eics[EIC_INST_NUM] = EIC_INSTS;
-
- /* Disable all EIC hardware modules. */
- for (uint32_t i = 0; i < EIC_INST_NUM; i++) {
- eics[i]->CTRL.reg &= ~EIC_CTRL_ENABLE;
- }
-
- while (extint_is_syncing()) {
- /* Wait for all hardware modules to complete synchronization */
- }
-}
-
-/**
- * \brief Initializes an External Interrupt channel configuration structure to defaults.
- *
- * Initializes a given External Interrupt channel configuration structure to a
- * set of known default values. This function should be called on all new
- * instances of these configuration structures before being modified by the
- * user application.
- *
- * The default configuration is as follows:
- * \li Wake the device if an edge detection occurs whilst in sleep
- * \li Input filtering disabled
- * \li Internal pull-up enabled
- * \li Detect falling edges of a signal
- *
- * \param[out] config Configuration structure to initialize to default values
- */
-void extint_chan_get_config_defaults(
- struct extint_chan_conf *const config)
-{
- /* Sanity check arguments */
- Assert(config);
-
- /* Default configuration values */
- config->gpio_pin = 0;
- config->gpio_pin_mux = 0;
- config->gpio_pin_pull = EXTINT_PULL_UP;
- config->wake_if_sleeping = true;
- config->filter_input_signal = false;
- config->detection_criteria = EXTINT_DETECT_FALLING;
-}
-
-/**
- * \brief Writes an External Interrupt channel configuration to the hardware module.
- *
- * Writes out a given configuration of an External Interrupt channel
- * configuration to the hardware module. If the channel is already configured,
- * the new configuration will replace the existing one.
- *
- * \param[in] channel External Interrupt channel to configure
- * \param[in] config Configuration settings for the channel
-
- */
-void extint_chan_set_config(
- const uint8_t channel,
- const struct extint_chan_conf *const config)
-{
- /* Sanity check arguments */
- Assert(config);
- /* Sanity check clock requirements */
- Assert(!(!system_gclk_gen_is_enabled(EXTINT_CLOCK_SOURCE) &&
- _extint_is_gclk_required(config->filter_input_signal,
- config->detection_criteria)));
-
- struct system_pinmux_config pinmux_config;
- system_pinmux_get_config_defaults(&pinmux_config);
-
- pinmux_config.mux_position = config->gpio_pin_mux;
- pinmux_config.direction = SYSTEM_PINMUX_PIN_DIR_INPUT;
- pinmux_config.input_pull = (enum system_pinmux_pin_pull)config->gpio_pin_pull;
- system_pinmux_pin_set_config(config->gpio_pin, &pinmux_config);
-
- /* Get a pointer to the module hardware instance */
- Eic *const EIC_module = _extint_get_eic_from_channel(channel);
-
- uint32_t config_pos = (4 * (channel % 8));
- uint32_t new_config;
-
- /* Determine the channel's new edge detection configuration */
- new_config = (config->detection_criteria << EIC_CONFIG_SENSE0_Pos);
-
- /* Enable the hardware signal filter if requested in the config */
- if (config->filter_input_signal) {
- new_config |= EIC_CONFIG_FILTEN0;
- }
-
- /* Clear the existing and set the new channel configuration */
- EIC_module->CONFIG[channel / 8].reg
- = (EIC_module->CONFIG[channel / 8].reg &
- ~((EIC_CONFIG_SENSE0_Msk | EIC_CONFIG_FILTEN0) << config_pos)) |
- (new_config << config_pos);
-
- /* Set the channel's new wake up mode setting */
- if (config->wake_if_sleeping) {
- EIC_module->WAKEUP.reg |= (1UL << channel);
- } else {
- EIC_module->WAKEUP.reg &= ~(1UL << channel);
- }
-}
-
-/**
- * \brief Writes an External Interrupt NMI channel configuration to the hardware module.
- *
- * Writes out a given configuration of an External Interrupt NMI channel
- * configuration to the hardware module. If the channel is already configured,
- * the new configuration will replace the existing one.
- *
- * \param[in] nmi_channel External Interrupt NMI channel to configure
- * \param[in] config Configuration settings for the channel
- *
- * \returns Status code indicating the success or failure of the request.
- * \retval STATUS_OK Configuration succeeded
- * \retval STATUS_ERR_PIN_MUX_INVALID An invalid pinmux value was supplied
- * \retval STATUS_ERR_BAD_FORMAT An invalid detection mode was requested
- */
-enum status_code extint_nmi_set_config(
- const uint8_t nmi_channel,
- const struct extint_nmi_conf *const config)
-{
- /* Sanity check arguments */
- Assert(config);
- /* Sanity check clock requirements */
- Assert(!(!system_gclk_gen_is_enabled(EXTINT_CLOCK_SOURCE) &&
- _extint_is_gclk_required(config->filter_input_signal,
- config->detection_criteria)));
-
- struct system_pinmux_config pinmux_config;
- system_pinmux_get_config_defaults(&pinmux_config);
-
- pinmux_config.mux_position = config->gpio_pin_mux;
- pinmux_config.direction = SYSTEM_PINMUX_PIN_DIR_INPUT;
- pinmux_config.input_pull = SYSTEM_PINMUX_PIN_PULL_UP;
- pinmux_config.input_pull = (enum system_pinmux_pin_pull)config->gpio_pin_pull;
- system_pinmux_pin_set_config(config->gpio_pin, &pinmux_config);
-
- /* Get a pointer to the module hardware instance */
- Eic *const EIC_module = _extint_get_eic_from_channel(nmi_channel);
-
- uint32_t new_config;
-
- /* Determine the NMI's new edge detection configuration */
- new_config = (config->detection_criteria << EIC_NMICTRL_NMISENSE_Pos);
-
- /* Enable the hardware signal filter if requested in the config */
- if (config->filter_input_signal) {
- new_config |= EIC_NMICTRL_NMIFILTEN;
- }
-
- /* Disable EIC and general clock to configure NMI */
- _extint_disable();
- system_gclk_chan_disable(EIC_GCLK_ID);
-
- EIC_module->NMICTRL.reg = new_config;
-
- /* Enable the general clock and EIC after configure NMI */
- system_gclk_chan_enable(EIC_GCLK_ID);
- _extint_enable();
-
- return STATUS_OK;
-}
-
-/**
- * \brief Enables an External Interrupt event output.
- *
- * Enables one or more output events from the External Interrupt module. See
- * \ref extint_events "here" for a list of events this module supports.
- *
- * \note Events cannot be altered while the module is enabled.
- *
- * \param[in] events Struct containing flags of events to enable
- */
-void extint_enable_events(
- struct extint_events *const events)
-{
- /* Sanity check arguments */
- Assert(events);
-
- /* Array of available EICs. */
- Eic *const eics[EIC_INST_NUM] = EIC_INSTS;
-
- /* Update the event control register for each physical EIC instance */
- for (uint32_t i = 0; i < EIC_INST_NUM; i++) {
- uint32_t event_mask = 0;
-
- /* Create an enable mask for the current EIC module */
- for (uint32_t j = 0; j < 32; j++) {
- if (events->generate_event_on_detect[(32 * i) + j]) {
- event_mask |= (1UL << j);
- }
- }
-
- /* Enable the masked events */
- eics[i]->EVCTRL.reg |= event_mask;
- }
-}
-
-/**
- * \brief Disables an External Interrupt event output.
- *
- * Disables one or more output events from the External Interrupt module. See
- * \ref extint_events "here" for a list of events this module supports.
- *
- * \note Events cannot be altered while the module is enabled.
- *
- * \param[in] events Struct containing flags of events to disable
- */
-void extint_disable_events(
- struct extint_events *const events)
-{
- /* Sanity check arguments */
- Assert(events);
-
- /* Array of available EICs. */
- Eic *const eics[EIC_INST_NUM] = EIC_INSTS;
-
- /* Update the event control register for each physical EIC instance */
- for (uint32_t i = 0; i < EIC_INST_NUM; i++) {
- uint32_t event_mask = 0;
-
- /* Create a disable mask for the current EIC module */
- for (uint32_t j = 0; j < 32; j++) {
- if (events->generate_event_on_detect[(32 * i) + j]) {
- event_mask |= (1UL << j);
- }
- }
-
- /* Disable the masked events */
- eics[i]->EVCTRL.reg &= ~event_mask;
- }
-}
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/port/port.c b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/port/port.c
deleted file mode 100644
index d7a834f..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/port/port.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/**
- * \file
- *
- * \brief SAM GPIO Port Driver
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#include
-
-/**
- * \brief Writes a Port pin configuration to the hardware module.
- *
- * Writes out a given configuration of a Port pin configuration to the hardware
- * module.
- *
- * \note If the pin direction is set as an output, the pull-up/pull-down input
- * configuration setting is ignored.
- *
- * \param[in] gpio_pin Index of the GPIO pin to configure
- * \param[in] config Configuration settings for the pin
- */
-void port_pin_set_config(
- const uint8_t gpio_pin,
- const struct port_config *const config)
-{
- /* Sanity check arguments */
- Assert(config);
-
- struct system_pinmux_config pinmux_config;
- system_pinmux_get_config_defaults(&pinmux_config);
-
- pinmux_config.mux_position = SYSTEM_PINMUX_GPIO;
- pinmux_config.direction = (enum system_pinmux_pin_dir)config->direction;
- pinmux_config.input_pull = (enum system_pinmux_pin_pull)config->input_pull;
- pinmux_config.powersave = config->powersave;
-
- system_pinmux_pin_set_config(gpio_pin, &pinmux_config);
-}
-
-/**
- * \brief Writes a Port group configuration group to the hardware module.
- *
- * Writes out a given configuration of a Port group configuration to the
- * hardware module.
- *
- * \note If the pin direction is set as an output, the pull-up/pull-down input
- * configuration setting is ignored.
- *
- * \param[out] port Base of the PORT module to write to
- * \param[in] mask Mask of the port pin(s) to configure
- * \param[in] config Configuration settings for the pin group
- */
-void port_group_set_config(
- PortGroup *const port,
- const uint32_t mask,
- const struct port_config *const config)
-{
- /* Sanity check arguments */
- Assert(port);
- Assert(config);
-
- struct system_pinmux_config pinmux_config;
- system_pinmux_get_config_defaults(&pinmux_config);
-
- pinmux_config.mux_position = SYSTEM_PINMUX_GPIO;
- pinmux_config.direction = (enum system_pinmux_pin_dir)config->direction;
- pinmux_config.input_pull = (enum system_pinmux_pin_pull)config->input_pull;
- pinmux_config.powersave = config->powersave;
-
- system_pinmux_group_set_config(port, mask, &pinmux_config);
-}
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/port/port.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/port/port.h
deleted file mode 100644
index 52eaa4d..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/port/port.h
+++ /dev/null
@@ -1,785 +0,0 @@
-/**
- * \file
- *
- * \brief SAM GPIO Port Driver
- *
- * Copyright (c) 2012-2020 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef PORT_H_INCLUDED
-#define PORT_H_INCLUDED
-
-/**
- * \defgroup asfdoc_sam0_port_group SAM Port (PORT) Driver
- *
- * This driver for Atmel® | SMART ARM®-based microcontrollers provides
- * an interface for the configuration and management of the device's General
- * Purpose Input/Output (GPIO) pin functionality, for manual pin state reading
- * and writing.
- *
- * The following peripheral is used by this module:
- * - PORT (GPIO Management)
- *
- * The following devices can use this module:
- * - Atmel | SMART SAM D20/D21
- * - Atmel | SMART SAM R21
- * - Atmel | SMART SAM D09/D10/D11
- * - Atmel | SMART SAM L21/L22
- * - Atmel | SMART SAM DA1
- * - Atmel | SMART SAM C20/C21
- * - Atmel | SMART SAM HA1
- * - Atmel | SMART SAM R30
- * - Atmel | SMART SAM R34
- * - Atmel | SMART SAM R35
- *
- * The outline of this documentation is as follows:
- * - \ref asfdoc_sam0_port_prerequisites
- * - \ref asfdoc_sam0_port_module_overview
- * - \ref asfdoc_sam0_port_special_considerations
- * - \ref asfdoc_sam0_port_extra_info
- * - \ref asfdoc_sam0_port_examples
- * - \ref asfdoc_sam0_port_api_overview
- *
- *
- * \section asfdoc_sam0_port_prerequisites Prerequisites
- *
- * There are no prerequisites for this module.
- *
- *
- * \section asfdoc_sam0_port_module_overview Module Overview
- *
- * The device GPIO (PORT) module provides an interface between the user
- * application logic and external hardware peripherals, when general pin state
- * manipulation is required. This driver provides an easy-to-use interface to
- * the physical pin input samplers and output drivers, so that pins can be read
- * from or written to for general purpose external hardware control.
- *
- * \subsection asfdoc_sam0_port_features Driver Feature Macro Definition
- *
- *
- *
Driver Feature Macro
- *
Supported devices
- *
- *
- *
FEATURE_PORT_INPUT_EVENT
- *
SAM L21/L22/C20/C21/R30/R34/R35
- *
- *
- * \note The specific features are only available in the driver when the
- * selected device supports those features.
- *
- * \subsection asfdoc_sam0_port_module_overview_pin_numbering Physical and Logical GPIO Pins
- * SAM devices use two naming conventions for the I/O pins in the device; one
- * physical and one logical. Each physical pin on a device package is assigned
- * both a physical port and pin identifier (e.g. "PORTA.0") as well as a
- * monotonically incrementing logical GPIO number (e.g. "GPIO0"). While the
- * former is used to map physical pins to their physical internal device module
- * counterparts, for simplicity the design of this driver uses the logical GPIO
- * numbers instead.
- *
- * \subsection asfdoc_sam0_port_module_overview_physical Physical Connection
- *
- * \ref asfdoc_sam0_port_module_int_connections "The diagram below" shows how
- * this module is interconnected within the device.
- *
- * \anchor asfdoc_sam0_port_module_int_connections
- * \dot
- * digraph overview {
- * node [label="Port Pad" shape=square] pad;
- *
- * subgraph driver {
- * node [label="Peripheral MUX" shape=trapezium] pinmux;
- * node [label="GPIO Module" shape=ellipse] gpio;
- * node [label="Other Peripheral Modules" shape=ellipse style=filled fillcolor=lightgray] peripherals;
- * }
- *
- * pinmux -> gpio;
- * pad -> pinmux;
- * pinmux -> peripherals;
- * }
- * \enddot
- *
- *
- * \section asfdoc_sam0_port_special_considerations Special Considerations
- *
- * The SAM port pin input sampler can be disabled when the pin is configured
- * in pure output mode to save power; reading the pin state of a pin configured
- * in output-only mode will read the logical output state that was last set.
- *
- * \section asfdoc_sam0_port_extra_info Extra Information
- *
- * For extra information, see \ref asfdoc_sam0_port_extra. This includes:
- * - \ref asfdoc_sam0_port_extra_acronyms
- * - \ref asfdoc_sam0_port_extra_dependencies
- * - \ref asfdoc_sam0_port_extra_errata
- * - \ref asfdoc_sam0_port_extra_history
- *
- *
- * \section asfdoc_sam0_port_examples Examples
- *
- * For a list of examples related to this driver, see
- * \ref asfdoc_sam0_port_exqsg.
- *
- *
- * \section asfdoc_sam0_port_api_overview API Overview
- * @{
- */
-
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \name Driver Feature Definition
- * Define port features set according to different device family.
- * @{
-*/
-#if (SAML21) || (SAML22) || (SAMC20) || (SAMC21) || (SAMR30) || (SAMR34) || (SAMR35) || (WLR089) || defined(__DOXYGEN__)
-/** Event input control feature support for PORT group. */
-# define FEATURE_PORT_INPUT_EVENT
-#endif
-/*@}*/
-
-/** \name PORT Alias Macros
- * @{
- */
-
-/** Convenience definition for GPIO module group A on the device (if
- * available). */
-#if (PORT_GROUPS > 0) || defined(__DOXYGEN__)
-# define PORTA PORT->Group[0]
-#endif
-
-#if (PORT_GROUPS > 1) || defined(__DOXYGEN__)
-/** Convenience definition for GPIO module group B on the device (if
- * available). */
-# define PORTB PORT->Group[1]
-#endif
-
-#if (PORT_GROUPS > 2) || defined(__DOXYGEN__)
-/** Convenience definition for GPIO module group C on the device (if
- * available). */
-# define PORTC PORT->Group[2]
-#endif
-
-#if (PORT_GROUPS > 3) || defined(__DOXYGEN__)
-/** Convenience definition for GPIO module group D on the device (if
- * available). */
-# define PORTD PORT->Group[3]
-#endif
-
-/** @} */
-
-/**
- * \brief Port pin direction configuration enum.
- *
- * Enum for the possible pin direction settings of the port pin configuration
- * structure, to indicate the direction the pin should use.
- */
-enum port_pin_dir {
- /** The pin's input buffer should be enabled, so that the pin state can
- * be read */
- PORT_PIN_DIR_INPUT = SYSTEM_PINMUX_PIN_DIR_INPUT,
- /** The pin's output buffer should be enabled, so that the pin state can
- * be set */
- PORT_PIN_DIR_OUTPUT = SYSTEM_PINMUX_PIN_DIR_OUTPUT,
- /** The pin's output and input buffers should be enabled, so that the pin
- * state can be set and read back */
- PORT_PIN_DIR_OUTPUT_WTH_READBACK = SYSTEM_PINMUX_PIN_DIR_OUTPUT_WITH_READBACK,
-};
-
-/**
- * \brief Port pin input pull configuration enum.
- *
- * Enum for the possible pin pull settings of the port pin configuration
- * structure, to indicate the type of logic level pull the pin should use.
- */
-enum port_pin_pull {
- /** No logical pull should be applied to the pin */
- PORT_PIN_PULL_NONE = SYSTEM_PINMUX_PIN_PULL_NONE,
- /** Pin should be pulled up when idle */
- PORT_PIN_PULL_UP = SYSTEM_PINMUX_PIN_PULL_UP,
- /** Pin should be pulled down when idle */
- PORT_PIN_PULL_DOWN = SYSTEM_PINMUX_PIN_PULL_DOWN,
-};
-
-#ifdef FEATURE_PORT_INPUT_EVENT
-/**
- * \brief Port input event action.
- *
- * List of port input events action on pin.
- */
-enum port_input_event_action {
- /** Event out to pin */
- PORT_INPUT_EVENT_ACTION_OUT = 0,
- /** Set output register of pin on event */
- PORT_INPUT_EVENT_ACTION_SET,
- /** Clear output register pin on event */
- PORT_INPUT_EVENT_ACTION_CLR,
- /** Toggle output register pin on event */
- PORT_INPUT_EVENT_ACTION_TGL,
-};
-
-/**
- * \brief Port input event.
- *
- * List of port input events.
- */
-enum port_input_event{
- /** Port input event 0 */
- PORT_INPUT_EVENT_0 = 0,
- /** Port input event 1 */
- PORT_INPUT_EVENT_1 = 1,
- /** Port input event 2 */
- PORT_INPUT_EVENT_2 = 2,
- /** Port input event 3 */
- PORT_INPUT_EVENT_3 = 3,
-};
-
-/**
- * \brief Port input event configuration structure.
- *
- * Configuration structure for a port input event.
- */
-struct port_input_event_config{
- /** Port input event action */
- enum port_input_event_action action;
- /** GPIO pin */
- uint8_t gpio_pin;
-};
-#endif
-
-/**
- * \brief Port pin configuration structure.
- *
- * Configuration structure for a port pin instance. This structure should be
- * initialized by the \ref port_get_config_defaults() function before being
- * modified by the user application.
- */
-struct port_config {
- /** Port buffer input/output direction */
- enum port_pin_dir direction;
-
- /** Port pull-up/pull-down for input pins */
- enum port_pin_pull input_pull;
-
- /** Enable lowest possible powerstate on the pin
- *
- * \note All other configurations will be ignored, the pin will be disabled.
- */
- bool powersave;
-};
-
-/** \name State Reading/Writing (Physical Group Orientated)
- * @{
- */
-
-/**
- * \brief Retrieves the PORT module group instance from a given GPIO pin number.
- *
- * Retrieves the PORT module group instance associated with a given logical
- * GPIO pin number.
- *
- * \param[in] gpio_pin Index of the GPIO pin to convert
- *
- * \return Base address of the associated PORT module.
- */
-static inline PortGroup* port_get_group_from_gpio_pin(
- const uint8_t gpio_pin)
-{
- return system_pinmux_get_group_from_gpio_pin(gpio_pin);
-}
-
-/**
- * \brief Retrieves the state of a group of port pins that are configured as inputs.
- *
- * Reads the current logic level of a port module's pins and returns the
- * current levels as a bitmask.
- *
- * \param[in] port Base of the PORT module to read from
- * \param[in] mask Mask of the port pin(s) to read
- *
- * \return Status of the port pin(s) input buffers.
- */
-static inline uint32_t port_group_get_input_level(
- const PortGroup *const port,
- const uint32_t mask)
-{
- /* Sanity check arguments */
- Assert(port);
-
- return (port->IN.reg & mask);
-}
-
-/**
- * \brief Retrieves the state of a group of port pins that are configured as outputs.
- *
- * Reads the current logical output level of a port module's pins and returns
- * the current levels as a bitmask.
- *
- * \param[in] port Base of the PORT module to read from
- * \param[in] mask Mask of the port pin(s) to read
- *
- * \return Status of the port pin(s) output buffers.
- */
-static inline uint32_t port_group_get_output_level(
- const PortGroup *const port,
- const uint32_t mask)
-{
- /* Sanity check arguments */
- Assert(port);
-
- return (port->OUT.reg & mask);
-}
-
-/**
- * \brief Sets the state of a group of port pins that are configured as outputs.
- *
- * Sets the current output level of a port module's pins to a given logic
- * level.
- *
- * \param[out] port Base of the PORT module to write to
- * \param[in] mask Mask of the port pin(s) to change
- * \param[in] level_mask Mask of the port level(s) to set
- */
-static inline void port_group_set_output_level(
- PortGroup *const port,
- const uint32_t mask,
- const uint32_t level_mask)
-{
- /* Sanity check arguments */
- Assert(port);
-
- port->OUTSET.reg = (mask & level_mask);
- port->OUTCLR.reg = (mask & ~level_mask);
-}
-
-/**
- * \brief Toggles the state of a group of port pins that are configured as an outputs.
- *
- * Toggles the current output levels of a port module's pins.
- *
- * \param[out] port Base of the PORT module to write to
- * \param[in] mask Mask of the port pin(s) to toggle
- */
-static inline void port_group_toggle_output_level(
- PortGroup *const port,
- const uint32_t mask)
-{
- /* Sanity check arguments */
- Assert(port);
-
- port->OUTTGL.reg = mask;
-}
-
-/** @} */
-
-/** \name Configuration and Initialization
- * @{
- */
-
-/**
- * \brief Initializes a Port pin/group configuration structure to defaults.
- *
- * Initializes a given Port pin/group configuration structure to a set of
- * known default values. This function should be called on all new
- * instances of these configuration structures before being modified by the
- * user application.
- *
- * The default configuration is as follows:
- * \li Input mode with internal pull-up enabled
- *
- * \param[out] config Configuration structure to initialize to default values
- */
-static inline void port_get_config_defaults(
- struct port_config *const config)
-{
- /* Sanity check arguments */
- Assert(config);
-
- /* Default configuration values */
- config->direction = PORT_PIN_DIR_INPUT;
- config->input_pull = PORT_PIN_PULL_UP;
- config->powersave = false;
-}
-
-void port_pin_set_config(
- const uint8_t gpio_pin,
- const struct port_config *const config);
-
-void port_group_set_config(
- PortGroup *const port,
- const uint32_t mask,
- const struct port_config *const config);
-
-/** @} */
-
-/** \name State Reading/Writing (Logical Pin Orientated)
- * @{
- */
-
-/**
- * \brief Retrieves the state of a port pin that is configured as an input.
- *
- * Reads the current logic level of a port pin and returns the current
- * level as a Boolean value.
- *
- * \param[in] gpio_pin Index of the GPIO pin to read
- *
- * \return Status of the port pin's input buffer.
- */
-static inline bool port_pin_get_input_level(
- const uint8_t gpio_pin)
-{
- PortGroup *const port_base = port_get_group_from_gpio_pin(gpio_pin);
- uint32_t pin_mask = (1UL << (gpio_pin % 32));
-
- return (port_base->IN.reg & pin_mask);
-}
-
-/**
- * \brief Retrieves the state of a port pin that is configured as an output.
- *
- * Reads the current logical output level of a port pin and returns the current
- * level as a Boolean value.
- *
- * \param[in] gpio_pin Index of the GPIO pin to read
- *
- * \return Status of the port pin's output buffer.
- */
-static inline bool port_pin_get_output_level(
- const uint8_t gpio_pin)
-{
- PortGroup *const port_base = port_get_group_from_gpio_pin(gpio_pin);
- uint32_t pin_mask = (1UL << (gpio_pin % 32));
-
- return (port_base->OUT.reg & pin_mask);
-}
-
-/**
- * \brief Sets the state of a port pin that is configured as an output.
- *
- * Sets the current output level of a port pin to a given logic level.
- *
- * \param[in] gpio_pin Index of the GPIO pin to write to
- * \param[in] level Logical level to set the given pin to
- */
-static inline void port_pin_set_output_level(
- const uint8_t gpio_pin,
- const bool level)
-{
- PortGroup *const port_base = port_get_group_from_gpio_pin(gpio_pin);
- uint32_t pin_mask = (1UL << (gpio_pin % 32));
-
- /* Set the pin to high or low atomically based on the requested level */
- if (level) {
- port_base->OUTSET.reg = pin_mask;
- } else {
- port_base->OUTCLR.reg = pin_mask;
- }
-}
-
-/**
- * \brief Toggles the state of a port pin that is configured as an output.
- *
- * Toggles the current output level of a port pin.
- *
- * \param[in] gpio_pin Index of the GPIO pin to toggle
- */
-static inline void port_pin_toggle_output_level(
- const uint8_t gpio_pin)
-{
- PortGroup *const port_base = port_get_group_from_gpio_pin(gpio_pin);
- uint32_t pin_mask = (1UL << (gpio_pin % 32));
-
- /* Toggle pin output level */
- port_base->OUTTGL.reg = pin_mask;
-}
-
-/** @} */
-
-#ifdef FEATURE_PORT_INPUT_EVENT
-
-/** \name Port Input Event
- * @{
- */
-
-/**
- * \brief Enable the port event input.
- *
- * Enable the port event input with the given pin and event.
- *
- * \param[in] gpio_pin Index of the GPIO pin
- * \param[in] n Port input event
- *
- * \retval STATUS_ERR_INVALID_ARG Invalid parameter
- * \retval STATUS_OK Successfully
- */
-static inline enum status_code port_enable_input_event(
- const uint8_t gpio_pin,
- const enum port_input_event n)
-{
- PortGroup *const port_base = port_get_group_from_gpio_pin(gpio_pin);
- switch (n) {
- case PORT_INPUT_EVENT_0:
- port_base->EVCTRL.reg |= PORT_EVCTRL_PORTEI0;
- break;
- case PORT_INPUT_EVENT_1:
- port_base->EVCTRL.reg |= PORT_EVCTRL_PORTEI1;
- break;
- case PORT_INPUT_EVENT_2:
- port_base->EVCTRL.reg |= PORT_EVCTRL_PORTEI2;
- break;
- case PORT_INPUT_EVENT_3:
- port_base->EVCTRL.reg |= PORT_EVCTRL_PORTEI3;
- break;
- default:
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
- }
- return STATUS_OK;
-}
-
-/**
- * \brief Disable the port event input.
- *
- * Disable the port event input with the given pin and event.
- *
- * \param[in] gpio_pin Index of the GPIO pin
- * \param[in] gpio_pin Port input event
- *
- * \retval STATUS_ERR_INVALID_ARG Invalid parameter
- * \retval STATUS_OK Successfully
- */
-static inline enum status_code port_disable_input_event(
- const uint8_t gpio_pin,
- const enum port_input_event n)
-{
- PortGroup *const port_base = port_get_group_from_gpio_pin(gpio_pin);
- switch (n) {
- case PORT_INPUT_EVENT_0:
- port_base->EVCTRL.reg &= ~PORT_EVCTRL_PORTEI0;
- break;
- case PORT_INPUT_EVENT_1:
- port_base->EVCTRL.reg &= ~PORT_EVCTRL_PORTEI1;
- break;
- case PORT_INPUT_EVENT_2:
- port_base->EVCTRL.reg &= ~PORT_EVCTRL_PORTEI2;
- break;
- case PORT_INPUT_EVENT_3:
- port_base->EVCTRL.reg &= ~PORT_EVCTRL_PORTEI3;
- break;
- default:
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
- }
- return STATUS_OK;
-}
-
-/**
- * \brief Retrieve the default configuration for port input event.
- *
- * Fills a configuration structure with the default configuration for port input event:
- * - Event output to pin
- * - Event action to be executed on PIN 0
- *
- * \param[out] config Configuration structure to fill with default values
- */
-static inline void port_input_event_get_config_defaults(
- struct port_input_event_config *const config)
-{
- Assert(config);
- config->action = PORT_INPUT_EVENT_ACTION_OUT;
- config->gpio_pin = 0;
-}
-
-/**
- * \brief Configure port input event.
- *
- * Configures port input event with the given configuration settings.
- *
- * \param[in] config Port input even configuration structure containing the new config
- *
- * \retval STATUS_ERR_INVALID_ARG Invalid parameter
- * \retval STATUS_OK Successfully
- */
-
-static inline enum status_code port_input_event_set_config(
- const enum port_input_event n,
- struct port_input_event_config *const config)
-{
- Assert(config);
- PortGroup *const port_base = port_get_group_from_gpio_pin(config->gpio_pin);
- uint8_t pin_index = config->gpio_pin % 32;
- struct port_config pin_conf;
-
- port_get_config_defaults(&pin_conf);
- /* Configure the GPIO pin as outputs*/
- pin_conf.direction = PORT_PIN_DIR_OUTPUT;
- port_pin_set_config(config->gpio_pin, &pin_conf);
-
- switch (n) {
- case PORT_INPUT_EVENT_0:
- port_base->EVCTRL.reg |= PORT_EVCTRL_EVACT0(config->action)
- | PORT_EVCTRL_PID0(pin_index);
- break;
- case PORT_INPUT_EVENT_1:
- port_base->EVCTRL.reg |= PORT_EVCTRL_EVACT1(config->action)
- | PORT_EVCTRL_PID1(pin_index);
- break;
- case PORT_INPUT_EVENT_2:
- port_base->EVCTRL.reg |= PORT_EVCTRL_EVACT2(config->action)
- | PORT_EVCTRL_PID2(pin_index);
- break;
- case PORT_INPUT_EVENT_3:
- port_base->EVCTRL.reg |= PORT_EVCTRL_EVACT3(config->action)
- | PORT_EVCTRL_PID3(pin_index);
- break;
- default:
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
- }
- return STATUS_OK;
-}
-
-/** @} */
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-/**
- * \page asfdoc_sam0_port_extra Extra Information for PORT Driver
- *
- * \section asfdoc_sam0_port_extra_acronyms Acronyms
- * Below is a table listing the acronyms used in this module, along with their
- * intended meanings.
- *
- *
- *
- *
Acronym
- *
Description
- *
- *
- *
GPIO
- *
General Purpose Input/Output
- *
- *
- *
MUX
- *
Multiplexer
- *
- *
- *
- *
- * \section asfdoc_sam0_port_extra_dependencies Dependencies
- * This driver has the following dependencies:
- *
- * - \ref asfdoc_sam0_system_pinmux_group "System Pin Multiplexer Driver"
- *
- *
- * \section asfdoc_sam0_port_extra_errata Errata
- * There are no errata related to this driver.
- *
- *
- * \section asfdoc_sam0_port_extra_history Module History
- * An overview of the module history is presented in the table below, with
- * details on the enhancements and fixes made to the module since its first
- * release. The current version of this corresponds to the newest version in
- * the table.
- *
- *
- *
- *
Changelog
- *
- *
- *
Added input event feature
- *
- *
- *
Initial release
- *
- *
- */
-
-/**
- * \page asfdoc_sam0_port_exqsg Examples for PORT Driver
- *
- * This is a list of the available Quick Start guides (QSGs) and example
- * applications for \ref asfdoc_sam0_port_group. QSGs are simple examples with
- * step-by-step instructions to configure and use this driver in a selection of
- * use cases. Note that a QSG can be compiled as a standalone application or be
- * added to the user application.
- *
- * - \subpage asfdoc_sam0_port_basic_use_case
- *
- * \page asfdoc_sam0_port_document_revision_history Document Revision History
- *
- *
- *
- *
Doc. Rev.
- *
Date
- *
Comments
- *
- *
- *
42113E
- *
12/2015
- *
Added input event feature.
- * Added support for SAM L21/L22, SAM C21, SAM D09, SAMR30/R34 and SAM DA1.
- *
- *
- *
42113D
- *
12/2014
- *
Added support for SAM R21 and SAM D10/D11
- *
- *
- *
42113C
- *
01/2014
- *
Added support for SAM D21
- *
- *
- *
42113B
- *
06/2013
- *
Corrected documentation typos
- *
- *
- *
42113A
- *
06/2013
- *
Initial document release
- *
- *
- */
-
-#endif
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/port/quick_start/qs_port_basic.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/port/quick_start/qs_port_basic.h
deleted file mode 100644
index 5281e1a..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/port/quick_start/qs_port_basic.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- * \file
- *
- * \brief SAM GPIO Port Driver Quick Start
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-/**
- * \page asfdoc_sam0_port_basic_use_case Quick Start Guide for PORT - Basic
- *
- * In this use case, the PORT module is configured for:
- * \li One pin in input mode, with pull-up enabled
- * \li One pin in output mode
- *
- * This use case sets up the PORT to read the current state of a GPIO pin set as
- * an input, and mirrors the opposite logical state on a pin configured as an
- * output.
- *
- * \section asfdoc_sam0_port_basic_use_case_setup Setup
- *
- * \subsection asfdoc_sam0_port_basic_use_case_setup_prereq Prerequisites
- * There are no special setup requirements for this use-case.
- *
- * \subsection asfdoc_sam0_port_basic_use_case_setup_code Code
- * Copy-paste the following setup code to your user application:
- * \snippet qs_port_basic.c setup
- *
- * Add to user application initialization (typically the start of \c main()):
- * \snippet qs_port_basic.c setup_init
- *
- * \subsection asfdoc_sam0_port_basic_use_case_setup_flow Workflow
- * -# Create a PORT module pin configuration struct, which can be filled out to
- * adjust the configuration of a single port pin.
- * \snippet qs_port_basic.c setup_1
- * -# Initialize the pin configuration struct with the module's default values.
- * \snippet qs_port_basic.c setup_2
- * \note This should always be performed before using the configuration
- * struct to ensure that all values are initialized to known default
- * settings.
- *
- * -# Adjust the configuration struct to request an input pin.
- * \snippet qs_port_basic.c setup_3
- * -# Configure push button pin with the initialized pin configuration struct, to enable
- * the input sampler on the pin.
- * \snippet qs_port_basic.c setup_4
- * -# Adjust the configuration struct to request an output pin.
- * \snippet qs_port_basic.c setup_5
- * \note The existing configuration struct may be re-used, as long as any
- * values that have been altered from the default settings are taken
- * into account by the user application.
- *
- * -# Configure LED pin with the initialized pin configuration struct, to enable
- * the output driver on the pin.
- * \snippet qs_port_basic.c setup_6
- *
- * \section asfdoc_sam0_port_basic_use_case_use_main Use Case
- *
- * \subsection asfdoc_sam0_port_basic_use_case_code Code
- * Copy-paste the following code to your user application:
- * \snippet qs_port_basic.c main
- *
- * \subsection asfdoc_sam0_port_basic_use_case_flow Workflow
- * -# Read in the current input sampler state of push button pin, which has been
- * configured as an input in the use-case setup code.
- * \snippet qs_port_basic.c main_1
- * -# Write the inverted pin level state to LED pin, which has been configured as
- * an output in the use-case setup code.
- * \snippet qs_port_basic.c main_2
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/clock/clock.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/clock/clock.h
deleted file mode 100644
index 9abd168..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/clock/clock.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * \file
- *
- * \brief SAM Clock Driver
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef SYSTEM_CLOCK_H_INCLUDED
-#define SYSTEM_CLOCK_H_INCLUDED
-
-#include
-#include
-#include
-
-#endif /* SYSTEM_CLOCK_H_INCLUDED */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/clock.c b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/clock.c
deleted file mode 100644
index ecbf122..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/clock.c
+++ /dev/null
@@ -1,1031 +0,0 @@
-/**
- * \file
- *
- * \brief SAM D21/R21/DA/HA Clock Driver
- *
- * Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#include
-#include
-#include
-
-#ifndef SYSCTRL_FUSES_OSC32K_ADDR
-#if (SAMR21) || (SAMD) || (SAMHA1) || (SAMHA0)
-# define SYSCTRL_FUSES_OSC32K_ADDR FUSES_OSC32K_CAL_ADDR
-# define SYSCTRL_FUSES_OSC32K_Pos FUSES_OSC32K_CAL_Pos
-#elif (SAML21)
-# define SYSCTRL_FUSES_OSC32K_ADDR NVMCTRL_OTP4
-# define SYSCTRL_FUSES_OSC32K_Pos 6
-
-#else
-# define SYSCTRL_FUSES_OSC32K_ADDR SYSCTRL_FUSES_OSC32K_CAL_ADDR
-# define SYSCTRL_FUSES_OSC32K_Pos SYSCTRL_FUSES_OSC32K_CAL_Pos
-#endif
-#endif
-
-/**
- * \internal
- * \brief DFLL-specific data container.
- */
-struct _system_clock_dfll_config {
- uint32_t control;
- uint32_t val;
- uint32_t mul;
-};
-
-/**
- * \internal
- * \brief DPLL-specific data container.
- */
-struct _system_clock_dpll_config {
- uint32_t frequency;
-};
-
-
-/**
- * \internal
- * \brief XOSC-specific data container.
- */
-struct _system_clock_xosc_config {
- uint32_t frequency;
-};
-
-/**
- * \internal
- * \brief System clock module data container.
- */
-struct _system_clock_module {
- volatile struct _system_clock_dfll_config dfll;
-
-#ifdef FEATURE_SYSTEM_CLOCK_DPLL
- volatile struct _system_clock_dpll_config dpll;
-#endif
-
- volatile struct _system_clock_xosc_config xosc;
- volatile struct _system_clock_xosc_config xosc32k;
-};
-
-/**
- * \internal
- * \brief Internal module instance to cache configuration values.
- */
-static struct _system_clock_module _system_clock_inst = {
- .dfll = {
- .control = 0,
- .val = 0,
- .mul = 0,
- },
-
-#ifdef FEATURE_SYSTEM_CLOCK_DPLL
- .dpll = {
- .frequency = 0,
- },
-#endif
- .xosc = {
- .frequency = 0,
- },
- .xosc32k = {
- .frequency = 0,
- },
- };
-
-/**
- * \internal
- * \brief Wait for sync to the DFLL control registers.
- */
-static inline void _system_dfll_wait_for_sync(void)
-{
- while (!(SYSCTRL->PCLKSR.reg & SYSCTRL_PCLKSR_DFLLRDY)) {
- /* Wait for DFLL sync */
- }
-}
-
-/**
- * \internal
- * \brief Wait for sync to the OSC32K control registers.
- */
-static inline void _system_osc32k_wait_for_sync(void)
-{
- while (!(SYSCTRL->PCLKSR.reg & SYSCTRL_PCLKSR_OSC32KRDY)) {
- /* Wait for OSC32K sync */
- }
-}
-
-static inline void _system_clock_source_dfll_set_config_errata_9905(void)
-{
-
- /* Disable ONDEMAND mode while writing configurations */
- SYSCTRL->DFLLCTRL.reg = SYSCTRL_DFLLCTRL_ENABLE;
- _system_dfll_wait_for_sync();
-
- SYSCTRL->DFLLMUL.reg = _system_clock_inst.dfll.mul;
- SYSCTRL->DFLLVAL.reg = _system_clock_inst.dfll.val;
-
- /* Write full configuration to DFLL control register */
- SYSCTRL->DFLLCTRL.reg = 0;
- _system_dfll_wait_for_sync();
- SYSCTRL->DFLLCTRL.reg = _system_clock_inst.dfll.control;
-}
-
-/**
- * \brief Retrieve the frequency of a clock source.
- *
- * Determines the current operating frequency of a given clock source.
- *
- * \param[in] clock_source Clock source to get the frequency
- *
- * \returns Frequency of the given clock source, in Hz.
- */
-uint32_t system_clock_source_get_hz(
- const enum system_clock_source clock_source)
-{
- switch (clock_source) {
- case SYSTEM_CLOCK_SOURCE_XOSC:
- return _system_clock_inst.xosc.frequency;
-
- case SYSTEM_CLOCK_SOURCE_OSC8M:
- return 8000000UL >> SYSCTRL->OSC8M.bit.PRESC;
-
- case SYSTEM_CLOCK_SOURCE_OSC32K:
- return 32768UL;
-
- case SYSTEM_CLOCK_SOURCE_ULP32K:
- return 32768UL;
-
- case SYSTEM_CLOCK_SOURCE_XOSC32K:
- return _system_clock_inst.xosc32k.frequency;
-
- case SYSTEM_CLOCK_SOURCE_DFLL:
-
- /* Check if the DFLL has been configured */
- if (!(_system_clock_inst.dfll.control & SYSCTRL_DFLLCTRL_ENABLE))
- return 0;
-
- /* Make sure that the DFLL module is ready */
- _system_dfll_wait_for_sync();
-
- /* Check if operating in closed loop (USB) mode */
- switch(_system_clock_inst.dfll.control &
- (SYSCTRL_DFLLCTRL_MODE | SYSCTRL_DFLLCTRL_USBCRM)) {
- case SYSCTRL_DFLLCTRL_MODE:
- return system_gclk_chan_get_hz(SYSCTRL_GCLK_ID_DFLL48) *
- (_system_clock_inst.dfll.mul & 0xffff);
- default:
- return 48000000UL;
- }
-
-#ifdef FEATURE_SYSTEM_CLOCK_DPLL
- case SYSTEM_CLOCK_SOURCE_DPLL:
- if (!(SYSCTRL->DPLLSTATUS.reg & SYSCTRL_DPLLSTATUS_ENABLE)) {
- return 0;
- }
-
- return _system_clock_inst.dpll.frequency;
-#endif
-
- default:
- return 0;
- }
-}
-
-/**
- * \brief Configure the internal OSC8M oscillator clock source.
- *
- * Configures the 8MHz (nominal) internal RC oscillator with the given
- * configuration settings.
- *
- * \param[in] config OSC8M configuration structure containing the new config
- */
-void system_clock_source_osc8m_set_config(
- struct system_clock_source_osc8m_config *const config)
-{
- SYSCTRL_OSC8M_Type temp = SYSCTRL->OSC8M;
-
- /* Use temporary struct to reduce register access */
- temp.bit.PRESC = config->prescaler;
- temp.bit.ONDEMAND = config->on_demand;
- temp.bit.RUNSTDBY = config->run_in_standby;
-
- SYSCTRL->OSC8M = temp;
-}
-
-/**
- * \brief Configure the internal OSC32K oscillator clock source.
- *
- * Configures the 32KHz (nominal) internal RC oscillator with the given
- * configuration settings.
- *
- * \param[in] config OSC32K configuration structure containing the new config
- */
-void system_clock_source_osc32k_set_config(
- struct system_clock_source_osc32k_config *const config)
-{
- SYSCTRL_OSC32K_Type temp = SYSCTRL->OSC32K;
-
- /* Update settings via a temporary struct to reduce register access */
- temp.bit.EN1K = config->enable_1khz_output;
- temp.bit.EN32K = config->enable_32khz_output;
- temp.bit.STARTUP = config->startup_time;
- temp.bit.ONDEMAND = config->on_demand;
- temp.bit.RUNSTDBY = config->run_in_standby;
- temp.bit.WRTLOCK = config->write_once;
-
- SYSCTRL->OSC32K = temp;
-}
-
-/**
- * \brief Configure the external oscillator clock source.
- *
- * Configures the external oscillator clock source with the given configuration
- * settings.
- *
- * \param[in] config External oscillator configuration structure containing
- * the new config
- */
-void system_clock_source_xosc_set_config(
- struct system_clock_source_xosc_config *const config)
-{
- SYSCTRL_XOSC_Type temp = SYSCTRL->XOSC;
-
- temp.bit.STARTUP = config->startup_time;
-
- if (config->external_clock == SYSTEM_CLOCK_EXTERNAL_CRYSTAL) {
- temp.bit.XTALEN = 1;
- } else {
- temp.bit.XTALEN = 0;
- }
-
- temp.bit.AMPGC = config->auto_gain_control;
-
- /* Set gain */
- if (config->frequency <= 2000000) {
- temp.bit.GAIN = 0;
- } else if (config->frequency <= 4000000) {
- temp.bit.GAIN = 1;
- } else if (config->frequency <= 8000000) {
- temp.bit.GAIN = 2;
- } else if (config->frequency <= 16000000) {
- temp.bit.GAIN = 3;
- } else if (config->frequency <= 32000000) {
- temp.bit.GAIN = 4;
- }
-
- temp.bit.ONDEMAND = config->on_demand;
- temp.bit.RUNSTDBY = config->run_in_standby;
-
- /* Store XOSC frequency for internal use */
- _system_clock_inst.xosc.frequency = config->frequency;
-
- SYSCTRL->XOSC = temp;
-}
-
-/**
- * \brief Configure the XOSC32K external 32KHz oscillator clock source.
- *
- * Configures the external 32KHz oscillator clock source with the given
- * configuration settings.
- *
- * \param[in] config XOSC32K configuration structure containing the new config
- */
-void system_clock_source_xosc32k_set_config(
- struct system_clock_source_xosc32k_config *const config)
-{
- SYSCTRL_XOSC32K_Type temp = SYSCTRL->XOSC32K;
-
- temp.bit.STARTUP = config->startup_time;
-
- if (config->external_clock == SYSTEM_CLOCK_EXTERNAL_CRYSTAL) {
- temp.bit.XTALEN = 1;
- } else {
- temp.bit.XTALEN = 0;
- }
-
- temp.bit.AAMPEN = config->auto_gain_control;
- temp.bit.EN1K = config->enable_1khz_output;
- temp.bit.EN32K = config->enable_32khz_output;
-
- temp.bit.ONDEMAND = config->on_demand;
- temp.bit.RUNSTDBY = config->run_in_standby;
- temp.bit.WRTLOCK = config->write_once;
-
- /* Cache the new frequency in case the user needs to check the current
- * operating frequency later */
- _system_clock_inst.xosc32k.frequency = config->frequency;
-
- SYSCTRL->XOSC32K = temp;
-}
-
-/**
- * \brief Configure the DFLL clock source.
- *
- * Configures the Digital Frequency Locked Loop clock source with the given
- * configuration settings.
- *
- * \note The DFLL will be running when this function returns, as the DFLL module
- * needs to be enabled in order to perform the module configuration.
- *
- * \param[in] config DFLL configuration structure containing the new config
- */
-void system_clock_source_dfll_set_config(
- struct system_clock_source_dfll_config *const config)
-{
- _system_clock_inst.dfll.val =
- SYSCTRL_DFLLVAL_COARSE(config->coarse_value) |
- SYSCTRL_DFLLVAL_FINE(config->fine_value);
-
- _system_clock_inst.dfll.control =
- (uint32_t)config->wakeup_lock |
- (uint32_t)config->stable_tracking |
- (uint32_t)config->quick_lock |
- (uint32_t)config->chill_cycle |
- ((uint32_t)config->on_demand << SYSCTRL_DFLLCTRL_ONDEMAND_Pos);
-
- if (config->loop_mode == SYSTEM_CLOCK_DFLL_LOOP_MODE_CLOSED) {
-
- _system_clock_inst.dfll.mul =
- SYSCTRL_DFLLMUL_CSTEP(config->coarse_max_step) |
- SYSCTRL_DFLLMUL_FSTEP(config->fine_max_step) |
- SYSCTRL_DFLLMUL_MUL(config->multiply_factor);
-
- /* Enable the closed loop mode */
- _system_clock_inst.dfll.control |= config->loop_mode;
- }
- if (config->loop_mode == SYSTEM_CLOCK_DFLL_LOOP_MODE_USB_RECOVERY) {
-
- _system_clock_inst.dfll.mul =
- SYSCTRL_DFLLMUL_CSTEP(config->coarse_max_step) |
- SYSCTRL_DFLLMUL_FSTEP(config->fine_max_step) |
- SYSCTRL_DFLLMUL_MUL(config->multiply_factor);
-
- /* Enable the USB recovery mode */
- _system_clock_inst.dfll.control |= config->loop_mode |
- SYSCTRL_DFLLCTRL_MODE | SYSCTRL_DFLLCTRL_BPLCKC;
- }
-}
-
-#ifdef FEATURE_SYSTEM_CLOCK_DPLL
-/**
- * \brief Configure the DPLL clock source.
- *
- * Configures the Digital Phase-Locked Loop clock source with the given
- * configuration settings.
- *
- * \note The DPLL will be running when this function returns, as the DPLL module
- * needs to be enabled in order to perform the module configuration.
- *
- * \param[in] config DPLL configuration structure containing the new config
- */
-void system_clock_source_dpll_set_config(
- struct system_clock_source_dpll_config *const config)
-{
-
- uint32_t tmpldr;
- uint8_t tmpldrfrac;
- uint32_t refclk;
-
- refclk = config->reference_frequency;
-
- /* Only reference clock REF1 can be divided */
- if (config->reference_clock == SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_XOSC) {
- refclk = refclk / (2 * (config->reference_divider + 1));
- }
-
- /* Calculate LDRFRAC and LDR */
- tmpldr = (config->output_frequency << 4) / refclk;
- tmpldrfrac = tmpldr & 0x0f;
- tmpldr = (tmpldr >> 4) - 1;
-
- SYSCTRL->DPLLCTRLA.reg =
- ((uint32_t)config->on_demand << SYSCTRL_DPLLCTRLA_ONDEMAND_Pos) |
- ((uint32_t)config->run_in_standby << SYSCTRL_DPLLCTRLA_RUNSTDBY_Pos);
-
- SYSCTRL->DPLLRATIO.reg =
- SYSCTRL_DPLLRATIO_LDRFRAC(tmpldrfrac) |
- SYSCTRL_DPLLRATIO_LDR(tmpldr);
-
- SYSCTRL->DPLLCTRLB.reg =
- SYSCTRL_DPLLCTRLB_DIV(config->reference_divider) |
- ((uint32_t)config->lock_bypass << SYSCTRL_DPLLCTRLB_LBYPASS_Pos) |
- SYSCTRL_DPLLCTRLB_LTIME(config->lock_time) |
- SYSCTRL_DPLLCTRLB_REFCLK(config->reference_clock) |
- ((uint32_t)config->wake_up_fast << SYSCTRL_DPLLCTRLB_WUF_Pos) |
- ((uint32_t)config->low_power_enable << SYSCTRL_DPLLCTRLB_LPEN_Pos) |
- SYSCTRL_DPLLCTRLB_FILTER(config->filter);
-
- /*
- * Fck = Fckrx * (LDR + 1 + LDRFRAC / 16)
- */
- _system_clock_inst.dpll.frequency =
- (refclk * (((tmpldr + 1) << 4) + tmpldrfrac)) >> 4;
-}
-#endif
-
-/**
- * \brief Writes the calibration values for a given oscillator clock source.
- *
- * Writes an oscillator calibration value to the given oscillator control
- * registers. The acceptable ranges are:
- *
- * For OSC32K:
- * - 7 bits (max value 128)
- * For OSC8MHZ:
- * - 8 bits (Max value 255)
- * For OSCULP:
- * - 5 bits (Max value 32)
- *
- * \note The frequency range parameter applies only when configuring the 8MHz
- * oscillator and will be ignored for the other oscillators.
- *
- * \param[in] clock_source Clock source to calibrate
- * \param[in] calibration_value Calibration value to write
- * \param[in] freq_range Frequency range (8MHz oscillator only)
- *
- * \retval STATUS_OK The calibration value was written
- * successfully.
- * \retval STATUS_ERR_INVALID_ARG The setting is not valid for selected clock
- * source.
- */
-enum status_code system_clock_source_write_calibration(
- const enum system_clock_source clock_source,
- const uint16_t calibration_value,
- const uint8_t freq_range)
-{
- switch (clock_source) {
- case SYSTEM_CLOCK_SOURCE_OSC8M:
-
- if (calibration_value > 0xfff || freq_range > 4) {
- return STATUS_ERR_INVALID_ARG;
- }
-
- SYSCTRL->OSC8M.bit.CALIB = calibration_value;
- SYSCTRL->OSC8M.bit.FRANGE = freq_range;
- break;
-
- case SYSTEM_CLOCK_SOURCE_OSC32K:
-
- if (calibration_value > 128) {
- return STATUS_ERR_INVALID_ARG;
- }
-
- _system_osc32k_wait_for_sync();
- SYSCTRL->OSC32K.bit.CALIB = calibration_value;
- break;
-
- case SYSTEM_CLOCK_SOURCE_ULP32K:
-
- if (calibration_value > 32) {
- return STATUS_ERR_INVALID_ARG;
- }
-
- SYSCTRL->OSCULP32K.bit.CALIB = calibration_value;
- break;
-
- default:
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
- break;
- }
-
- return STATUS_OK;
-}
-
-/**
- * \brief Enables a clock source.
- *
- * Enables a clock source which has been previously configured.
- *
- * \param[in] clock_source Clock source to enable
- *
- * \retval STATUS_OK Clock source was enabled successfully and
- * is ready
- * \retval STATUS_ERR_INVALID_ARG The clock source is not available on this
- * device
- */
-enum status_code system_clock_source_enable(
- const enum system_clock_source clock_source)
-{
- switch (clock_source) {
- case SYSTEM_CLOCK_SOURCE_OSC8M:
- SYSCTRL->OSC8M.reg |= SYSCTRL_OSC8M_ENABLE;
- return STATUS_OK;
-
- case SYSTEM_CLOCK_SOURCE_OSC32K:
- SYSCTRL->OSC32K.reg |= SYSCTRL_OSC32K_ENABLE;
- break;
-
- case SYSTEM_CLOCK_SOURCE_XOSC:
- SYSCTRL->XOSC.reg |= SYSCTRL_XOSC_ENABLE;
- break;
-
- case SYSTEM_CLOCK_SOURCE_XOSC32K:
- SYSCTRL->XOSC32K.reg |= SYSCTRL_XOSC32K_ENABLE;
- break;
-
- case SYSTEM_CLOCK_SOURCE_DFLL:
- _system_clock_inst.dfll.control |= SYSCTRL_DFLLCTRL_ENABLE;
- _system_clock_source_dfll_set_config_errata_9905();
- break;
-
-#ifdef FEATURE_SYSTEM_CLOCK_DPLL
- case SYSTEM_CLOCK_SOURCE_DPLL:
- SYSCTRL->DPLLCTRLA.reg |= SYSCTRL_DPLLCTRLA_ENABLE;
- break;
-#endif
-
- case SYSTEM_CLOCK_SOURCE_ULP32K:
- /* Always enabled */
- return STATUS_OK;
-
- default:
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
- }
-
- return STATUS_OK;
-}
-
-/**
- * \brief Disables a clock source.
- *
- * Disables a clock source that was previously enabled.
- *
- * \param[in] clock_source Clock source to disable
- *
- * \retval STATUS_OK Clock source was disabled successfully
- * \retval STATUS_ERR_INVALID_ARG An invalid or unavailable clock source was
- * given
- */
-enum status_code system_clock_source_disable(
- const enum system_clock_source clock_source)
-{
- switch (clock_source) {
- case SYSTEM_CLOCK_SOURCE_OSC8M:
- SYSCTRL->OSC8M.reg &= ~SYSCTRL_OSC8M_ENABLE;
- break;
-
- case SYSTEM_CLOCK_SOURCE_OSC32K:
- SYSCTRL->OSC32K.reg &= ~SYSCTRL_OSC32K_ENABLE;
- break;
-
- case SYSTEM_CLOCK_SOURCE_XOSC:
- SYSCTRL->XOSC.reg &= ~SYSCTRL_XOSC_ENABLE;
- break;
-
- case SYSTEM_CLOCK_SOURCE_XOSC32K:
- SYSCTRL->XOSC32K.reg &= ~SYSCTRL_XOSC32K_ENABLE;
- break;
-
- case SYSTEM_CLOCK_SOURCE_DFLL:
- _system_clock_inst.dfll.control &= ~SYSCTRL_DFLLCTRL_ENABLE;
- SYSCTRL->DFLLCTRL.reg = _system_clock_inst.dfll.control;
- break;
-
-#ifdef FEATURE_SYSTEM_CLOCK_DPLL
- case SYSTEM_CLOCK_SOURCE_DPLL:
- SYSCTRL->DPLLCTRLA.reg &= ~SYSCTRL_DPLLCTRLA_ENABLE;
- break;
-#endif
-
- case SYSTEM_CLOCK_SOURCE_ULP32K:
- /* Not possible to disable */
-
- default:
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
-
- }
-
- return STATUS_OK;
-}
-
-/**
- * \brief Checks if a clock source is ready.
- *
- * Checks if a given clock source is ready to be used.
- *
- * \param[in] clock_source Clock source to check if ready
- *
- * \returns Ready state of the given clock source.
- *
- * \retval true Clock source is enabled and ready
- * \retval false Clock source is disabled or not yet ready
- */
-bool system_clock_source_is_ready(
- const enum system_clock_source clock_source)
-{
- uint32_t mask = 0;
-
- switch (clock_source) {
- case SYSTEM_CLOCK_SOURCE_OSC8M:
- mask = SYSCTRL_PCLKSR_OSC8MRDY;
- break;
-
- case SYSTEM_CLOCK_SOURCE_OSC32K:
- mask = SYSCTRL_PCLKSR_OSC32KRDY;
- break;
-
- case SYSTEM_CLOCK_SOURCE_XOSC:
- mask = SYSCTRL_PCLKSR_XOSCRDY;
- break;
-
- case SYSTEM_CLOCK_SOURCE_XOSC32K:
- mask = SYSCTRL_PCLKSR_XOSC32KRDY;
- break;
-
- case SYSTEM_CLOCK_SOURCE_DFLL:
- if (CONF_CLOCK_DFLL_LOOP_MODE == SYSTEM_CLOCK_DFLL_LOOP_MODE_CLOSED) {
- mask = (SYSCTRL_PCLKSR_DFLLRDY |
- SYSCTRL_PCLKSR_DFLLLCKF | SYSCTRL_PCLKSR_DFLLLCKC);
- } else {
- mask = SYSCTRL_PCLKSR_DFLLRDY;
- }
- break;
-
-#ifdef FEATURE_SYSTEM_CLOCK_DPLL
- case SYSTEM_CLOCK_SOURCE_DPLL:
- return ((SYSCTRL->DPLLSTATUS.reg &
- (SYSCTRL_DPLLSTATUS_CLKRDY | SYSCTRL_DPLLSTATUS_LOCK)) ==
- (SYSCTRL_DPLLSTATUS_CLKRDY | SYSCTRL_DPLLSTATUS_LOCK));
-#endif
-
- case SYSTEM_CLOCK_SOURCE_ULP32K:
- /* Not possible to disable */
- return true;
-
- default:
- return false;
- }
-
- return ((SYSCTRL->PCLKSR.reg & mask) == mask);
-}
-
-/* Include some checks for conf_clocks.h validation */
-#include "clock_config_check.h"
-
-#if !defined(__DOXYGEN__)
-/** \internal
- *
- * Configures a Generic Clock Generator with the configuration from \c conf_clocks.h.
- */
-# define _CONF_CLOCK_GCLK_CONFIG(n, unused) \
- if (CONF_CLOCK_GCLK_##n##_ENABLE == true) { \
- struct system_gclk_gen_config gclk_conf; \
- system_gclk_gen_get_config_defaults(&gclk_conf); \
- gclk_conf.source_clock = CONF_CLOCK_GCLK_##n##_CLOCK_SOURCE; \
- gclk_conf.division_factor = CONF_CLOCK_GCLK_##n##_PRESCALER; \
- gclk_conf.run_in_standby = CONF_CLOCK_GCLK_##n##_RUN_IN_STANDBY; \
- gclk_conf.output_enable = CONF_CLOCK_GCLK_##n##_OUTPUT_ENABLE; \
- system_gclk_gen_set_config(GCLK_GENERATOR_##n, &gclk_conf); \
- system_gclk_gen_enable(GCLK_GENERATOR_##n); \
- }
-
-/** \internal
- *
- * Configures a Generic Clock Generator with the configuration from \c conf_clocks.h,
- * provided that it is not the main Generic Clock Generator channel.
- */
-# define _CONF_CLOCK_GCLK_CONFIG_NONMAIN(n, unused) \
- if (n > 0) { _CONF_CLOCK_GCLK_CONFIG(n, unused); }
-#endif
-
-/** \internal
- *
- * Switch all peripheral clock to a not enabled general clock
- * to save power.
- */
-static void _switch_peripheral_gclk(void)
-{
- uint32_t gclk_id;
- struct system_gclk_chan_config gclk_conf;
-
-#if CONF_CLOCK_GCLK_1_ENABLE == false
- gclk_conf.source_generator = GCLK_GENERATOR_1;
-#elif CONF_CLOCK_GCLK_2_ENABLE == false
- gclk_conf.source_generator = GCLK_GENERATOR_2;
-#elif CONF_CLOCK_GCLK_3_ENABLE == false
- gclk_conf.source_generator = GCLK_GENERATOR_3;
-#elif CONF_CLOCK_GCLK_4_ENABLE == false
- gclk_conf.source_generator = GCLK_GENERATOR_4;
-#elif CONF_CLOCK_GCLK_5_ENABLE == false
- gclk_conf.source_generator = GCLK_GENERATOR_5;
-#elif CONF_CLOCK_GCLK_6_ENABLE == false
- gclk_conf.source_generator = GCLK_GENERATOR_6;
-#elif CONF_CLOCK_GCLK_7_ENABLE == false
- gclk_conf.source_generator = GCLK_GENERATOR_7;
-#else
- gclk_conf.source_generator = GCLK_GENERATOR_7;
-#endif
-
- for (gclk_id = 0; gclk_id < GCLK_NUM; gclk_id++) {
- system_gclk_chan_set_config(gclk_id, &gclk_conf);
- }
-}
-
-/**
- * \brief Initialize clock system based on the configuration in conf_clocks.h.
- *
- * This function will apply the settings in conf_clocks.h when run from the user
- * application. All clock sources and GCLK generators are running when this function
- * returns.
- *
- * \note OSC8M is always enabled and if user selects other clocks for GCLK generators,
- * the OSC8M default enable can be disabled after system_clock_init. Make sure the
- * clock switch successfully before disabling OSC8M.
- */
-void system_clock_init(void)
-{
- /* Various bits in the INTFLAG register can be set to one at startup.
- This will ensure that these bits are cleared */
- SYSCTRL->INTFLAG.reg = SYSCTRL_INTFLAG_BOD33RDY | SYSCTRL_INTFLAG_BOD33DET |
- SYSCTRL_INTFLAG_DFLLRDY;
-
- system_flash_set_waitstates(CONF_CLOCK_FLASH_WAIT_STATES);
-
- /* Switch all peripheral clock to a not enabled general clock to save power. */
- _switch_peripheral_gclk();
-
- /* XOSC */
-#if CONF_CLOCK_XOSC_ENABLE == true
- struct system_clock_source_xosc_config xosc_conf;
- system_clock_source_xosc_get_config_defaults(&xosc_conf);
-
- xosc_conf.external_clock = CONF_CLOCK_XOSC_EXTERNAL_CRYSTAL;
- xosc_conf.startup_time = CONF_CLOCK_XOSC_STARTUP_TIME;
- xosc_conf.frequency = CONF_CLOCK_XOSC_EXTERNAL_FREQUENCY;
- xosc_conf.run_in_standby = CONF_CLOCK_XOSC_RUN_IN_STANDBY;
-
- system_clock_source_xosc_set_config(&xosc_conf);
- system_clock_source_enable(SYSTEM_CLOCK_SOURCE_XOSC);
- while(!system_clock_source_is_ready(SYSTEM_CLOCK_SOURCE_XOSC));
- if (CONF_CLOCK_XOSC_ON_DEMAND || CONF_CLOCK_XOSC_AUTO_GAIN_CONTROL) {
- SYSCTRL->XOSC.reg |=
- (CONF_CLOCK_XOSC_ON_DEMAND << SYSCTRL_XOSC_ONDEMAND_Pos) |
- (CONF_CLOCK_XOSC_AUTO_GAIN_CONTROL << SYSCTRL_XOSC_AMPGC_Pos);
- }
-#endif
-
-
- /* XOSC32K */
-#if CONF_CLOCK_XOSC32K_ENABLE == true
- struct system_clock_source_xosc32k_config xosc32k_conf;
- system_clock_source_xosc32k_get_config_defaults(&xosc32k_conf);
-
- xosc32k_conf.frequency = 32768UL;
- xosc32k_conf.external_clock = CONF_CLOCK_XOSC32K_EXTERNAL_CRYSTAL;
- xosc32k_conf.startup_time = CONF_CLOCK_XOSC32K_STARTUP_TIME;
- xosc32k_conf.auto_gain_control = CONF_CLOCK_XOSC32K_AUTO_AMPLITUDE_CONTROL;
- xosc32k_conf.enable_1khz_output = CONF_CLOCK_XOSC32K_ENABLE_1KHZ_OUPUT;
- xosc32k_conf.enable_32khz_output = CONF_CLOCK_XOSC32K_ENABLE_32KHZ_OUTPUT;
- xosc32k_conf.on_demand = false;
- xosc32k_conf.run_in_standby = CONF_CLOCK_XOSC32K_RUN_IN_STANDBY;
-
- system_clock_source_xosc32k_set_config(&xosc32k_conf);
- system_clock_source_enable(SYSTEM_CLOCK_SOURCE_XOSC32K);
- while(!system_clock_source_is_ready(SYSTEM_CLOCK_SOURCE_XOSC32K));
- if (CONF_CLOCK_XOSC32K_ON_DEMAND) {
- SYSCTRL->XOSC32K.bit.ONDEMAND = 1;
- }
-#endif
-
-
- /* OSCK32K */
-#if CONF_CLOCK_OSC32K_ENABLE == true
- SYSCTRL->OSC32K.bit.CALIB =
- ((*(uint32_t *)SYSCTRL_FUSES_OSC32K_ADDR >>
- SYSCTRL_FUSES_OSC32K_Pos) & 0x7Ful);
-
- struct system_clock_source_osc32k_config osc32k_conf;
- system_clock_source_osc32k_get_config_defaults(&osc32k_conf);
-
- osc32k_conf.startup_time = CONF_CLOCK_OSC32K_STARTUP_TIME;
- osc32k_conf.enable_1khz_output = CONF_CLOCK_OSC32K_ENABLE_1KHZ_OUTPUT;
- osc32k_conf.enable_32khz_output = CONF_CLOCK_OSC32K_ENABLE_32KHZ_OUTPUT;
- osc32k_conf.on_demand = CONF_CLOCK_OSC32K_ON_DEMAND;
- osc32k_conf.run_in_standby = CONF_CLOCK_OSC32K_RUN_IN_STANDBY;
-
- system_clock_source_osc32k_set_config(&osc32k_conf);
- system_clock_source_enable(SYSTEM_CLOCK_SOURCE_OSC32K);
-#endif
-
-
- /* DFLL Config (Open and Closed Loop) */
-#if CONF_CLOCK_DFLL_ENABLE == true
- struct system_clock_source_dfll_config dfll_conf;
- system_clock_source_dfll_get_config_defaults(&dfll_conf);
-
- dfll_conf.loop_mode = CONF_CLOCK_DFLL_LOOP_MODE;
- dfll_conf.on_demand = false;
-
- /* Using DFLL48M COARSE CAL value from NVM Software Calibration Area Mapping
- in DFLL.COARSE helps to output a frequency close to 48 MHz.*/
-#define NVM_DFLL_COARSE_POS 58 /* DFLL48M Coarse calibration value bit position.*/
-#define NVM_DFLL_COARSE_SIZE 6 /* DFLL48M Coarse calibration value bit size.*/
-
- uint32_t coarse =( *((uint32_t *)(NVMCTRL_OTP4)
- + (NVM_DFLL_COARSE_POS / 32))
- >> (NVM_DFLL_COARSE_POS % 32))
- & ((1 << NVM_DFLL_COARSE_SIZE) - 1);
- /* In some revision chip, the coarse calibration value is not correct. */
- if (coarse == 0x3f) {
- coarse = 0x1f;
- }
- dfll_conf.coarse_value = coarse;
-
- if (CONF_CLOCK_DFLL_LOOP_MODE == SYSTEM_CLOCK_DFLL_LOOP_MODE_OPEN) {
- dfll_conf.fine_value = CONF_CLOCK_DFLL_FINE_VALUE;
- }
-
-# if CONF_CLOCK_DFLL_QUICK_LOCK == true
- dfll_conf.quick_lock = SYSTEM_CLOCK_DFLL_QUICK_LOCK_ENABLE;
-# else
- dfll_conf.quick_lock = SYSTEM_CLOCK_DFLL_QUICK_LOCK_DISABLE;
-# endif
-
-# if CONF_CLOCK_DFLL_TRACK_AFTER_FINE_LOCK == true
- dfll_conf.stable_tracking = SYSTEM_CLOCK_DFLL_STABLE_TRACKING_TRACK_AFTER_LOCK;
-# else
- dfll_conf.stable_tracking = SYSTEM_CLOCK_DFLL_STABLE_TRACKING_FIX_AFTER_LOCK;
-# endif
-
-# if CONF_CLOCK_DFLL_KEEP_LOCK_ON_WAKEUP == true
- dfll_conf.wakeup_lock = SYSTEM_CLOCK_DFLL_WAKEUP_LOCK_KEEP;
-# else
- dfll_conf.wakeup_lock = SYSTEM_CLOCK_DFLL_WAKEUP_LOCK_LOSE;
-# endif
-
-# if CONF_CLOCK_DFLL_ENABLE_CHILL_CYCLE == true
- dfll_conf.chill_cycle = SYSTEM_CLOCK_DFLL_CHILL_CYCLE_ENABLE;
-# else
- dfll_conf.chill_cycle = SYSTEM_CLOCK_DFLL_CHILL_CYCLE_DISABLE;
-# endif
-
- if (CONF_CLOCK_DFLL_LOOP_MODE == SYSTEM_CLOCK_DFLL_LOOP_MODE_CLOSED) {
- dfll_conf.multiply_factor = CONF_CLOCK_DFLL_MULTIPLY_FACTOR;
- }
-
- dfll_conf.coarse_max_step = CONF_CLOCK_DFLL_MAX_COARSE_STEP_SIZE;
- dfll_conf.fine_max_step = CONF_CLOCK_DFLL_MAX_FINE_STEP_SIZE;
-
- if (CONF_CLOCK_DFLL_LOOP_MODE == SYSTEM_CLOCK_DFLL_LOOP_MODE_USB_RECOVERY) {
- dfll_conf.fine_max_step = 10;
- dfll_conf.fine_value = 0x1ff;
- dfll_conf.quick_lock = SYSTEM_CLOCK_DFLL_QUICK_LOCK_ENABLE;
- dfll_conf.stable_tracking = SYSTEM_CLOCK_DFLL_STABLE_TRACKING_TRACK_AFTER_LOCK;
- dfll_conf.wakeup_lock = SYSTEM_CLOCK_DFLL_WAKEUP_LOCK_KEEP;
- dfll_conf.chill_cycle = SYSTEM_CLOCK_DFLL_CHILL_CYCLE_DISABLE;
-
- dfll_conf.multiply_factor = 48000;
- }
-
- system_clock_source_dfll_set_config(&dfll_conf);
-#endif
-
-
- /* OSC8M */
- struct system_clock_source_osc8m_config osc8m_conf;
- system_clock_source_osc8m_get_config_defaults(&osc8m_conf);
-
- osc8m_conf.prescaler = CONF_CLOCK_OSC8M_PRESCALER;
- osc8m_conf.on_demand = CONF_CLOCK_OSC8M_ON_DEMAND;
- osc8m_conf.run_in_standby = CONF_CLOCK_OSC8M_RUN_IN_STANDBY;
-
- system_clock_source_osc8m_set_config(&osc8m_conf);
- system_clock_source_enable(SYSTEM_CLOCK_SOURCE_OSC8M);
-
-
- /* GCLK */
-#if CONF_CLOCK_CONFIGURE_GCLK == true
- system_gclk_init();
-
- /* Configure all GCLK generators except for the main generator, which
- * is configured later after all other clock systems are set up */
- MREPEAT(GCLK_GEN_NUM, _CONF_CLOCK_GCLK_CONFIG_NONMAIN, ~);
-
-# if CONF_CLOCK_DFLL_ENABLE == true
- /* Enable DFLL reference clock if in closed loop mode */
- if (CONF_CLOCK_DFLL_LOOP_MODE == SYSTEM_CLOCK_DFLL_LOOP_MODE_CLOSED) {
- struct system_gclk_chan_config dfll_gclk_chan_conf;
-
- system_gclk_chan_get_config_defaults(&dfll_gclk_chan_conf);
- dfll_gclk_chan_conf.source_generator = CONF_CLOCK_DFLL_SOURCE_GCLK_GENERATOR;
- system_gclk_chan_set_config(SYSCTRL_GCLK_ID_DFLL48, &dfll_gclk_chan_conf);
- system_gclk_chan_enable(SYSCTRL_GCLK_ID_DFLL48);
- }
-# endif
-
-# if CONF_CLOCK_DPLL_ENABLE == true
- /* Enable DPLL internal lock timer and reference clock */
- struct system_gclk_chan_config dpll_gclk_chan_conf;
- system_gclk_chan_get_config_defaults(&dpll_gclk_chan_conf);
- if (CONF_CLOCK_DPLL_LOCK_TIME != SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_DEFAULT) {
- dpll_gclk_chan_conf.source_generator = CONF_CLOCK_DPLL_LOCK_GCLK_GENERATOR;
- system_gclk_chan_set_config(SYSCTRL_GCLK_ID_FDPLL32K, &dpll_gclk_chan_conf);
- system_gclk_chan_enable(SYSCTRL_GCLK_ID_FDPLL32K);
- }
-
- if (CONF_CLOCK_DPLL_REFERENCE_CLOCK == SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_GCLK) {
- dpll_gclk_chan_conf.source_generator = CONF_CLOCK_DPLL_REFERENCE_GCLK_GENERATOR;
- system_gclk_chan_set_config(SYSCTRL_GCLK_ID_FDPLL, &dpll_gclk_chan_conf);
- system_gclk_chan_enable(SYSCTRL_GCLK_ID_FDPLL);
- }
-# endif
-#endif
-
-
- /* DFLL Enable (Open and Closed Loop) */
-#if CONF_CLOCK_DFLL_ENABLE == true
- system_clock_source_enable(SYSTEM_CLOCK_SOURCE_DFLL);
- while(!system_clock_source_is_ready(SYSTEM_CLOCK_SOURCE_DFLL));
- if (CONF_CLOCK_DFLL_ON_DEMAND) {
- SYSCTRL->DFLLCTRL.bit.ONDEMAND = 1;
- }
-#endif
-
- /* DPLL */
-#ifdef FEATURE_SYSTEM_CLOCK_DPLL
-# if (CONF_CLOCK_DPLL_ENABLE == true)
-
- /* Enable DPLL reference clock */
- if (CONF_CLOCK_DPLL_REFERENCE_CLOCK == SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_XOSC32K) {
- /* XOSC32K should have been enabled for DPLL_REF0 */
- Assert(CONF_CLOCK_XOSC32K_ENABLE);
- } else if (CONF_CLOCK_DPLL_REFERENCE_CLOCK == SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_XOSC) {
- /* XOSC should have been enabled for DPLL_REF1 */
- Assert(CONF_CLOCK_XOSC_ENABLE);
- }
- else if (CONF_CLOCK_DPLL_REFERENCE_CLOCK == SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_GCLK) {
- /* GCLK should have been enabled */
- Assert(CONF_CLOCK_CONFIGURE_GCLK);
- }
- else {
- Assert(false);
- }
-
- struct system_clock_source_dpll_config dpll_config;
- system_clock_source_dpll_get_config_defaults(&dpll_config);
-
- dpll_config.on_demand = false;
- dpll_config.run_in_standby = CONF_CLOCK_DPLL_RUN_IN_STANDBY;
- dpll_config.lock_bypass = CONF_CLOCK_DPLL_LOCK_BYPASS;
- dpll_config.wake_up_fast = CONF_CLOCK_DPLL_WAKE_UP_FAST;
- dpll_config.low_power_enable = CONF_CLOCK_DPLL_LOW_POWER_ENABLE;
-
- dpll_config.filter = CONF_CLOCK_DPLL_FILTER;
- dpll_config.lock_time = CONF_CLOCK_DPLL_LOCK_TIME;
-
- dpll_config.reference_clock = CONF_CLOCK_DPLL_REFERENCE_CLOCK;
- dpll_config.reference_frequency = CONF_CLOCK_DPLL_REFERENCE_FREQUENCY;
- dpll_config.reference_divider = CONF_CLOCK_DPLL_REFERENCE_DIVIDER;
- dpll_config.output_frequency = CONF_CLOCK_DPLL_OUTPUT_FREQUENCY;
-
- system_clock_source_dpll_set_config(&dpll_config);
- system_clock_source_enable(SYSTEM_CLOCK_SOURCE_DPLL);
- while(!system_clock_source_is_ready(SYSTEM_CLOCK_SOURCE_DPLL));
- if (CONF_CLOCK_DPLL_ON_DEMAND) {
- SYSCTRL->DPLLCTRLA.bit.ONDEMAND = 1;
- }
-
-# endif
-#endif
-
- /* CPU and BUS clocks */
- system_cpu_clock_set_divider(CONF_CLOCK_CPU_DIVIDER);
-
- system_apb_clock_set_divider(SYSTEM_CLOCK_APB_APBA, CONF_CLOCK_APBA_DIVIDER);
- system_apb_clock_set_divider(SYSTEM_CLOCK_APB_APBB, CONF_CLOCK_APBB_DIVIDER);
- system_apb_clock_set_divider(SYSTEM_CLOCK_APB_APBC, CONF_CLOCK_APBC_DIVIDER);
-
- /* GCLK 0 */
-#if CONF_CLOCK_CONFIGURE_GCLK == true
- /* Configure the main GCLK last as it might depend on other generators */
- _CONF_CLOCK_GCLK_CONFIG(0, ~);
-#endif
-}
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/clock_config_check.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/clock_config_check.h
deleted file mode 100644
index a18e31b..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/clock_config_check.h
+++ /dev/null
@@ -1,444 +0,0 @@
-/**
- * \file
- *
- * \brief SAM D21/R21/DA/HA Clock Driver
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef CLOCK_CONFIG_CHECK_H
-# define CLOCK_CONFIG_CHECK_H
-
-#if !defined(CONF_CLOCK_FLASH_WAIT_STATES)
-# error CONF_CLOCK_FLASH_WAIT_STATES not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_CPU_DIVIDER)
-# error CONF_CLOCK_CPU_DIVIDER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_APBA_DIVIDER)
-# error CONF_CLOCK_APBA_DIVIDER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_APBB_DIVIDER)
-# error CONF_CLOCK_APBB_DIVIDER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_APBC_DIVIDER)
-# error CONF_CLOCK_APBC_DIVIDER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_OSC8M_PRESCALER)
-# error CONF_CLOCK_OSC8M_PRESCALER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_OSC8M_ON_DEMAND)
-# error CONF_CLOCK_OSC8M_ON_DEMAND not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_OSC8M_RUN_IN_STANDBY)
-# error CONF_CLOCK_OSC8M_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC_ENABLE)
-# error CONF_CLOCK_XOSC_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC_EXTERNAL_CRYSTAL)
-# error CONF_CLOCK_XOSC_EXTERNAL_CRYSTAL not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC_EXTERNAL_FREQUENCY)
-# error CONF_CLOCK_XOSC_EXTERNAL_FREQUENCY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC_STARTUP_TIME)
-# error CONF_CLOCK_XOSC_STARTUP_TIME not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC_AUTO_GAIN_CONTROL)
-# error CONF_CLOCK_XOSC_AUTO_GAIN_CONTROL not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC_ON_DEMAND)
-# error CONF_CLOCK_XOSC_ON_DEMAND not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC_RUN_IN_STANDBY)
-# error CONF_CLOCK_XOSC_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC32K_ENABLE)
-# error CONF_CLOCK_XOSC32K_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC32K_EXTERNAL_CRYSTAL)
-# error CONF_CLOCK_XOSC32K_EXTERNAL_CRYSTAL not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC32K_STARTUP_TIME)
-# error CONF_CLOCK_XOSC32K_STARTUP_TIME not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC32K_AUTO_AMPLITUDE_CONTROL)
-# error CONF_CLOCK_XOSC32K_AUTO_AMPLITUDE_CONTROL not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC32K_ENABLE_1KHZ_OUPUT)
-# error CONF_CLOCK_XOSC32K_ENABLE_1KHZ_OUPUT not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC32K_ENABLE_32KHZ_OUTPUT)
-# error CONF_CLOCK_XOSC32K_ENABLE_32KHZ_OUTPUT not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC32K_ON_DEMAND)
-# error CONF_CLOCK_XOSC32K_ON_DEMAND not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC32K_RUN_IN_STANDBY)
-# error CONF_CLOCK_XOSC32K_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_OSC32K_ENABLE)
-# error CONF_CLOCK_OSC32K_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_OSC32K_STARTUP_TIME)
-# error CONF_CLOCK_OSC32K_STARTUP_TIME not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_OSC32K_ENABLE_1KHZ_OUTPUT)
-# error CONF_CLOCK_OSC32K_ENABLE_1KHZ_OUTPUT not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_OSC32K_ENABLE_32KHZ_OUTPUT)
-# error CONF_CLOCK_OSC32K_ENABLE_32KHZ_OUTPUT not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_OSC32K_ON_DEMAND)
-# error CONF_CLOCK_OSC32K_ON_DEMAND not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_OSC32K_RUN_IN_STANDBY)
-# error CONF_CLOCK_OSC32K_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_ENABLE)
-# error CONF_CLOCK_DFLL_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_LOOP_MODE)
-# error CONF_CLOCK_DFLL_LOOP_MODE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_ON_DEMAND)
-# error CONF_CLOCK_DFLL_ON_DEMAND not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_FINE_VALUE)
-# error CONF_CLOCK_DFLL_FINE_VALUE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_SOURCE_GCLK_GENERATOR)
-# error CONF_CLOCK_DFLL_SOURCE_GCLK_GENERATOR not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_MULTIPLY_FACTOR)
-# error CONF_CLOCK_DFLL_MULTIPLY_FACTOR not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_QUICK_LOCK)
-# error CONF_CLOCK_DFLL_QUICK_LOCK not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_TRACK_AFTER_FINE_LOCK)
-# error CONF_CLOCK_DFLL_TRACK_AFTER_FINE_LOCK not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_KEEP_LOCK_ON_WAKEUP)
-# error CONF_CLOCK_DFLL_KEEP_LOCK_ON_WAKEUP not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_ENABLE_CHILL_CYCLE)
-# error CONF_CLOCK_DFLL_ENABLE_CHILL_CYCLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_MAX_COARSE_STEP_SIZE)
-# error CONF_CLOCK_DFLL_MAX_COARSE_STEP_SIZE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_MAX_FINE_STEP_SIZE)
-# error CONF_CLOCK_DFLL_MAX_FINE_STEP_SIZE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_ENABLE)
-# error CONF_CLOCK_DPLL_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_ON_DEMAND)
-# error CONF_CLOCK_DPLL_ON_DEMAND not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_RUN_IN_STANDBY)
-# error CONF_CLOCK_DPLL_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_LOCK_BYPASS)
-# error CONF_CLOCK_DPLL_LOCK_BYPASS not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_WAKE_UP_FAST)
-# error CONF_CLOCK_DPLL_WAKE_UP_FAST not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_LOW_POWER_ENABLE)
-# error CONF_CLOCK_DPLL_LOW_POWER_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_LOCK_TIME)
-# error CONF_CLOCK_DPLL_LOCK_TIME not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_REFERENCE_CLOCK)
-# error CONF_CLOCK_DPLL_REFERENCE_CLOCK not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_FILTER)
-# error CONF_CLOCK_DPLL_FILTER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_REFERENCE_FREQUENCY)
-# error CONF_CLOCK_DPLL_REFERENCE_FREQUENCY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_REFERENCE_DIVIDER)
-# error CONF_CLOCK_DPLL_REFERENCE_DIVIDER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_OUTPUT_FREQUENCY)
-# error CONF_CLOCK_DPLL_OUTPUT_FREQUENCY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_REFERENCE_GCLK_GENERATOR)
-# error CONF_CLOCK_DPLL_REFERENCE_GCLK_GENERATOR not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_LOCK_GCLK_GENERATOR)
-# error CONF_CLOCK_DPLL_LOCK_GCLK_GENERATOR not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_CONFIGURE_GCLK)
-# error CONF_CLOCK_CONFIGURE_GCLK not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_0_ENABLE)
-# error CONF_CLOCK_GCLK_0_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_0_RUN_IN_STANDBY)
-# error CONF_CLOCK_GCLK_0_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_0_CLOCK_SOURCE)
-# error CONF_CLOCK_GCLK_0_CLOCK_SOURCE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_0_PRESCALER)
-# error CONF_CLOCK_GCLK_0_PRESCALER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_0_OUTPUT_ENABLE)
-# error CONF_CLOCK_GCLK_0_OUTPUT_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_1_ENABLE)
-# error CONF_CLOCK_GCLK_1_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_1_RUN_IN_STANDBY)
-# error CONF_CLOCK_GCLK_1_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_1_CLOCK_SOURCE)
-# error CONF_CLOCK_GCLK_1_CLOCK_SOURCE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_1_PRESCALER)
-# error CONF_CLOCK_GCLK_1_PRESCALER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_1_OUTPUT_ENABLE)
-# error CONF_CLOCK_GCLK_1_OUTPUT_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_2_ENABLE)
-# error CONF_CLOCK_GCLK_2_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_2_RUN_IN_STANDBY)
-# error CONF_CLOCK_GCLK_2_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_2_CLOCK_SOURCE)
-# error CONF_CLOCK_GCLK_2_CLOCK_SOURCE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_2_PRESCALER)
-# error CONF_CLOCK_GCLK_2_PRESCALER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_2_OUTPUT_ENABLE)
-# error CONF_CLOCK_GCLK_2_OUTPUT_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_3_ENABLE)
-# error CONF_CLOCK_GCLK_3_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_3_RUN_IN_STANDBY)
-# error CONF_CLOCK_GCLK_3_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_3_CLOCK_SOURCE)
-# error CONF_CLOCK_GCLK_3_CLOCK_SOURCE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_3_PRESCALER)
-# error CONF_CLOCK_GCLK_3_PRESCALER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_3_OUTPUT_ENABLE)
-# error CONF_CLOCK_GCLK_3_OUTPUT_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_4_ENABLE)
-# error CONF_CLOCK_GCLK_4_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_4_RUN_IN_STANDBY)
-# error CONF_CLOCK_GCLK_4_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_4_CLOCK_SOURCE)
-# error CONF_CLOCK_GCLK_4_CLOCK_SOURCE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_4_PRESCALER)
-# error CONF_CLOCK_GCLK_4_PRESCALER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_4_OUTPUT_ENABLE)
-# error CONF_CLOCK_GCLK_4_OUTPUT_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_5_ENABLE)
-# error CONF_CLOCK_GCLK_5_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_5_RUN_IN_STANDBY)
-# error CONF_CLOCK_GCLK_5_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_5_CLOCK_SOURCE)
-# error CONF_CLOCK_GCLK_5_CLOCK_SOURCE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_5_PRESCALER)
-# error CONF_CLOCK_GCLK_5_PRESCALER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_5_OUTPUT_ENABLE)
-# error CONF_CLOCK_GCLK_5_OUTPUT_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_6_ENABLE)
-# error CONF_CLOCK_GCLK_6_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_6_RUN_IN_STANDBY)
-# error CONF_CLOCK_GCLK_6_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_6_CLOCK_SOURCE)
-# error CONF_CLOCK_GCLK_6_CLOCK_SOURCE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_6_PRESCALER)
-# error CONF_CLOCK_GCLK_6_PRESCALER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_6_OUTPUT_ENABLE)
-# error CONF_CLOCK_GCLK_6_OUTPUT_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_7_ENABLE)
-# error CONF_CLOCK_GCLK_7_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_7_RUN_IN_STANDBY)
-# error CONF_CLOCK_GCLK_7_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_7_CLOCK_SOURCE)
-# error CONF_CLOCK_GCLK_7_CLOCK_SOURCE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_7_PRESCALER)
-# error CONF_CLOCK_GCLK_7_PRESCALER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_7_OUTPUT_ENABLE)
-# error CONF_CLOCK_GCLK_7_OUTPUT_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_8_ENABLE)
-# error CONF_CLOCK_GCLK_8_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_8_RUN_IN_STANDBY)
-# error CONF_CLOCK_GCLK_8_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_8_CLOCK_SOURCE)
-# error CONF_CLOCK_GCLK_8_CLOCK_SOURCE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_8_PRESCALER)
-# error CONF_CLOCK_GCLK_8_PRESCALER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_8_OUTPUT_ENABLE)
-# error CONF_CLOCK_GCLK_8_OUTPUT_ENABLE not defined in conf_clocks.h
-#endif
-
-#endif /* CLOCK_CONFIG_CHECK_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/clock_feature.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/clock_feature.h
deleted file mode 100644
index 425581d..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/clock_feature.h
+++ /dev/null
@@ -1,1483 +0,0 @@
-/**
- * \file
- *
- * \brief SAM Clock Driver
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef SYSTEM_CLOCK_FEATURE_H_INCLUDED
-#define SYSTEM_CLOCK_FEATURE_H_INCLUDED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \defgroup asfdoc_sam0_system_clock_group SAM System Clock Management (SYSTEM CLOCK) Driver
- *
- * This driver for Atmel® | SMART ARM®-based microcontrollers provides an interface for the configuration
- * and management of the device's clocking related functions. This includes
- * the various clock sources, bus clocks, and generic clocks within the device,
- * with functions to manage the enabling, disabling, source selection, and
- * prescaling of clocks to various internal peripherals.
- *
- * The following peripherals are used by this module:
- *
- * - GCLK (Generic Clock Management)
- * - PM (Power Management)
- * - SYSCTRL (Clock Source Control)
- *
- * The following devices can use this module:
- * - Atmel | SMART SAM D20/D21
- * - Atmel | SMART SAM R21
- * - Atmel | SMART SAM D09/D10/D11
- * - Atmel | SMART SAM DA1
- * - Atmel | SMART SAM HA1
- *
- * The outline of this documentation is as follows:
- * - \ref asfdoc_sam0_system_clock_prerequisites
- * - \ref asfdoc_sam0_system_clock_module_overview
- * - \ref asfdoc_sam0_system_clock_special_considerations
- * - \ref asfdoc_sam0_system_clock_extra_info
- * - \ref asfdoc_sam0_system_clock_examples
- * - \ref asfdoc_sam0_system_clock_api_overview
- *
- *
- * \section asfdoc_sam0_system_clock_prerequisites Prerequisites
- *
- * There are no prerequisites for this module.
- *
- *
- * \section asfdoc_sam0_system_clock_module_overview Module Overview
- * The SAM devices contain a sophisticated clocking system, which is designed
- * to give the maximum flexibility to the user application. This system allows
- * a system designer to tune the performance and power consumption of the device
- * in a dynamic manner, to achieve the best trade-off between the two for a
- * particular application.
- *
- * This driver provides a set of functions for the configuration and management
- * of the various clock related functionality within the device.
- *
- * \subsection asfdoc_sam0_system_clock_module_features Driver Feature Macro Definition
- *
- *
- *
Driver Feature Macro
- *
Supported devices
- *
- *
- *
FEATURE_SYSTEM_CLOCK_DPLL
- *
SAM D21, SAM R21, SAM D10, SAM D11, SAM DA1
- *
- *
- * \note The specific features are only available in the driver when the
- * selected device supports those features.
- *
- * \subsection asfdoc_sam0_system_clock_module_overview_clock_sources Clock Sources
- * The SAM devices have a number of master clock source modules, each of
- * which being capable of producing a stabilized output frequency, which can then
- * be fed into the various peripherals and modules within the device.
- *
- * Possible clock source modules include internal R/C oscillators, internal
- * DFLL modules, as well as external crystal oscillators and/or clock inputs.
- *
- * \subsection asfdoc_sam0_system_clock_module_overview_cpu_clock CPU / Bus Clocks
- * The CPU and AHB/APBx buses are clocked by the same physical clock source
- * (referred in this module as the Main Clock), however the APBx buses may
- * have additional prescaler division ratios set to give each peripheral bus a
- * different clock speed.
- *
- * The general main clock tree for the CPU and associated buses is shown in
- * \ref asfdoc_sam0_system_clock_module_clock_tree "the figure below".
- *
- * \anchor asfdoc_sam0_system_clock_module_clock_tree
- * \dot
- * digraph overview {
- * rankdir=LR;
- * clk_src [label="Clock Sources", shape=none, height=0];
- * node [label="CPU Bus" shape=ellipse] cpu_bus;
- * node [label="AHB Bus" shape=ellipse] ahb_bus;
- * node [label="APBA Bus" shape=ellipse] apb_a_bus;
- * node [label="APBB Bus" shape=ellipse] apb_b_bus;
- * node [label="APBC Bus" shape=ellipse] apb_c_bus;
- * node [label="Main Bus\nPrescaler" shape=square] main_prescaler;
- * node [label="APBA Bus\nPrescaler" shape=square] apb_a_prescaler;
- * node [label="APBB Bus\nPrescaler" shape=square] apb_b_prescaler;
- * node [label="APBC Bus\nPrescaler" shape=square] apb_c_prescaler;
- * node [label="", shape=polygon, sides=4, distortion=0.6, orientation=90, style=filled, fillcolor=black, height=0.9, width=0.2] main_clock_mux;
- *
- * clk_src -> main_clock_mux;
- * main_clock_mux -> main_prescaler;
- * main_prescaler -> cpu_bus;
- * main_prescaler -> ahb_bus;
- * main_prescaler -> apb_a_prescaler;
- * main_prescaler -> apb_b_prescaler;
- * main_prescaler -> apb_c_prescaler;
- * apb_a_prescaler -> apb_a_bus;
- * apb_b_prescaler -> apb_b_bus;
- * apb_c_prescaler -> apb_c_bus;
- * }
- * \enddot
- *
- * \subsection asfdoc_sam0_system_clock_module_overview_clock_masking Clock Masking
- * To save power, the input clock to one or more peripherals on the AHB and APBx
- * buses can be masked away - when masked, no clock is passed into the module.
- * Disabling of clocks of unused modules will prevent all access to the masked
- * module, but will reduce the overall device power consumption.
- *
- * \subsection asfdoc_sam0_system_clock_module_overview_gclk Generic Clocks
- * Within the SAM devices there are a number of Generic Clocks; these are used to
- * provide clocks to the various peripheral clock domains in the device in a
- * standardized manner. One or more master source clocks can be selected as the
- * input clock to a Generic Clock Generator, which can prescale down the input
- * frequency to a slower rate for use in a peripheral.
- *
- * Additionally, a number of individually selectable Generic Clock Channels are
- * provided, which multiplex and gate the various generator outputs for one or
- * more peripherals within the device. This setup allows for a single common
- * generator to feed one or more channels, which can then be enabled or disabled
- * individually as required.
- *
- * \anchor asfdoc_sam0_system_clock_module_chain_overview
- * \dot
- * digraph overview {
- * rankdir=LR;
- * node [label="Clock\nSource a" shape=square] system_clock_source;
- * node [label="Generator 1" shape=square] clock_gen;
- * node [label="Channel x" shape=square] clock_chan0;
- * node [label="Channel y" shape=square] clock_chan1;
- * node [label="Peripheral x" shape=ellipse style=filled fillcolor=lightgray] peripheral0;
- * node [label="Peripheral y" shape=ellipse style=filled fillcolor=lightgray] peripheral1;
- *
- * system_clock_source -> clock_gen;
- * clock_gen -> clock_chan0;
- * clock_chan0 -> peripheral0;
- * clock_gen -> clock_chan1;
- * clock_chan1 -> peripheral1;
- * }
- * \enddot
- *
- * \subsubsection asfdoc_sam0_system_clock_module_chain_example Clock Chain Example
- * An example setup of a complete clock chain within the device is shown in
- * \ref asfdoc_sam0_system_clock_module_chain_example_fig "the figure below".
- *
- * \anchor asfdoc_sam0_system_clock_module_chain_example_fig
- * \dot
- * digraph overview {
- * rankdir=LR;
- * node [label="External\nOscillator" shape=square] system_clock_source0;
- * node [label="Generator 0" shape=square] clock_gen0;
- * node [label="Channel x" shape=square] clock_chan0;
- * node [label="Core CPU" shape=ellipse style=filled fillcolor=lightgray] peripheral0;
- *
- * system_clock_source0 -> clock_gen0;
- * clock_gen0 -> clock_chan0;
- * clock_chan0 -> peripheral0;
- * node [label="8MHz R/C\nOscillator (OSC8M)" shape=square fillcolor=white] system_clock_source1;
- * node [label="Generator 1" shape=square] clock_gen1;
- * node [label="Channel y" shape=square] clock_chan1;
- * node [label="Channel z" shape=square] clock_chan2;
- * node [label="SERCOM\nModule" shape=ellipse style=filled fillcolor=lightgray] peripheral1;
- * node [label="Timer\nModule" shape=ellipse style=filled fillcolor=lightgray] peripheral2;
- *
- * system_clock_source1 -> clock_gen1;
- * clock_gen1 -> clock_chan1;
- * clock_gen1 -> clock_chan2;
- * clock_chan1 -> peripheral1;
- * clock_chan2 -> peripheral2;
- * }
- * \enddot
- *
- * \subsubsection asfdoc_sam0_system_clock_module_overview_gclk_generators Generic Clock Generators
- * Each Generic Clock generator within the device can source its input clock
- * from one of the provided Source Clocks, and prescale the output for one or
- * more Generic Clock Channels in a one-to-many relationship. The generators
- * thus allow for several clocks to be generated of different frequencies,
- * power usages, and accuracies, which can be turned on and off individually to
- * disable the clocks to multiple peripherals as a group.
- *
- * \subsubsection asfdoc_sam0_system_clock_module_overview_gclk_channels Generic Clock Channels
- * To connect a Generic Clock Generator to a peripheral within the
- * device, a Generic Clock Channel is used. Each peripheral or
- * peripheral group has an associated Generic Clock Channel, which serves as the
- * clock input for the peripheral(s). To supply a clock to the peripheral
- * module(s), the associated channel must be connected to a running Generic
- * Clock Generator and the channel enabled.
- *
- * \section asfdoc_sam0_system_clock_special_considerations Special Considerations
- *
- * There are no special considerations for this module.
- *
- *
- * \section asfdoc_sam0_system_clock_extra_info Extra Information
- *
- * For extra information, see \ref asfdoc_sam0_system_clock_extra. This includes:
- * - \ref asfdoc_sam0_system_clock_extra_acronyms
- * - \ref asfdoc_sam0_system_clock_extra_dependencies
- * - \ref asfdoc_sam0_system_clock_extra_errata
- * - \ref asfdoc_sam0_system_clock_extra_history
- *
- *
- * \section asfdoc_sam0_system_clock_examples Examples
- *
- * For a list of examples related to this driver, see
- * \ref asfdoc_sam0_system_clock_exqsg.
- *
- *
- * \section asfdoc_sam0_system_clock_api_overview API Overview
- * @{
- */
-
-#include
-#include
-
-/**
- * \name Driver Feature Definition
- * Define system clock features set according to different device family.
- * @{
- */
-#if (SAMD21) || (SAMR21) || (SAMD11) || (SAMD10) || (SAMDA1) || (SAMHA1) || (SAMHA0) || defined(__DOXYGEN__)
-/** Digital Phase Locked Loop (DPLL) feature support. */
-# define FEATURE_SYSTEM_CLOCK_DPLL
-#endif
-/*@}*/
-
-/**
- * \brief Available start-up times for the XOSC32K.
- *
- * Available external 32KHz oscillator start-up times, as a number of external
- * clock cycles.
- */
-enum system_xosc32k_startup {
- /** Wait zero clock cycles until the clock source is considered stable */
- SYSTEM_XOSC32K_STARTUP_0,
- /** Wait 32 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC32K_STARTUP_32,
- /** Wait 2048 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC32K_STARTUP_2048,
- /** Wait 4096 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC32K_STARTUP_4096,
- /** Wait 16384 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC32K_STARTUP_16384,
- /** Wait 32768 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC32K_STARTUP_32768,
- /** Wait 65536 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC32K_STARTUP_65536,
- /** Wait 131072 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC32K_STARTUP_131072,
-};
-
-/**
- * \brief Available start-up times for the XOSC.
- *
- * Available external oscillator start-up times, as a number of external clock
- * cycles.
- */
-enum system_xosc_startup {
- /** Wait one clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_1,
- /** Wait two clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_2,
- /** Wait four clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_4,
- /** Wait eight clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_8,
- /** Wait 16 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_16,
- /** Wait 32 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_32,
- /** Wait 64 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_64,
- /** Wait 128 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_128,
- /** Wait 256 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_256,
- /** Wait 512 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_512,
- /** Wait 1024 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_1024,
- /** Wait 2048 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_2048,
- /** Wait 4096 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_4096,
- /** Wait 8192 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_8192,
- /** Wait 16384 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_16384,
- /** Wait 32768 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_32768,
-};
-
-/**
- * \brief Available start-up times for the OSC32K.
- *
- * Available internal 32KHz oscillator start-up times, as a number of internal
- * OSC32K clock cycles.
- */
-enum system_osc32k_startup {
- /** Wait three clock cycles until the clock source is considered stable */
- SYSTEM_OSC32K_STARTUP_3,
- /** Wait four clock cycles until the clock source is considered stable */
- SYSTEM_OSC32K_STARTUP_4,
- /** Wait six clock cycles until the clock source is considered stable */
- SYSTEM_OSC32K_STARTUP_6,
- /** Wait ten clock cycles until the clock source is considered stable */
- SYSTEM_OSC32K_STARTUP_10,
- /** Wait 18 clock cycles until the clock source is considered stable */
- SYSTEM_OSC32K_STARTUP_18,
- /** Wait 34 clock cycles until the clock source is considered stable */
- SYSTEM_OSC32K_STARTUP_34,
- /** Wait 66 clock cycles until the clock source is considered stable */
- SYSTEM_OSC32K_STARTUP_66,
- /** Wait 130 clock cycles until the clock source is considered stable */
- SYSTEM_OSC32K_STARTUP_130,
-};
-
-/**
- * \brief Division prescalers for the internal 8MHz system clock.
- *
- * Available prescalers for the internal 8MHz (nominal) system clock.
- */
-enum system_osc8m_div {
- /** Do not divide the 8MHz RC oscillator output */
- SYSTEM_OSC8M_DIV_1,
- /** Divide the 8MHz RC oscillator output by two */
- SYSTEM_OSC8M_DIV_2,
- /** Divide the 8MHz RC oscillator output by four */
- SYSTEM_OSC8M_DIV_4,
- /** Divide the 8MHz RC oscillator output by eight */
- SYSTEM_OSC8M_DIV_8,
-};
-
-/**
- * \brief Frequency range for the internal 8MHz RC oscillator.
- *
- * Internal 8MHz RC oscillator frequency range setting.
- */
-enum system_osc8m_frequency_range {
- /** Frequency range 4MHz to 6MHz */
- SYSTEM_OSC8M_FREQUENCY_RANGE_4_TO_6,
- /** Frequency range 6MHz to 8MHz */
- SYSTEM_OSC8M_FREQUENCY_RANGE_6_TO_8,
- /** Frequency range 8MHz to 11MHz */
- SYSTEM_OSC8M_FREQUENCY_RANGE_8_TO_11,
- /** Frequency range 11MHz to 15MHz */
- SYSTEM_OSC8M_FREQUENCY_RANGE_11_TO_15,
-};
-
-/**
- * \brief Main CPU and APB/AHB bus clock source prescaler values.
- *
- * Available division ratios for the CPU and APB/AHB bus clocks.
- */
-enum system_main_clock_div {
- /** Divide Main clock by one */
- SYSTEM_MAIN_CLOCK_DIV_1,
- /** Divide Main clock by two */
- SYSTEM_MAIN_CLOCK_DIV_2,
- /** Divide Main clock by four */
- SYSTEM_MAIN_CLOCK_DIV_4,
- /** Divide Main clock by eight */
- SYSTEM_MAIN_CLOCK_DIV_8,
- /** Divide Main clock by 16 */
- SYSTEM_MAIN_CLOCK_DIV_16,
- /** Divide Main clock by 32 */
- SYSTEM_MAIN_CLOCK_DIV_32,
- /** Divide Main clock by 64 */
- SYSTEM_MAIN_CLOCK_DIV_64,
- /** Divide Main clock by 128 */
- SYSTEM_MAIN_CLOCK_DIV_128,
-};
-
-/**
- * \brief External clock source types.
- *
- * Available external clock source types.
- */
-enum system_clock_external {
- /** The external clock source is a crystal oscillator */
- SYSTEM_CLOCK_EXTERNAL_CRYSTAL,
- /** The connected clock source is an external logic level clock signal */
- SYSTEM_CLOCK_EXTERNAL_CLOCK,
-};
-
-/**
- * \brief Operating modes of the DFLL clock source.
- *
- * Available operating modes of the DFLL clock source module.
- */
-enum system_clock_dfll_loop_mode {
- /** The DFLL is operating in open loop mode with no feedback */
- SYSTEM_CLOCK_DFLL_LOOP_MODE_OPEN,
- /** The DFLL is operating in closed loop mode with frequency feedback from
- * a low frequency reference clock
- */
- SYSTEM_CLOCK_DFLL_LOOP_MODE_CLOSED = SYSCTRL_DFLLCTRL_MODE,
-
-#ifdef SYSCTRL_DFLLCTRL_USBCRM
- /** The DFLL is operating in USB recovery mode with frequency feedback
- * from USB SOF.
- */
- SYSTEM_CLOCK_DFLL_LOOP_MODE_USB_RECOVERY = SYSCTRL_DFLLCTRL_USBCRM,
-#endif
-};
-
-/**
- * \brief Locking behavior for the DFLL during device wake-up.
- *
- * DFLL lock behavior modes on device wake-up from sleep.
- */
-enum system_clock_dfll_wakeup_lock {
- /** Keep DFLL lock when the device wakes from sleep */
- SYSTEM_CLOCK_DFLL_WAKEUP_LOCK_KEEP,
- /** Lose DFLL lock when the devices wakes from sleep */
- SYSTEM_CLOCK_DFLL_WAKEUP_LOCK_LOSE = SYSCTRL_DFLLCTRL_LLAW,
-};
-
-/**
- * \brief Fine tracking behavior for the DFLL once a lock has been acquired.
- *
- * DFLL fine tracking behavior modes after a lock has been acquired.
- */
-enum system_clock_dfll_stable_tracking {
- /** Keep tracking after the DFLL has gotten a fine lock */
- SYSTEM_CLOCK_DFLL_STABLE_TRACKING_TRACK_AFTER_LOCK,
- /** Stop tracking after the DFLL has gotten a fine lock */
- SYSTEM_CLOCK_DFLL_STABLE_TRACKING_FIX_AFTER_LOCK = SYSCTRL_DFLLCTRL_STABLE,
-};
-
-/**
- * \brief Chill-cycle behavior of the DFLL module.
- *
- * DFLL chill-cycle behavior modes of the DFLL module. A chill cycle is a period
- * of time when the DFLL output frequency is not measured by the unit, to allow
- * the output to stabilize after a change in the input clock source.
- */
-enum system_clock_dfll_chill_cycle {
- /** Enable a chill cycle, where the DFLL output frequency is not measured */
- SYSTEM_CLOCK_DFLL_CHILL_CYCLE_ENABLE,
- /** Disable a chill cycle, where the DFLL output frequency is not measured */
- SYSTEM_CLOCK_DFLL_CHILL_CYCLE_DISABLE = SYSCTRL_DFLLCTRL_CCDIS,
-};
-
-/**
- * \brief QuickLock settings for the DFLL module.
- *
- * DFLL QuickLock settings for the DFLL module, to allow for a faster lock of
- * the DFLL output frequency at the expense of accuracy.
- */
-enum system_clock_dfll_quick_lock {
- /** Enable the QuickLock feature for looser lock requirements on the DFLL */
- SYSTEM_CLOCK_DFLL_QUICK_LOCK_ENABLE,
- /** Disable the QuickLock feature for strict lock requirements on the DFLL */
- SYSTEM_CLOCK_DFLL_QUICK_LOCK_DISABLE = SYSCTRL_DFLLCTRL_QLDIS,
-};
-
-/**
- * \brief Available clock sources in the system.
- *
- * Clock sources available to the GCLK generators.
- */
-enum system_clock_source {
- /** Internal 8MHz RC oscillator */
- SYSTEM_CLOCK_SOURCE_OSC8M = GCLK_SOURCE_OSC8M,
- /** Internal 32KHz RC oscillator */
- SYSTEM_CLOCK_SOURCE_OSC32K = GCLK_SOURCE_OSC32K,
- /** External oscillator */
- SYSTEM_CLOCK_SOURCE_XOSC = GCLK_SOURCE_XOSC ,
- /** External 32KHz oscillator */
- SYSTEM_CLOCK_SOURCE_XOSC32K = GCLK_SOURCE_XOSC32K,
- /** Digital Frequency Locked Loop (DFLL) */
- SYSTEM_CLOCK_SOURCE_DFLL = GCLK_SOURCE_DFLL48M,
- /** Internal Ultra Low Power 32KHz oscillator */
- SYSTEM_CLOCK_SOURCE_ULP32K = GCLK_SOURCE_OSCULP32K,
- /** Generator input pad */
- SYSTEM_CLOCK_SOURCE_GCLKIN = GCLK_SOURCE_GCLKIN,
- /** Generic clock generator one output */
- SYSTEM_CLOCK_SOURCE_GCLKGEN1 = GCLK_SOURCE_GCLKGEN1,
-#ifdef FEATURE_SYSTEM_CLOCK_DPLL
- /** Digital Phase Locked Loop (DPLL).
- * Check \c FEATURE_SYSTEM_CLOCK_DPLL for which device support it.
- */
- SYSTEM_CLOCK_SOURCE_DPLL = GCLK_SOURCE_FDPLL,
-#endif
-};
-
-/**
- * \brief List of APB peripheral buses.
- *
- * Available bus clock domains on the APB bus.
- */
-enum system_clock_apb_bus {
- /** Peripheral bus A on the APB bus */
- SYSTEM_CLOCK_APB_APBA,
- /** Peripheral bus B on the APB bus */
- SYSTEM_CLOCK_APB_APBB,
- /** Peripheral bus C on the APB bus */
- SYSTEM_CLOCK_APB_APBC,
-};
-
-/**
- * \brief Configuration structure for XOSC.
- *
- * External oscillator clock configuration structure.
- */
-struct system_clock_source_xosc_config {
- /** External clock type */
- enum system_clock_external external_clock;
- /** Crystal oscillator start-up time */
- enum system_xosc_startup startup_time;
- /** Enable automatic amplitude gain control */
- bool auto_gain_control;
- /** External clock/crystal frequency */
- uint32_t frequency;
- /** Keep the XOSC enabled in standby sleep mode */
- bool run_in_standby;
- /** Run On Demand. If this is set the XOSC won't run
- * until requested by a peripheral. */
- bool on_demand;
-};
-
-/**
- * \brief Configuration structure for XOSC32K.
- *
- * External 32KHz oscillator clock configuration structure.
- */
-struct system_clock_source_xosc32k_config {
- /** External clock type */
- enum system_clock_external external_clock;
- /** Crystal oscillator start-up time */
- enum system_xosc32k_startup startup_time;
- /** Enable automatic amplitude control */
- bool auto_gain_control;
- /** Enable 1KHz output */
- bool enable_1khz_output;
- /** Enable 32KHz output */
- bool enable_32khz_output;
- /** External clock/crystal frequency */
- uint32_t frequency;
- /** Keep the XOSC32K enabled in standby sleep mode */
- bool run_in_standby;
- /** Run On Demand. If this is set the XOSC32K won't run
- * until requested by a peripheral. */
- bool on_demand;
- /** Lock configuration after it has been written,
- * a device reset will release the lock */
- bool write_once;
-};
-
-/**
- * \brief Configuration structure for OSC8M.
- *
- * Internal 8MHz (nominal) oscillator configuration structure.
- */
-struct system_clock_source_osc8m_config {
- /** Internal 8MHz RC oscillator prescaler */
- enum system_osc8m_div prescaler;
- /** Keep the OSC8M enabled in standby sleep mode */
- bool run_in_standby;
- /** Run On Demand. If this is set the OSC8M won't run
- * until requested by a peripheral. */
- bool on_demand;
-};
-
-/**
- * \brief Configuration structure for OSC32K.
- *
- * Internal 32KHz (nominal) oscillator configuration structure.
- */
-struct system_clock_source_osc32k_config {
- /** Startup time */
- enum system_osc32k_startup startup_time;
- /** Enable 1KHz output */
- bool enable_1khz_output;
- /** Enable 32KHz output */
- bool enable_32khz_output;
- /** Keep the OSC32K enabled in standby sleep mode */
- bool run_in_standby;
- /** Run On Demand. If this is set the OSC32K won't run
- * until requested by a peripheral */
- bool on_demand;
- /** Lock configuration after it has been written,
- * a device reset will release the lock */
- bool write_once;
-};
-
-/**
- * \brief Configuration structure for DFLL.
- *
- * DFLL oscillator configuration structure.
- */
-struct system_clock_source_dfll_config {
- /** Loop mode */
- enum system_clock_dfll_loop_mode loop_mode;
- /** Run On Demand. If this is set the DFLL won't run
- * until requested by a peripheral. */
- bool on_demand;
- /** Enable Quick Lock */
- enum system_clock_dfll_quick_lock quick_lock;
- /** Enable Chill Cycle */
- enum system_clock_dfll_chill_cycle chill_cycle;
- /** DFLL lock state on wakeup */
- enum system_clock_dfll_wakeup_lock wakeup_lock;
- /** DFLL tracking after fine lock */
- enum system_clock_dfll_stable_tracking stable_tracking;
- /** Coarse calibration value (Open loop mode) */
- uint8_t coarse_value;
- /** Fine calibration value (Open loop mode) */
- uint16_t fine_value;
- /** Coarse adjustment maximum step size (Closed loop mode) */
- uint8_t coarse_max_step;
- /** Fine adjustment maximum step size (Closed loop mode) */
- uint16_t fine_max_step;
- /** DFLL multiply factor (Closed loop mode */
- uint16_t multiply_factor;
-};
-
-/**
- * \name External Oscillator Management
- * @{
- */
-
-/**
- * \brief Retrieve the default configuration for XOSC.
- *
- * Fills a configuration structure with the default configuration for an
- * external oscillator module:
- * - External Crystal
- * - Start-up time of 16384 external clock cycles
- * - Automatic crystal gain control mode disabled
- * - Frequency of 12MHz
- * - Don't run in STANDBY sleep mode
- * - Run when it's enabled (not on demand)
- *
- * \param[out] config Configuration structure to fill with default values
- */
-static inline void system_clock_source_xosc_get_config_defaults(
- struct system_clock_source_xosc_config *const config)
-{
- Assert(config);
-
- config->external_clock = SYSTEM_CLOCK_EXTERNAL_CRYSTAL;
- config->startup_time = SYSTEM_XOSC_STARTUP_16384;
- config->auto_gain_control = false;
- config->frequency = 12000000UL;
- config->run_in_standby = false;
- config->on_demand = false;
-}
-
-void system_clock_source_xosc_set_config(
- struct system_clock_source_xosc_config *const config);
-
-/**
- * @}
- */
-
-
-/**
- * \name External 32KHz Oscillator Management
- * @{
- */
-
-/**
- * \brief Retrieve the default configuration for XOSC32K.
- *
- * Fills a configuration structure with the default configuration for an
- * external 32KHz oscillator module:
- * - External Crystal
- * - Start-up time of 16384 external clock cycles
- * - Automatic crystal gain control mode disabled
- * - Frequency of 32.768KHz
- * - 1KHz clock output disabled
- * - 32KHz clock output enabled
- * - Don't run in STANDBY sleep mode
- * - Run only when requested by peripheral (on demand)
- * - Don't lock registers after configuration has been written
- *
- * \param[out] config Configuration structure to fill with default values
- */
-static inline void system_clock_source_xosc32k_get_config_defaults(
- struct system_clock_source_xosc32k_config *const config)
-{
- Assert(config);
-
- config->external_clock = SYSTEM_CLOCK_EXTERNAL_CRYSTAL;
- config->startup_time = SYSTEM_XOSC32K_STARTUP_16384;
- config->auto_gain_control = false;
- config->frequency = 32768UL;
- config->enable_1khz_output = false;
- config->enable_32khz_output = true;
- config->run_in_standby = false;
- config->on_demand = true;
- config->write_once = false;
-}
-
-void system_clock_source_xosc32k_set_config(
- struct system_clock_source_xosc32k_config *const config);
-/**
- * @}
- */
-
-
-/**
- * \name Internal 32KHz Oscillator Management
- * @{
- */
-
-/**
- * \brief Retrieve the default configuration for OSC32K.
- *
- * Fills a configuration structure with the default configuration for an
- * internal 32KHz oscillator module:
- * - 1KHz clock output enabled
- * - 32KHz clock output enabled
- * - Don't run in STANDBY sleep mode
- * - Run only when requested by peripheral (on demand)
- * - Set startup time to 130 cycles
- * - Don't lock registers after configuration has been written
- *
- * \param[out] config Configuration structure to fill with default values
- */
-static inline void system_clock_source_osc32k_get_config_defaults(
- struct system_clock_source_osc32k_config *const config)
-{
- Assert(config);
-
- config->enable_1khz_output = true;
- config->enable_32khz_output = true;
- config->run_in_standby = false;
- config->on_demand = true;
- config->startup_time = SYSTEM_OSC32K_STARTUP_130;
- config->write_once = false;
-}
-
-void system_clock_source_osc32k_set_config(
- struct system_clock_source_osc32k_config *const config);
-
-/**
- * @}
- */
-
-
-/**
- * \name Internal 8MHz Oscillator Management
- * @{
- */
-
-/**
- * \brief Retrieve the default configuration for OSC8M.
- *
- * Fills a configuration structure with the default configuration for an
- * internal 8MHz (nominal) oscillator module:
- * - Clock output frequency divided by a factor of eight
- * - Don't run in STANDBY sleep mode
- * - Run only when requested by peripheral (on demand)
- *
- * \param[out] config Configuration structure to fill with default values
- */
-static inline void system_clock_source_osc8m_get_config_defaults(
- struct system_clock_source_osc8m_config *const config)
-{
- Assert(config);
-
- config->prescaler = SYSTEM_OSC8M_DIV_8;
- config->run_in_standby = false;
- config->on_demand = true;
-}
-
-void system_clock_source_osc8m_set_config(
- struct system_clock_source_osc8m_config *const config);
-
-/**
- * @}
- */
-
-
-/**
- * \name Internal DFLL Management
- * @{
- */
-
-/**
- * \brief Retrieve the default configuration for DFLL.
- *
- * Fills a configuration structure with the default configuration for a
- * DFLL oscillator module:
- * - Open loop mode
- * - QuickLock mode enabled
- * - Chill cycle enabled
- * - Output frequency lock maintained during device wake-up
- * - Continuous tracking of the output frequency
- * - Default tracking values at the mid-points for both coarse and fine
- * tracking parameters
- * - Don't run in STANDBY sleep mode
- * - Run only when requested by peripheral (on demand)
- *
- * \param[out] config Configuration structure to fill with default values
- */
-static inline void system_clock_source_dfll_get_config_defaults(
- struct system_clock_source_dfll_config *const config)
-{
- Assert(config);
-
- config->loop_mode = SYSTEM_CLOCK_DFLL_LOOP_MODE_OPEN;
- config->quick_lock = SYSTEM_CLOCK_DFLL_QUICK_LOCK_ENABLE;
- config->chill_cycle = SYSTEM_CLOCK_DFLL_CHILL_CYCLE_ENABLE;
- config->wakeup_lock = SYSTEM_CLOCK_DFLL_WAKEUP_LOCK_KEEP;
- config->stable_tracking = SYSTEM_CLOCK_DFLL_STABLE_TRACKING_TRACK_AFTER_LOCK;
- config->on_demand = true;
-
- /* Open loop mode calibration value */
- config->coarse_value = 0x1f / 4; /* Midpoint */
- config->fine_value = 0xff / 4; /* Midpoint */
-
- /* Closed loop mode */
- config->coarse_max_step = 1;
- config->fine_max_step = 1;
- config->multiply_factor = 6; /* Multiply 8MHz by 6 to get 48MHz */
-}
-
-void system_clock_source_dfll_set_config(
- struct system_clock_source_dfll_config *const config);
-
-/**
- * @}
- */
-
-/**
- * \name Clock Source Management
- * @{
- */
-enum status_code system_clock_source_write_calibration(
- const enum system_clock_source system_clock_source,
- const uint16_t calibration_value,
- const uint8_t freq_range);
-
-enum status_code system_clock_source_enable(
- const enum system_clock_source system_clock_source);
-
-enum status_code system_clock_source_disable(
- const enum system_clock_source clk_source);
-
-bool system_clock_source_is_ready(
- const enum system_clock_source clk_source);
-
-uint32_t system_clock_source_get_hz(
- const enum system_clock_source clk_source);
-
-/**
- * @}
- */
-
-/**
- * \name Main Clock Management
- * @{
- */
-
-/**
- * \brief Set main CPU clock divider.
- *
- * Sets the clock divider used on the main clock to provide the CPU clock.
- *
- * \param[in] divider CPU clock divider to set
- */
-static inline void system_cpu_clock_set_divider(
- const enum system_main_clock_div divider)
-{
- Assert(((uint32_t)divider & PM_CPUSEL_CPUDIV_Msk) == divider);
- PM->CPUSEL.reg = (uint32_t)divider;
-}
-
-/**
- * \brief Retrieves the current frequency of the CPU core.
- *
- * Retrieves the operating frequency of the CPU core, obtained from the main
- * generic clock and the set CPU bus divider.
- *
- * \return Current CPU frequency in Hz.
- */
-static inline uint32_t system_cpu_clock_get_hz(void)
-{
- return (system_gclk_gen_get_hz(GCLK_GENERATOR_0) >> PM->CPUSEL.reg);
-}
-
-/**
- * \brief Set APBx clock divider.
- *
- * Set the clock divider used on the main clock to provide the clock for the
- * given APBx bus.
- *
- * \param[in] divider APBx bus divider to set
- * \param[in] bus APBx bus to set divider
- *
- * \returns Status of the clock division change operation.
- *
- * \retval STATUS_ERR_INVALID_ARG Invalid bus ID was given
- * \retval STATUS_OK The APBx clock was set successfully
- */
-static inline enum status_code system_apb_clock_set_divider(
- const enum system_clock_apb_bus bus,
- const enum system_main_clock_div divider)
-{
- switch (bus) {
- case SYSTEM_CLOCK_APB_APBA:
- PM->APBASEL.reg = (uint32_t)divider;
- break;
- case SYSTEM_CLOCK_APB_APBB:
- PM->APBBSEL.reg = (uint32_t)divider;
- break;
- case SYSTEM_CLOCK_APB_APBC:
- PM->APBCSEL.reg = (uint32_t)divider;
- break;
- default:
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
- }
-
- return STATUS_OK;
-}
-
-/**
- * \brief Retrieves the current frequency of a ABPx.
- *
- * Retrieves the operating frequency of an APBx bus, obtained from the main
- * generic clock and the set APBx bus divider.
- *
- * \return Current APBx bus frequency in Hz.
- */
-static inline uint32_t system_apb_clock_get_hz(
- const enum system_clock_apb_bus bus)
-{
- uint16_t bus_divider = 0;
-
- switch (bus) {
- case SYSTEM_CLOCK_APB_APBA:
- bus_divider = PM->APBASEL.reg;
- break;
- case SYSTEM_CLOCK_APB_APBB:
- bus_divider = PM->APBBSEL.reg;
- break;
- case SYSTEM_CLOCK_APB_APBC:
- bus_divider = PM->APBCSEL.reg;
- break;
- default:
- Assert(false);
- return 0;
- }
-
- return (system_gclk_gen_get_hz(GCLK_GENERATOR_0) >> bus_divider);
-}
-
-
-/**
- * @}
- */
-
-/**
- * \name Bus Clock Masking
- * @{
- */
-
-/**
- * \brief Set bits in the clock mask for the AHB bus.
- *
- * This function will set bits in the clock mask for the AHB bus.
- * Any bits set to 1 will enable that clock, 0 bits in the mask
- * will be ignored.
- *
- * \param[in] ahb_mask AHB clock mask to enable
- */
-static inline void system_ahb_clock_set_mask(
- const uint32_t ahb_mask)
-{
- PM->AHBMASK.reg |= ahb_mask;
-}
-
-/**
- * \brief Clear bits in the clock mask for the AHB bus.
- *
- * This function will clear bits in the clock mask for the AHB bus.
- * Any bits set to 1 will disable that clock, 0 bits in the mask
- * will be ignored.
- *
- * \param[in] ahb_mask AHB clock mask to disable
- */
-static inline void system_ahb_clock_clear_mask(
- const uint32_t ahb_mask)
-{
- PM->AHBMASK.reg &= ~ahb_mask;
-}
-
-/**
- * \brief Set bits in the clock mask for an APBx bus.
- *
- * This function will set bits in the clock mask for an APBx bus.
- * Any bits set to 1 will enable the corresponding module clock, zero bits in
- * the mask will be ignored.
- *
- * \param[in] mask APBx clock mask, a \c SYSTEM_CLOCK_APB_APBx constant from
- * the device header files
- * \param[in] bus Bus to set clock mask bits for, a mask of \c PM_APBxMASK_*
- * constants from the device header files
- *
- * \returns Status indicating the result of the clock mask change operation.
- *
- * \retval STATUS_ERR_INVALID_ARG Invalid bus given
- * \retval STATUS_OK The clock mask was set successfully
- */
-static inline enum status_code system_apb_clock_set_mask(
- const enum system_clock_apb_bus bus,
- const uint32_t mask)
-{
- switch (bus) {
- case SYSTEM_CLOCK_APB_APBA:
- PM->APBAMASK.reg |= mask;
- break;
-
- case SYSTEM_CLOCK_APB_APBB:
- PM->APBBMASK.reg |= mask;
- break;
-
- case SYSTEM_CLOCK_APB_APBC:
- PM->APBCMASK.reg |= mask;
- break;
-
- default:
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
-
- }
-
- return STATUS_OK;
-}
-
-/**
- * \brief Clear bits in the clock mask for an APBx bus.
- *
- * This function will clear bits in the clock mask for an APBx bus.
- * Any bits set to 1 will disable the corresponding module clock, zero bits in
- * the mask will be ignored.
- *
- * \param[in] mask APBx clock mask, a \c SYSTEM_CLOCK_APB_APBx constant from
- * the device header files
- * \param[in] bus Bus to clear clock mask bits
- *
- * \returns Status indicating the result of the clock mask change operation.
- *
- * \retval STATUS_ERR_INVALID_ARG Invalid bus ID was given
- * \retval STATUS_OK The clock mask was changed successfully
- */
-static inline enum status_code system_apb_clock_clear_mask(
- const enum system_clock_apb_bus bus,
- const uint32_t mask)
-{
- switch (bus) {
- case SYSTEM_CLOCK_APB_APBA:
- PM->APBAMASK.reg &= ~mask;
- break;
-
- case SYSTEM_CLOCK_APB_APBB:
- PM->APBBMASK.reg &= ~mask;
- break;
-
- case SYSTEM_CLOCK_APB_APBC:
- PM->APBCMASK.reg &= ~mask;
- break;
-
- default:
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
- }
-
- return STATUS_OK;
-}
-
-/**
- * @}
- */
-
-#ifdef FEATURE_SYSTEM_CLOCK_DPLL
-/**
- * \brief Reference clock source of the DPLL module.
- */
-enum system_clock_source_dpll_reference_clock {
- /** Select XOSC32K as clock reference. */
- SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_XOSC32K,
- /** Select XOSC as clock reference. */
- SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_XOSC,
- /** Select GCLK as clock reference. */
- SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_GCLK,
-};
-
-/**
- * \brief Lock time-out value of the DPLL module.
- */
-enum system_clock_source_dpll_lock_time {
- /** Set no time-out as default. */
- SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_DEFAULT,
- /** Set time-out if no lock within 8ms. */
- SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_8MS = 0x04,
- /** Set time-out if no lock within 9ms. */
- SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_9MS,
- /** Set time-out if no lock within 10ms. */
- SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_10MS,
- /** Set time-out if no lock within 11ms. */
- SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_11MS,
-};
-
-/**
- * \brief Filter type of the DPLL module.
- */
-enum system_clock_source_dpll_filter {
- /** Default filter mode. */
- SYSTEM_CLOCK_SOURCE_DPLL_FILTER_DEFAULT,
- /** Low bandwidth filter. */
- SYSTEM_CLOCK_SOURCE_DPLL_FILTER_LOW_BANDWIDTH_FILTER,
- /** High bandwidth filter. */
- SYSTEM_CLOCK_SOURCE_DPLL_FILTER_HIGH_BANDWIDTH_FILTER,
- /** High damping filter. */
- SYSTEM_CLOCK_SOURCE_DPLL_FILTER_HIGH_DAMPING_FILTER,
-};
-
-/**
- * \brief Configuration structure for DPLL.
- *
- * DPLL oscillator configuration structure.
- */
-struct system_clock_source_dpll_config {
- /** Run On Demand. If this is set the DPLL won't run
- * until requested by a peripheral. */
- bool on_demand;
- /** Keep the DPLL enabled in standby sleep mode. */
- bool run_in_standby;
- /** Bypass lock signal. */
- bool lock_bypass;
- /** Wake up fast. If this is set DPLL output clock is enabled after
- * the startup time. */
- bool wake_up_fast;
- /** Enable low power mode. */
- bool low_power_enable;
-
- /** Output frequency of the clock. */
- uint32_t output_frequency;
- /** Reference frequency of the clock. */
- uint32_t reference_frequency;
- /** Devider of reference clock. */
- uint16_t reference_divider;
-
- /** Filter type of the DPLL module. */
- enum system_clock_source_dpll_filter filter;
- /** Lock time-out value of the DPLL module. */
- enum system_clock_source_dpll_lock_time lock_time;
- /** Reference clock source of the DPLL module. */
- enum system_clock_source_dpll_reference_clock reference_clock;
-};
-
-/**
- * \name Internal DPLL Management
- * @{
- */
-
-/**
- * \brief Retrieve the default configuration for DPLL.
- *
- * Fills a configuration structure with the default configuration for a
- * DPLL oscillator module:
- * - Run only when requested by peripheral (on demand)
- * - Don't run in STANDBY sleep mode
- * - Lock bypass disabled
- * - Fast wake up disabled
- * - Low power mode disabled
- * - Output frequency is 48MHz
- * - Reference clock frequency is 32768Hz
- * - Not divide reference clock
- * - Select REF0 as reference clock
- * - Set lock time to default mode
- * - Use default filter
- *
- * \param[out] config Configuration structure to fill with default values
- */
-static inline void system_clock_source_dpll_get_config_defaults(
- struct system_clock_source_dpll_config *const config)
-{
- config->on_demand = true;
- config->run_in_standby = false;
- config->lock_bypass = false;
- config->wake_up_fast = false;
- config->low_power_enable = false;
-
- config->output_frequency = 48000000;
- config->reference_frequency = 32768;
- config->reference_divider = 1;
- config->reference_clock = SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_XOSC32K;
-
- config->lock_time = SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_DEFAULT;
- config->filter = SYSTEM_CLOCK_SOURCE_DPLL_FILTER_DEFAULT;
-};
-
-void system_clock_source_dpll_set_config(
- struct system_clock_source_dpll_config *const config);
-
-/* @} */
-#endif
-
-/**
- * \name System Clock Initialization
- * @{
- */
-
-void system_clock_init(void);
-
-/**
- * @}
- */
-
-/**
- * \name System Flash Wait States
- * @{
- */
-
-/**
- * \brief Set flash controller wait states.
- *
- * Will set the number of wait states that are used by the onboard
- * flash memory. The number of wait states depend on both device
- * supply voltage and CPU speed. The required number of wait states
- * can be found in the electrical characteristics of the device.
- *
- * \param[in] wait_states Number of wait states to use for internal flash
- */
-static inline void system_flash_set_waitstates(uint8_t wait_states)
-{
- Assert(NVMCTRL_CTRLB_RWS((uint32_t)wait_states) ==
- ((uint32_t)wait_states << NVMCTRL_CTRLB_RWS_Pos));
-
- NVMCTRL->CTRLB.bit.RWS = wait_states;
-}
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * \page asfdoc_sam0_system_clock_extra Extra Information for SYSTEM CLOCK Driver
- *
- * \section asfdoc_sam0_system_clock_extra_acronyms Acronyms
- * Below is a table listing the acronyms used in this module, along with their
- * intended meanings.
- *
- *
- *
- *
Acronym
- *
Description
- *
- *
- *
DFLL
- *
Digital Frequency Locked Loop
- *
- *
- *
MUX
- *
Multiplexer
- *
- *
- *
OSC32K
- *
Internal 32KHz Oscillator
- *
- *
- *
OSC8M
- *
Internal 8MHz Oscillator
- *
- *
- *
PLL
- *
Phase Locked Loop
- *
- *
- *
OSC
- *
Oscillator
- *
- *
- *
XOSC
- *
External Oscillator
- *
- *
- *
XOSC32K
- *
External 32KHz Oscillator
- *
- *
- *
AHB
- *
Advanced High-performance Bus
- *
- *
- *
APB
- *
Advanced Peripheral Bus
- *
- *
- *
DPLL
- *
Digital Phase Locked Loop
- *
- *
- *
- *
- * \section asfdoc_sam0_system_clock_extra_dependencies Dependencies
- * This driver has the following dependencies:
- *
- * - None
- *
- *
- * \section asfdoc_sam0_system_clock_extra_errata Errata
- *
- * - This driver implements experimental workaround for errata 9905
- *
- * "The DFLL clock must be requested before being configured otherwise a
- * write access to a DFLL register can freeze the device."
- * This driver will enable and configure the DFLL before the ONDEMAND bit is set.
- *
- *
- * \section asfdoc_sam0_system_clock_extra_history Module History
- * An overview of the module history is presented in the table below, with
- * details on the enhancements and fixes made to the module since its first
- * release. The current version of this corresponds to the newest version in
- * the table.
- *
- *
- *
- *
Changelog
- *
- *
- *
- * \li Corrected OSC32K startup time definitions
- * \li Support locking of OSC32K and XOSC32K config register (default: false)
- * \li Added DPLL support, functions added:
- * \c system_clock_source_dpll_get_config_defaults() and
- * \c system_clock_source_dpll_set_config()
- * \li Moved gclk channel locking feature out of the config struct
- * functions added:
- * \c system_gclk_chan_lock(),
- * \c system_gclk_chan_is_locked()
- * \c system_gclk_chan_is_enabled() and
- * \c system_gclk_gen_is_enabled()
- *
- *
- *
- *
Fixed \c system_gclk_chan_disable() deadlocking if a channel is enabled
- * and configured to a failed/not running clock generator
- *
- *
- *
- * \li Changed default value for CONF_CLOCK_DFLL_ON_DEMAND from \c true to \c false
- * \li Fixed system_flash_set_waitstates() failing with an assertion
- * if an odd number of wait states provided
- *
- *
- *
- *
- * \li Updated DFLL configuration function to implement workaround for
- * errata 9905 in the DFLL module
- * \li Updated \c system_clock_init() to reset interrupt flags before
- * they are used
- * \li Fixed \c system_clock_source_get_hz() to return correcy DFLL
- * frequency number
- *
- *
- *
- *
\li Fixed \c system_clock_source_is_ready not returning the correct
- * state for \c SYSTEM_CLOCK_SOURCE_OSC8M
- * \li Renamed the various \c system_clock_source_*_get_default_config()
- * functions to \c system_clock_source_*_get_config_defaults() to
- * match the remainder of ASF
- * \li Added OSC8M calibration constant loading from the device signature
- * row when the oscillator is initialized
- * \li Updated default configuration of the XOSC32 to disable Automatic
- * Gain Control due to silicon errata
- *
- *
- *
- *
Initial Release
- *
- *
- */
-
-/**
- * \page asfdoc_sam0_system_clock_exqsg Examples for System Clock Driver
- *
- * This is a list of the available Quick Start guides (QSGs) and example
- * applications for \ref asfdoc_sam0_system_clock_group. QSGs are simple
- * examples with step-by-step instructions to configure and use this driver in
- * a selection of use cases. Note that a QSG can be compiled as a standalone
- * application or be added to the user application.
- *
- * - \subpage asfdoc_sam0_system_clock_basic_use_case
- * - \subpage asfdoc_sam0_system_gclk_basic_use_case
- *
- * \page asfdoc_sam0_system_clock_document_revision_history Document Revision History
- *
- *
- *
- *
Doc. Rev.
- *
Date
- *
Comments
- *
- *
- *
42119E
- *
12/2015
- *
Added support for SAM DA1 and SAM D09
- *
- *
- *
42119D
- *
12/2014
- *
Added support for SAM R21 and SAM D10/D11
- *
- *
- *
42119C
- *
01/2014
- *
Added support for SAM D21
- *
- *
- *
42119B
- *
06/2013
- *
Corrected documentation typos. Fixed missing steps in the Basic
- * Use Case Quick Start Guide
- *
- *
- *
42119A
- *
06/2013
- *
Initial release
- *
- *
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* SYSTEM_CLOCK_FEATURE_H_INCLUDED */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/gclk.c b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/gclk.c
deleted file mode 100644
index 61c2084..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/gclk.c
+++ /dev/null
@@ -1,512 +0,0 @@
-/**
- * \file
- *
- * \brief SAM D21/R21/DA/HA Generic Clock Driver
- *
- * Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#include
-#include
-#include
-
-/**
- * \brief Determines if the hardware module(s) are currently synchronizing to the bus.
- *
- * Checks to see if the underlying hardware peripheral module(s) are currently
- * synchronizing across multiple clock domains to the hardware bus, This
- * function can be used to delay further operations on a module until such time
- * that it is ready, to prevent blocking delays for synchronization in the
- * user application.
- *
- * \return Synchronization status of the underlying hardware module(s).
- *
- * \retval false if the module has completed synchronization
- * \retval true if the module synchronization is ongoing
- */
-static inline bool system_gclk_is_syncing(void)
-{
- if (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY){
- return true;
- }
-
- return false;
-}
-
-/**
- * \brief Initializes the GCLK driver.
- *
- * Initializes the Generic Clock module, disabling and resetting all active
- * Generic Clock Generators and Channels to their power-on default values.
- */
-void system_gclk_init(void)
-{
- /* Turn on the digital interface clock */
- system_apb_clock_set_mask(SYSTEM_CLOCK_APB_APBA, PM_APBAMASK_GCLK);
-
- /* Software reset the module to ensure it is re-initialized correctly */
- GCLK->CTRL.reg = GCLK_CTRL_SWRST;
- while (GCLK->CTRL.reg & GCLK_CTRL_SWRST) {
- /* Wait for reset to complete */
- }
-}
-
-/**
- * \brief Writes a Generic Clock Generator configuration to the hardware module.
- *
- * Writes out a given configuration of a Generic Clock Generator configuration
- * to the hardware module.
- *
- * \note Changing the clock source on the fly (on a running
- * generator) can take additional time if the clock source is configured
- * to only run on-demand (ONDEMAND bit is set) and it is not currently
- * running (no peripheral is requesting the clock source). In this case
- * the GCLK will request the new clock while still keeping a request to
- * the old clock source until the new clock source is ready.
- *
- * \note This function will not start a generator that is not already running;
- * to start the generator, call \ref system_gclk_gen_enable()
- * after configuring a generator.
- *
- * \param[in] generator Generic Clock Generator index to configure
- * \param[in] config Configuration settings for the generator
- */
-void system_gclk_gen_set_config(
- const uint8_t generator,
- struct system_gclk_gen_config *const config)
-{
- /* Sanity check arguments */
- Assert(config);
-
- /* Cache new register configurations to minimize sync requirements. */
- uint32_t new_genctrl_config = (generator << GCLK_GENCTRL_ID_Pos);
- uint32_t new_gendiv_config = (generator << GCLK_GENDIV_ID_Pos);
-
- /* Select the requested source clock for the generator */
- new_genctrl_config |= config->source_clock << GCLK_GENCTRL_SRC_Pos;
-
- /* Configure the clock to be either high or low when disabled */
- if (config->high_when_disabled) {
- new_genctrl_config |= GCLK_GENCTRL_OOV;
- }
-
- /* Configure if the clock output to I/O pin should be enabled. */
- if (config->output_enable) {
- new_genctrl_config |= GCLK_GENCTRL_OE;
- }
-
- /* Set division factor */
- if (config->division_factor > 1) {
- /* Check if division is a power of two */
- if (((config->division_factor & (config->division_factor - 1)) == 0)) {
- /* Determine the index of the highest bit set to get the
- * division factor that must be loaded into the division
- * register */
-
- uint32_t div2_count = 0;
-
- uint32_t mask;
- for (mask = (1UL << 1); mask < config->division_factor;
- mask <<= 1) {
- div2_count++;
- }
-
- /* Set binary divider power of 2 division factor */
- new_gendiv_config |= div2_count << GCLK_GENDIV_DIV_Pos;
- new_genctrl_config |= GCLK_GENCTRL_DIVSEL;
- } else {
- /* Set integer division factor */
-
- new_gendiv_config |=
- (config->division_factor) << GCLK_GENDIV_DIV_Pos;
-
- /* Enable non-binary division with increased duty cycle accuracy */
- new_genctrl_config |= GCLK_GENCTRL_IDC;
- }
-
- }
-
- /* Enable or disable the clock in standby mode */
- if (config->run_in_standby) {
- new_genctrl_config |= GCLK_GENCTRL_RUNSTDBY;
- }
-
- while (system_gclk_is_syncing()) {
- /* Wait for synchronization */
- };
-
- system_interrupt_enter_critical_section();
-
- /* Select the correct generator */
- *((uint8_t*)&GCLK->GENDIV.reg) = generator;
-
- /* Write the new generator configuration */
- while (system_gclk_is_syncing()) {
- /* Wait for synchronization */
- };
- GCLK->GENDIV.reg = new_gendiv_config;
-
- while (system_gclk_is_syncing()) {
- /* Wait for synchronization */
- };
- GCLK->GENCTRL.reg = new_genctrl_config | (GCLK->GENCTRL.reg & GCLK_GENCTRL_GENEN);
-
- system_interrupt_leave_critical_section();
-}
-
-/**
- * \brief Enables a Generic Clock Generator that was previously configured.
- *
- * Starts the clock generation of a Generic Clock Generator that was previously
- * configured via a call to \ref system_gclk_gen_set_config().
- *
- * \param[in] generator Generic Clock Generator index to enable
- */
-void system_gclk_gen_enable(
- const uint8_t generator)
-{
- while (system_gclk_is_syncing()) {
- /* Wait for synchronization */
- };
-
- system_interrupt_enter_critical_section();
-
- /* Select the requested generator */
- *((uint8_t*)&GCLK->GENCTRL.reg) = generator;
- while (system_gclk_is_syncing()) {
- /* Wait for synchronization */
- };
-
- /* Enable generator */
- GCLK->GENCTRL.reg |= GCLK_GENCTRL_GENEN;
-
- system_interrupt_leave_critical_section();
-}
-
-/**
- * \brief Disables a Generic Clock Generator that was previously enabled.
- *
- * Stops the clock generation of a Generic Clock Generator that was previously
- * started via a call to \ref system_gclk_gen_enable().
- *
- * \param[in] generator Generic Clock Generator index to disable
- */
-void system_gclk_gen_disable(
- const uint8_t generator)
-{
- while (system_gclk_is_syncing()) {
- /* Wait for synchronization */
- };
-
- system_interrupt_enter_critical_section();
-
- /* Select the requested generator */
- *((uint8_t*)&GCLK->GENCTRL.reg) = generator;
- while (system_gclk_is_syncing()) {
- /* Wait for synchronization */
- };
-
- /* Disable generator */
- GCLK->GENCTRL.reg &= ~GCLK_GENCTRL_GENEN;
- while (GCLK->GENCTRL.reg & GCLK_GENCTRL_GENEN) {
- /* Wait for clock to become disabled */
- }
-
- system_interrupt_leave_critical_section();
-}
-
-/**
- * \brief Determins if the specified Generic Clock Generator is enabled.
- *
- * \param[in] generator Generic Clock Generator index to check
- *
- * \return The enabled status.
- * \retval true The Generic Clock Generator is enabled
- * \retval false The Generic Clock Generator is disabled
- */
-bool system_gclk_gen_is_enabled(
- const uint8_t generator)
-{
- bool enabled;
-
- system_interrupt_enter_critical_section();
-
- /* Select the requested generator */
- *((uint8_t*)&GCLK->GENCTRL.reg) = generator;
- /* Obtain the enabled status */
- enabled = (GCLK->GENCTRL.reg & GCLK_GENCTRL_GENEN);
-
- system_interrupt_leave_critical_section();
-
- return enabled;
-}
-
-/**
- * \brief Retrieves the clock frequency of a Generic Clock generator.
- *
- * Determines the clock frequency (in Hz) of a specified Generic Clock
- * generator, used as a source to a Generic Clock Channel module.
- *
- * \param[in] generator Generic Clock Generator index
- *
- * \return The frequency of the generic clock generator, in Hz.
- */
-uint32_t system_gclk_gen_get_hz(
- const uint8_t generator)
-{
- while (system_gclk_is_syncing()) {
- /* Wait for synchronization */
- };
-
- system_interrupt_enter_critical_section();
-
- /* Select the appropriate generator */
- *((uint8_t*)&GCLK->GENCTRL.reg) = generator;
- while (system_gclk_is_syncing()) {
- /* Wait for synchronization */
- };
-
- /* Get the frequency of the source connected to the GCLK generator */
- uint32_t gen_input_hz = system_clock_source_get_hz(
- (enum system_clock_source)GCLK->GENCTRL.bit.SRC);
-
- *((uint8_t*)&GCLK->GENCTRL.reg) = generator;
-
- uint8_t divsel = GCLK->GENCTRL.bit.DIVSEL;
-
- /* Select the appropriate generator division register */
- *((uint8_t*)&GCLK->GENDIV.reg) = generator;
- while (system_gclk_is_syncing()) {
- /* Wait for synchronization */
- };
-
- uint32_t divider = GCLK->GENDIV.bit.DIV;
-
- system_interrupt_leave_critical_section();
-
- /* Check if the generator is using fractional or binary division */
- if (!divsel && divider > 1) {
- gen_input_hz /= divider;
- } else if (divsel) {
- gen_input_hz >>= (divider+1);
- }
-
- return gen_input_hz;
-}
-
-/**
- * \brief Writes a Generic Clock configuration to the hardware module.
- *
- * Writes out a given configuration of a Generic Clock configuration to the
- * hardware module. If the clock is currently running, it will be stopped.
- *
- * \note Once called the clock will not be running; to start the clock,
- * call \ref system_gclk_chan_enable() after configuring a clock channel.
- *
- * \param[in] channel Generic Clock channel to configure
- * \param[in] config Configuration settings for the clock
- *
- */
-void system_gclk_chan_set_config(
- const uint8_t channel,
- struct system_gclk_chan_config *const config)
-{
- /* Sanity check arguments */
- Assert(config);
-
- /* Cache the new config to reduce sync requirements */
- uint32_t new_clkctrl_config = (channel << GCLK_CLKCTRL_ID_Pos);
-
- /* Select the desired generic clock generator */
- new_clkctrl_config |= config->source_generator << GCLK_CLKCTRL_GEN_Pos;
-
- /* Disable generic clock channel */
- system_gclk_chan_disable(channel);
-
- /* Write the new configuration */
- GCLK->CLKCTRL.reg = new_clkctrl_config;
-}
-
-/**
- * \brief Enables a Generic Clock that was previously configured.
- *
- * Starts the clock generation of a Generic Clock that was previously
- * configured via a call to \ref system_gclk_chan_set_config().
- *
- * \param[in] channel Generic Clock channel to enable
- */
-void system_gclk_chan_enable(
- const uint8_t channel)
-{
- system_interrupt_enter_critical_section();
-
- /* Select the requested generator channel */
- *((uint8_t*)&GCLK->CLKCTRL.reg) = channel;
-
- /* Enable the generic clock */
- GCLK->CLKCTRL.reg |= GCLK_CLKCTRL_CLKEN;
-
- system_interrupt_leave_critical_section();
-}
-
-/**
- * \brief Disables a Generic Clock that was previously enabled.
- *
- * Stops the clock generation of a Generic Clock that was previously started
- * via a call to \ref system_gclk_chan_enable().
- *
- * \param[in] channel Generic Clock channel to disable
- */
-void system_gclk_chan_disable(
- const uint8_t channel)
-{
- system_interrupt_enter_critical_section();
-
- /* Select the requested generator channel */
- *((uint8_t*)&GCLK->CLKCTRL.reg) = channel;
-
- /* Sanity check WRTLOCK */
- Assert(!GCLK->CLKCTRL.bit.WRTLOCK);
-
- /* Switch to known-working source so that the channel can be disabled */
- uint32_t prev_gen_id = GCLK->CLKCTRL.bit.GEN;
- GCLK->CLKCTRL.bit.GEN = 0;
-
- /* Disable the generic clock */
- GCLK->CLKCTRL.reg &= ~GCLK_CLKCTRL_CLKEN;
- while (GCLK->CLKCTRL.reg & GCLK_CLKCTRL_CLKEN) {
- /* Wait for clock to become disabled */
- }
-
- /* Restore previous configured clock generator */
- GCLK->CLKCTRL.bit.GEN = prev_gen_id;
-
- system_interrupt_leave_critical_section();
-}
-
-/**
- * \brief Determins if the specified Generic Clock channel is enabled.
- *
- * \param[in] channel Generic Clock Channel index
- *
- * \return The enabled status.
- * \retval true The Generic Clock channel is enabled
- * \retval false The Generic Clock channel is disabled
- */
-bool system_gclk_chan_is_enabled(
- const uint8_t channel)
-{
- bool enabled;
-
- system_interrupt_enter_critical_section();
-
- /* Select the requested generic clock channel */
- *((uint8_t*)&GCLK->CLKCTRL.reg) = channel;
- enabled = GCLK->CLKCTRL.bit.CLKEN;
-
- system_interrupt_leave_critical_section();
-
- return enabled;
-}
-
-/**
- * \brief Locks a Generic Clock channel from further configuration writes.
- *
- * Locks a generic clock channel from further configuration writes. It is only
- * possible to unlock the channel configuration through a power on reset.
- *
- * \param[in] channel Generic Clock channel to enable
- */
-void system_gclk_chan_lock(
- const uint8_t channel)
-{
- system_interrupt_enter_critical_section();
-
- /* Select the requested generator channel */
- *((uint8_t*)&GCLK->CLKCTRL.reg) = channel;
-
- /* Lock the generic clock */
- GCLK->CLKCTRL.reg |= GCLK_CLKCTRL_WRTLOCK | GCLK_CLKCTRL_CLKEN;
-
- system_interrupt_leave_critical_section();
-}
-
-/**
- * \brief Determins if the specified Generic Clock channel is locked.
- *
- * \param[in] channel Generic Clock Channel index
- *
- * \return The lock status.
- * \retval true The Generic Clock channel is locked
- * \retval false The Generic Clock channel is not locked
- */
-bool system_gclk_chan_is_locked(
- const uint8_t channel)
-{
- bool locked;
-
- system_interrupt_enter_critical_section();
-
- /* Select the requested generic clock channel */
- *((uint8_t*)&GCLK->CLKCTRL.reg) = channel;
- locked = GCLK->CLKCTRL.bit.WRTLOCK;
-
- system_interrupt_leave_critical_section();
-
- return locked;
-}
-
-/**
- * \brief Retrieves the clock frequency of a Generic Clock channel.
- *
- * Determines the clock frequency (in Hz) of a specified Generic Clock
- * channel, used as a source to a device peripheral module.
- *
- * \param[in] channel Generic Clock Channel index
- *
- * \return The frequency of the generic clock channel, in Hz.
- */
-uint32_t system_gclk_chan_get_hz(
- const uint8_t channel)
-{
- uint8_t gen_id;
-
- system_interrupt_enter_critical_section();
-
- /* Select the requested generic clock channel */
- *((uint8_t*)&GCLK->CLKCTRL.reg) = channel;
- gen_id = GCLK->CLKCTRL.bit.GEN;
-
- system_interrupt_leave_critical_section();
-
- /* Return the clock speed of the associated GCLK generator */
- return system_gclk_gen_get_hz(gen_id);
-}
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/clock/gclk.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/clock/gclk.h
deleted file mode 100644
index 6b0582c..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/clock/gclk.h
+++ /dev/null
@@ -1,297 +0,0 @@
-/**
- * \file
- *
- * \brief SAM Generic Clock Driver
- *
- * Copyright (c) 2012-2020 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef SYSTEM_CLOCK_GCLK_H_INCLUDED
-#define SYSTEM_CLOCK_GCLK_H_INCLUDED
-
-/**
- * \addtogroup asfdoc_sam0_system_clock_group
- *
- * @{
- */
-
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief List of available GCLK generators.
- *
- * List of Available GCLK generators. This enum is used in the peripheral
- * device drivers to select the GCLK generator to be used for its operation.
- *
- * The number of GCLK generators available is device dependent.
- */
-enum gclk_generator {
- /** GCLK generator channel 0 */
- GCLK_GENERATOR_0,
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 0)
- /** GCLK generator channel 1 */
- GCLK_GENERATOR_1,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 1)
- /** GCLK generator channel 2 */
- GCLK_GENERATOR_2,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 2)
- /** GCLK generator channel 3 */
- GCLK_GENERATOR_3,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 3)
- /** GCLK generator channel 4 */
- GCLK_GENERATOR_4,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 4)
- /** GCLK generator channel 5 */
- GCLK_GENERATOR_5,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 5)
- /** GCLK generator channel 6 */
- GCLK_GENERATOR_6,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 6)
- /** GCLK generator channel 7 */
- GCLK_GENERATOR_7,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 7)
- /** GCLK generator channel 8 */
- GCLK_GENERATOR_8,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 8)
- /** GCLK generator channel 9 */
- GCLK_GENERATOR_9,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 9)
- /** GCLK generator channel 10 */
- GCLK_GENERATOR_10,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 10)
- /** GCLK generator channel 11 */
- GCLK_GENERATOR_11,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 11)
- /** GCLK generator channel 12 */
- GCLK_GENERATOR_12,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 12)
- /** GCLK generator channel 13 */
- GCLK_GENERATOR_13,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 13)
- /** GCLK generator channel 14 */
- GCLK_GENERATOR_14,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 14)
- /** GCLK generator channel 15 */
- GCLK_GENERATOR_15,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 15)
- /** GCLK generator channel 16 */
- GCLK_GENERATOR_16,
-#endif
-};
-
-/**
- * \brief Generic Clock Generator configuration structure.
- *
- * Configuration structure for a Generic Clock Generator channel. This
- * structure should be initialized by the
- * \ref system_gclk_gen_get_config_defaults() function before being modified by
- * the user application.
- */
-struct system_gclk_gen_config {
- /** Source clock input channel index, see the \ref system_clock_source */
- uint8_t source_clock;
- /** If \c true, the generator output level is high when disabled */
- bool high_when_disabled;
- /** Integer division factor of the clock output compared to the input */
- uint32_t division_factor;
- /** If \c true, the clock is kept enabled during device standby mode */
- bool run_in_standby;
- /** If \c true, enables GCLK generator clock output to a GPIO pin */
- bool output_enable;
-};
-
-/**
- * \brief Generic Clock configuration structure.
- *
- * Configuration structure for a Generic Clock channel. This structure
- * should be initialized by the \ref system_gclk_chan_get_config_defaults()
- * function before being modified by the user application.
- */
-struct system_gclk_chan_config {
- /** Generic Clock Generator source channel */
- enum gclk_generator source_generator;
-};
-
-/** \name Generic Clock Management
- * @{
- */
-void system_gclk_init(void);
-
-/** @} */
-
-
-/**
- * \name Generic Clock Management (Generators)
- * @{
- */
-
-/**
- * \brief Initializes a Generic Clock Generator configuration structure to defaults.
- *
- * Initializes a given Generic Clock Generator configuration structure to
- * a set of known default values. This function should be called on all
- * new instances of these configuration structures before being modified
- * by the user application.
- *
- * The default configuration is:
- * \li The clock is generated undivided from the source frequency
- * \li The clock generator output is low when the generator is disabled
- * \li The input clock is sourced from input clock channel 0
- * \li The clock will be disabled during sleep
- * \li The clock output will not be routed to a physical GPIO pin
- *
- * \param[out] config Configuration structure to initialize to default values
- */
-static inline void system_gclk_gen_get_config_defaults(
- struct system_gclk_gen_config *const config)
-{
- /* Sanity check arguments */
- Assert(config);
-
- /* Default configuration values */
- config->division_factor = 1;
- config->high_when_disabled = false;
-#if SAML21 || SAML22 || SAMR30 || SAMR34 || SAMR35 || (WLR089)
- config->source_clock = GCLK_SOURCE_OSC16M;
-#elif (SAMC20) || (SAMC21)
- config->source_clock = GCLK_SOURCE_OSC48M;
-#else
- config->source_clock = GCLK_SOURCE_OSC8M;
-#endif
- config->run_in_standby = false;
- config->output_enable = false;
-}
-
-void system_gclk_gen_set_config(
- const uint8_t generator,
- struct system_gclk_gen_config *const config);
-
-void system_gclk_gen_enable(
- const uint8_t generator);
-
-void system_gclk_gen_disable(
- const uint8_t generator);
-
-bool system_gclk_gen_is_enabled(
- const uint8_t generator);
-
-/** @} */
-
-
-/**
- * \name Generic Clock Management (Channels)
- * @{
- */
-
-/**
- * \brief Initializes a Generic Clock configuration structure to defaults.
- *
- * Initializes a given Generic Clock configuration structure to a set of
- * known default values. This function should be called on all new
- * instances of these configuration structures before being modified by the
- * user application.
- *
- * The default configuration is as follows:
- * \li The clock is sourced from the Generic Clock Generator channel 0
- * \li The clock configuration will not be write-locked when set
- *
- * \param[out] config Configuration structure to initialize to default values
- */
-static inline void system_gclk_chan_get_config_defaults(
- struct system_gclk_chan_config *const config)
-{
- /* Sanity check arguments */
- Assert(config);
-
- /* Default configuration values */
- config->source_generator = GCLK_GENERATOR_0;
-}
-
-void system_gclk_chan_set_config(
- const uint8_t channel,
- struct system_gclk_chan_config *const config);
-
-void system_gclk_chan_enable(
- const uint8_t channel);
-
-void system_gclk_chan_disable(
- const uint8_t channel);
-
-bool system_gclk_chan_is_enabled(
- const uint8_t channel);
-
-void system_gclk_chan_lock(
- const uint8_t channel);
-
-bool system_gclk_chan_is_locked(
- const uint8_t channel);
-
-/** @} */
-
-
-/**
- * \name Generic Clock Frequency Retrieval
- * @{
- */
-
-uint32_t system_gclk_gen_get_hz(
- const uint8_t generator);
-
-uint32_t system_gclk_chan_get_hz(
- const uint8_t channel);
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/interrupt/system_interrupt.c b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/interrupt/system_interrupt.c
deleted file mode 100644
index 348a774..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/interrupt/system_interrupt.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/**
- * \file
- *
- * \brief SAM System Interrupt Driver
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#include "system_interrupt.h"
-
-/**
- * \brief Check if a interrupt line is pending.
- *
- * Checks if the requested interrupt vector is pending.
- *
- * \param[in] vector Interrupt vector number to check
- *
- * \returns A boolean identifying if the requested interrupt vector is pending.
- *
- * \retval true Specified interrupt vector is pending
- * \retval false Specified interrupt vector is not pending
- *
- */
-bool system_interrupt_is_pending(
- const enum system_interrupt_vector vector)
-{
- bool result;
-
- if (vector >= _SYSTEM_INTERRUPT_EXTERNAL_VECTOR_START) {
- result = ((NVIC->ISPR[0] & (1 << vector)) != 0);
- } else if (vector == SYSTEM_INTERRUPT_SYSTICK) {
- result = ((SCB->ICSR & SCB_ICSR_PENDSTSET_Msk) != 0);
- } else {
- Assert(false);
- result = false;
- }
-
- return result;
-}
-
-/**
- * \brief Set a interrupt vector as pending.
- *
- * Set the requested interrupt vector as pending (i.e. issues a software
- * interrupt request for the specified vector). The software handler will be
- * handled (if enabled) in a priority order based on vector number and
- * configured priority settings.
- *
- * \param[in] vector Interrupt vector number which is set as pending
- *
- * \returns Status code identifying if the vector was successfully set as
- * pending.
- *
- * \retval STATUS_OK If no error was detected
- * \retval STATUS_INVALID_ARG If an unsupported interrupt vector number was given
- */
-enum status_code system_interrupt_set_pending(
- const enum system_interrupt_vector vector)
-{
- enum status_code status = STATUS_OK;
-
- if (vector >= _SYSTEM_INTERRUPT_EXTERNAL_VECTOR_START) {
- NVIC->ISPR[0] = (1 << vector);
- } else if (vector == SYSTEM_INTERRUPT_NON_MASKABLE) {
- /* Note: Because NMI has highest priority it will be executed
- * immediately after it has been set pending */
- SCB->ICSR = SCB_ICSR_NMIPENDSET_Msk;
- } else if (vector == SYSTEM_INTERRUPT_SYSTICK) {
- SCB->ICSR = SCB_ICSR_PENDSTSET_Msk;
- } else {
- /* The user want to set something unsupported as pending */
- Assert(false);
- status = STATUS_ERR_INVALID_ARG;
- }
-
- return status;
-}
-
-/**
- * \brief Clear pending interrupt vector.
- *
- * Clear a pending interrupt vector, so the software handler is not executed.
- *
- * \param[in] vector Interrupt vector number to clear
- *
- * \returns A status code identifying if the interrupt pending state was
- * successfully cleared.
- *
- * \retval STATUS_OK If no error was detected
- * \retval STATUS_INVALID_ARG If an unsupported interrupt vector number was given
- */
-enum status_code system_interrupt_clear_pending(
- const enum system_interrupt_vector vector)
-{
- enum status_code status = STATUS_OK;
-
- if (vector >= _SYSTEM_INTERRUPT_EXTERNAL_VECTOR_START) {
- NVIC->ICPR[0] = (1 << vector);
- } else if (vector == SYSTEM_INTERRUPT_NON_MASKABLE) {
- /* Note: Clearing of NMI pending interrupts does not make sense and is
- * not supported by the device, as it has the highest priority and will
- * always be executed at the moment it is set */
- return STATUS_ERR_INVALID_ARG;
- } else if (vector == SYSTEM_INTERRUPT_SYSTICK) {
- SCB->ICSR = SCB_ICSR_PENDSTCLR_Msk;
- } else {
- Assert(false);
- status = STATUS_ERR_INVALID_ARG;
- }
-
- return status;
-}
-
-/**
- * \brief Set interrupt vector priority level.
- *
- * Set the priority level of an external interrupt or exception.
- *
- * \param[in] vector Interrupt vector to change
- * \param[in] priority_level New vector priority level to set
- *
- * \returns Status code indicating if the priority level of the interrupt was
- * successfully set.
- *
- * \retval STATUS_OK If no error was detected
- * \retval STATUS_INVALID_ARG If an unsupported interrupt vector number was given
- */
-enum status_code system_interrupt_set_priority(
- const enum system_interrupt_vector vector,
- const enum system_interrupt_priority_level priority_level)
-{
- enum status_code status = STATUS_OK;
-
- if (vector >= _SYSTEM_INTERRUPT_EXTERNAL_VECTOR_START) {
- uint8_t register_num = vector / 4;
- uint8_t priority_pos = ((vector % 4) * 8) + (8 - __NVIC_PRIO_BITS);
-
- NVIC->IP[register_num] =
- (NVIC->IP[register_num] & ~(_SYSTEM_INTERRUPT_PRIORITY_MASK << priority_pos)) |
- (priority_level << priority_pos);
-
- } else if (vector == SYSTEM_INTERRUPT_SYSTICK) {
- SCB->SHP[1] = (priority_level << _SYSTEM_INTERRUPT_SYSTICK_PRI_POS);
- } else {
- Assert(false);
- status = STATUS_ERR_INVALID_ARG;
- }
-
- return status;
-}
-
-/**
- * \brief Get interrupt vector priority level.
- *
- * Retrieves the priority level of the requested external interrupt or exception.
- *
- * \param[in] vector Interrupt vector of which the priority level will be read
- *
- * \return Currently configured interrupt priority level of the given interrupt
- * vector.
- */
-enum system_interrupt_priority_level system_interrupt_get_priority(
- const enum system_interrupt_vector vector)
-{
- uint8_t register_num = vector / 4;
- uint8_t priority_pos = ((vector % 4) * 8) + (8 - __NVIC_PRIO_BITS);
-
- enum system_interrupt_priority_level priority = SYSTEM_INTERRUPT_PRIORITY_LEVEL_0;
-
- if (vector >= 0) {
- priority = (enum system_interrupt_priority_level)
- ((NVIC->IP[register_num] >> priority_pos) & _SYSTEM_INTERRUPT_PRIORITY_MASK);
- } else if (vector == SYSTEM_INTERRUPT_SYSTICK) {
- priority = (enum system_interrupt_priority_level)
- ((SCB->SHP[1] >> _SYSTEM_INTERRUPT_SYSTICK_PRI_POS) & _SYSTEM_INTERRUPT_PRIORITY_MASK);
- }
-
- return priority;
-}
-
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/interrupt/system_interrupt.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/interrupt/system_interrupt.h
deleted file mode 100644
index 76ee5e6..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/interrupt/system_interrupt.h
+++ /dev/null
@@ -1,423 +0,0 @@
-/**
- * \file
- *
- * \brief SAM System Interrupt Driver
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef SYSTEM_INTERRUPT_H_INCLUDED
-#define SYSTEM_INTERRUPT_H_INCLUDED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \defgroup asfdoc_sam0_system_interrupt_group SAM System Interrupt (SYSTEM INTERRUPT) Driver
- *
- * This driver for Atmel® | SMART ARM®-based microcontrollers provides
- * an interface for the configuration and management of internal software and
- * hardware interrupts/exceptions.
- *
- * The following peripheral is used by this module:
- * - NVIC (Nested Vector Interrupt Controller)
- *
- * The following devices can use this module:
- * - Atmel | SMART SAM D20/D21
- * - Atmel | SMART SAM R21
- * - Atmel | SMART SAM D09/D10/D11
- * - Atmel | SMART SAM L21/L22
- * - Atmel | SMART SAM DA1
- * - Atmel | SMART SAM C20/C21
- * - Atmel | SMART SAM HA1
- * - Atmel | SMART SAM R30
- * - Atmel | SMART SAM R34
- * - Atmel | SMART SAM R35
- *
- * The outline of this documentation is as follows:
- * - \ref asfdoc_sam0_system_interrupt_prerequisites
- * - \ref asfdoc_sam0_system_interrupt_module_overview
- * - \ref asfdoc_sam0_system_interrupt_special_considerations
- * - \ref asfdoc_sam0_system_interrupt_extra_info
- * - \ref asfdoc_sam0_system_interrupt_examples
- * - \ref asfdoc_sam0_system_interrupt_api_overview
- *
- *
- * \section asfdoc_sam0_system_interrupt_prerequisites Prerequisites
- *
- * There are no prerequisites for this module.
- *
- *
- * \section asfdoc_sam0_system_interrupt_module_overview Module Overview
- *
- * The ARM® Cortex® M0+ core contains an interrupt and exception vector table, which
- * can be used to configure the device's interrupt handlers; individual
- * interrupts and exceptions can be enabled and disabled, as well as configured
- * with a variable priority.
- *
- * This driver provides a set of wrappers around the core interrupt functions,
- * to expose a simple API for the management of global and individual interrupts
- * within the device.
- *
- * \subsection asfdoc_sam0_system_interrupt_module_overview_criticalsec Critical Sections
- * In some applications it is important to ensure that no interrupts may be
- * executed by the system whilst a critical portion of code is being run; for
- * example, a buffer may be copied from one context to another - during which
- * interrupts must be disabled to avoid corruption of the source buffer contents
- * until the copy has completed. This driver provides a basic API to enter and
- * exit nested critical sections, so that global interrupts can be kept disabled
- * for as long as necessary to complete a critical application code section.
- *
- * \subsection asfdoc_sam0_system_interrupt_module_overview_softints Software Interrupts
- * For some applications, it may be desirable to raise a module or core
- * interrupt via software. For this reason, a set of APIs to set an interrupt or
- * exception as pending are provided to the user application.
- *
- * \section asfdoc_sam0_system_interrupt_special_considerations Special Considerations
- *
- * Interrupts from peripherals in the SAM devices are on a per-module basis;
- * an interrupt raised from any source within a module will cause a single,
- * module-common handler to execute. It is the user application or driver's
- * responsibility to de-multiplex the module-common interrupt to determine the
- * exact interrupt cause.
- *
- * \section asfdoc_sam0_system_interrupt_extra_info Extra Information
- *
- * For extra information, see \ref asfdoc_sam0_system_interrupt_extra. This includes:
- * - \ref asfdoc_sam0_system_interrupt_extra_acronyms
- * - \ref asfdoc_sam0_system_interrupt_extra_dependencies
- * - \ref asfdoc_sam0_system_interrupt_extra_errata
- * - \ref asfdoc_sam0_system_interrupt_extra_history
- *
- *
- * \section asfdoc_sam0_system_interrupt_examples Examples
- *
- * For a list of examples related to this driver, see
- * \ref asfdoc_sam0_system_interrupt_exqsg.
- *
- * \section asfdoc_sam0_system_interrupt_api_overview API Overview
- * @{
- */
-
-#include
-#include
-#include "system_interrupt_features.h"
-
-/**
- * \brief Table of possible system interrupt/exception vector priorities.
- *
- * Table of all possible interrupt and exception vector priorities within the
- * device.
- */
-enum system_interrupt_priority_level {
- /** Priority level 0, the highest possible interrupt priority */
- SYSTEM_INTERRUPT_PRIORITY_LEVEL_0 = 0,
- /** Priority level 1 */
- SYSTEM_INTERRUPT_PRIORITY_LEVEL_1 = 1,
- /** Priority level 2 */
- SYSTEM_INTERRUPT_PRIORITY_LEVEL_2 = 2,
- /** Priority level 3, the lowest possible interrupt priority */
- SYSTEM_INTERRUPT_PRIORITY_LEVEL_3 = 3,
-};
-
-/**
- * \name Critical Section Management
- * @{
- */
-
-/**
- * \brief Enters a critical section.
- *
- * Disables global interrupts. To support nested critical sections, an internal
- * count of the critical section nesting will be kept, so that global interrupts
- * are only re-enabled upon leaving the outermost nested critical section.
- *
- */
-static inline void system_interrupt_enter_critical_section(void)
-{
- cpu_irq_enter_critical();
-}
-
-/**
- * \brief Leaves a critical section.
- *
- * Enables global interrupts. To support nested critical sections, an internal
- * count of the critical section nesting will be kept, so that global interrupts
- * are only re-enabled upon leaving the outermost nested critical section.
- *
- */
-static inline void system_interrupt_leave_critical_section(void)
-{
- cpu_irq_leave_critical();
-}
-
-/** @} */
-
-/**
- * \name Interrupt Enabling/Disabling
- * @{
- */
-
-/**
- * \brief Check if global interrupts are enabled.
- *
- * Checks if global interrupts are currently enabled.
- *
- * \returns A boolean that identifies if the global interrupts are enabled or not.
- *
- * \retval true Global interrupts are currently enabled
- * \retval false Global interrupts are currently disabled
- *
- */
-static inline bool system_interrupt_is_global_enabled(void)
-{
- return cpu_irq_is_enabled();
-}
-
-/**
- * \brief Enables global interrupts.
- *
- * Enables global interrupts in the device to fire any enabled interrupt handlers.
- */
-static inline void system_interrupt_enable_global(void)
-{
- cpu_irq_enable();
-}
-
-/**
- * \brief Disables global interrupts.
- *
- * Disabled global interrupts in the device, preventing any enabled interrupt
- * handlers from executing.
- */
-static inline void system_interrupt_disable_global(void)
-{
- cpu_irq_disable();
-}
-
-/**
- * \brief Checks if an interrupt vector is enabled or not.
- *
- * Checks if a specific interrupt vector is currently enabled.
- *
- * \param[in] vector Interrupt vector number to check
- *
- * \returns A variable identifying if the requested interrupt vector is enabled.
- *
- * \retval true Specified interrupt vector is currently enabled
- * \retval false Specified interrupt vector is currently disabled
- *
- */
-static inline bool system_interrupt_is_enabled(
- const enum system_interrupt_vector vector)
-{
- return (bool)((NVIC->ISER[0] >> (uint32_t)vector) & 0x00000001);
-}
-
-/**
- * \brief Enable interrupt vector.
- *
- * Enables execution of the software handler for the requested interrupt vector.
- *
- * \param[in] vector Interrupt vector to enable
- */
-static inline void system_interrupt_enable(
- const enum system_interrupt_vector vector)
-{
- NVIC->ISER[0] = (uint32_t)(1 << ((uint32_t)vector & 0x0000001f));
-}
-
-/**
- * \brief Disable interrupt vector.
- *
- * Disables execution of the software handler for the requested interrupt vector.
- *
- * \param[in] vector Interrupt vector to disable
- */
-static inline void system_interrupt_disable(
- const enum system_interrupt_vector vector)
-{
- NVIC->ICER[0] = (uint32_t)(1 << ((uint32_t)vector & 0x0000001f));
-}
-
-/** @} */
-
-/**
- * \name Interrupt State Management
- * @{
- */
-
-/**
- * \brief Get active interrupt (if any).
- *
- * Return the vector number for the current executing software handler, if any.
- *
- * \return Interrupt number that is currently executing.
- */
-static inline enum system_interrupt_vector system_interrupt_get_active(void)
-{
- uint32_t IPSR = __get_IPSR();
- /* The IPSR returns the Exception number, which with an offset 16 to IRQ number. */
- return (enum system_interrupt_vector)((IPSR & _SYSTEM_INTERRUPT_IPSR_MASK) - 16);
-}
-
-bool system_interrupt_is_pending(
- const enum system_interrupt_vector vector);
-
-enum status_code system_interrupt_set_pending(
- const enum system_interrupt_vector vector);
-
-enum status_code system_interrupt_clear_pending(
- const enum system_interrupt_vector vector);
-
-/** @} */
-
-/**
- * \name Interrupt Priority Management
- * @{
- */
-
-enum status_code system_interrupt_set_priority(
- const enum system_interrupt_vector vector,
- const enum system_interrupt_priority_level priority_level);
-
-enum system_interrupt_priority_level system_interrupt_get_priority(
- const enum system_interrupt_vector vector);
-
-/** @} */
-
-/** @} */
-
-/**
- * \page asfdoc_sam0_system_interrupt_extra Extra Information for SYSTEM INTERRUPT Driver
- *
- * \section asfdoc_sam0_system_interrupt_extra_acronyms Acronyms
- * The table below presents the acronyms used in this module:
- *
- *
- *
- *
Acronym
- *
Description
- *
- *
- *
ISR
- *
Interrupt Service Routine
- *
- *
- *
NMI
- *
Non-maskable Interrupt
- *
- *
- *
SERCOM
- *
Serial Communication Interface
- *
- *
- *
- *
- * \section asfdoc_sam0_system_interrupt_extra_dependencies Dependencies
- * This driver has the following dependencies:
- *
- * - None
- *
- *
- * \section asfdoc_sam0_system_interrupt_extra_errata Errata
- * There are no errata related to this driver.
- *
- *
- * \section asfdoc_sam0_system_interrupt_extra_history Module History
- * An overview of the module history is presented in the table below, with
- * details on the enhancements and fixes made to the module since its first
- * release. The current version of this corresponds to the newest version in
- * the table.
- *
- *
- *
- *
Changelog
- *
- *
- *
Initial Release
- *
- *
- */
-
-/**
- * \page asfdoc_sam0_system_interrupt_exqsg Examples for SYSTEM INTERRUPT Driver
- *
- * This is a list of the available Quick Start guides (QSGs) and example
- * applications for \ref asfdoc_sam0_system_interrupt_group. QSGs are simple examples with
- * step-by-step instructions to configure and use this driver in a selection of
- * use cases. Note that a QSG can be compiled as a standalone application or be
- * added to the user application.
- *
- * - \subpage asfdoc_sam0_system_interrupt_critsec_use_case
- * - \subpage asfdoc_sam0_system_interrupt_enablemodint_use_case
- *
- * \page asfdoc_sam0_system_interrupt_document_revision_history Document Revision History
- *
- *
- *
- *
Doc. Rev.
- *
Date
- *
Comments
- *
- *
- *
42122E
- *
12/2015
- *
Added support for SAM L21/L22, SAM DA1, SAM D09, and SAM C20/C21
- *
- *
- *
42122D
- *
12/2014
- *
Added support for SAM R21 and SAM D10/D11
- *
- *
- *
42122C
- *
01/2014
- *
Added support for SAM D21
- *
- *
- *
42122B
- *
06/2013
- *
Corrected documentation typos
- *
- *
- *
42122A
- *
06/2013
- *
Initial release
- *
- *
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // #ifndef SYSTEM_INTERRUPT_H_INCLUDED
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21/system_interrupt_features.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21/system_interrupt_features.h
deleted file mode 100644
index 7c40bf6..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21/system_interrupt_features.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/**
- * \file
- *
- * \brief SAM D21 System Interrupt Driver
- *
- * Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef SYSTEM_INTERRUPT_FEATURES_H_INCLUDED
-#define SYSTEM_INTERRUPT_FEATURES_H_INCLUDED
-
-#if !defined(__DOXYGEN__)
-
-/* Generates a interrupt vector table enum list entry for a given module type
- and index (e.g. "SYSTEM_INTERRUPT_MODULE_TC0 = TC0_IRQn,"). */
-# define _MODULE_IRQn(n, module) \
- SYSTEM_INTERRUPT_MODULE_##module##n = module##n##_IRQn,
-
-/* Generates interrupt vector table enum list entries for all instances of a
- given module type on the selected device. */
-# define _SYSTEM_INTERRUPT_MODULES(name) \
- MREPEAT(name##_INST_NUM, _MODULE_IRQn, name)
-
-# define _SYSTEM_INTERRUPT_IPSR_MASK 0x0000003f
-# define _SYSTEM_INTERRUPT_PRIORITY_MASK 0x00000003
-
-# define _SYSTEM_INTERRUPT_EXTERNAL_VECTOR_START 0
-
-# define _SYSTEM_INTERRUPT_SYSTICK_PRI_POS 30
-#endif
-
-/**
- * \addtogroup asfdoc_sam0_system_interrupt_group
- * @{
- */
-
-/**
- * \brief Table of possible system interrupt/exception vector numbers.
- *
- * Table of all possible interrupt and exception vector indexes within the
- * SAM D21 device. Check peripherals configuration in SAM D21 datasheet for
- * available vector index for specific device.
- *
- */
-#if defined(__DOXYGEN__)
-/** \note The actual enumeration name is "system_interrupt_vector". */
-enum system_interrupt_vector_samd21 {
-#else
-enum system_interrupt_vector {
-#endif
- /** Interrupt vector index for a NMI interrupt */
- SYSTEM_INTERRUPT_NON_MASKABLE = NonMaskableInt_IRQn,
- /** Interrupt vector index for a Hard Fault memory access exception */
- SYSTEM_INTERRUPT_HARD_FAULT = HardFault_IRQn,
- /** Interrupt vector index for a Supervisor Call exception */
- SYSTEM_INTERRUPT_SV_CALL = SVCall_IRQn,
- /** Interrupt vector index for a Pending Supervisor interrupt */
- SYSTEM_INTERRUPT_PENDING_SV = PendSV_IRQn,
- /** Interrupt vector index for a System Tick interrupt */
- SYSTEM_INTERRUPT_SYSTICK = SysTick_IRQn,
-
- /** Interrupt vector index for a Power Manager peripheral interrupt */
- SYSTEM_INTERRUPT_MODULE_PM = PM_IRQn,
- /** Interrupt vector index for a System Control peripheral interrupt */
- SYSTEM_INTERRUPT_MODULE_SYSCTRL = SYSCTRL_IRQn,
- /** Interrupt vector index for a Watch Dog peripheral interrupt */
- SYSTEM_INTERRUPT_MODULE_WDT = WDT_IRQn,
- /** Interrupt vector index for a Real Time Clock peripheral interrupt */
- SYSTEM_INTERRUPT_MODULE_RTC = RTC_IRQn,
- /** Interrupt vector index for an External Interrupt peripheral interrupt */
- SYSTEM_INTERRUPT_MODULE_EIC = EIC_IRQn,
- /** Interrupt vector index for a Non Volatile Memory Controller interrupt */
- SYSTEM_INTERRUPT_MODULE_NVMCTRL = NVMCTRL_IRQn,
- /** Interrupt vector index for a Direct Memory Access interrupt */
- SYSTEM_INTERRUPT_MODULE_DMA = DMAC_IRQn,
-#if defined(__DOXYGEN__) || defined(ID_USB)
- /** Interrupt vector index for a Universal Serial Bus interrupt */
- SYSTEM_INTERRUPT_MODULE_USB = USB_IRQn,
-#endif
- /** Interrupt vector index for an Event System interrupt */
- SYSTEM_INTERRUPT_MODULE_EVSYS = EVSYS_IRQn,
-#if defined(__DOXYGEN__)
- /** Interrupt vector index for a SERCOM peripheral interrupt.
- *
- * Each specific device may contain several SERCOM peripherals; each module
- * instance will have its own entry in the table, with the instance number
- * substituted for "n" in the entry name (e.g.
- * \c SYSTEM_INTERRUPT_MODULE_SERCOM0).
- */
- SYSTEM_INTERRUPT_MODULE_SERCOMn = SERCOMn_IRQn,
-
- /** Interrupt vector index for a Timer/Counter Control peripheral interrupt.
- *
- * Each specific device may contain several TCC peripherals; each module
- * instance will have its own entry in the table, with the instance number
- * substituted for "n" in the entry name (e.g.
- * \c SYSTEM_INTERRUPT_MODULE_TCC0).
- */
- SYSTEM_INTERRUPT_MODULE_TCCn = TCCn_IRQn,
-
- /** Interrupt vector index for a Timer/Counter peripheral interrupt.
- *
- * Each specific device may contain several TC peripherals; each module
- * instance will have its own entry in the table, with the instance number
- * substituted for "n" in the entry name (e.g.
- * \c SYSTEM_INTERRUPT_MODULE_TC3).
- */
- SYSTEM_INTERRUPT_MODULE_TCn = TCn_IRQn,
-#else
- _SYSTEM_INTERRUPT_MODULES(SERCOM)
-
- _SYSTEM_INTERRUPT_MODULES(TCC)
-
- SYSTEM_INTERRUPT_MODULE_TC3 = TC3_IRQn,
- SYSTEM_INTERRUPT_MODULE_TC4 = TC4_IRQn,
- SYSTEM_INTERRUPT_MODULE_TC5 = TC5_IRQn,
-# if defined(ID_TC6)
- SYSTEM_INTERRUPT_MODULE_TC6 = TC6_IRQn,
-# endif
-# if defined(ID_TC7)
- SYSTEM_INTERRUPT_MODULE_TC7 = TC7_IRQn,
-# endif
-#endif
-
-#if defined(__DOXYGEN__) || defined(ID_ADC)
- /** Interrupt vector index for an Analog-to-Digital peripheral interrupt */
- SYSTEM_INTERRUPT_MODULE_ADC = ADC_IRQn,
-#endif
-
-#if defined(__DOXYGEN__) || defined(ID_AC)
- /** Interrupt vector index for an Analog Comparator peripheral interrupt */
- SYSTEM_INTERRUPT_MODULE_AC = AC_IRQn,
-#endif
-
-#if defined(__DOXYGEN__) || defined(ID_DAC)
- /** Interrupt vector index for a Digital-to-Analog peripheral interrupt */
- SYSTEM_INTERRUPT_MODULE_DAC = DAC_IRQn,
-#endif
-#if defined(__DOXYGEN__) || defined(ID_PTC)
- /** Interrupt vector index for a Peripheral Touch Controller peripheral
- * interrupt */
- SYSTEM_INTERRUPT_MODULE_PTC = PTC_IRQn,
-#endif
-#if defined(__DOXYGEN__) || defined(ID_I2S)
- /** Interrupt vector index for a Inter-IC Sound Interface peripheral
- * interrupt */
- SYSTEM_INTERRUPT_MODULE_I2S = I2S_IRQn,
-#endif
-#if defined(__DOXYGEN__) || defined(ID_AC1)
- /** Interrupt vector index for an Analog Comparator 1 peripheral interrupt */
- SYSTEM_INTERRUPT_MODULE_AC1 = AC1_IRQn,
-#endif
-};
-
-/** @} */
-
-#endif
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/pinmux/pinmux.c b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/pinmux/pinmux.c
deleted file mode 100644
index 7eeba52..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/pinmux/pinmux.c
+++ /dev/null
@@ -1,301 +0,0 @@
-/**
- * \file
- *
- * \brief SAM Pin Multiplexer Driver
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#include
-
-/**
- * \internal
- * Writes out a given configuration of a Port pin configuration to the
- * hardware module.
- *
- * \note If the pin direction is set as an output, the pull-up/pull-down input
- * configuration setting is ignored.
- *
- * \param[in] port Base of the PORT module to configure
- * \param[in] pin_mask Mask of the port pin to configure
- * \param[in] config Configuration settings for the pin
- */
-static void _system_pinmux_config(
- PortGroup *const port,
- const uint32_t pin_mask,
- const struct system_pinmux_config *const config)
-{
- Assert(port);
- Assert(config);
-
- /* Track the configuration bits into a temporary variable before writing */
- uint32_t pin_cfg = 0;
-
- /* Enabled powersave mode, don't create configuration */
- if (!config->powersave) {
- /* Enable the pin peripheral MUX flag if non-GPIO selected (pinmux will
- * be written later) and store the new MUX mask */
- if (config->mux_position != SYSTEM_PINMUX_GPIO) {
- pin_cfg |= PORT_WRCONFIG_PMUXEN;
- pin_cfg |= (config->mux_position << PORT_WRCONFIG_PMUX_Pos);
- }
-
- /* Check if the user has requested that the input buffer be enabled */
- if ((config->direction == SYSTEM_PINMUX_PIN_DIR_INPUT) ||
- (config->direction == SYSTEM_PINMUX_PIN_DIR_OUTPUT_WITH_READBACK)) {
- /* Enable input buffer flag */
- pin_cfg |= PORT_WRCONFIG_INEN;
-
- /* Enable pull-up/pull-down control flag if requested */
- if (config->input_pull != SYSTEM_PINMUX_PIN_PULL_NONE) {
- pin_cfg |= PORT_WRCONFIG_PULLEN;
- }
-
- /* Clear the port DIR bits to disable the output buffer */
- port->DIRCLR.reg = pin_mask;
- }
-
- /* Check if the user has requested that the output buffer be enabled */
- if ((config->direction == SYSTEM_PINMUX_PIN_DIR_OUTPUT) ||
- (config->direction == SYSTEM_PINMUX_PIN_DIR_OUTPUT_WITH_READBACK)) {
- /* Cannot use a pull-up if the output driver is enabled,
- * if requested the input buffer can only sample the current
- * output state */
- pin_cfg &= ~PORT_WRCONFIG_PULLEN;
- }
- } else {
- port->DIRCLR.reg = pin_mask;
- }
-
- /* The Write Configuration register (WRCONFIG) requires the
- * pins to to grouped into two 16-bit half-words - split them out here */
- uint32_t lower_pin_mask = (pin_mask & 0xFFFF);
- uint32_t upper_pin_mask = (pin_mask >> 16);
-
- /* Configure the lower 16-bits of the port to the desired configuration,
- * including the pin peripheral multiplexer just in case it is enabled */
- port->WRCONFIG.reg
- = (lower_pin_mask << PORT_WRCONFIG_PINMASK_Pos) |
- pin_cfg | PORT_WRCONFIG_WRPMUX | PORT_WRCONFIG_WRPINCFG;
-
- /* Configure the upper 16-bits of the port to the desired configuration,
- * including the pin peripheral multiplexer just in case it is enabled */
- port->WRCONFIG.reg
- = (upper_pin_mask << PORT_WRCONFIG_PINMASK_Pos) |
- pin_cfg | PORT_WRCONFIG_WRPMUX | PORT_WRCONFIG_WRPINCFG |
- PORT_WRCONFIG_HWSEL;
-
- if(!config->powersave) {
- /* Set the pull-up state once the port pins are configured if one was
- * requested and it does not violate the valid set of port
- * configurations */
- if (pin_cfg & PORT_WRCONFIG_PULLEN) {
- /* Set the OUT register bits to enable the pull-up if requested,
- * clear to enable pull-down */
- if (config->input_pull == SYSTEM_PINMUX_PIN_PULL_UP) {
- port->OUTSET.reg = pin_mask;
- } else {
- port->OUTCLR.reg = pin_mask;
- }
- }
-
- /* Check if the user has requested that the output buffer be enabled */
- if ((config->direction == SYSTEM_PINMUX_PIN_DIR_OUTPUT) ||
- (config->direction == SYSTEM_PINMUX_PIN_DIR_OUTPUT_WITH_READBACK)) {
- /* Set the port DIR bits to enable the output buffer */
- port->DIRSET.reg = pin_mask;
- }
- }
-}
-
-/**
- * \brief Writes a Port pin configuration to the hardware module.
- *
- * Writes out a given configuration of a Port pin configuration to the hardware
- * module.
- *
- * \note If the pin direction is set as an output, the pull-up/pull-down input
- * configuration setting is ignored.
- *
- * \param[in] gpio_pin Index of the GPIO pin to configure
- * \param[in] config Configuration settings for the pin
- */
-void system_pinmux_pin_set_config(
- const uint8_t gpio_pin,
- const struct system_pinmux_config *const config)
-{
- PortGroup *const port = system_pinmux_get_group_from_gpio_pin(gpio_pin);
- uint32_t pin_mask = (1UL << (gpio_pin % 32));
-
- _system_pinmux_config(port, pin_mask, config);
-}
-
-/**
- * \brief Writes a Port pin group configuration to the hardware module.
- *
- * Writes out a given configuration of a Port pin group configuration to the
- * hardware module.
- *
- * \note If the pin direction is set as an output, the pull-up/pull-down input
- * configuration setting is ignored.
- *
- * \param[in] port Base of the PORT module to configure
- * \param[in] mask Mask of the port pin(s) to configure
- * \param[in] config Configuration settings for the pin
- */
-void system_pinmux_group_set_config(
- PortGroup *const port,
- const uint32_t mask,
- const struct system_pinmux_config *const config)
-{
- Assert(port);
-
- for (int i = 0; i < 32; i++) {
- if (mask & (1UL << i)) {
- _system_pinmux_config(port, (1UL << i), config);
- }
- }
-}
-
-/**
- * \brief Configures the input sampling mode for a group of pins.
- *
- * Configures the input sampling mode for a group of pins, to
- * control when the physical I/O pin value is sampled and
- * stored inside the microcontroller.
- *
- * \param[in] port Base of the PORT module to configure
- * \param[in] mask Mask of the port pin(s) to configure
- * \param[in] mode New pin sampling mode to configure
- */
-void system_pinmux_group_set_input_sample_mode(
- PortGroup *const port,
- const uint32_t mask,
- const enum system_pinmux_pin_sample mode)
-{
- Assert(port);
-
- if (mode == SYSTEM_PINMUX_PIN_SAMPLE_ONDEMAND) {
- port->CTRL.reg |= mask;
- } else {
- port->CTRL.reg &= ~mask;
- }
-}
-
-#ifdef FEATURE_SYSTEM_PINMUX_SLEWRATE_LIMITER
-/**
- * \brief Configures the output slew rate mode for a group of pins.
- *
- * Configures the output slew rate mode for a group of pins, to
- * control the speed at which the physical output pin can react to
- * logical changes of the I/O pin value.
- *
- * \param[in] port Base of the PORT module to configure
- * \param[in] mask Mask of the port pin(s) to configure
- * \param[in] mode New pin slew rate mode to configure
- */
-void system_pinmux_group_set_output_slew_rate(
- PortGroup *const port,
- const uint32_t mask,
- const enum system_pinmux_pin_slew_rate mode)
-{
- Assert(port);
-
- for (int i = 0; i < 32; i++) {
- if (mask & (1UL << i)) {
- if (mode == SYSTEM_PINMUX_PIN_SLEW_RATE_LIMITED) {
- port->PINCFG[i].reg |= PORT_PINCFG_SLEWLIM;
- } else {
- port->PINCFG[i].reg &= ~PORT_PINCFG_SLEWLIM;
- }
- }
- }
-}
-#endif
-
-#ifdef FEATURE_SYSTEM_PINMUX_DRIVE_STRENGTH
-/**
- * \brief Configures the output driver strength mode for a group of pins.
- *
- * Configures the output drive strength for a group of pins, to
- * control the amount of current the pad is able to sink/source.
- *
- * \param[in] port Base of the PORT module to configure
- * \param[in] mask Mask of the port pin(s) to configure
- * \param[in] mode New output driver strength mode to configure
- */
-void system_pinmux_group_set_output_strength(
- PortGroup *const port,
- const uint32_t mask,
- const enum system_pinmux_pin_strength mode)
-{
- Assert(port);
-
- for (int i = 0; i < 32; i++) {
- if (mask & (1UL << i)) {
- if (mode == SYSTEM_PINMUX_PIN_STRENGTH_HIGH) {
- port->PINCFG[i].reg |= PORT_PINCFG_DRVSTR;
- } else {
- port->PINCFG[i].reg &= ~PORT_PINCFG_DRVSTR;
- }
- }
- }
-}
-#endif
-
-#ifdef FEATURE_SYSTEM_PINMUX_OPEN_DRAIN
-/**
- * \brief Configures the output driver mode for a group of pins.
- *
- * Configures the output driver mode for a group of pins, to
- * control the pad behavior.
- *
- * \param[in] port Base of the PORT module to configure
- * \param[in] mask Mask of the port pin(s) to configure
- * \param[in] mode New pad output driver mode to configure
- */
-void system_pinmux_group_set_output_drive(
- PortGroup *const port,
- const uint32_t mask,
- const enum system_pinmux_pin_drive mode)
-{
- Assert(port);
-
- for (int i = 0; i < 32; i++) {
- if (mask & (1UL << i)) {
- if (mode == SYSTEM_PINMUX_PIN_DRIVE_OPEN_DRAIN) {
- port->PINCFG[i].reg |= PORT_PINCFG_ODRAIN;
- } else {
- port->PINCFG[i].reg &= ~PORT_PINCFG_ODRAIN;
- }
- }
- }
-}
-#endif
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/pinmux/pinmux.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/pinmux/pinmux.h
deleted file mode 100644
index 40dd09e..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/pinmux/pinmux.h
+++ /dev/null
@@ -1,669 +0,0 @@
-/**
- * \file
- *
- * \brief SAM Pin Multiplexer Driver
- *
- * Copyright (c) 2012-2020 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef PINMUX_H_INCLUDED
-#define PINMUX_H_INCLUDED
-
-/**
- * \defgroup asfdoc_sam0_system_pinmux_group SAM System Pin Multiplexer (SYSTEM PINMUX) Driver
- *
- * This driver for Atmel® | SMART ARM®-based microcontrollers provides
- * an interface for the configuration and management of the device's physical
- * I/O Pins, to alter the direction and input/drive characteristics as well as
- * to configure the pin peripheral multiplexer selection.
- *
- * The following peripheral is used by this module:
- * - PORT (Port I/O Management)
- *
- * The following devices can use this module:
- * - Atmel | SMART SAM D20/D21
- * - Atmel | SMART SAM R21
- * - Atmel | SMART SAM D09/D10/D11
- * - Atmel | SMART SAM L21/L22
- * - Atmel | SMART SAM DA1
- * - Atmel | SMART SAM C20/C21
- * - Atmel | SMART SAM HA1
- * - Atmel | SMART SAM R30
- * - Atmel | SMART SAM R34
- * - Atmel | SMART SAM R35
- *
- * The outline of this documentation is as follows:
- * - \ref asfdoc_sam0_system_pinmux_prerequisites
- * - \ref asfdoc_sam0_system_pinmux_module_overview
- * - \ref asfdoc_sam0_system_pinmux_special_considerations
- * - \ref asfdoc_sam0_system_pinmux_extra_info
- * - \ref asfdoc_sam0_system_pinmux_examples
- * - \ref asfdoc_sam0_system_pinmux_api_overview
- *
- *
- * \section asfdoc_sam0_system_pinmux_prerequisites Prerequisites
- *
- * There are no prerequisites for this module.
- *
- *
- * \section asfdoc_sam0_system_pinmux_module_overview Module Overview
- *
- * The SAM devices contain a number of General Purpose I/O pins, used to
- * interface the user application logic and internal hardware peripherals to
- * an external system. The Pin Multiplexer (PINMUX) driver provides a method
- * of configuring the individual pin peripheral multiplexers to select
- * alternate pin functions.
- *
- * \subsection asfdoc_sam0_system_pinmux_features Driver Feature Macro Definition
- *
- *
- *
Driver Feature Macro
- *
Supported devices
- *
- *
- *
FEATURE_SYSTEM_PINMUX_DRIVE_STRENGTH
- *
SAM L21, SAM C20/C21, SAM R34/R35
- *
- *
- * \note The specific features are only available in the driver when the
- * selected device supports those features.
- *
- * \subsection asfdoc_sam0_system_pinmux_physical_logical_pins Physical and Logical GPIO Pins
- * SAM devices use two naming conventions for the I/O pins in the device; one
- * physical and one logical. Each physical pin on a device package is assigned
- * both a physical port and pin identifier (e.g. "PORTA.0") as well as a
- * monotonically incrementing logical GPIO number (e.g. "GPIO0"). While the
- * former is used to map physical pins to their physical internal device module
- * counterparts, for simplicity the design of this driver uses the logical GPIO
- * numbers instead.
- *
- * \subsection asfdoc_sam0_system_pinmux_peripheral_muxing Peripheral Multiplexing
- * SAM devices contain a peripheral MUX, which is individually controllable
- * for each I/O pin of the device. The peripheral MUX allows you to select the
- * function of a physical package pin - whether it will be controlled as a user
- * controllable GPIO pin, or whether it will be connected internally to one of
- * several peripheral modules (such as an I2C module). When a pin is
- * configured in GPIO mode, other peripherals connected to the same pin will be
- * disabled.
- *
- * \subsection asfdoc_sam0_system_pinmux_pad_characteristics Special Pad Characteristics
- * There are several special modes that can be selected on one or more I/O pins
- * of the device, which alter the input and output characteristics of the pad.
- *
- * \subsubsection asfdoc_sam0_system_pinmux_drive_strength Drive Strength
- * The Drive Strength configures the strength of the output driver on the
- * pad. Normally, there is a fixed current limit that each I/O pin can safely
- * drive, however some I/O pads offer a higher drive mode which increases this
- * limit for that I/O pin at the expense of an increased power consumption.
- *
- * \subsubsection asfdoc_sam0_system_pinmux_slew_rate Slew Rate
- * The Slew Rate configures the slew rate of the output driver, limiting the
- * rate at which the pad output voltage can change with time.
- *
- * \subsubsection asfdoc_sam0_system_pinmux_input_sample_mode Input Sample Mode
- * The Input Sample Mode configures the input sampler buffer of the pad. By
- * default, the input buffer is only sampled "on-demand", i.e. when the user
- * application attempts to read from the input buffer. This mode is the most
- * power efficient, but increases the latency of the input sample by two clock
- * cycles of the port clock. To reduce latency, the input sampler can instead
- * be configured to always sample the input buffer on each port clock cycle, at
- * the expense of an increased power consumption.
- *
- * \subsection asfdoc_sam0_system_pinmux_module_overview_physical Physical Connection
- *
- * \ref asfdoc_sam0_system_pinmux_intconnections "The diagram below" shows
- * how this module is interconnected within the device:
- *
- * \anchor asfdoc_sam0_system_pinmux_intconnections
- * \dot
- * digraph overview {
- * node [label="Port Pad" shape=square] pad;
- *
- * subgraph driver {
- * node [label="Peripheral MUX" shape=trapezium] pinmux;
- * node [label="GPIO Module" shape=ellipse shape=ellipse style=filled fillcolor=lightgray] gpio;
- * node [label="Other Peripheral Modules" shape=ellipse style=filled fillcolor=lightgray] peripherals;
- * }
- *
- * pinmux -> gpio;
- * pad -> pinmux;
- * pinmux -> peripherals;
- * }
- * \enddot
- *
- * \section asfdoc_sam0_system_pinmux_special_considerations Special Considerations
- *
- * The SAM port pin input sampling mode is set in groups of four physical
- * pins; setting the sampling mode of any pin in a sub-group of eight I/O pins
- * will configure the sampling mode of the entire sub-group.
- *
- * High Drive Strength output driver mode is not available on all device pins -
- * refer to your device specific datasheet.
- *
- *
- * \section asfdoc_sam0_system_pinmux_extra_info Extra Information
- *
- * For extra information, see \ref asfdoc_sam0_system_pinmux_extra. This includes:
- * - \ref asfdoc_sam0_system_pinmux_extra_acronyms
- * - \ref asfdoc_sam0_system_pinmux_extra_dependencies
- * - \ref asfdoc_sam0_system_pinmux_extra_errata
- * - \ref asfdoc_sam0_system_pinmux_extra_history
- *
- *
- * \section asfdoc_sam0_system_pinmux_examples Examples
- *
- * For a list of examples related to this driver, see
- * \ref asfdoc_sam0_system_pinmux_exqsg.
- *
- *
- * \section asfdoc_sam0_system_pinmux_api_overview API Overview
- * @{
- */
-
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*@{*/
-#if (SAML21) || (SAMC20) || (SAMC21) || (SAMD21) || (SAMD10) || (SAMD11) || (SAMR30) || (SAMR34) || (SAMR35) || (WLR089) || defined(__DOXYGEN__)
-/** Output Driver Strength Selection feature support */
-# define FEATURE_SYSTEM_PINMUX_DRIVE_STRENGTH
-#endif
-/*@}*/
-
-/** Peripheral multiplexer index to select GPIO mode for a pin */
-#define SYSTEM_PINMUX_GPIO (1 << 7)
-
-/**
- * \brief Port pin direction configuration enum.
- *
- * Enum for the possible pin direction settings of the port pin configuration
- * structure, to indicate the direction the pin should use.
- */
-enum system_pinmux_pin_dir {
- /** The pin's input buffer should be enabled, so that the pin state can
- * be read */
- SYSTEM_PINMUX_PIN_DIR_INPUT,
- /** The pin's output buffer should be enabled, so that the pin state can
- * be set (but not read back) */
- SYSTEM_PINMUX_PIN_DIR_OUTPUT,
- /** The pin's output and input buffers should both be enabled, so that the
- * pin state can be set and read back */
- SYSTEM_PINMUX_PIN_DIR_OUTPUT_WITH_READBACK,
-};
-
-/**
- * \brief Port pin input pull configuration enum.
- *
- * Enum for the possible pin pull settings of the port pin configuration
- * structure, to indicate the type of logic level pull the pin should use.
- */
-enum system_pinmux_pin_pull {
- /** No logical pull should be applied to the pin */
- SYSTEM_PINMUX_PIN_PULL_NONE,
- /** Pin should be pulled up when idle */
- SYSTEM_PINMUX_PIN_PULL_UP,
- /** Pin should be pulled down when idle */
- SYSTEM_PINMUX_PIN_PULL_DOWN,
-};
-
-/**
- * \brief Port pin digital input sampling mode enum.
- *
- * Enum for the possible input sampling modes for the port pin configuration
- * structure, to indicate the type of sampling a port pin should use.
- */
-enum system_pinmux_pin_sample {
- /** Pin input buffer should continuously sample the pin state */
- SYSTEM_PINMUX_PIN_SAMPLE_CONTINUOUS,
- /** Pin input buffer should be enabled when the IN register is read */
- SYSTEM_PINMUX_PIN_SAMPLE_ONDEMAND,
-};
-
-/**
- * \brief Port pin configuration structure.
- *
- * Configuration structure for a port pin instance. This structure should
- * be initialized by the \ref system_pinmux_get_config_defaults() function
- * before being modified by the user application.
- */
-struct system_pinmux_config {
- /** MUX index of the peripheral that should control the pin, if peripheral
- * control is desired. For GPIO use, this should be set to
- * \ref SYSTEM_PINMUX_GPIO. */
- uint8_t mux_position;
-
- /** Port buffer input/output direction */
- enum system_pinmux_pin_dir direction;
-
- /** Logic level pull of the input buffer */
- enum system_pinmux_pin_pull input_pull;
-
- /** Enable lowest possible powerstate on the pin
- *
- * \note All other configurations will be ignored, the pin will be disabled.
- */
- bool powersave;
-};
-
-/** \name Configuration and Initialization
- * @{
- */
-
-/**
- * \brief Initializes a Port pin configuration structure to defaults.
- *
- * Initializes a given Port pin configuration structure to a set of
- * known default values. This function should be called on all new
- * instances of these configuration structures before being modified by the
- * user application.
- *
- * The default configuration is as follows:
- * \li Non peripheral (i.e. GPIO) controlled
- * \li Input mode with internal pull-up enabled
- *
- * \param[out] config Configuration structure to initialize to default values
- */
-static inline void system_pinmux_get_config_defaults(
- struct system_pinmux_config *const config)
-{
- /* Sanity check arguments */
- Assert(config);
-
- /* Default configuration values */
- config->mux_position = SYSTEM_PINMUX_GPIO;
- config->direction = SYSTEM_PINMUX_PIN_DIR_INPUT;
- config->input_pull = SYSTEM_PINMUX_PIN_PULL_UP;
- config->powersave = false;
-}
-
-void system_pinmux_pin_set_config(
- const uint8_t gpio_pin,
- const struct system_pinmux_config *const config);
-
-void system_pinmux_group_set_config(
- PortGroup *const port,
- const uint32_t mask,
- const struct system_pinmux_config *const config);
-
-/** @} */
-
-/** \name Special Mode Configuration (Physical Group Orientated)
- * @{
- */
-
-/**
- * \brief Retrieves the PORT module group instance from a given GPIO pin number.
- *
- * Retrieves the PORT module group instance associated with a given logical
- * GPIO pin number.
- *
- * \param[in] gpio_pin Index of the GPIO pin to convert
- *
- * \return Base address of the associated PORT module.
- */
-static inline PortGroup* system_pinmux_get_group_from_gpio_pin(
- const uint8_t gpio_pin)
-{
- uint8_t port_index = (gpio_pin / 128);
- uint8_t group_index = (gpio_pin / 32);
-
- /* Array of available ports */
- Port *const ports[PORT_INST_NUM] = PORT_INSTS;
-
- if (port_index < PORT_INST_NUM) {
- return &(ports[port_index]->Group[group_index]);
- } else {
- Assert(false);
- return NULL;
- }
-}
-
-void system_pinmux_group_set_input_sample_mode(
- PortGroup *const port,
- const uint32_t mask,
- const enum system_pinmux_pin_sample mode);
-
-/** @} */
-
-/** \name Special Mode Configuration (Logical Pin Orientated)
- * @{
- */
-
-/**
- * \brief Retrieves the currently selected MUX position of a logical pin.
- *
- * Retrieves the selected MUX peripheral on a given logical GPIO pin.
- *
- * \param[in] gpio_pin Index of the GPIO pin to configure
- *
- * \return Currently selected peripheral index on the specified pin.
- */
-static inline uint8_t system_pinmux_pin_get_mux_position(
- const uint8_t gpio_pin)
-{
- PortGroup *const port = system_pinmux_get_group_from_gpio_pin(gpio_pin);
- uint32_t pin_index = (gpio_pin % 32);
-
- if (!(port->PINCFG[pin_index].reg & PORT_PINCFG_PMUXEN)) {
- return SYSTEM_PINMUX_GPIO;
- }
-
- uint32_t pmux_reg = port->PMUX[pin_index / 2].reg;
-
- if (pin_index & 1) {
- return (pmux_reg & PORT_PMUX_PMUXO_Msk) >> PORT_PMUX_PMUXO_Pos;
- }
- else {
- return (pmux_reg & PORT_PMUX_PMUXE_Msk) >> PORT_PMUX_PMUXE_Pos;
- }
-}
-
-/**
- * \brief Configures the input sampling mode for a GPIO pin.
- *
- * Configures the input sampling mode for a GPIO input, to
- * control when the physical I/O pin value is sampled and
- * stored inside the microcontroller.
- *
- * \param[in] gpio_pin Index of the GPIO pin to configure
- * \param[in] mode New pin sampling mode to configure
- */
-static inline void system_pinmux_pin_set_input_sample_mode(
- const uint8_t gpio_pin,
- const enum system_pinmux_pin_sample mode)
-{
- PortGroup* const port = system_pinmux_get_group_from_gpio_pin(gpio_pin);
- uint32_t pin_index = (gpio_pin % 32);
-
- if (mode == SYSTEM_PINMUX_PIN_SAMPLE_ONDEMAND) {
- port->CTRL.reg |= (1 << pin_index);
- } else {
- port->CTRL.reg &= ~(1 << pin_index);
- }
-}
-
-/** @} */
-
-#ifdef FEATURE_SYSTEM_PINMUX_DRIVE_STRENGTH
-/**
- * \brief Port pin drive output strength enum.
- *
- * Enum for the possible output drive strengths for the port pin
- * configuration structure, to indicate the driver strength the pin should
- * use.
- */
-enum system_pinmux_pin_strength {
- /** Normal output driver strength */
- SYSTEM_PINMUX_PIN_STRENGTH_NORMAL,
- /** High current output driver strength */
- SYSTEM_PINMUX_PIN_STRENGTH_HIGH,
-};
-
-/**
- * \brief Configures the output driver strength mode for a GPIO pin.
- *
- * Configures the output drive strength for a GPIO output, to
- * control the amount of current the pad is able to sink/source.
- *
- * \param[in] gpio_pin Index of the GPIO pin to configure
- * \param[in] mode New output driver strength mode to configure
- */
-static inline void system_pinmux_pin_set_output_strength(
- const uint8_t gpio_pin,
- const enum system_pinmux_pin_strength mode)
-{
- PortGroup* const port = system_pinmux_get_group_from_gpio_pin(gpio_pin);
- uint32_t pin_index = (gpio_pin % 32);
-
- if (mode == SYSTEM_PINMUX_PIN_STRENGTH_HIGH) {
- port->PINCFG[pin_index].reg |= PORT_PINCFG_DRVSTR;
- }
- else {
- port->PINCFG[pin_index].reg &= ~PORT_PINCFG_DRVSTR;
- }
-}
-
-void system_pinmux_group_set_output_strength(
- PortGroup *const port,
- const uint32_t mask,
- const enum system_pinmux_pin_strength mode);
-#endif
-
-#ifdef FEATURE_SYSTEM_PINMUX_SLEWRATE_LIMITER
-/**
- * \brief Port pin output slew rate enum.
- *
- * Enum for the possible output drive slew rates for the port pin
- * configuration structure, to indicate the driver slew rate the pin should
- * use.
- */
-enum system_pinmux_pin_slew_rate {
- /** Normal pin output slew rate */
- SYSTEM_PINMUX_PIN_SLEW_RATE_NORMAL,
- /** Enable slew rate limiter on the pin */
- SYSTEM_PINMUX_PIN_SLEW_RATE_LIMITED,
-};
-
-/**
- * \brief Configures the output slew rate mode for a GPIO pin.
- *
- * Configures the output slew rate mode for a GPIO output, to
- * control the speed at which the physical output pin can react to
- * logical changes of the I/O pin value.
- *
- * \param[in] gpio_pin Index of the GPIO pin to configure
- * \param[in] mode New pin slew rate mode to configure
- */
-static inline void system_pinmux_pin_set_output_slew_rate(
- const uint8_t gpio_pin,
- const enum system_pinmux_pin_slew_rate mode)
-{
- PortGroup* const port = system_pinmux_get_group_from_gpio_pin(gpio_pin);
- uint32_t pin_index = (gpio_pin % 32);
-
- if (mode == SYSTEM_PINMUX_PIN_SLEW_RATE_LIMITED) {
- port->PINCFG[pin_index].reg |= PORT_PINCFG_SLEWLIM;
- }
- else {
- port->PINCFG[pin_index].reg &= ~PORT_PINCFG_SLEWLIM;
- }
-}
-
-void system_pinmux_group_set_output_slew_rate(
- PortGroup *const port,
- const uint32_t mask,
- const enum system_pinmux_pin_slew_rate mode);
-#endif
-
-#ifdef FEATURE_SYSTEM_PINMUX_OPEN_DRAIN
-/**
- * \brief Port pin output drive mode enum.
- *
- * Enum for the possible output drive modes for the port pin configuration
- * structure, to indicate the output mode the pin should use.
- */
-enum system_pinmux_pin_drive {
- /** Use totem pole output drive mode */
- SYSTEM_PINMUX_PIN_DRIVE_TOTEM,
- /** Use open drain output drive mode */
- SYSTEM_PINMUX_PIN_DRIVE_OPEN_DRAIN,
-};
-
-/**
- * \brief Configures the output driver mode for a GPIO pin.
- *
- * Configures the output driver mode for a GPIO output, to
- * control the pad behavior.
- *
- * \param[in] gpio_pin Index of the GPIO pin to configure
- * \param[in] mode New pad output driver mode to configure
- */
-static inline void system_pinmux_pin_set_output_drive(
- const uint8_t gpio_pin,
- const enum system_pinmux_pin_drive mode)
-{
- PortGroup* const port = system_pinmux_get_group_from_gpio_pin(gpio_pin);
- uint32_t pin_index = (gpio_pin % 32);
-
- if (mode == SYSTEM_PINMUX_PIN_DRIVE_OPEN_DRAIN) {
- port->PINCFG[pin_index].reg |= PORT_PINCFG_ODRAIN;
- }
- else {
- port->PINCFG[pin_index].reg &= ~PORT_PINCFG_ODRAIN;
- }
-}
-
-void system_pinmux_group_set_output_drive(
- PortGroup *const port,
- const uint32_t mask,
- const enum system_pinmux_pin_drive mode);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-/**
- * \page asfdoc_sam0_system_pinmux_extra Extra Information for SYSTEM PINMUX Driver
- *
- * \section asfdoc_sam0_system_pinmux_extra_acronyms Acronyms
- * The table below presents the acronyms used in this module:
- *
- *
- *
- *
Acronym
- *
Description
- *
- *
- *
GPIO
- *
General Purpose Input/Output
- *
- *
- *
MUX
- *
Multiplexer
- *
- *
- *
- *
- * \section asfdoc_sam0_system_pinmux_extra_dependencies Dependencies
- * This driver has the following dependencies:
- *
- * - None
- *
- *
- * \section asfdoc_sam0_system_pinmux_extra_errata Errata
- * There are no errata related to this driver.
- *
- *
- * \section asfdoc_sam0_system_pinmux_extra_history Module History
- * An overview of the module history is presented in the table below, with
- * details on the enhancements and fixes made to the module since its first
- * release. The current version of this corresponds to the newest version in
- * the table.
- *
- *
- *
- *
Changelog
- *
- *
- *
Removed code of open drain, slew limit and drive strength
- * features
- *
- *
- *
Fixed broken sampling mode function implementations, which wrote
- * corrupt configuration values to the device registers
- *
- *
- *
Added missing NULL pointer asserts to the PORT driver functions
- *
- *
- *
Initial Release
- *
- *
- */
-
-/**
- * \page asfdoc_sam0_system_pinmux_exqsg Examples for SYSTEM PINMUX Driver
- *
- * This is a list of the available Quick Start guides (QSGs) and example
- * applications for \ref asfdoc_sam0_system_pinmux_group. QSGs are simple
- * examples with step-by-step instructions to configure and use this driver in a
- * selection of use cases. Note that a QSG can be compiled as a standalone
- * application or be added to the user application.
- *
- * - \subpage asfdoc_sam0_system_pinmux_basic_use_case
- *
- * \page asfdoc_sam0_system_pinmux_document_revision_history Document Revision History
- *
- *
- *
- *
Doc. Rev.
- *
Date
- *
Comments
- *
- *
- *
42121F
- *
12/2015
- *
Added support for SAM L21/L22, SAM DA1, SAM D09, and SAM C20/C21
- *
- *
- *
42121E
- *
12/2014
- *
Added support for SAM R21 and SAM D10/D11
- *
- *
- *
42121D
- *
01/2014
- *
Added support for SAM D21
- *
- *
- *
42121C
- *
09/2013
- *
Fixed incorrect documentation for the device pin sampling mode
- *
- *
- *
42121B
- *
06/2013
- *
Corrected documentation typos
- *
- *
- *
42121A
- *
06/2013
- *
Initial release
- *
- *
- */
-
-#endif
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/pinmux/quick_start/qs_pinmux_basic.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/pinmux/quick_start/qs_pinmux_basic.h
deleted file mode 100644
index 2d0b417..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/pinmux/quick_start/qs_pinmux_basic.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/**
- * \file
- *
- * \brief SAM PINMUX Driver Quick Start
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-/**
- * \page asfdoc_sam0_system_pinmux_basic_use_case Quick Start Guide for SYSTEM PINMUX - Basic
- *
- * In this use case, the PINMUX module is configured for:
- * \li One pin in input mode, with pull-up enabled, connected to the GPIO
- * module
- * \li Sampling mode of the pin changed to sample on demand
- *
- * This use case sets up the PINMUX to configure a physical I/O pin set as
- * an input with pull-up and changes the sampling mode of the pin to reduce
- * power by only sampling the physical pin state when the user application
- * attempts to read it.
- *
- * \section asfdoc_sam0_system_pinmux_basic_use_case_setup Setup
- *
- * \subsection asfdoc_sam0_system_pinmux_basic_use_case_setup_prereq Prerequisites
- * There are no special setup requirements for this use-case.
- *
- * \subsection asfdoc_sam0_system_pinmux_basic_use_case_setup_code Code
- * Copy-paste the following setup code to your application:
- * \snippet qs_pinmux_basic.c setup
- *
- * \subsection asfdoc_sam0_system_pinmux_basic_use_case_setup_flow Workflow
- * -# Create a PINMUX module pin configuration struct, which can be filled out
- * to adjust the configuration of a single port pin.
- * \snippet qs_pinmux_basic.c pinmux_config
- * -# Initialize the pin configuration struct with the module's default values.
- * \snippet qs_pinmux_basic.c pinmux_config_defaults
- * \note This should always be performed before using the configuration
- * struct to ensure that all values are initialized to known default
- * settings.
- *
- * -# Adjust the configuration struct to request an input pin with pull-up
- * connected to the GPIO peripheral.
- * \snippet qs_pinmux_basic.c pinmux_update_config_values
- * -# Configure GPIO10 with the initialized pin configuration struct, to enable
- * the input sampler on the pin.
- * \snippet qs_pinmux_basic.c pinmux_set_config
- *
- * \section asfdoc_sam0_system_pinmux_basic_use_case_use_main Use Case
- *
- * \subsection asfdoc_sam0_system_pinmux_basic_use_case_code Code
- * Copy-paste the following code to your user application:
- * \snippet qs_pinmux_basic.c main
- *
- * \subsection asfdoc_sam0_system_pinmux_basic_use_case_flow Workflow
-
- * -# Adjust the configuration of the pin to enable on-demand sampling mode.
- * \snippet qs_pinmux_basic.c pinmux_change_input_sampling
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/power/power_sam_d_r_h/power.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/power/power_sam_d_r_h/power.h
deleted file mode 100644
index 90a5b91..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/power/power_sam_d_r_h/power.h
+++ /dev/null
@@ -1,239 +0,0 @@
-/**
- * \file
- *
- * \brief SAM Power related functionality
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef POWER_H_INCLUDED
-#define POWER_H_INCLUDED
-
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* MCU revision number */
-#define _SYSTEM_MCU_REVISION_D 3
-#define _SYSTEM_MCU_REVISION_E 4
-
-/**
- * \addtogroup asfdoc_sam0_system_group
- * @{
- */
-
-/**
- * \brief Voltage references within the device.
- *
- * List of available voltage references (VREF) that may be used within the
- * device.
- */
-enum system_voltage_reference {
- /** Temperature sensor voltage reference */
- SYSTEM_VOLTAGE_REFERENCE_TEMPSENSE,
- /** Bandgap voltage reference */
- SYSTEM_VOLTAGE_REFERENCE_BANDGAP,
-};
-
-/**
- * \brief Device sleep modes.
- *
- * List of available sleep modes in the device. A table of clocks available in
- * different sleep modes can be found in \ref asfdoc_sam0_system_module_overview_sleep_mode.
- */
-enum system_sleepmode {
- /** IDLE 0 sleep mode */
- SYSTEM_SLEEPMODE_IDLE_0,
- /** IDLE 1 sleep mode */
- SYSTEM_SLEEPMODE_IDLE_1,
- /** IDLE 2 sleep mode */
- SYSTEM_SLEEPMODE_IDLE_2,
- /** Standby sleep mode */
- SYSTEM_SLEEPMODE_STANDBY,
-};
-
-
-
-/**
- * \name Voltage References
- * @{
- */
-
-/**
- * \brief Enable the selected voltage reference
- *
- * Enables the selected voltage reference source, making the voltage reference
- * available on a pin as well as an input source to the analog peripherals.
- *
- * \param[in] vref Voltage reference to enable
- */
-static inline void system_voltage_reference_enable(
- const enum system_voltage_reference vref)
-{
- switch (vref) {
- case SYSTEM_VOLTAGE_REFERENCE_TEMPSENSE:
- SYSCTRL->VREF.reg |= SYSCTRL_VREF_TSEN;
- break;
-
- case SYSTEM_VOLTAGE_REFERENCE_BANDGAP:
- SYSCTRL->VREF.reg |= SYSCTRL_VREF_BGOUTEN;
- break;
-
- default:
- Assert(false);
- return;
- }
-}
-
-/**
- * \brief Disable the selected voltage reference
- *
- * Disables the selected voltage reference source.
- *
- * \param[in] vref Voltage reference to disable
- */
-static inline void system_voltage_reference_disable(
- const enum system_voltage_reference vref)
-{
- switch (vref) {
- case SYSTEM_VOLTAGE_REFERENCE_TEMPSENSE:
- SYSCTRL->VREF.reg &= ~SYSCTRL_VREF_TSEN;
- break;
-
- case SYSTEM_VOLTAGE_REFERENCE_BANDGAP:
- SYSCTRL->VREF.reg &= ~SYSCTRL_VREF_BGOUTEN;
- break;
-
- default:
- Assert(false);
- return;
- }
-}
-
-/**
- * @}
- */
-
-
-/**
- * \name Device Sleep Control
- * @{
- */
-
-/**
- * \brief Set the sleep mode of the device
- *
- * Sets the sleep mode of the device; the configured sleep mode will be entered
- * upon the next call of the \ref system_sleep() function.
- *
- * For an overview of which systems are disabled in sleep for the different
- * sleep modes, see \ref asfdoc_sam0_system_module_overview_sleep_mode.
- *
- * \param[in] sleep_mode Sleep mode to configure for the next sleep operation
- *
- * \retval STATUS_OK Operation completed successfully
- * \retval STATUS_ERR_INVALID_ARG The requested sleep mode was invalid or not
- * available
- */
-static inline enum status_code system_set_sleepmode(
- const enum system_sleepmode sleep_mode)
-{
-
-#if (SAMD20 || SAMD21 || SAMR21)
-
- /* Get MCU revision */
- uint32_t rev = DSU->DID.reg;
-
- rev &= DSU_DID_REVISION_Msk;
- rev = rev >> DSU_DID_REVISION_Pos;
-
-#if (SAMD20)
- if (rev < _SYSTEM_MCU_REVISION_E) {
- /* Errata 13140: Make sure that the Flash does not power all the way down
- * when in sleep mode. */
- NVMCTRL->CTRLB.bit.SLEEPPRM = NVMCTRL_CTRLB_SLEEPPRM_DISABLED_Val;
- }
-#endif
-
-#if (SAMD21 || SAMR21)
- if (rev < _SYSTEM_MCU_REVISION_D) {
- /* Errata 13140: Make sure that the Flash does not power all the way down
- * when in sleep mode. */
- NVMCTRL->CTRLB.bit.SLEEPPRM = NVMCTRL_CTRLB_SLEEPPRM_DISABLED_Val;
- }
-#endif
-
-#endif
-
- switch (sleep_mode) {
- case SYSTEM_SLEEPMODE_IDLE_0:
- case SYSTEM_SLEEPMODE_IDLE_1:
- case SYSTEM_SLEEPMODE_IDLE_2:
- SCB->SCR &= ~SCB_SCR_SLEEPDEEP_Msk;
- PM->SLEEP.reg = sleep_mode;
- break;
-
- case SYSTEM_SLEEPMODE_STANDBY:
- SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;
- break;
-
- default:
- return STATUS_ERR_INVALID_ARG;
- }
-
- return STATUS_OK;
-}
-
-/**
- * \brief Put the system to sleep waiting for interrupt
- *
- * Executes a device DSB (Data Synchronization Barrier) instruction to ensure
- * all ongoing memory accesses have completed, then a WFI (Wait For Interrupt)
- * instruction to place the device into the sleep mode specified by
- * \ref system_set_sleepmode until woken by an interrupt.
- */
-static inline void system_sleep(void)
-{
- __DSB();
- __WFI();
-}
-
-/**
- * @}
- */
-
-/** @} */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* POWER_H_INCLUDED */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/reset/reset_sam_d_r_h/reset.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/reset/reset_sam_d_r_h/reset.h
deleted file mode 100644
index d7b21ce..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/reset/reset_sam_d_r_h/reset.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/**
- * \file
- *
- * \brief SAM Reset related functionality
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef RESET_H_INCLUDED
-#define RESET_H_INCLUDED
-
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \addtogroup asfdoc_sam0_system_group
- * @{
- */
-
-/**
- * \brief Reset causes of the system.
- *
- * List of possible reset causes of the system.
- */
-enum system_reset_cause {
- /** The system was last reset by a software reset */
- SYSTEM_RESET_CAUSE_SOFTWARE = PM_RCAUSE_SYST,
- /** The system was last reset by the watchdog timer */
- SYSTEM_RESET_CAUSE_WDT = PM_RCAUSE_WDT,
- /** The system was last reset because the external reset line was pulled low */
- SYSTEM_RESET_CAUSE_EXTERNAL_RESET = PM_RCAUSE_EXT,
- /** The system was last reset by the BOD33 */
- SYSTEM_RESET_CAUSE_BOD33 = PM_RCAUSE_BOD33,
- /** The system was last reset by the BOD12 */
- SYSTEM_RESET_CAUSE_BOD12 = PM_RCAUSE_BOD12,
- /** The system was last reset by the POR (Power on reset) */
- SYSTEM_RESET_CAUSE_POR = PM_RCAUSE_POR,
-};
-
-
-/**
- * \name Reset Control
- * @{
- */
-
-/**
- * \brief Reset the MCU.
- *
- * Resets the MCU and all associated peripherals and registers, except RTC, all 32KHz sources,
- * WDT (if ALWAYSON is set) and GCLK (if WRTLOCK is set).
- *
- */
-static inline void system_reset(void)
-{
- NVIC_SystemReset();
-}
-
-/**
- * \brief Return the reset cause.
- *
- * Retrieves the cause of the last system reset.
- *
- * \return An enum value indicating the cause of the last system reset.
- */
-static inline enum system_reset_cause system_get_reset_cause(void)
-{
- return (enum system_reset_cause)PM->RCAUSE.reg;
-}
-
-/**
- * @}
- */
-
-/** @} */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* RESET_H_INCLUDED */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/system.c b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/system.c
deleted file mode 100644
index f5f6709..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/system.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/**
- * \file
- *
- * \brief SAM System related functionality
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#include
-
-/**
- * \internal
- * Dummy initialization function, used as a weak alias target for the various
- * init functions called by \ref system_init().
- */
-void _system_dummy_init(void);
-void _system_dummy_init(void)
-{
- return;
-}
-
-#if !defined(__DOXYGEN__)
-# if defined(__GNUC__)
-void system_clock_init(void) WEAK __attribute__((alias("_system_dummy_init")));
-void system_board_init(void) WEAK __attribute__((alias("_system_dummy_init")));
-void _system_events_init(void) WEAK __attribute__((alias("_system_dummy_init")));
-void _system_extint_init(void) WEAK __attribute__((alias("_system_dummy_init")));
-void _system_divas_init(void) WEAK __attribute__((alias("_system_dummy_init")));
-# elif defined(__ICCARM__)
-void system_clock_init(void);
-void system_board_init(void);
-void _system_events_init(void);
-void _system_extint_init(void);
-void _system_divas_init(void);
-# pragma weak system_clock_init=_system_dummy_init
-# pragma weak system_board_init=_system_dummy_init
-# pragma weak _system_events_init=_system_dummy_init
-# pragma weak _system_extint_init=_system_dummy_init
-# pragma weak _system_divas_init=_system_dummy_init
-# endif
-#endif
-
-/**
- * \brief Initialize system
- *
- * This function will call the various initialization functions within the
- * system namespace. If a given optional system module is not available, the
- * associated call will effectively be a NOP (No Operation).
- *
- * Currently the following initialization functions are supported:
- * - System clock initialization (via the SYSTEM CLOCK sub-module)
- * - Board hardware initialization (via the Board module)
- * - Event system driver initialization (via the EVSYS module)
- * - External Interrupt driver initialization (via the EXTINT module)
- */
-void system_init(void)
-{
- /* Configure GCLK and clock sources according to conf_clocks.h */
- system_clock_init();
-
- /* Initialize board hardware */
- system_board_init();
-
- /* Initialize EVSYS hardware */
- _system_events_init();
-
- /* Initialize External hardware */
- _system_extint_init();
-
- /* Initialize DIVAS hardware */
- _system_divas_init();
-}
-
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/system.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/system.h
deleted file mode 100644
index 49a410d..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/drivers/system/system.h
+++ /dev/null
@@ -1,721 +0,0 @@
-/**
- * \file
- *
- * \brief SAM System related functionality
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef SYSTEM_H_INCLUDED
-#define SYSTEM_H_INCLUDED
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \defgroup asfdoc_sam0_system_group SAM System (SYSTEM) Driver
- *
- * This driver for Atmel® | SMART ARM®-based microcontrollers provides an interface for the configuration
- * and management of the device's system relation functionality, necessary for
- * the basic device operation. This is not limited to a single peripheral, but
- * extends across multiple hardware peripherals.
- *
- * The following peripherals are used by this module:
- * \if DEVICE_SAML21_SYSTEM_SUPPORT
- * - PM (Power Manager)
- * - RSTC (Reset Controller)
- * - SUPC (Supply Controller)
- * \endif
- * \if DEVICE_SAMC21_SYSTEM_SUPPORT
- * - PM (Power Manager)
- * - RSTC (Reset Controller)
- * - SUPC (Supply Controller)
- * \endif
- * \if DEVICE_SAMD21_SYSTEM_SUPPORT
- * - SYSCTRL (System Control)
- * - PM (Power Manager)
- * \endif
- *
- * The following devices can use this module:
- * \if DEVICE_SAML21_SYSTEM_SUPPORT
- * - Atmel | SMART SAM L21
- * - Atmel | SMART SAM R30
- * - Atmel | SMART SAM R34
- * - Atmel | SMART SAM R35
- * \endif
- * \if DEVICE_SAMC21_SYSTEM_SUPPORT
- * - Atmel | SMART SAM C20/C21
- * \endif
- * \if DEVICE_SAMD21_SYSTEM_SUPPORT
- * - Atmel | SMART SAM D20/D21
- * - Atmel | SMART SAM R21
- * - Atmel | SMART SAM D09/D10/D11
- * - Atmel | SMART SAM DA1
- * \endif
- *
- * The outline of this documentation is as follows:
- * - \ref asfdoc_sam0_system_prerequisites
- * - \ref asfdoc_sam0_system_module_overview
- * - \ref asfdoc_sam0_system_special_considerations
- * - \ref asfdoc_sam0_system_extra_info
- * - \ref asfdoc_sam0_system_examples
- * - \ref asfdoc_sam0_system_api_overview
- *
- *
- * \section asfdoc_sam0_system_prerequisites Prerequisites
- *
- * There are no prerequisites for this module.
- *
- *
- * \section asfdoc_sam0_system_module_overview Module Overview
- *
- * The System driver provides a collection of interfaces between the user
- * application logic, and the core device functionality (such as clocks, reset
- * cause determination, etc.) that is required for all applications. It contains
- * a number of sub-modules that control one specific aspect of the device:
- *
- * - System Core (this module)
- * - \ref asfdoc_sam0_system_clock_group "System Clock Control" (sub-module)
- * - \ref asfdoc_sam0_system_interrupt_group "System Interrupt Control" (sub-module)
- * - \ref asfdoc_sam0_system_pinmux_group "System Pin Multiplexer Control" (sub-module)
- *
- *
- * \if DEVICE_SAML21_SYSTEM_SUPPORT
- * \subsection asfdoc_sam0_system_module_overview_vreg_l21 Voltage Regulator
- * The SAM device controls the voltage regulators for the core (VDDCORE) and
- * backup (VDDBU) domains. It sets the voltage regulators according to the sleep
- * modes, the performance level, or the user configuration.
- *
- * In active mode, the voltage regulator can be chosen on the fly between a LDO
- * or a Buck converter. In standby mode, the low power voltage regulator is used
- * to supply VDDCORE.
- *
- * \subsection asfdoc_sam0_system_module_overview_bbps Battery Backup Power Switch
- * The SAM device supports connection of a battery backup to the VBAT power pin.
- * It includes functionality that enables automatic power switching between main
- * power and battery backup power. This will ensure power to the backup domain,
- * when the main battery or power source is unavailable.
- * \endif
- *
- * \if DEVICE_SAMC21_SYSTEM_SUPPORT
- * \subsection asfdoc_sam0_system_module_overview_vreg_c21 Voltage Regulator
- * The SAM device controls the voltage regulators for the core (VDDCORE). It sets
- * the voltage regulators according to the sleep modes.
- *
- * There are a selectable reference voltage and voltage dependent on the temperature
- * which can be used by analog modules like the ADC.
- * \endif
- *
- * \subsection asfdoc_sam0_system_module_overview_vref Voltage References
- * The various analog modules within the SAM devices (such as AC, ADC, and
- * DAC) require a voltage reference to be configured to act as a reference point
- * for comparisons and conversions.
- *
- * The SAM devices contain multiple references, including an internal
- * temperature sensor and a fixed band-gap voltage source. When enabled, the
- * associated voltage reference can be selected within the desired peripheral
- * where applicable.
- *
- * \subsection asfdoc_sam0_system_module_overview_reset_cause System Reset Cause
- * In some applications there may be a need to execute a different program
- * flow based on how the device was reset. For example, if the cause of reset
- * was the Watchdog timer (WDT), this might indicate an error in the application,
- * and a form of error handling or error logging might be needed.
- *
- * For this reason, an API is provided to retrieve the cause of the last system
- * reset, so that appropriate action can be taken.
- *
- * \if DEVICE_SAML21_SYSTEM_SUPPORT
- * There are three groups of reset sources:
- * - Power supply reset: Resets caused by an electrical issue. It covers POR and BOD reset.
- * - User reset: Resets caused by the application. It covers external reset,
- * system reset, and watchdog reset.
- * - Backup reset: Resets caused by a backup mode exit condition.
- *
- * \subsection asfdoc_sam0_system_module_overview_performance_level Performance Level
- * Performance level allows the user to adjust the regulator output voltage to reduce
- * power consumption. The user can on the fly select the most suitable performance
- * level, depending on the application demands.
- *
- * The SAM device can operate at two different performance levels (PL0 and PL2).
- * When operating at PL0, the voltage applied on the full logic area is reduced
- * by voltage scaling. This voltage scaling technique allows to reduce the active
- * power consumption while decreasing the maximum frequency of the device. When
- * operating at PL2, the voltage regulator supplies the highest voltage, allowing
- * the device to run at higher clock speeds.
- *
- * Performance level transition is possible only when the device is in active
- * mode. After a reset, the device starts at the lowest performance level
- * (lowest power consumption and lowest max. frequency). The application can then
- * switch to another performance level at any time without any stop in the code
- * execution. As shown in \ref asfdoc_sam0_system_performance_level_transition_figure.
- *
- * \note When scaling down the performance level, the bus frequency should first be
- * scaled down in order to not exceed the maximum frequency allowed for the
- * low performance level.
- * When scaling up the performance level (e.g. from PL0 to PL2), check the performance
- * level status before increasing the bus frequency. It can be increased only
- * when the performance level transition is completed.
- *
- * \anchor asfdoc_sam0_system_performance_level_transition_figure
- * \image html performance_level_transition.svg "Performance Level Transition"
- *
- * \subsection asfdoc_sam0_system_module_overview_power_domain Power Domain Gating
- * Power domain gating allows power saving by reducing the voltage in logic
- * areas in the device to a low-power supply. The feature is available in
- * Standby sleep mode and will reduce the voltage in domains where all peripherals
- * are idle. Internal logic will maintain its content, meaning the corresponding
- * peripherals will not need to be reconfigured when normal operating voltage
- * is returned. Most power domains can be in the following three states:
- *
- * - Active state: The power domain is powered on.
- * - Retention state: The main voltage supply for the power domain is switched off,
- * while maintaining a secondary low-power supply for the sequential cells. The
- * logic context is restored when waking up.
- * - Off state: The power domain is entirely powered off. The logic context is lost.
- *
- * The SAM L21 device contains three power domains which can be controlled using
- * power domain gating, namely PD0, PD1, and PD2. These power domains can be
- * configured to the following cases:
- * - Default with no sleepwalking peripherals: A power domain is automatically set
- * to retention state in standby sleep mode if no activity require it. The application
- * can force all power domains to remain in active state during standby sleep mode
- * in order to accelerate wakeup time.
- * - Default with sleepwalking peripherals: If one or more peripherals are enabled
- * to perform sleepwalking tasks in standby sleep mode, the corresponding power
- * domain (PDn) remains in active state as well as all inferior power domains (PDn) in order
- * to perform a sleepwalking task. The superior power domain is then automatically
- * set to active state. At the end of the sleepwalking task, the device can either
- * be woken up or the superior power domain can return to retention state.
- *
- * Power domains can be linked to each other, it allows a power domain (PDn) to be kept
- * in active state if the inferior power domain (PDn-1) is in active state too.
- *
- * \ref asfdoc_sam0_system_power_domain_overview_table illustrates the
- * four cases to consider in standby mode.
- *
- * \anchor asfdoc_sam0_system_power_domain_overview_table
- *
- *
Sleep Mode versus Power Domain State Overview
- *
- *
Sleep mode
- *
PD0
- *
PD1
- *
PD2
- *
PDTOP
- *
PDBACKUP
- *
- *
- *
Idle
- *
active
- *
active
- *
active
- *
active
- *
active
- *
- *
- *
Standby - Case 1
- *
active
- *
active
- *
active
- *
active
- *
active
- *
- *
- *
Standby - Case 2
- *
active
- *
active
- *
retention
- *
active
- *
active
- *
- *
- *
Standby - Case 3
- *
active
- *
retention
- *
retention
- *
active
- *
active
- *
- *
- *
Standby - Case 4
- *
retention
- *
retention
- *
retention
- *
active
- *
active
- *
- *
- *
Backup
- *
off
- *
off
- *
off
- *
off
- *
active
- *
- *
- *
Off
- *
off
- *
off
- *
off
- *
off
- *
off
- *
- *
- *
- * \subsection asfdoc_sam0_system_module_overview_ram_state RAMs Low Power Mode
- * By default, in standby sleep mode, RAM is in low power mode (back biased)
- * if its power domain is in retention state.
- * \ref asfdoc_sam0_system_power_ram_state_table lists RAMs low power mode.
- *
- * \anchor asfdoc_sam0_system_power_ram_state_table
- *
- *
RAM Back-biasing Mode
- *
- *
RAM mode
- *
Description
- *
- *
- *
Retention Back-biasing mode
- *
RAM is back-biased if its power domain is in retention mode
- *
- *
- *
Standby Back-biasing mode
- *
RAM is back-biased if the device is in standby mode
- *
- *
- *
Standby OFF mode
- *
RAM is OFF if the device is in standby mode
- *
- *
- *
Always OFF mode
- *
RAM is OFF if the device is in RET mode
- *
- *
- *
- * \endif
- *
- * \subsection asfdoc_sam0_system_module_overview_sleep_mode Sleep Modes
- * The SAM devices have several sleep modes. The sleep mode controls
- * which clock systems on the device will remain enabled or disabled when the
- * device enters a low power sleep mode.
- * \ref asfdoc_sam0_system_module_sleep_mode_table "The table below" lists the
- * clock settings of the different sleep modes.
- *
- * \anchor asfdoc_sam0_system_module_sleep_mode_table
- *
- *
SAM Device Sleep Modes
- * \if DEVICE_SAML21_SYSTEM_SUPPORT
- *
- *
Sleep mode
- *
System clock
- *
CPU clock
- *
AHB/AHB clock
- *
GCLK clocks
- *
Oscillators (ONDEMAND = 0)
- *
Oscillators (ONDEMAND = 1)
- *
Regulator mode
- *
RAM mode
- *
- *
- *
Idle
- *
Run
- *
Stop
- *
Run if requested
- *
Run
- *
Run
- *
Run if requested
- *
Normal
- *
Normal
- *
- *
- *
Standby
- *
Stop
- *
Stop
- *
Run if requested
- *
Run if requested
- *
Run if requested or RUNSTDBY = 1
- *
Run if requested
- *
Low pwer
- *
Low pwer
- *
- *
- *
Backup
- *
Stop
- *
Stop
- *
Stop
- *
Stop
- *
Stop
- *
Stop
- *
Backup
- *
Off
- *
- *
- *
Off
- *
Off
- *
Off
- *
Off
- *
Off
- *
Off
- *
Off
- *
Off
- *
Off
- *
- * \else
- *
- *
Sleep mode
- *
CPU clock
- *
AHB clock
- *
APB clocks
- *
Clock sources
- *
System clock
- *
32KHz
- *
Reg mode
- *
RAM mode
- *
- *
- *
Idle 0
- *
Stop
- *
Run
- *
Run
- *
Run
- *
Run
- *
Run
- *
Normal
- *
Normal
- *
- *
- *
Idle 1
- *
Stop
- *
Stop
- *
Run
- *
Run
- *
Run
- *
Run
- *
Normal
- *
Normal
- *
- *
- *
Idle 2
- *
Stop
- *
Stop
- *
Stop
- *
Run
- *
Run
- *
Run
- *
Normal
- *
Normal
- *
- *
- *
Standby
- *
Stop
- *
Stop
- *
Stop
- *
Stop
- *
Stop
- *
Stop
- *
Low Power
- *
Source/Drain biasing
- *
- * \endif
- *
- *
- * Before entering device sleep, one of the available sleep modes must be set.
- * The device will automatically wake up in response to an interrupt being
- * generated or upon any other sleep mode exit condition.
- *
- * Some peripheral clocks will remain enabled during sleep, depending on their
- * configuration. If desired, the modules can remain clocked during sleep to allow
- * them continue to operate while other parts of the system are powered down
- * to save power.
- *
- *
- * \section asfdoc_sam0_system_special_considerations Special Considerations
- *
- * Most of the functions in this driver have device specific restrictions and
- * caveats; refer to your device datasheet.
- *
- *
- * \section asfdoc_sam0_system_extra_info Extra Information
- *
- * For extra information, see \ref asfdoc_sam0_system_extra. This includes:
- * - \ref asfdoc_sam0_system_extra_acronyms
- * - \ref asfdoc_sam0_system_extra_dependencies
- * - \ref asfdoc_sam0_system_extra_errata
- * - \ref asfdoc_sam0_system_extra_history
- *
- *
- * \section asfdoc_sam0_system_examples Examples
- *
- * For SYSTEM module related examples, refer to the sub-modules listed in
- * the \ref asfdoc_sam0_system_module_overview "Module Overview".
- *
- * \if DEVICE_SAML21_SYSTEM_SUPPORT
- * For a list of examples related to this driver, see
- * \ref asfdoc_sam0_drivers_power_exqsg.
- * \endif
- *
- *
- * \section asfdoc_sam0_system_api_overview API Overview
- * @{
- */
-
-/**
- * \name System Debugger
- * @{
- */
-
-/**
- * \brief Check if debugger is present.
- *
- * Check if debugger is connected to the onboard debug system (DAP).
- *
- * \return A bool identifying if a debugger is present.
- *
- * \retval true Debugger is connected to the system
- * \retval false Debugger is not connected to the system
- *
- */
-static inline bool system_is_debugger_present(void)
-{
- return DSU->STATUSB.reg & DSU_STATUSB_DBGPRES;
-}
-
-/**
- * @}
- */
-
-/**
- * \name System Identification
- * @{
- */
-
-/**
- * \brief Retrieve the device identification signature.
- *
- * Retrieves the signature of the current device.
- *
- * \return Device ID signature as a 32-bit integer.
- */
-static inline uint32_t system_get_device_id(void)
-{
- return DSU->DID.reg;
-}
-
-/**
- * @}
- */
-
-/**
- * \name System Initialization
- * @{
- */
-
-void system_init(void);
-
-/**
- * @}
- */
-
-
-/**
- * @}
- */
-
-/**
- *
- * \if DEVICE_SAML21_SYSTEM_SUPPORT
- * \page asfdoc_sam0_drivers_power_exqsg Examples for SYSTEM Driver
- *
- * This is a list of the available Quick Start Guides (QSGs) and example
- * applications for \ref asfdoc_sam0_system_group. QSGs are simple examples with step-by-step instructions to
- * configure and use this driver in a selection of
- * use cases. Note that a QSG can be compiled as a standalone application or be
- * added to the user application.
- *
- * - \subpage asfdoc_sam0_power_basic_use_case
- * \endif
- *
- * \page asfdoc_sam0_system_extra Extra Information for SYSTEM Driver
- *
- * \section asfdoc_sam0_system_extra_acronyms Acronyms
- * Below is a table listing the acronyms used in this module, along with their
- * intended meanings.
- *
- *
- *
- *
- * \section asfdoc_sam0_system_extra_dependencies Dependencies
- * This driver has the following dependencies:
- *
- * - None
- *
- *
- * \section asfdoc_sam0_system_extra_errata Errata
- * There are no errata related to this driver.
- *
- *
- * \section asfdoc_sam0_system_extra_history Module History
- * An overview of the module history is presented in the table below, with
- * details on the enhancements and fixes made to the module since its first
- * release. The current version of this corresponds to the newest version in
- * the table.
- *
- *
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* SYSTEM_H_INCLUDED */
-
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/component/ac.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/component/ac.h
deleted file mode 100644
index 0697186..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/component/ac.h
+++ /dev/null
@@ -1,549 +0,0 @@
-/**
- * \file
- *
- * \brief Component description for AC
- *
- * Copyright (c) 2016-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21_AC_COMPONENT_
-#define _SAMD21_AC_COMPONENT_
-
-/* ========================================================================== */
-/** SOFTWARE API DEFINITION FOR AC */
-/* ========================================================================== */
-/** \addtogroup SAMD21_AC Analog Comparators */
-/*@{*/
-
-#define AC_U2205
-#define REV_AC 0x112
-
-/* -------- AC_CTRLA : (AC Offset: 0x00) (R/W 8) Control A -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t SWRST:1; /*!< bit: 0 Software Reset */
- uint8_t ENABLE:1; /*!< bit: 1 Enable */
- uint8_t RUNSTDBY:1; /*!< bit: 2 Run in Standby */
- uint8_t :4; /*!< bit: 3.. 6 Reserved */
- uint8_t LPMUX:1; /*!< bit: 7 Low-Power Mux */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} AC_CTRLA_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define AC_CTRLA_OFFSET 0x00 /**< \brief (AC_CTRLA offset) Control A */
-#define AC_CTRLA_RESETVALUE 0x00ul /**< \brief (AC_CTRLA reset_value) Control A */
-
-#define AC_CTRLA_SWRST_Pos 0 /**< \brief (AC_CTRLA) Software Reset */
-#define AC_CTRLA_SWRST (0x1ul << AC_CTRLA_SWRST_Pos)
-#define AC_CTRLA_ENABLE_Pos 1 /**< \brief (AC_CTRLA) Enable */
-#define AC_CTRLA_ENABLE (0x1ul << AC_CTRLA_ENABLE_Pos)
-#define AC_CTRLA_RUNSTDBY_Pos 2 /**< \brief (AC_CTRLA) Run in Standby */
-#define AC_CTRLA_RUNSTDBY_Msk (0x1ul << AC_CTRLA_RUNSTDBY_Pos)
-#define AC_CTRLA_RUNSTDBY(value) (AC_CTRLA_RUNSTDBY_Msk & ((value) << AC_CTRLA_RUNSTDBY_Pos))
-#define AC_CTRLA_LPMUX_Pos 7 /**< \brief (AC_CTRLA) Low-Power Mux */
-#define AC_CTRLA_LPMUX (0x1ul << AC_CTRLA_LPMUX_Pos)
-#define AC_CTRLA_MASK 0x87ul /**< \brief (AC_CTRLA) MASK Register */
-
-/* -------- AC_CTRLB : (AC Offset: 0x01) ( /W 8) Control B -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t START0:1; /*!< bit: 0 Comparator 0 Start Comparison */
- uint8_t START1:1; /*!< bit: 1 Comparator 1 Start Comparison */
- uint8_t :6; /*!< bit: 2.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- struct {
- uint8_t START:2; /*!< bit: 0.. 1 Comparator x Start Comparison */
- uint8_t :6; /*!< bit: 2.. 7 Reserved */
- } vec; /*!< Structure used for vec access */
- uint8_t reg; /*!< Type used for register access */
-} AC_CTRLB_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define AC_CTRLB_OFFSET 0x01 /**< \brief (AC_CTRLB offset) Control B */
-#define AC_CTRLB_RESETVALUE 0x00ul /**< \brief (AC_CTRLB reset_value) Control B */
-
-#define AC_CTRLB_START0_Pos 0 /**< \brief (AC_CTRLB) Comparator 0 Start Comparison */
-#define AC_CTRLB_START0 (1 << AC_CTRLB_START0_Pos)
-#define AC_CTRLB_START1_Pos 1 /**< \brief (AC_CTRLB) Comparator 1 Start Comparison */
-#define AC_CTRLB_START1 (1 << AC_CTRLB_START1_Pos)
-#define AC_CTRLB_START_Pos 0 /**< \brief (AC_CTRLB) Comparator x Start Comparison */
-#define AC_CTRLB_START_Msk (0x3ul << AC_CTRLB_START_Pos)
-#define AC_CTRLB_START(value) (AC_CTRLB_START_Msk & ((value) << AC_CTRLB_START_Pos))
-#define AC_CTRLB_MASK 0x03ul /**< \brief (AC_CTRLB) MASK Register */
-
-/* -------- AC_EVCTRL : (AC Offset: 0x02) (R/W 16) Event Control -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint16_t COMPEO0:1; /*!< bit: 0 Comparator 0 Event Output Enable */
- uint16_t COMPEO1:1; /*!< bit: 1 Comparator 1 Event Output Enable */
- uint16_t :2; /*!< bit: 2.. 3 Reserved */
- uint16_t WINEO0:1; /*!< bit: 4 Window 0 Event Output Enable */
- uint16_t :3; /*!< bit: 5.. 7 Reserved */
- uint16_t COMPEI0:1; /*!< bit: 8 Comparator 0 Event Input */
- uint16_t COMPEI1:1; /*!< bit: 9 Comparator 1 Event Input */
- uint16_t :6; /*!< bit: 10..15 Reserved */
- } bit; /*!< Structure used for bit access */
- struct {
- uint16_t COMPEO:2; /*!< bit: 0.. 1 Comparator x Event Output Enable */
- uint16_t :2; /*!< bit: 2.. 3 Reserved */
- uint16_t WINEO:1; /*!< bit: 4 Window x Event Output Enable */
- uint16_t :3; /*!< bit: 5.. 7 Reserved */
- uint16_t COMPEI:2; /*!< bit: 8.. 9 Comparator x Event Input */
- uint16_t :6; /*!< bit: 10..15 Reserved */
- } vec; /*!< Structure used for vec access */
- uint16_t reg; /*!< Type used for register access */
-} AC_EVCTRL_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define AC_EVCTRL_OFFSET 0x02 /**< \brief (AC_EVCTRL offset) Event Control */
-#define AC_EVCTRL_RESETVALUE 0x0000ul /**< \brief (AC_EVCTRL reset_value) Event Control */
-
-#define AC_EVCTRL_COMPEO0_Pos 0 /**< \brief (AC_EVCTRL) Comparator 0 Event Output Enable */
-#define AC_EVCTRL_COMPEO0 (1 << AC_EVCTRL_COMPEO0_Pos)
-#define AC_EVCTRL_COMPEO1_Pos 1 /**< \brief (AC_EVCTRL) Comparator 1 Event Output Enable */
-#define AC_EVCTRL_COMPEO1 (1 << AC_EVCTRL_COMPEO1_Pos)
-#define AC_EVCTRL_COMPEO_Pos 0 /**< \brief (AC_EVCTRL) Comparator x Event Output Enable */
-#define AC_EVCTRL_COMPEO_Msk (0x3ul << AC_EVCTRL_COMPEO_Pos)
-#define AC_EVCTRL_COMPEO(value) (AC_EVCTRL_COMPEO_Msk & ((value) << AC_EVCTRL_COMPEO_Pos))
-#define AC_EVCTRL_WINEO0_Pos 4 /**< \brief (AC_EVCTRL) Window 0 Event Output Enable */
-#define AC_EVCTRL_WINEO0 (1 << AC_EVCTRL_WINEO0_Pos)
-#define AC_EVCTRL_WINEO_Pos 4 /**< \brief (AC_EVCTRL) Window x Event Output Enable */
-#define AC_EVCTRL_WINEO_Msk (0x1ul << AC_EVCTRL_WINEO_Pos)
-#define AC_EVCTRL_WINEO(value) (AC_EVCTRL_WINEO_Msk & ((value) << AC_EVCTRL_WINEO_Pos))
-#define AC_EVCTRL_COMPEI0_Pos 8 /**< \brief (AC_EVCTRL) Comparator 0 Event Input */
-#define AC_EVCTRL_COMPEI0 (1 << AC_EVCTRL_COMPEI0_Pos)
-#define AC_EVCTRL_COMPEI1_Pos 9 /**< \brief (AC_EVCTRL) Comparator 1 Event Input */
-#define AC_EVCTRL_COMPEI1 (1 << AC_EVCTRL_COMPEI1_Pos)
-#define AC_EVCTRL_COMPEI_Pos 8 /**< \brief (AC_EVCTRL) Comparator x Event Input */
-#define AC_EVCTRL_COMPEI_Msk (0x3ul << AC_EVCTRL_COMPEI_Pos)
-#define AC_EVCTRL_COMPEI(value) (AC_EVCTRL_COMPEI_Msk & ((value) << AC_EVCTRL_COMPEI_Pos))
-#define AC_EVCTRL_MASK 0x0313ul /**< \brief (AC_EVCTRL) MASK Register */
-
-/* -------- AC_INTENCLR : (AC Offset: 0x04) (R/W 8) Interrupt Enable Clear -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t COMP0:1; /*!< bit: 0 Comparator 0 Interrupt Enable */
- uint8_t COMP1:1; /*!< bit: 1 Comparator 1 Interrupt Enable */
- uint8_t :2; /*!< bit: 2.. 3 Reserved */
- uint8_t WIN0:1; /*!< bit: 4 Window 0 Interrupt Enable */
- uint8_t :3; /*!< bit: 5.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- struct {
- uint8_t COMP:2; /*!< bit: 0.. 1 Comparator x Interrupt Enable */
- uint8_t :2; /*!< bit: 2.. 3 Reserved */
- uint8_t WIN:1; /*!< bit: 4 Window x Interrupt Enable */
- uint8_t :3; /*!< bit: 5.. 7 Reserved */
- } vec; /*!< Structure used for vec access */
- uint8_t reg; /*!< Type used for register access */
-} AC_INTENCLR_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define AC_INTENCLR_OFFSET 0x04 /**< \brief (AC_INTENCLR offset) Interrupt Enable Clear */
-#define AC_INTENCLR_RESETVALUE 0x00ul /**< \brief (AC_INTENCLR reset_value) Interrupt Enable Clear */
-
-#define AC_INTENCLR_COMP0_Pos 0 /**< \brief (AC_INTENCLR) Comparator 0 Interrupt Enable */
-#define AC_INTENCLR_COMP0 (1 << AC_INTENCLR_COMP0_Pos)
-#define AC_INTENCLR_COMP1_Pos 1 /**< \brief (AC_INTENCLR) Comparator 1 Interrupt Enable */
-#define AC_INTENCLR_COMP1 (1 << AC_INTENCLR_COMP1_Pos)
-#define AC_INTENCLR_COMP_Pos 0 /**< \brief (AC_INTENCLR) Comparator x Interrupt Enable */
-#define AC_INTENCLR_COMP_Msk (0x3ul << AC_INTENCLR_COMP_Pos)
-#define AC_INTENCLR_COMP(value) (AC_INTENCLR_COMP_Msk & ((value) << AC_INTENCLR_COMP_Pos))
-#define AC_INTENCLR_WIN0_Pos 4 /**< \brief (AC_INTENCLR) Window 0 Interrupt Enable */
-#define AC_INTENCLR_WIN0 (1 << AC_INTENCLR_WIN0_Pos)
-#define AC_INTENCLR_WIN_Pos 4 /**< \brief (AC_INTENCLR) Window x Interrupt Enable */
-#define AC_INTENCLR_WIN_Msk (0x1ul << AC_INTENCLR_WIN_Pos)
-#define AC_INTENCLR_WIN(value) (AC_INTENCLR_WIN_Msk & ((value) << AC_INTENCLR_WIN_Pos))
-#define AC_INTENCLR_MASK 0x13ul /**< \brief (AC_INTENCLR) MASK Register */
-
-/* -------- AC_INTENSET : (AC Offset: 0x05) (R/W 8) Interrupt Enable Set -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t COMP0:1; /*!< bit: 0 Comparator 0 Interrupt Enable */
- uint8_t COMP1:1; /*!< bit: 1 Comparator 1 Interrupt Enable */
- uint8_t :2; /*!< bit: 2.. 3 Reserved */
- uint8_t WIN0:1; /*!< bit: 4 Window 0 Interrupt Enable */
- uint8_t :3; /*!< bit: 5.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- struct {
- uint8_t COMP:2; /*!< bit: 0.. 1 Comparator x Interrupt Enable */
- uint8_t :2; /*!< bit: 2.. 3 Reserved */
- uint8_t WIN:1; /*!< bit: 4 Window x Interrupt Enable */
- uint8_t :3; /*!< bit: 5.. 7 Reserved */
- } vec; /*!< Structure used for vec access */
- uint8_t reg; /*!< Type used for register access */
-} AC_INTENSET_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define AC_INTENSET_OFFSET 0x05 /**< \brief (AC_INTENSET offset) Interrupt Enable Set */
-#define AC_INTENSET_RESETVALUE 0x00ul /**< \brief (AC_INTENSET reset_value) Interrupt Enable Set */
-
-#define AC_INTENSET_COMP0_Pos 0 /**< \brief (AC_INTENSET) Comparator 0 Interrupt Enable */
-#define AC_INTENSET_COMP0 (1 << AC_INTENSET_COMP0_Pos)
-#define AC_INTENSET_COMP1_Pos 1 /**< \brief (AC_INTENSET) Comparator 1 Interrupt Enable */
-#define AC_INTENSET_COMP1 (1 << AC_INTENSET_COMP1_Pos)
-#define AC_INTENSET_COMP_Pos 0 /**< \brief (AC_INTENSET) Comparator x Interrupt Enable */
-#define AC_INTENSET_COMP_Msk (0x3ul << AC_INTENSET_COMP_Pos)
-#define AC_INTENSET_COMP(value) (AC_INTENSET_COMP_Msk & ((value) << AC_INTENSET_COMP_Pos))
-#define AC_INTENSET_WIN0_Pos 4 /**< \brief (AC_INTENSET) Window 0 Interrupt Enable */
-#define AC_INTENSET_WIN0 (1 << AC_INTENSET_WIN0_Pos)
-#define AC_INTENSET_WIN_Pos 4 /**< \brief (AC_INTENSET) Window x Interrupt Enable */
-#define AC_INTENSET_WIN_Msk (0x1ul << AC_INTENSET_WIN_Pos)
-#define AC_INTENSET_WIN(value) (AC_INTENSET_WIN_Msk & ((value) << AC_INTENSET_WIN_Pos))
-#define AC_INTENSET_MASK 0x13ul /**< \brief (AC_INTENSET) MASK Register */
-
-/* -------- AC_INTFLAG : (AC Offset: 0x06) (R/W 8) Interrupt Flag Status and Clear -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union { // __I to avoid read-modify-write on write-to-clear register
- struct {
- __I uint8_t COMP0:1; /*!< bit: 0 Comparator 0 */
- __I uint8_t COMP1:1; /*!< bit: 1 Comparator 1 */
- __I uint8_t :2; /*!< bit: 2.. 3 Reserved */
- __I uint8_t WIN0:1; /*!< bit: 4 Window 0 */
- __I uint8_t :3; /*!< bit: 5.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- struct {
- __I uint8_t COMP:2; /*!< bit: 0.. 1 Comparator x */
- __I uint8_t :2; /*!< bit: 2.. 3 Reserved */
- __I uint8_t WIN:1; /*!< bit: 4 Window x */
- __I uint8_t :3; /*!< bit: 5.. 7 Reserved */
- } vec; /*!< Structure used for vec access */
- uint8_t reg; /*!< Type used for register access */
-} AC_INTFLAG_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define AC_INTFLAG_OFFSET 0x06 /**< \brief (AC_INTFLAG offset) Interrupt Flag Status and Clear */
-#define AC_INTFLAG_RESETVALUE 0x00ul /**< \brief (AC_INTFLAG reset_value) Interrupt Flag Status and Clear */
-
-#define AC_INTFLAG_COMP0_Pos 0 /**< \brief (AC_INTFLAG) Comparator 0 */
-#define AC_INTFLAG_COMP0 (1 << AC_INTFLAG_COMP0_Pos)
-#define AC_INTFLAG_COMP1_Pos 1 /**< \brief (AC_INTFLAG) Comparator 1 */
-#define AC_INTFLAG_COMP1 (1 << AC_INTFLAG_COMP1_Pos)
-#define AC_INTFLAG_COMP_Pos 0 /**< \brief (AC_INTFLAG) Comparator x */
-#define AC_INTFLAG_COMP_Msk (0x3ul << AC_INTFLAG_COMP_Pos)
-#define AC_INTFLAG_COMP(value) (AC_INTFLAG_COMP_Msk & ((value) << AC_INTFLAG_COMP_Pos))
-#define AC_INTFLAG_WIN0_Pos 4 /**< \brief (AC_INTFLAG) Window 0 */
-#define AC_INTFLAG_WIN0 (1 << AC_INTFLAG_WIN0_Pos)
-#define AC_INTFLAG_WIN_Pos 4 /**< \brief (AC_INTFLAG) Window x */
-#define AC_INTFLAG_WIN_Msk (0x1ul << AC_INTFLAG_WIN_Pos)
-#define AC_INTFLAG_WIN(value) (AC_INTFLAG_WIN_Msk & ((value) << AC_INTFLAG_WIN_Pos))
-#define AC_INTFLAG_MASK 0x13ul /**< \brief (AC_INTFLAG) MASK Register */
-
-/* -------- AC_STATUSA : (AC Offset: 0x08) (R/ 8) Status A -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t STATE0:1; /*!< bit: 0 Comparator 0 Current State */
- uint8_t STATE1:1; /*!< bit: 1 Comparator 1 Current State */
- uint8_t :2; /*!< bit: 2.. 3 Reserved */
- uint8_t WSTATE0:2; /*!< bit: 4.. 5 Window 0 Current State */
- uint8_t :2; /*!< bit: 6.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- struct {
- uint8_t STATE:2; /*!< bit: 0.. 1 Comparator x Current State */
- uint8_t :6; /*!< bit: 2.. 7 Reserved */
- } vec; /*!< Structure used for vec access */
- uint8_t reg; /*!< Type used for register access */
-} AC_STATUSA_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define AC_STATUSA_OFFSET 0x08 /**< \brief (AC_STATUSA offset) Status A */
-#define AC_STATUSA_RESETVALUE 0x00ul /**< \brief (AC_STATUSA reset_value) Status A */
-
-#define AC_STATUSA_STATE0_Pos 0 /**< \brief (AC_STATUSA) Comparator 0 Current State */
-#define AC_STATUSA_STATE0 (1 << AC_STATUSA_STATE0_Pos)
-#define AC_STATUSA_STATE1_Pos 1 /**< \brief (AC_STATUSA) Comparator 1 Current State */
-#define AC_STATUSA_STATE1 (1 << AC_STATUSA_STATE1_Pos)
-#define AC_STATUSA_STATE_Pos 0 /**< \brief (AC_STATUSA) Comparator x Current State */
-#define AC_STATUSA_STATE_Msk (0x3ul << AC_STATUSA_STATE_Pos)
-#define AC_STATUSA_STATE(value) (AC_STATUSA_STATE_Msk & ((value) << AC_STATUSA_STATE_Pos))
-#define AC_STATUSA_WSTATE0_Pos 4 /**< \brief (AC_STATUSA) Window 0 Current State */
-#define AC_STATUSA_WSTATE0_Msk (0x3ul << AC_STATUSA_WSTATE0_Pos)
-#define AC_STATUSA_WSTATE0(value) (AC_STATUSA_WSTATE0_Msk & ((value) << AC_STATUSA_WSTATE0_Pos))
-#define AC_STATUSA_WSTATE0_ABOVE_Val 0x0ul /**< \brief (AC_STATUSA) Signal is above window */
-#define AC_STATUSA_WSTATE0_INSIDE_Val 0x1ul /**< \brief (AC_STATUSA) Signal is inside window */
-#define AC_STATUSA_WSTATE0_BELOW_Val 0x2ul /**< \brief (AC_STATUSA) Signal is below window */
-#define AC_STATUSA_WSTATE0_ABOVE (AC_STATUSA_WSTATE0_ABOVE_Val << AC_STATUSA_WSTATE0_Pos)
-#define AC_STATUSA_WSTATE0_INSIDE (AC_STATUSA_WSTATE0_INSIDE_Val << AC_STATUSA_WSTATE0_Pos)
-#define AC_STATUSA_WSTATE0_BELOW (AC_STATUSA_WSTATE0_BELOW_Val << AC_STATUSA_WSTATE0_Pos)
-#define AC_STATUSA_MASK 0x33ul /**< \brief (AC_STATUSA) MASK Register */
-
-/* -------- AC_STATUSB : (AC Offset: 0x09) (R/ 8) Status B -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t READY0:1; /*!< bit: 0 Comparator 0 Ready */
- uint8_t READY1:1; /*!< bit: 1 Comparator 1 Ready */
- uint8_t :5; /*!< bit: 2.. 6 Reserved */
- uint8_t SYNCBUSY:1; /*!< bit: 7 Synchronization Busy */
- } bit; /*!< Structure used for bit access */
- struct {
- uint8_t READY:2; /*!< bit: 0.. 1 Comparator x Ready */
- uint8_t :6; /*!< bit: 2.. 7 Reserved */
- } vec; /*!< Structure used for vec access */
- uint8_t reg; /*!< Type used for register access */
-} AC_STATUSB_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define AC_STATUSB_OFFSET 0x09 /**< \brief (AC_STATUSB offset) Status B */
-#define AC_STATUSB_RESETVALUE 0x00ul /**< \brief (AC_STATUSB reset_value) Status B */
-
-#define AC_STATUSB_READY0_Pos 0 /**< \brief (AC_STATUSB) Comparator 0 Ready */
-#define AC_STATUSB_READY0 (1 << AC_STATUSB_READY0_Pos)
-#define AC_STATUSB_READY1_Pos 1 /**< \brief (AC_STATUSB) Comparator 1 Ready */
-#define AC_STATUSB_READY1 (1 << AC_STATUSB_READY1_Pos)
-#define AC_STATUSB_READY_Pos 0 /**< \brief (AC_STATUSB) Comparator x Ready */
-#define AC_STATUSB_READY_Msk (0x3ul << AC_STATUSB_READY_Pos)
-#define AC_STATUSB_READY(value) (AC_STATUSB_READY_Msk & ((value) << AC_STATUSB_READY_Pos))
-#define AC_STATUSB_SYNCBUSY_Pos 7 /**< \brief (AC_STATUSB) Synchronization Busy */
-#define AC_STATUSB_SYNCBUSY (0x1ul << AC_STATUSB_SYNCBUSY_Pos)
-#define AC_STATUSB_MASK 0x83ul /**< \brief (AC_STATUSB) MASK Register */
-
-/* -------- AC_STATUSC : (AC Offset: 0x0A) (R/ 8) Status C -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t STATE0:1; /*!< bit: 0 Comparator 0 Current State */
- uint8_t STATE1:1; /*!< bit: 1 Comparator 1 Current State */
- uint8_t :2; /*!< bit: 2.. 3 Reserved */
- uint8_t WSTATE0:2; /*!< bit: 4.. 5 Window 0 Current State */
- uint8_t :2; /*!< bit: 6.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- struct {
- uint8_t STATE:2; /*!< bit: 0.. 1 Comparator x Current State */
- uint8_t :6; /*!< bit: 2.. 7 Reserved */
- } vec; /*!< Structure used for vec access */
- uint8_t reg; /*!< Type used for register access */
-} AC_STATUSC_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define AC_STATUSC_OFFSET 0x0A /**< \brief (AC_STATUSC offset) Status C */
-#define AC_STATUSC_RESETVALUE 0x00ul /**< \brief (AC_STATUSC reset_value) Status C */
-
-#define AC_STATUSC_STATE0_Pos 0 /**< \brief (AC_STATUSC) Comparator 0 Current State */
-#define AC_STATUSC_STATE0 (1 << AC_STATUSC_STATE0_Pos)
-#define AC_STATUSC_STATE1_Pos 1 /**< \brief (AC_STATUSC) Comparator 1 Current State */
-#define AC_STATUSC_STATE1 (1 << AC_STATUSC_STATE1_Pos)
-#define AC_STATUSC_STATE_Pos 0 /**< \brief (AC_STATUSC) Comparator x Current State */
-#define AC_STATUSC_STATE_Msk (0x3ul << AC_STATUSC_STATE_Pos)
-#define AC_STATUSC_STATE(value) (AC_STATUSC_STATE_Msk & ((value) << AC_STATUSC_STATE_Pos))
-#define AC_STATUSC_WSTATE0_Pos 4 /**< \brief (AC_STATUSC) Window 0 Current State */
-#define AC_STATUSC_WSTATE0_Msk (0x3ul << AC_STATUSC_WSTATE0_Pos)
-#define AC_STATUSC_WSTATE0(value) (AC_STATUSC_WSTATE0_Msk & ((value) << AC_STATUSC_WSTATE0_Pos))
-#define AC_STATUSC_WSTATE0_ABOVE_Val 0x0ul /**< \brief (AC_STATUSC) Signal is above window */
-#define AC_STATUSC_WSTATE0_INSIDE_Val 0x1ul /**< \brief (AC_STATUSC) Signal is inside window */
-#define AC_STATUSC_WSTATE0_BELOW_Val 0x2ul /**< \brief (AC_STATUSC) Signal is below window */
-#define AC_STATUSC_WSTATE0_ABOVE (AC_STATUSC_WSTATE0_ABOVE_Val << AC_STATUSC_WSTATE0_Pos)
-#define AC_STATUSC_WSTATE0_INSIDE (AC_STATUSC_WSTATE0_INSIDE_Val << AC_STATUSC_WSTATE0_Pos)
-#define AC_STATUSC_WSTATE0_BELOW (AC_STATUSC_WSTATE0_BELOW_Val << AC_STATUSC_WSTATE0_Pos)
-#define AC_STATUSC_MASK 0x33ul /**< \brief (AC_STATUSC) MASK Register */
-
-/* -------- AC_WINCTRL : (AC Offset: 0x0C) (R/W 8) Window Control -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t WEN0:1; /*!< bit: 0 Window 0 Mode Enable */
- uint8_t WINTSEL0:2; /*!< bit: 1.. 2 Window 0 Interrupt Selection */
- uint8_t :5; /*!< bit: 3.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} AC_WINCTRL_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define AC_WINCTRL_OFFSET 0x0C /**< \brief (AC_WINCTRL offset) Window Control */
-#define AC_WINCTRL_RESETVALUE 0x00ul /**< \brief (AC_WINCTRL reset_value) Window Control */
-
-#define AC_WINCTRL_WEN0_Pos 0 /**< \brief (AC_WINCTRL) Window 0 Mode Enable */
-#define AC_WINCTRL_WEN0 (0x1ul << AC_WINCTRL_WEN0_Pos)
-#define AC_WINCTRL_WINTSEL0_Pos 1 /**< \brief (AC_WINCTRL) Window 0 Interrupt Selection */
-#define AC_WINCTRL_WINTSEL0_Msk (0x3ul << AC_WINCTRL_WINTSEL0_Pos)
-#define AC_WINCTRL_WINTSEL0(value) (AC_WINCTRL_WINTSEL0_Msk & ((value) << AC_WINCTRL_WINTSEL0_Pos))
-#define AC_WINCTRL_WINTSEL0_ABOVE_Val 0x0ul /**< \brief (AC_WINCTRL) Interrupt on signal above window */
-#define AC_WINCTRL_WINTSEL0_INSIDE_Val 0x1ul /**< \brief (AC_WINCTRL) Interrupt on signal inside window */
-#define AC_WINCTRL_WINTSEL0_BELOW_Val 0x2ul /**< \brief (AC_WINCTRL) Interrupt on signal below window */
-#define AC_WINCTRL_WINTSEL0_OUTSIDE_Val 0x3ul /**< \brief (AC_WINCTRL) Interrupt on signal outside window */
-#define AC_WINCTRL_WINTSEL0_ABOVE (AC_WINCTRL_WINTSEL0_ABOVE_Val << AC_WINCTRL_WINTSEL0_Pos)
-#define AC_WINCTRL_WINTSEL0_INSIDE (AC_WINCTRL_WINTSEL0_INSIDE_Val << AC_WINCTRL_WINTSEL0_Pos)
-#define AC_WINCTRL_WINTSEL0_BELOW (AC_WINCTRL_WINTSEL0_BELOW_Val << AC_WINCTRL_WINTSEL0_Pos)
-#define AC_WINCTRL_WINTSEL0_OUTSIDE (AC_WINCTRL_WINTSEL0_OUTSIDE_Val << AC_WINCTRL_WINTSEL0_Pos)
-#define AC_WINCTRL_MASK 0x07ul /**< \brief (AC_WINCTRL) MASK Register */
-
-/* -------- AC_COMPCTRL : (AC Offset: 0x10) (R/W 32) Comparator Control n -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint32_t ENABLE:1; /*!< bit: 0 Enable */
- uint32_t SINGLE:1; /*!< bit: 1 Single-Shot Mode */
- uint32_t SPEED:2; /*!< bit: 2.. 3 Speed Selection */
- uint32_t :1; /*!< bit: 4 Reserved */
- uint32_t INTSEL:2; /*!< bit: 5.. 6 Interrupt Selection */
- uint32_t :1; /*!< bit: 7 Reserved */
- uint32_t MUXNEG:3; /*!< bit: 8..10 Negative Input Mux Selection */
- uint32_t :1; /*!< bit: 11 Reserved */
- uint32_t MUXPOS:2; /*!< bit: 12..13 Positive Input Mux Selection */
- uint32_t :1; /*!< bit: 14 Reserved */
- uint32_t SWAP:1; /*!< bit: 15 Swap Inputs and Invert */
- uint32_t OUT:2; /*!< bit: 16..17 Output */
- uint32_t :1; /*!< bit: 18 Reserved */
- uint32_t HYST:1; /*!< bit: 19 Hysteresis Enable */
- uint32_t :4; /*!< bit: 20..23 Reserved */
- uint32_t FLEN:3; /*!< bit: 24..26 Filter Length */
- uint32_t :5; /*!< bit: 27..31 Reserved */
- } bit; /*!< Structure used for bit access */
- uint32_t reg; /*!< Type used for register access */
-} AC_COMPCTRL_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define AC_COMPCTRL_OFFSET 0x10 /**< \brief (AC_COMPCTRL offset) Comparator Control n */
-#define AC_COMPCTRL_RESETVALUE 0x00000000ul /**< \brief (AC_COMPCTRL reset_value) Comparator Control n */
-
-#define AC_COMPCTRL_ENABLE_Pos 0 /**< \brief (AC_COMPCTRL) Enable */
-#define AC_COMPCTRL_ENABLE (0x1ul << AC_COMPCTRL_ENABLE_Pos)
-#define AC_COMPCTRL_SINGLE_Pos 1 /**< \brief (AC_COMPCTRL) Single-Shot Mode */
-#define AC_COMPCTRL_SINGLE (0x1ul << AC_COMPCTRL_SINGLE_Pos)
-#define AC_COMPCTRL_SPEED_Pos 2 /**< \brief (AC_COMPCTRL) Speed Selection */
-#define AC_COMPCTRL_SPEED_Msk (0x3ul << AC_COMPCTRL_SPEED_Pos)
-#define AC_COMPCTRL_SPEED(value) (AC_COMPCTRL_SPEED_Msk & ((value) << AC_COMPCTRL_SPEED_Pos))
-#define AC_COMPCTRL_SPEED_LOW_Val 0x0ul /**< \brief (AC_COMPCTRL) Low speed */
-#define AC_COMPCTRL_SPEED_HIGH_Val 0x1ul /**< \brief (AC_COMPCTRL) High speed */
-#define AC_COMPCTRL_SPEED_LOW (AC_COMPCTRL_SPEED_LOW_Val << AC_COMPCTRL_SPEED_Pos)
-#define AC_COMPCTRL_SPEED_HIGH (AC_COMPCTRL_SPEED_HIGH_Val << AC_COMPCTRL_SPEED_Pos)
-#define AC_COMPCTRL_INTSEL_Pos 5 /**< \brief (AC_COMPCTRL) Interrupt Selection */
-#define AC_COMPCTRL_INTSEL_Msk (0x3ul << AC_COMPCTRL_INTSEL_Pos)
-#define AC_COMPCTRL_INTSEL(value) (AC_COMPCTRL_INTSEL_Msk & ((value) << AC_COMPCTRL_INTSEL_Pos))
-#define AC_COMPCTRL_INTSEL_TOGGLE_Val 0x0ul /**< \brief (AC_COMPCTRL) Interrupt on comparator output toggle */
-#define AC_COMPCTRL_INTSEL_RISING_Val 0x1ul /**< \brief (AC_COMPCTRL) Interrupt on comparator output rising */
-#define AC_COMPCTRL_INTSEL_FALLING_Val 0x2ul /**< \brief (AC_COMPCTRL) Interrupt on comparator output falling */
-#define AC_COMPCTRL_INTSEL_EOC_Val 0x3ul /**< \brief (AC_COMPCTRL) Interrupt on end of comparison (single-shot mode only) */
-#define AC_COMPCTRL_INTSEL_TOGGLE (AC_COMPCTRL_INTSEL_TOGGLE_Val << AC_COMPCTRL_INTSEL_Pos)
-#define AC_COMPCTRL_INTSEL_RISING (AC_COMPCTRL_INTSEL_RISING_Val << AC_COMPCTRL_INTSEL_Pos)
-#define AC_COMPCTRL_INTSEL_FALLING (AC_COMPCTRL_INTSEL_FALLING_Val << AC_COMPCTRL_INTSEL_Pos)
-#define AC_COMPCTRL_INTSEL_EOC (AC_COMPCTRL_INTSEL_EOC_Val << AC_COMPCTRL_INTSEL_Pos)
-#define AC_COMPCTRL_MUXNEG_Pos 8 /**< \brief (AC_COMPCTRL) Negative Input Mux Selection */
-#define AC_COMPCTRL_MUXNEG_Msk (0x7ul << AC_COMPCTRL_MUXNEG_Pos)
-#define AC_COMPCTRL_MUXNEG(value) (AC_COMPCTRL_MUXNEG_Msk & ((value) << AC_COMPCTRL_MUXNEG_Pos))
-#define AC_COMPCTRL_MUXNEG_PIN0_Val 0x0ul /**< \brief (AC_COMPCTRL) I/O pin 0 */
-#define AC_COMPCTRL_MUXNEG_PIN1_Val 0x1ul /**< \brief (AC_COMPCTRL) I/O pin 1 */
-#define AC_COMPCTRL_MUXNEG_PIN2_Val 0x2ul /**< \brief (AC_COMPCTRL) I/O pin 2 */
-#define AC_COMPCTRL_MUXNEG_PIN3_Val 0x3ul /**< \brief (AC_COMPCTRL) I/O pin 3 */
-#define AC_COMPCTRL_MUXNEG_GND_Val 0x4ul /**< \brief (AC_COMPCTRL) Ground */
-#define AC_COMPCTRL_MUXNEG_VSCALE_Val 0x5ul /**< \brief (AC_COMPCTRL) VDD scaler */
-#define AC_COMPCTRL_MUXNEG_BANDGAP_Val 0x6ul /**< \brief (AC_COMPCTRL) Internal bandgap voltage */
-#define AC_COMPCTRL_MUXNEG_DAC_Val 0x7ul /**< \brief (AC_COMPCTRL) DAC output */
-#define AC_COMPCTRL_MUXNEG_PIN0 (AC_COMPCTRL_MUXNEG_PIN0_Val << AC_COMPCTRL_MUXNEG_Pos)
-#define AC_COMPCTRL_MUXNEG_PIN1 (AC_COMPCTRL_MUXNEG_PIN1_Val << AC_COMPCTRL_MUXNEG_Pos)
-#define AC_COMPCTRL_MUXNEG_PIN2 (AC_COMPCTRL_MUXNEG_PIN2_Val << AC_COMPCTRL_MUXNEG_Pos)
-#define AC_COMPCTRL_MUXNEG_PIN3 (AC_COMPCTRL_MUXNEG_PIN3_Val << AC_COMPCTRL_MUXNEG_Pos)
-#define AC_COMPCTRL_MUXNEG_GND (AC_COMPCTRL_MUXNEG_GND_Val << AC_COMPCTRL_MUXNEG_Pos)
-#define AC_COMPCTRL_MUXNEG_VSCALE (AC_COMPCTRL_MUXNEG_VSCALE_Val << AC_COMPCTRL_MUXNEG_Pos)
-#define AC_COMPCTRL_MUXNEG_BANDGAP (AC_COMPCTRL_MUXNEG_BANDGAP_Val << AC_COMPCTRL_MUXNEG_Pos)
-#define AC_COMPCTRL_MUXNEG_DAC (AC_COMPCTRL_MUXNEG_DAC_Val << AC_COMPCTRL_MUXNEG_Pos)
-#define AC_COMPCTRL_MUXPOS_Pos 12 /**< \brief (AC_COMPCTRL) Positive Input Mux Selection */
-#define AC_COMPCTRL_MUXPOS_Msk (0x3ul << AC_COMPCTRL_MUXPOS_Pos)
-#define AC_COMPCTRL_MUXPOS(value) (AC_COMPCTRL_MUXPOS_Msk & ((value) << AC_COMPCTRL_MUXPOS_Pos))
-#define AC_COMPCTRL_MUXPOS_PIN0_Val 0x0ul /**< \brief (AC_COMPCTRL) I/O pin 0 */
-#define AC_COMPCTRL_MUXPOS_PIN1_Val 0x1ul /**< \brief (AC_COMPCTRL) I/O pin 1 */
-#define AC_COMPCTRL_MUXPOS_PIN2_Val 0x2ul /**< \brief (AC_COMPCTRL) I/O pin 2 */
-#define AC_COMPCTRL_MUXPOS_PIN3_Val 0x3ul /**< \brief (AC_COMPCTRL) I/O pin 3 */
-#define AC_COMPCTRL_MUXPOS_PIN0 (AC_COMPCTRL_MUXPOS_PIN0_Val << AC_COMPCTRL_MUXPOS_Pos)
-#define AC_COMPCTRL_MUXPOS_PIN1 (AC_COMPCTRL_MUXPOS_PIN1_Val << AC_COMPCTRL_MUXPOS_Pos)
-#define AC_COMPCTRL_MUXPOS_PIN2 (AC_COMPCTRL_MUXPOS_PIN2_Val << AC_COMPCTRL_MUXPOS_Pos)
-#define AC_COMPCTRL_MUXPOS_PIN3 (AC_COMPCTRL_MUXPOS_PIN3_Val << AC_COMPCTRL_MUXPOS_Pos)
-#define AC_COMPCTRL_SWAP_Pos 15 /**< \brief (AC_COMPCTRL) Swap Inputs and Invert */
-#define AC_COMPCTRL_SWAP (0x1ul << AC_COMPCTRL_SWAP_Pos)
-#define AC_COMPCTRL_OUT_Pos 16 /**< \brief (AC_COMPCTRL) Output */
-#define AC_COMPCTRL_OUT_Msk (0x3ul << AC_COMPCTRL_OUT_Pos)
-#define AC_COMPCTRL_OUT(value) (AC_COMPCTRL_OUT_Msk & ((value) << AC_COMPCTRL_OUT_Pos))
-#define AC_COMPCTRL_OUT_OFF_Val 0x0ul /**< \brief (AC_COMPCTRL) The output of COMPn is not routed to the COMPn I/O port */
-#define AC_COMPCTRL_OUT_ASYNC_Val 0x1ul /**< \brief (AC_COMPCTRL) The asynchronous output of COMPn is routed to the COMPn I/O port */
-#define AC_COMPCTRL_OUT_SYNC_Val 0x2ul /**< \brief (AC_COMPCTRL) The synchronous output (including filtering) of COMPn is routed to the COMPn I/O port */
-#define AC_COMPCTRL_OUT_OFF (AC_COMPCTRL_OUT_OFF_Val << AC_COMPCTRL_OUT_Pos)
-#define AC_COMPCTRL_OUT_ASYNC (AC_COMPCTRL_OUT_ASYNC_Val << AC_COMPCTRL_OUT_Pos)
-#define AC_COMPCTRL_OUT_SYNC (AC_COMPCTRL_OUT_SYNC_Val << AC_COMPCTRL_OUT_Pos)
-#define AC_COMPCTRL_HYST_Pos 19 /**< \brief (AC_COMPCTRL) Hysteresis Enable */
-#define AC_COMPCTRL_HYST (0x1ul << AC_COMPCTRL_HYST_Pos)
-#define AC_COMPCTRL_FLEN_Pos 24 /**< \brief (AC_COMPCTRL) Filter Length */
-#define AC_COMPCTRL_FLEN_Msk (0x7ul << AC_COMPCTRL_FLEN_Pos)
-#define AC_COMPCTRL_FLEN(value) (AC_COMPCTRL_FLEN_Msk & ((value) << AC_COMPCTRL_FLEN_Pos))
-#define AC_COMPCTRL_FLEN_OFF_Val 0x0ul /**< \brief (AC_COMPCTRL) No filtering */
-#define AC_COMPCTRL_FLEN_MAJ3_Val 0x1ul /**< \brief (AC_COMPCTRL) 3-bit majority function (2 of 3) */
-#define AC_COMPCTRL_FLEN_MAJ5_Val 0x2ul /**< \brief (AC_COMPCTRL) 5-bit majority function (3 of 5) */
-#define AC_COMPCTRL_FLEN_OFF (AC_COMPCTRL_FLEN_OFF_Val << AC_COMPCTRL_FLEN_Pos)
-#define AC_COMPCTRL_FLEN_MAJ3 (AC_COMPCTRL_FLEN_MAJ3_Val << AC_COMPCTRL_FLEN_Pos)
-#define AC_COMPCTRL_FLEN_MAJ5 (AC_COMPCTRL_FLEN_MAJ5_Val << AC_COMPCTRL_FLEN_Pos)
-#define AC_COMPCTRL_MASK 0x070BB76Ful /**< \brief (AC_COMPCTRL) MASK Register */
-
-/* -------- AC_SCALER : (AC Offset: 0x20) (R/W 8) Scaler n -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t VALUE:6; /*!< bit: 0.. 5 Scaler Value */
- uint8_t :2; /*!< bit: 6.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} AC_SCALER_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define AC_SCALER_OFFSET 0x20 /**< \brief (AC_SCALER offset) Scaler n */
-#define AC_SCALER_RESETVALUE 0x00ul /**< \brief (AC_SCALER reset_value) Scaler n */
-
-#define AC_SCALER_VALUE_Pos 0 /**< \brief (AC_SCALER) Scaler Value */
-#define AC_SCALER_VALUE_Msk (0x3Ful << AC_SCALER_VALUE_Pos)
-#define AC_SCALER_VALUE(value) (AC_SCALER_VALUE_Msk & ((value) << AC_SCALER_VALUE_Pos))
-#define AC_SCALER_MASK 0x3Ful /**< \brief (AC_SCALER) MASK Register */
-
-/** \brief AC hardware registers */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef struct {
- __IO AC_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 8) Control A */
- __O AC_CTRLB_Type CTRLB; /**< \brief Offset: 0x01 ( /W 8) Control B */
- __IO AC_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x02 (R/W 16) Event Control */
- __IO AC_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x04 (R/W 8) Interrupt Enable Clear */
- __IO AC_INTENSET_Type INTENSET; /**< \brief Offset: 0x05 (R/W 8) Interrupt Enable Set */
- __IO AC_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x06 (R/W 8) Interrupt Flag Status and Clear */
- RoReg8 Reserved1[0x1];
- __I AC_STATUSA_Type STATUSA; /**< \brief Offset: 0x08 (R/ 8) Status A */
- __I AC_STATUSB_Type STATUSB; /**< \brief Offset: 0x09 (R/ 8) Status B */
- __I AC_STATUSC_Type STATUSC; /**< \brief Offset: 0x0A (R/ 8) Status C */
- RoReg8 Reserved2[0x1];
- __IO AC_WINCTRL_Type WINCTRL; /**< \brief Offset: 0x0C (R/W 8) Window Control */
- RoReg8 Reserved3[0x3];
- __IO AC_COMPCTRL_Type COMPCTRL[2]; /**< \brief Offset: 0x10 (R/W 32) Comparator Control n */
- RoReg8 Reserved4[0x8];
- __IO AC_SCALER_Type SCALER[2]; /**< \brief Offset: 0x20 (R/W 8) Scaler n */
-} Ac;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-/*@}*/
-
-#endif /* _SAMD21_AC_COMPONENT_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/component/adc.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/component/adc.h
deleted file mode 100644
index bbfcdfc..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/component/adc.h
+++ /dev/null
@@ -1,689 +0,0 @@
-/**
- * \file
- *
- * \brief Component description for ADC
- *
- * Copyright (c) 2016-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21_ADC_COMPONENT_
-#define _SAMD21_ADC_COMPONENT_
-
-/* ========================================================================== */
-/** SOFTWARE API DEFINITION FOR ADC */
-/* ========================================================================== */
-/** \addtogroup SAMD21_ADC Analog Digital Converter */
-/*@{*/
-
-#define ADC_U2204
-#define REV_ADC 0x120
-
-/* -------- ADC_CTRLA : (ADC Offset: 0x00) (R/W 8) Control A -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t SWRST:1; /*!< bit: 0 Software Reset */
- uint8_t ENABLE:1; /*!< bit: 1 Enable */
- uint8_t RUNSTDBY:1; /*!< bit: 2 Run in Standby */
- uint8_t :5; /*!< bit: 3.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} ADC_CTRLA_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define ADC_CTRLA_OFFSET 0x00 /**< \brief (ADC_CTRLA offset) Control A */
-#define ADC_CTRLA_RESETVALUE 0x00ul /**< \brief (ADC_CTRLA reset_value) Control A */
-
-#define ADC_CTRLA_SWRST_Pos 0 /**< \brief (ADC_CTRLA) Software Reset */
-#define ADC_CTRLA_SWRST (0x1ul << ADC_CTRLA_SWRST_Pos)
-#define ADC_CTRLA_ENABLE_Pos 1 /**< \brief (ADC_CTRLA) Enable */
-#define ADC_CTRLA_ENABLE (0x1ul << ADC_CTRLA_ENABLE_Pos)
-#define ADC_CTRLA_RUNSTDBY_Pos 2 /**< \brief (ADC_CTRLA) Run in Standby */
-#define ADC_CTRLA_RUNSTDBY (0x1ul << ADC_CTRLA_RUNSTDBY_Pos)
-#define ADC_CTRLA_MASK 0x07ul /**< \brief (ADC_CTRLA) MASK Register */
-
-/* -------- ADC_REFCTRL : (ADC Offset: 0x01) (R/W 8) Reference Control -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t REFSEL:4; /*!< bit: 0.. 3 Reference Selection */
- uint8_t :3; /*!< bit: 4.. 6 Reserved */
- uint8_t REFCOMP:1; /*!< bit: 7 Reference Buffer Offset Compensation Enable */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} ADC_REFCTRL_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define ADC_REFCTRL_OFFSET 0x01 /**< \brief (ADC_REFCTRL offset) Reference Control */
-#define ADC_REFCTRL_RESETVALUE 0x00ul /**< \brief (ADC_REFCTRL reset_value) Reference Control */
-
-#define ADC_REFCTRL_REFSEL_Pos 0 /**< \brief (ADC_REFCTRL) Reference Selection */
-#define ADC_REFCTRL_REFSEL_Msk (0xFul << ADC_REFCTRL_REFSEL_Pos)
-#define ADC_REFCTRL_REFSEL(value) (ADC_REFCTRL_REFSEL_Msk & ((value) << ADC_REFCTRL_REFSEL_Pos))
-#define ADC_REFCTRL_REFSEL_INT1V_Val 0x0ul /**< \brief (ADC_REFCTRL) 1.0V voltage reference */
-#define ADC_REFCTRL_REFSEL_INTVCC0_Val 0x1ul /**< \brief (ADC_REFCTRL) 1/1.48 VDDANA */
-#define ADC_REFCTRL_REFSEL_INTVCC1_Val 0x2ul /**< \brief (ADC_REFCTRL) 1/2 VDDANA (only for VDDANA > 2.0V) */
-#define ADC_REFCTRL_REFSEL_AREFA_Val 0x3ul /**< \brief (ADC_REFCTRL) External reference */
-#define ADC_REFCTRL_REFSEL_AREFB_Val 0x4ul /**< \brief (ADC_REFCTRL) External reference */
-#define ADC_REFCTRL_REFSEL_INT1V (ADC_REFCTRL_REFSEL_INT1V_Val << ADC_REFCTRL_REFSEL_Pos)
-#define ADC_REFCTRL_REFSEL_INTVCC0 (ADC_REFCTRL_REFSEL_INTVCC0_Val << ADC_REFCTRL_REFSEL_Pos)
-#define ADC_REFCTRL_REFSEL_INTVCC1 (ADC_REFCTRL_REFSEL_INTVCC1_Val << ADC_REFCTRL_REFSEL_Pos)
-#define ADC_REFCTRL_REFSEL_AREFA (ADC_REFCTRL_REFSEL_AREFA_Val << ADC_REFCTRL_REFSEL_Pos)
-#define ADC_REFCTRL_REFSEL_AREFB (ADC_REFCTRL_REFSEL_AREFB_Val << ADC_REFCTRL_REFSEL_Pos)
-#define ADC_REFCTRL_REFCOMP_Pos 7 /**< \brief (ADC_REFCTRL) Reference Buffer Offset Compensation Enable */
-#define ADC_REFCTRL_REFCOMP (0x1ul << ADC_REFCTRL_REFCOMP_Pos)
-#define ADC_REFCTRL_MASK 0x8Ful /**< \brief (ADC_REFCTRL) MASK Register */
-
-/* -------- ADC_AVGCTRL : (ADC Offset: 0x02) (R/W 8) Average Control -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t SAMPLENUM:4; /*!< bit: 0.. 3 Number of Samples to be Collected */
- uint8_t ADJRES:3; /*!< bit: 4.. 6 Adjusting Result / Division Coefficient */
- uint8_t :1; /*!< bit: 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} ADC_AVGCTRL_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define ADC_AVGCTRL_OFFSET 0x02 /**< \brief (ADC_AVGCTRL offset) Average Control */
-#define ADC_AVGCTRL_RESETVALUE 0x00ul /**< \brief (ADC_AVGCTRL reset_value) Average Control */
-
-#define ADC_AVGCTRL_SAMPLENUM_Pos 0 /**< \brief (ADC_AVGCTRL) Number of Samples to be Collected */
-#define ADC_AVGCTRL_SAMPLENUM_Msk (0xFul << ADC_AVGCTRL_SAMPLENUM_Pos)
-#define ADC_AVGCTRL_SAMPLENUM(value) (ADC_AVGCTRL_SAMPLENUM_Msk & ((value) << ADC_AVGCTRL_SAMPLENUM_Pos))
-#define ADC_AVGCTRL_SAMPLENUM_1_Val 0x0ul /**< \brief (ADC_AVGCTRL) 1 sample */
-#define ADC_AVGCTRL_SAMPLENUM_2_Val 0x1ul /**< \brief (ADC_AVGCTRL) 2 samples */
-#define ADC_AVGCTRL_SAMPLENUM_4_Val 0x2ul /**< \brief (ADC_AVGCTRL) 4 samples */
-#define ADC_AVGCTRL_SAMPLENUM_8_Val 0x3ul /**< \brief (ADC_AVGCTRL) 8 samples */
-#define ADC_AVGCTRL_SAMPLENUM_16_Val 0x4ul /**< \brief (ADC_AVGCTRL) 16 samples */
-#define ADC_AVGCTRL_SAMPLENUM_32_Val 0x5ul /**< \brief (ADC_AVGCTRL) 32 samples */
-#define ADC_AVGCTRL_SAMPLENUM_64_Val 0x6ul /**< \brief (ADC_AVGCTRL) 64 samples */
-#define ADC_AVGCTRL_SAMPLENUM_128_Val 0x7ul /**< \brief (ADC_AVGCTRL) 128 samples */
-#define ADC_AVGCTRL_SAMPLENUM_256_Val 0x8ul /**< \brief (ADC_AVGCTRL) 256 samples */
-#define ADC_AVGCTRL_SAMPLENUM_512_Val 0x9ul /**< \brief (ADC_AVGCTRL) 512 samples */
-#define ADC_AVGCTRL_SAMPLENUM_1024_Val 0xAul /**< \brief (ADC_AVGCTRL) 1024 samples */
-#define ADC_AVGCTRL_SAMPLENUM_1 (ADC_AVGCTRL_SAMPLENUM_1_Val << ADC_AVGCTRL_SAMPLENUM_Pos)
-#define ADC_AVGCTRL_SAMPLENUM_2 (ADC_AVGCTRL_SAMPLENUM_2_Val << ADC_AVGCTRL_SAMPLENUM_Pos)
-#define ADC_AVGCTRL_SAMPLENUM_4 (ADC_AVGCTRL_SAMPLENUM_4_Val << ADC_AVGCTRL_SAMPLENUM_Pos)
-#define ADC_AVGCTRL_SAMPLENUM_8 (ADC_AVGCTRL_SAMPLENUM_8_Val << ADC_AVGCTRL_SAMPLENUM_Pos)
-#define ADC_AVGCTRL_SAMPLENUM_16 (ADC_AVGCTRL_SAMPLENUM_16_Val << ADC_AVGCTRL_SAMPLENUM_Pos)
-#define ADC_AVGCTRL_SAMPLENUM_32 (ADC_AVGCTRL_SAMPLENUM_32_Val << ADC_AVGCTRL_SAMPLENUM_Pos)
-#define ADC_AVGCTRL_SAMPLENUM_64 (ADC_AVGCTRL_SAMPLENUM_64_Val << ADC_AVGCTRL_SAMPLENUM_Pos)
-#define ADC_AVGCTRL_SAMPLENUM_128 (ADC_AVGCTRL_SAMPLENUM_128_Val << ADC_AVGCTRL_SAMPLENUM_Pos)
-#define ADC_AVGCTRL_SAMPLENUM_256 (ADC_AVGCTRL_SAMPLENUM_256_Val << ADC_AVGCTRL_SAMPLENUM_Pos)
-#define ADC_AVGCTRL_SAMPLENUM_512 (ADC_AVGCTRL_SAMPLENUM_512_Val << ADC_AVGCTRL_SAMPLENUM_Pos)
-#define ADC_AVGCTRL_SAMPLENUM_1024 (ADC_AVGCTRL_SAMPLENUM_1024_Val << ADC_AVGCTRL_SAMPLENUM_Pos)
-#define ADC_AVGCTRL_ADJRES_Pos 4 /**< \brief (ADC_AVGCTRL) Adjusting Result / Division Coefficient */
-#define ADC_AVGCTRL_ADJRES_Msk (0x7ul << ADC_AVGCTRL_ADJRES_Pos)
-#define ADC_AVGCTRL_ADJRES(value) (ADC_AVGCTRL_ADJRES_Msk & ((value) << ADC_AVGCTRL_ADJRES_Pos))
-#define ADC_AVGCTRL_MASK 0x7Ful /**< \brief (ADC_AVGCTRL) MASK Register */
-
-/* -------- ADC_SAMPCTRL : (ADC Offset: 0x03) (R/W 8) Sampling Time Control -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t SAMPLEN:6; /*!< bit: 0.. 5 Sampling Time Length */
- uint8_t :2; /*!< bit: 6.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} ADC_SAMPCTRL_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define ADC_SAMPCTRL_OFFSET 0x03 /**< \brief (ADC_SAMPCTRL offset) Sampling Time Control */
-#define ADC_SAMPCTRL_RESETVALUE 0x00ul /**< \brief (ADC_SAMPCTRL reset_value) Sampling Time Control */
-
-#define ADC_SAMPCTRL_SAMPLEN_Pos 0 /**< \brief (ADC_SAMPCTRL) Sampling Time Length */
-#define ADC_SAMPCTRL_SAMPLEN_Msk (0x3Ful << ADC_SAMPCTRL_SAMPLEN_Pos)
-#define ADC_SAMPCTRL_SAMPLEN(value) (ADC_SAMPCTRL_SAMPLEN_Msk & ((value) << ADC_SAMPCTRL_SAMPLEN_Pos))
-#define ADC_SAMPCTRL_MASK 0x3Ful /**< \brief (ADC_SAMPCTRL) MASK Register */
-
-/* -------- ADC_CTRLB : (ADC Offset: 0x04) (R/W 16) Control B -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint16_t DIFFMODE:1; /*!< bit: 0 Differential Mode */
- uint16_t LEFTADJ:1; /*!< bit: 1 Left-Adjusted Result */
- uint16_t FREERUN:1; /*!< bit: 2 Free Running Mode */
- uint16_t CORREN:1; /*!< bit: 3 Digital Correction Logic Enabled */
- uint16_t RESSEL:2; /*!< bit: 4.. 5 Conversion Result Resolution */
- uint16_t :2; /*!< bit: 6.. 7 Reserved */
- uint16_t PRESCALER:3; /*!< bit: 8..10 Prescaler Configuration */
- uint16_t :5; /*!< bit: 11..15 Reserved */
- } bit; /*!< Structure used for bit access */
- uint16_t reg; /*!< Type used for register access */
-} ADC_CTRLB_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define ADC_CTRLB_OFFSET 0x04 /**< \brief (ADC_CTRLB offset) Control B */
-#define ADC_CTRLB_RESETVALUE 0x0000ul /**< \brief (ADC_CTRLB reset_value) Control B */
-
-#define ADC_CTRLB_DIFFMODE_Pos 0 /**< \brief (ADC_CTRLB) Differential Mode */
-#define ADC_CTRLB_DIFFMODE (0x1ul << ADC_CTRLB_DIFFMODE_Pos)
-#define ADC_CTRLB_LEFTADJ_Pos 1 /**< \brief (ADC_CTRLB) Left-Adjusted Result */
-#define ADC_CTRLB_LEFTADJ (0x1ul << ADC_CTRLB_LEFTADJ_Pos)
-#define ADC_CTRLB_FREERUN_Pos 2 /**< \brief (ADC_CTRLB) Free Running Mode */
-#define ADC_CTRLB_FREERUN (0x1ul << ADC_CTRLB_FREERUN_Pos)
-#define ADC_CTRLB_CORREN_Pos 3 /**< \brief (ADC_CTRLB) Digital Correction Logic Enabled */
-#define ADC_CTRLB_CORREN (0x1ul << ADC_CTRLB_CORREN_Pos)
-#define ADC_CTRLB_RESSEL_Pos 4 /**< \brief (ADC_CTRLB) Conversion Result Resolution */
-#define ADC_CTRLB_RESSEL_Msk (0x3ul << ADC_CTRLB_RESSEL_Pos)
-#define ADC_CTRLB_RESSEL(value) (ADC_CTRLB_RESSEL_Msk & ((value) << ADC_CTRLB_RESSEL_Pos))
-#define ADC_CTRLB_RESSEL_12BIT_Val 0x0ul /**< \brief (ADC_CTRLB) 12-bit result */
-#define ADC_CTRLB_RESSEL_16BIT_Val 0x1ul /**< \brief (ADC_CTRLB) For averaging mode output */
-#define ADC_CTRLB_RESSEL_10BIT_Val 0x2ul /**< \brief (ADC_CTRLB) 10-bit result */
-#define ADC_CTRLB_RESSEL_8BIT_Val 0x3ul /**< \brief (ADC_CTRLB) 8-bit result */
-#define ADC_CTRLB_RESSEL_12BIT (ADC_CTRLB_RESSEL_12BIT_Val << ADC_CTRLB_RESSEL_Pos)
-#define ADC_CTRLB_RESSEL_16BIT (ADC_CTRLB_RESSEL_16BIT_Val << ADC_CTRLB_RESSEL_Pos)
-#define ADC_CTRLB_RESSEL_10BIT (ADC_CTRLB_RESSEL_10BIT_Val << ADC_CTRLB_RESSEL_Pos)
-#define ADC_CTRLB_RESSEL_8BIT (ADC_CTRLB_RESSEL_8BIT_Val << ADC_CTRLB_RESSEL_Pos)
-#define ADC_CTRLB_PRESCALER_Pos 8 /**< \brief (ADC_CTRLB) Prescaler Configuration */
-#define ADC_CTRLB_PRESCALER_Msk (0x7ul << ADC_CTRLB_PRESCALER_Pos)
-#define ADC_CTRLB_PRESCALER(value) (ADC_CTRLB_PRESCALER_Msk & ((value) << ADC_CTRLB_PRESCALER_Pos))
-#define ADC_CTRLB_PRESCALER_DIV4_Val 0x0ul /**< \brief (ADC_CTRLB) Peripheral clock divided by 4 */
-#define ADC_CTRLB_PRESCALER_DIV8_Val 0x1ul /**< \brief (ADC_CTRLB) Peripheral clock divided by 8 */
-#define ADC_CTRLB_PRESCALER_DIV16_Val 0x2ul /**< \brief (ADC_CTRLB) Peripheral clock divided by 16 */
-#define ADC_CTRLB_PRESCALER_DIV32_Val 0x3ul /**< \brief (ADC_CTRLB) Peripheral clock divided by 32 */
-#define ADC_CTRLB_PRESCALER_DIV64_Val 0x4ul /**< \brief (ADC_CTRLB) Peripheral clock divided by 64 */
-#define ADC_CTRLB_PRESCALER_DIV128_Val 0x5ul /**< \brief (ADC_CTRLB) Peripheral clock divided by 128 */
-#define ADC_CTRLB_PRESCALER_DIV256_Val 0x6ul /**< \brief (ADC_CTRLB) Peripheral clock divided by 256 */
-#define ADC_CTRLB_PRESCALER_DIV512_Val 0x7ul /**< \brief (ADC_CTRLB) Peripheral clock divided by 512 */
-#define ADC_CTRLB_PRESCALER_DIV4 (ADC_CTRLB_PRESCALER_DIV4_Val << ADC_CTRLB_PRESCALER_Pos)
-#define ADC_CTRLB_PRESCALER_DIV8 (ADC_CTRLB_PRESCALER_DIV8_Val << ADC_CTRLB_PRESCALER_Pos)
-#define ADC_CTRLB_PRESCALER_DIV16 (ADC_CTRLB_PRESCALER_DIV16_Val << ADC_CTRLB_PRESCALER_Pos)
-#define ADC_CTRLB_PRESCALER_DIV32 (ADC_CTRLB_PRESCALER_DIV32_Val << ADC_CTRLB_PRESCALER_Pos)
-#define ADC_CTRLB_PRESCALER_DIV64 (ADC_CTRLB_PRESCALER_DIV64_Val << ADC_CTRLB_PRESCALER_Pos)
-#define ADC_CTRLB_PRESCALER_DIV128 (ADC_CTRLB_PRESCALER_DIV128_Val << ADC_CTRLB_PRESCALER_Pos)
-#define ADC_CTRLB_PRESCALER_DIV256 (ADC_CTRLB_PRESCALER_DIV256_Val << ADC_CTRLB_PRESCALER_Pos)
-#define ADC_CTRLB_PRESCALER_DIV512 (ADC_CTRLB_PRESCALER_DIV512_Val << ADC_CTRLB_PRESCALER_Pos)
-#define ADC_CTRLB_MASK 0x073Ful /**< \brief (ADC_CTRLB) MASK Register */
-
-/* -------- ADC_WINCTRL : (ADC Offset: 0x08) (R/W 8) Window Monitor Control -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t WINMODE:3; /*!< bit: 0.. 2 Window Monitor Mode */
- uint8_t :5; /*!< bit: 3.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} ADC_WINCTRL_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define ADC_WINCTRL_OFFSET 0x08 /**< \brief (ADC_WINCTRL offset) Window Monitor Control */
-#define ADC_WINCTRL_RESETVALUE 0x00ul /**< \brief (ADC_WINCTRL reset_value) Window Monitor Control */
-
-#define ADC_WINCTRL_WINMODE_Pos 0 /**< \brief (ADC_WINCTRL) Window Monitor Mode */
-#define ADC_WINCTRL_WINMODE_Msk (0x7ul << ADC_WINCTRL_WINMODE_Pos)
-#define ADC_WINCTRL_WINMODE(value) (ADC_WINCTRL_WINMODE_Msk & ((value) << ADC_WINCTRL_WINMODE_Pos))
-#define ADC_WINCTRL_WINMODE_DISABLE_Val 0x0ul /**< \brief (ADC_WINCTRL) No window mode (default) */
-#define ADC_WINCTRL_WINMODE_MODE1_Val 0x1ul /**< \brief (ADC_WINCTRL) Mode 1: RESULT > WINLT */
-#define ADC_WINCTRL_WINMODE_MODE2_Val 0x2ul /**< \brief (ADC_WINCTRL) Mode 2: RESULT < WINUT */
-#define ADC_WINCTRL_WINMODE_MODE3_Val 0x3ul /**< \brief (ADC_WINCTRL) Mode 3: WINLT < RESULT < WINUT */
-#define ADC_WINCTRL_WINMODE_MODE4_Val 0x4ul /**< \brief (ADC_WINCTRL) Mode 4: !(WINLT < RESULT < WINUT) */
-#define ADC_WINCTRL_WINMODE_DISABLE (ADC_WINCTRL_WINMODE_DISABLE_Val << ADC_WINCTRL_WINMODE_Pos)
-#define ADC_WINCTRL_WINMODE_MODE1 (ADC_WINCTRL_WINMODE_MODE1_Val << ADC_WINCTRL_WINMODE_Pos)
-#define ADC_WINCTRL_WINMODE_MODE2 (ADC_WINCTRL_WINMODE_MODE2_Val << ADC_WINCTRL_WINMODE_Pos)
-#define ADC_WINCTRL_WINMODE_MODE3 (ADC_WINCTRL_WINMODE_MODE3_Val << ADC_WINCTRL_WINMODE_Pos)
-#define ADC_WINCTRL_WINMODE_MODE4 (ADC_WINCTRL_WINMODE_MODE4_Val << ADC_WINCTRL_WINMODE_Pos)
-#define ADC_WINCTRL_MASK 0x07ul /**< \brief (ADC_WINCTRL) MASK Register */
-
-/* -------- ADC_SWTRIG : (ADC Offset: 0x0C) (R/W 8) Software Trigger -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t FLUSH:1; /*!< bit: 0 ADC Conversion Flush */
- uint8_t START:1; /*!< bit: 1 ADC Start Conversion */
- uint8_t :6; /*!< bit: 2.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} ADC_SWTRIG_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define ADC_SWTRIG_OFFSET 0x0C /**< \brief (ADC_SWTRIG offset) Software Trigger */
-#define ADC_SWTRIG_RESETVALUE 0x00ul /**< \brief (ADC_SWTRIG reset_value) Software Trigger */
-
-#define ADC_SWTRIG_FLUSH_Pos 0 /**< \brief (ADC_SWTRIG) ADC Conversion Flush */
-#define ADC_SWTRIG_FLUSH (0x1ul << ADC_SWTRIG_FLUSH_Pos)
-#define ADC_SWTRIG_START_Pos 1 /**< \brief (ADC_SWTRIG) ADC Start Conversion */
-#define ADC_SWTRIG_START (0x1ul << ADC_SWTRIG_START_Pos)
-#define ADC_SWTRIG_MASK 0x03ul /**< \brief (ADC_SWTRIG) MASK Register */
-
-/* -------- ADC_INPUTCTRL : (ADC Offset: 0x10) (R/W 32) Input Control -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint32_t MUXPOS:5; /*!< bit: 0.. 4 Positive Mux Input Selection */
- uint32_t :3; /*!< bit: 5.. 7 Reserved */
- uint32_t MUXNEG:5; /*!< bit: 8..12 Negative Mux Input Selection */
- uint32_t :3; /*!< bit: 13..15 Reserved */
- uint32_t INPUTSCAN:4; /*!< bit: 16..19 Number of Input Channels Included in Scan */
- uint32_t INPUTOFFSET:4; /*!< bit: 20..23 Positive Mux Setting Offset */
- uint32_t GAIN:4; /*!< bit: 24..27 Gain Factor Selection */
- uint32_t :4; /*!< bit: 28..31 Reserved */
- } bit; /*!< Structure used for bit access */
- uint32_t reg; /*!< Type used for register access */
-} ADC_INPUTCTRL_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define ADC_INPUTCTRL_OFFSET 0x10 /**< \brief (ADC_INPUTCTRL offset) Input Control */
-#define ADC_INPUTCTRL_RESETVALUE 0x00000000ul /**< \brief (ADC_INPUTCTRL reset_value) Input Control */
-
-#define ADC_INPUTCTRL_MUXPOS_Pos 0 /**< \brief (ADC_INPUTCTRL) Positive Mux Input Selection */
-#define ADC_INPUTCTRL_MUXPOS_Msk (0x1Ful << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS(value) (ADC_INPUTCTRL_MUXPOS_Msk & ((value) << ADC_INPUTCTRL_MUXPOS_Pos))
-#define ADC_INPUTCTRL_MUXPOS_PIN0_Val 0x0ul /**< \brief (ADC_INPUTCTRL) ADC AIN0 Pin */
-#define ADC_INPUTCTRL_MUXPOS_PIN1_Val 0x1ul /**< \brief (ADC_INPUTCTRL) ADC AIN1 Pin */
-#define ADC_INPUTCTRL_MUXPOS_PIN2_Val 0x2ul /**< \brief (ADC_INPUTCTRL) ADC AIN2 Pin */
-#define ADC_INPUTCTRL_MUXPOS_PIN3_Val 0x3ul /**< \brief (ADC_INPUTCTRL) ADC AIN3 Pin */
-#define ADC_INPUTCTRL_MUXPOS_PIN4_Val 0x4ul /**< \brief (ADC_INPUTCTRL) ADC AIN4 Pin */
-#define ADC_INPUTCTRL_MUXPOS_PIN5_Val 0x5ul /**< \brief (ADC_INPUTCTRL) ADC AIN5 Pin */
-#define ADC_INPUTCTRL_MUXPOS_PIN6_Val 0x6ul /**< \brief (ADC_INPUTCTRL) ADC AIN6 Pin */
-#define ADC_INPUTCTRL_MUXPOS_PIN7_Val 0x7ul /**< \brief (ADC_INPUTCTRL) ADC AIN7 Pin */
-#define ADC_INPUTCTRL_MUXPOS_PIN8_Val 0x8ul /**< \brief (ADC_INPUTCTRL) ADC AIN8 Pin */
-#define ADC_INPUTCTRL_MUXPOS_PIN9_Val 0x9ul /**< \brief (ADC_INPUTCTRL) ADC AIN9 Pin */
-#define ADC_INPUTCTRL_MUXPOS_PIN10_Val 0xAul /**< \brief (ADC_INPUTCTRL) ADC AIN10 Pin */
-#define ADC_INPUTCTRL_MUXPOS_PIN11_Val 0xBul /**< \brief (ADC_INPUTCTRL) ADC AIN11 Pin */
-#define ADC_INPUTCTRL_MUXPOS_PIN12_Val 0xCul /**< \brief (ADC_INPUTCTRL) ADC AIN12 Pin */
-#define ADC_INPUTCTRL_MUXPOS_PIN13_Val 0xDul /**< \brief (ADC_INPUTCTRL) ADC AIN13 Pin */
-#define ADC_INPUTCTRL_MUXPOS_PIN14_Val 0xEul /**< \brief (ADC_INPUTCTRL) ADC AIN14 Pin */
-#define ADC_INPUTCTRL_MUXPOS_PIN15_Val 0xFul /**< \brief (ADC_INPUTCTRL) ADC AIN15 Pin */
-#define ADC_INPUTCTRL_MUXPOS_PIN16_Val 0x10ul /**< \brief (ADC_INPUTCTRL) ADC AIN16 Pin */
-#define ADC_INPUTCTRL_MUXPOS_PIN17_Val 0x11ul /**< \brief (ADC_INPUTCTRL) ADC AIN17 Pin */
-#define ADC_INPUTCTRL_MUXPOS_PIN18_Val 0x12ul /**< \brief (ADC_INPUTCTRL) ADC AIN18 Pin */
-#define ADC_INPUTCTRL_MUXPOS_PIN19_Val 0x13ul /**< \brief (ADC_INPUTCTRL) ADC AIN19 Pin */
-#define ADC_INPUTCTRL_MUXPOS_TEMP_Val 0x18ul /**< \brief (ADC_INPUTCTRL) Temperature Reference */
-#define ADC_INPUTCTRL_MUXPOS_BANDGAP_Val 0x19ul /**< \brief (ADC_INPUTCTRL) Bandgap Voltage */
-#define ADC_INPUTCTRL_MUXPOS_SCALEDCOREVCC_Val 0x1Aul /**< \brief (ADC_INPUTCTRL) 1/4 Scaled Core Supply */
-#define ADC_INPUTCTRL_MUXPOS_SCALEDIOVCC_Val 0x1Bul /**< \brief (ADC_INPUTCTRL) 1/4 Scaled I/O Supply */
-#define ADC_INPUTCTRL_MUXPOS_DAC_Val 0x1Cul /**< \brief (ADC_INPUTCTRL) DAC Output */
-#define ADC_INPUTCTRL_MUXPOS_PIN0 (ADC_INPUTCTRL_MUXPOS_PIN0_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_PIN1 (ADC_INPUTCTRL_MUXPOS_PIN1_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_PIN2 (ADC_INPUTCTRL_MUXPOS_PIN2_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_PIN3 (ADC_INPUTCTRL_MUXPOS_PIN3_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_PIN4 (ADC_INPUTCTRL_MUXPOS_PIN4_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_PIN5 (ADC_INPUTCTRL_MUXPOS_PIN5_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_PIN6 (ADC_INPUTCTRL_MUXPOS_PIN6_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_PIN7 (ADC_INPUTCTRL_MUXPOS_PIN7_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_PIN8 (ADC_INPUTCTRL_MUXPOS_PIN8_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_PIN9 (ADC_INPUTCTRL_MUXPOS_PIN9_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_PIN10 (ADC_INPUTCTRL_MUXPOS_PIN10_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_PIN11 (ADC_INPUTCTRL_MUXPOS_PIN11_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_PIN12 (ADC_INPUTCTRL_MUXPOS_PIN12_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_PIN13 (ADC_INPUTCTRL_MUXPOS_PIN13_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_PIN14 (ADC_INPUTCTRL_MUXPOS_PIN14_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_PIN15 (ADC_INPUTCTRL_MUXPOS_PIN15_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_PIN16 (ADC_INPUTCTRL_MUXPOS_PIN16_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_PIN17 (ADC_INPUTCTRL_MUXPOS_PIN17_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_PIN18 (ADC_INPUTCTRL_MUXPOS_PIN18_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_PIN19 (ADC_INPUTCTRL_MUXPOS_PIN19_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_TEMP (ADC_INPUTCTRL_MUXPOS_TEMP_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_BANDGAP (ADC_INPUTCTRL_MUXPOS_BANDGAP_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_SCALEDCOREVCC (ADC_INPUTCTRL_MUXPOS_SCALEDCOREVCC_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_SCALEDIOVCC (ADC_INPUTCTRL_MUXPOS_SCALEDIOVCC_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXPOS_DAC (ADC_INPUTCTRL_MUXPOS_DAC_Val << ADC_INPUTCTRL_MUXPOS_Pos)
-#define ADC_INPUTCTRL_MUXNEG_Pos 8 /**< \brief (ADC_INPUTCTRL) Negative Mux Input Selection */
-#define ADC_INPUTCTRL_MUXNEG_Msk (0x1Ful << ADC_INPUTCTRL_MUXNEG_Pos)
-#define ADC_INPUTCTRL_MUXNEG(value) (ADC_INPUTCTRL_MUXNEG_Msk & ((value) << ADC_INPUTCTRL_MUXNEG_Pos))
-#define ADC_INPUTCTRL_MUXNEG_PIN0_Val 0x0ul /**< \brief (ADC_INPUTCTRL) ADC AIN0 Pin */
-#define ADC_INPUTCTRL_MUXNEG_PIN1_Val 0x1ul /**< \brief (ADC_INPUTCTRL) ADC AIN1 Pin */
-#define ADC_INPUTCTRL_MUXNEG_PIN2_Val 0x2ul /**< \brief (ADC_INPUTCTRL) ADC AIN2 Pin */
-#define ADC_INPUTCTRL_MUXNEG_PIN3_Val 0x3ul /**< \brief (ADC_INPUTCTRL) ADC AIN3 Pin */
-#define ADC_INPUTCTRL_MUXNEG_PIN4_Val 0x4ul /**< \brief (ADC_INPUTCTRL) ADC AIN4 Pin */
-#define ADC_INPUTCTRL_MUXNEG_PIN5_Val 0x5ul /**< \brief (ADC_INPUTCTRL) ADC AIN5 Pin */
-#define ADC_INPUTCTRL_MUXNEG_PIN6_Val 0x6ul /**< \brief (ADC_INPUTCTRL) ADC AIN6 Pin */
-#define ADC_INPUTCTRL_MUXNEG_PIN7_Val 0x7ul /**< \brief (ADC_INPUTCTRL) ADC AIN7 Pin */
-#define ADC_INPUTCTRL_MUXNEG_GND_Val 0x18ul /**< \brief (ADC_INPUTCTRL) Internal Ground */
-#define ADC_INPUTCTRL_MUXNEG_IOGND_Val 0x19ul /**< \brief (ADC_INPUTCTRL) I/O Ground */
-#define ADC_INPUTCTRL_MUXNEG_PIN0 (ADC_INPUTCTRL_MUXNEG_PIN0_Val << ADC_INPUTCTRL_MUXNEG_Pos)
-#define ADC_INPUTCTRL_MUXNEG_PIN1 (ADC_INPUTCTRL_MUXNEG_PIN1_Val << ADC_INPUTCTRL_MUXNEG_Pos)
-#define ADC_INPUTCTRL_MUXNEG_PIN2 (ADC_INPUTCTRL_MUXNEG_PIN2_Val << ADC_INPUTCTRL_MUXNEG_Pos)
-#define ADC_INPUTCTRL_MUXNEG_PIN3 (ADC_INPUTCTRL_MUXNEG_PIN3_Val << ADC_INPUTCTRL_MUXNEG_Pos)
-#define ADC_INPUTCTRL_MUXNEG_PIN4 (ADC_INPUTCTRL_MUXNEG_PIN4_Val << ADC_INPUTCTRL_MUXNEG_Pos)
-#define ADC_INPUTCTRL_MUXNEG_PIN5 (ADC_INPUTCTRL_MUXNEG_PIN5_Val << ADC_INPUTCTRL_MUXNEG_Pos)
-#define ADC_INPUTCTRL_MUXNEG_PIN6 (ADC_INPUTCTRL_MUXNEG_PIN6_Val << ADC_INPUTCTRL_MUXNEG_Pos)
-#define ADC_INPUTCTRL_MUXNEG_PIN7 (ADC_INPUTCTRL_MUXNEG_PIN7_Val << ADC_INPUTCTRL_MUXNEG_Pos)
-#define ADC_INPUTCTRL_MUXNEG_GND (ADC_INPUTCTRL_MUXNEG_GND_Val << ADC_INPUTCTRL_MUXNEG_Pos)
-#define ADC_INPUTCTRL_MUXNEG_IOGND (ADC_INPUTCTRL_MUXNEG_IOGND_Val << ADC_INPUTCTRL_MUXNEG_Pos)
-#define ADC_INPUTCTRL_INPUTSCAN_Pos 16 /**< \brief (ADC_INPUTCTRL) Number of Input Channels Included in Scan */
-#define ADC_INPUTCTRL_INPUTSCAN_Msk (0xFul << ADC_INPUTCTRL_INPUTSCAN_Pos)
-#define ADC_INPUTCTRL_INPUTSCAN(value) (ADC_INPUTCTRL_INPUTSCAN_Msk & ((value) << ADC_INPUTCTRL_INPUTSCAN_Pos))
-#define ADC_INPUTCTRL_INPUTOFFSET_Pos 20 /**< \brief (ADC_INPUTCTRL) Positive Mux Setting Offset */
-#define ADC_INPUTCTRL_INPUTOFFSET_Msk (0xFul << ADC_INPUTCTRL_INPUTOFFSET_Pos)
-#define ADC_INPUTCTRL_INPUTOFFSET(value) (ADC_INPUTCTRL_INPUTOFFSET_Msk & ((value) << ADC_INPUTCTRL_INPUTOFFSET_Pos))
-#define ADC_INPUTCTRL_GAIN_Pos 24 /**< \brief (ADC_INPUTCTRL) Gain Factor Selection */
-#define ADC_INPUTCTRL_GAIN_Msk (0xFul << ADC_INPUTCTRL_GAIN_Pos)
-#define ADC_INPUTCTRL_GAIN(value) (ADC_INPUTCTRL_GAIN_Msk & ((value) << ADC_INPUTCTRL_GAIN_Pos))
-#define ADC_INPUTCTRL_GAIN_1X_Val 0x0ul /**< \brief (ADC_INPUTCTRL) 1x */
-#define ADC_INPUTCTRL_GAIN_2X_Val 0x1ul /**< \brief (ADC_INPUTCTRL) 2x */
-#define ADC_INPUTCTRL_GAIN_4X_Val 0x2ul /**< \brief (ADC_INPUTCTRL) 4x */
-#define ADC_INPUTCTRL_GAIN_8X_Val 0x3ul /**< \brief (ADC_INPUTCTRL) 8x */
-#define ADC_INPUTCTRL_GAIN_16X_Val 0x4ul /**< \brief (ADC_INPUTCTRL) 16x */
-#define ADC_INPUTCTRL_GAIN_DIV2_Val 0xFul /**< \brief (ADC_INPUTCTRL) 1/2x */
-#define ADC_INPUTCTRL_GAIN_1X (ADC_INPUTCTRL_GAIN_1X_Val << ADC_INPUTCTRL_GAIN_Pos)
-#define ADC_INPUTCTRL_GAIN_2X (ADC_INPUTCTRL_GAIN_2X_Val << ADC_INPUTCTRL_GAIN_Pos)
-#define ADC_INPUTCTRL_GAIN_4X (ADC_INPUTCTRL_GAIN_4X_Val << ADC_INPUTCTRL_GAIN_Pos)
-#define ADC_INPUTCTRL_GAIN_8X (ADC_INPUTCTRL_GAIN_8X_Val << ADC_INPUTCTRL_GAIN_Pos)
-#define ADC_INPUTCTRL_GAIN_16X (ADC_INPUTCTRL_GAIN_16X_Val << ADC_INPUTCTRL_GAIN_Pos)
-#define ADC_INPUTCTRL_GAIN_DIV2 (ADC_INPUTCTRL_GAIN_DIV2_Val << ADC_INPUTCTRL_GAIN_Pos)
-#define ADC_INPUTCTRL_MASK 0x0FFF1F1Ful /**< \brief (ADC_INPUTCTRL) MASK Register */
-
-/* -------- ADC_EVCTRL : (ADC Offset: 0x14) (R/W 8) Event Control -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t STARTEI:1; /*!< bit: 0 Start Conversion Event In */
- uint8_t SYNCEI:1; /*!< bit: 1 Synchronization Event In */
- uint8_t :2; /*!< bit: 2.. 3 Reserved */
- uint8_t RESRDYEO:1; /*!< bit: 4 Result Ready Event Out */
- uint8_t WINMONEO:1; /*!< bit: 5 Window Monitor Event Out */
- uint8_t :2; /*!< bit: 6.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} ADC_EVCTRL_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define ADC_EVCTRL_OFFSET 0x14 /**< \brief (ADC_EVCTRL offset) Event Control */
-#define ADC_EVCTRL_RESETVALUE 0x00ul /**< \brief (ADC_EVCTRL reset_value) Event Control */
-
-#define ADC_EVCTRL_STARTEI_Pos 0 /**< \brief (ADC_EVCTRL) Start Conversion Event In */
-#define ADC_EVCTRL_STARTEI (0x1ul << ADC_EVCTRL_STARTEI_Pos)
-#define ADC_EVCTRL_SYNCEI_Pos 1 /**< \brief (ADC_EVCTRL) Synchronization Event In */
-#define ADC_EVCTRL_SYNCEI (0x1ul << ADC_EVCTRL_SYNCEI_Pos)
-#define ADC_EVCTRL_RESRDYEO_Pos 4 /**< \brief (ADC_EVCTRL) Result Ready Event Out */
-#define ADC_EVCTRL_RESRDYEO (0x1ul << ADC_EVCTRL_RESRDYEO_Pos)
-#define ADC_EVCTRL_WINMONEO_Pos 5 /**< \brief (ADC_EVCTRL) Window Monitor Event Out */
-#define ADC_EVCTRL_WINMONEO (0x1ul << ADC_EVCTRL_WINMONEO_Pos)
-#define ADC_EVCTRL_MASK 0x33ul /**< \brief (ADC_EVCTRL) MASK Register */
-
-/* -------- ADC_INTENCLR : (ADC Offset: 0x16) (R/W 8) Interrupt Enable Clear -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t RESRDY:1; /*!< bit: 0 Result Ready Interrupt Enable */
- uint8_t OVERRUN:1; /*!< bit: 1 Overrun Interrupt Enable */
- uint8_t WINMON:1; /*!< bit: 2 Window Monitor Interrupt Enable */
- uint8_t SYNCRDY:1; /*!< bit: 3 Synchronization Ready Interrupt Enable */
- uint8_t :4; /*!< bit: 4.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} ADC_INTENCLR_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define ADC_INTENCLR_OFFSET 0x16 /**< \brief (ADC_INTENCLR offset) Interrupt Enable Clear */
-#define ADC_INTENCLR_RESETVALUE 0x00ul /**< \brief (ADC_INTENCLR reset_value) Interrupt Enable Clear */
-
-#define ADC_INTENCLR_RESRDY_Pos 0 /**< \brief (ADC_INTENCLR) Result Ready Interrupt Enable */
-#define ADC_INTENCLR_RESRDY (0x1ul << ADC_INTENCLR_RESRDY_Pos)
-#define ADC_INTENCLR_OVERRUN_Pos 1 /**< \brief (ADC_INTENCLR) Overrun Interrupt Enable */
-#define ADC_INTENCLR_OVERRUN (0x1ul << ADC_INTENCLR_OVERRUN_Pos)
-#define ADC_INTENCLR_WINMON_Pos 2 /**< \brief (ADC_INTENCLR) Window Monitor Interrupt Enable */
-#define ADC_INTENCLR_WINMON (0x1ul << ADC_INTENCLR_WINMON_Pos)
-#define ADC_INTENCLR_SYNCRDY_Pos 3 /**< \brief (ADC_INTENCLR) Synchronization Ready Interrupt Enable */
-#define ADC_INTENCLR_SYNCRDY (0x1ul << ADC_INTENCLR_SYNCRDY_Pos)
-#define ADC_INTENCLR_MASK 0x0Ful /**< \brief (ADC_INTENCLR) MASK Register */
-
-/* -------- ADC_INTENSET : (ADC Offset: 0x17) (R/W 8) Interrupt Enable Set -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t RESRDY:1; /*!< bit: 0 Result Ready Interrupt Enable */
- uint8_t OVERRUN:1; /*!< bit: 1 Overrun Interrupt Enable */
- uint8_t WINMON:1; /*!< bit: 2 Window Monitor Interrupt Enable */
- uint8_t SYNCRDY:1; /*!< bit: 3 Synchronization Ready Interrupt Enable */
- uint8_t :4; /*!< bit: 4.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} ADC_INTENSET_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define ADC_INTENSET_OFFSET 0x17 /**< \brief (ADC_INTENSET offset) Interrupt Enable Set */
-#define ADC_INTENSET_RESETVALUE 0x00ul /**< \brief (ADC_INTENSET reset_value) Interrupt Enable Set */
-
-#define ADC_INTENSET_RESRDY_Pos 0 /**< \brief (ADC_INTENSET) Result Ready Interrupt Enable */
-#define ADC_INTENSET_RESRDY (0x1ul << ADC_INTENSET_RESRDY_Pos)
-#define ADC_INTENSET_OVERRUN_Pos 1 /**< \brief (ADC_INTENSET) Overrun Interrupt Enable */
-#define ADC_INTENSET_OVERRUN (0x1ul << ADC_INTENSET_OVERRUN_Pos)
-#define ADC_INTENSET_WINMON_Pos 2 /**< \brief (ADC_INTENSET) Window Monitor Interrupt Enable */
-#define ADC_INTENSET_WINMON (0x1ul << ADC_INTENSET_WINMON_Pos)
-#define ADC_INTENSET_SYNCRDY_Pos 3 /**< \brief (ADC_INTENSET) Synchronization Ready Interrupt Enable */
-#define ADC_INTENSET_SYNCRDY (0x1ul << ADC_INTENSET_SYNCRDY_Pos)
-#define ADC_INTENSET_MASK 0x0Ful /**< \brief (ADC_INTENSET) MASK Register */
-
-/* -------- ADC_INTFLAG : (ADC Offset: 0x18) (R/W 8) Interrupt Flag Status and Clear -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union { // __I to avoid read-modify-write on write-to-clear register
- struct {
- __I uint8_t RESRDY:1; /*!< bit: 0 Result Ready */
- __I uint8_t OVERRUN:1; /*!< bit: 1 Overrun */
- __I uint8_t WINMON:1; /*!< bit: 2 Window Monitor */
- __I uint8_t SYNCRDY:1; /*!< bit: 3 Synchronization Ready */
- __I uint8_t :4; /*!< bit: 4.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} ADC_INTFLAG_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define ADC_INTFLAG_OFFSET 0x18 /**< \brief (ADC_INTFLAG offset) Interrupt Flag Status and Clear */
-#define ADC_INTFLAG_RESETVALUE 0x00ul /**< \brief (ADC_INTFLAG reset_value) Interrupt Flag Status and Clear */
-
-#define ADC_INTFLAG_RESRDY_Pos 0 /**< \brief (ADC_INTFLAG) Result Ready */
-#define ADC_INTFLAG_RESRDY (0x1ul << ADC_INTFLAG_RESRDY_Pos)
-#define ADC_INTFLAG_OVERRUN_Pos 1 /**< \brief (ADC_INTFLAG) Overrun */
-#define ADC_INTFLAG_OVERRUN (0x1ul << ADC_INTFLAG_OVERRUN_Pos)
-#define ADC_INTFLAG_WINMON_Pos 2 /**< \brief (ADC_INTFLAG) Window Monitor */
-#define ADC_INTFLAG_WINMON (0x1ul << ADC_INTFLAG_WINMON_Pos)
-#define ADC_INTFLAG_SYNCRDY_Pos 3 /**< \brief (ADC_INTFLAG) Synchronization Ready */
-#define ADC_INTFLAG_SYNCRDY (0x1ul << ADC_INTFLAG_SYNCRDY_Pos)
-#define ADC_INTFLAG_MASK 0x0Ful /**< \brief (ADC_INTFLAG) MASK Register */
-
-/* -------- ADC_STATUS : (ADC Offset: 0x19) (R/ 8) Status -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t :7; /*!< bit: 0.. 6 Reserved */
- uint8_t SYNCBUSY:1; /*!< bit: 7 Synchronization Busy */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} ADC_STATUS_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define ADC_STATUS_OFFSET 0x19 /**< \brief (ADC_STATUS offset) Status */
-#define ADC_STATUS_RESETVALUE 0x00ul /**< \brief (ADC_STATUS reset_value) Status */
-
-#define ADC_STATUS_SYNCBUSY_Pos 7 /**< \brief (ADC_STATUS) Synchronization Busy */
-#define ADC_STATUS_SYNCBUSY (0x1ul << ADC_STATUS_SYNCBUSY_Pos)
-#define ADC_STATUS_MASK 0x80ul /**< \brief (ADC_STATUS) MASK Register */
-
-/* -------- ADC_RESULT : (ADC Offset: 0x1A) (R/ 16) Result -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint16_t RESULT:16; /*!< bit: 0..15 Result Conversion Value */
- } bit; /*!< Structure used for bit access */
- uint16_t reg; /*!< Type used for register access */
-} ADC_RESULT_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define ADC_RESULT_OFFSET 0x1A /**< \brief (ADC_RESULT offset) Result */
-#define ADC_RESULT_RESETVALUE 0x0000ul /**< \brief (ADC_RESULT reset_value) Result */
-
-#define ADC_RESULT_RESULT_Pos 0 /**< \brief (ADC_RESULT) Result Conversion Value */
-#define ADC_RESULT_RESULT_Msk (0xFFFFul << ADC_RESULT_RESULT_Pos)
-#define ADC_RESULT_RESULT(value) (ADC_RESULT_RESULT_Msk & ((value) << ADC_RESULT_RESULT_Pos))
-#define ADC_RESULT_MASK 0xFFFFul /**< \brief (ADC_RESULT) MASK Register */
-
-/* -------- ADC_WINLT : (ADC Offset: 0x1C) (R/W 16) Window Monitor Lower Threshold -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint16_t WINLT:16; /*!< bit: 0..15 Window Lower Threshold */
- } bit; /*!< Structure used for bit access */
- uint16_t reg; /*!< Type used for register access */
-} ADC_WINLT_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define ADC_WINLT_OFFSET 0x1C /**< \brief (ADC_WINLT offset) Window Monitor Lower Threshold */
-#define ADC_WINLT_RESETVALUE 0x0000ul /**< \brief (ADC_WINLT reset_value) Window Monitor Lower Threshold */
-
-#define ADC_WINLT_WINLT_Pos 0 /**< \brief (ADC_WINLT) Window Lower Threshold */
-#define ADC_WINLT_WINLT_Msk (0xFFFFul << ADC_WINLT_WINLT_Pos)
-#define ADC_WINLT_WINLT(value) (ADC_WINLT_WINLT_Msk & ((value) << ADC_WINLT_WINLT_Pos))
-#define ADC_WINLT_MASK 0xFFFFul /**< \brief (ADC_WINLT) MASK Register */
-
-/* -------- ADC_WINUT : (ADC Offset: 0x20) (R/W 16) Window Monitor Upper Threshold -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint16_t WINUT:16; /*!< bit: 0..15 Window Upper Threshold */
- } bit; /*!< Structure used for bit access */
- uint16_t reg; /*!< Type used for register access */
-} ADC_WINUT_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define ADC_WINUT_OFFSET 0x20 /**< \brief (ADC_WINUT offset) Window Monitor Upper Threshold */
-#define ADC_WINUT_RESETVALUE 0x0000ul /**< \brief (ADC_WINUT reset_value) Window Monitor Upper Threshold */
-
-#define ADC_WINUT_WINUT_Pos 0 /**< \brief (ADC_WINUT) Window Upper Threshold */
-#define ADC_WINUT_WINUT_Msk (0xFFFFul << ADC_WINUT_WINUT_Pos)
-#define ADC_WINUT_WINUT(value) (ADC_WINUT_WINUT_Msk & ((value) << ADC_WINUT_WINUT_Pos))
-#define ADC_WINUT_MASK 0xFFFFul /**< \brief (ADC_WINUT) MASK Register */
-
-/* -------- ADC_GAINCORR : (ADC Offset: 0x24) (R/W 16) Gain Correction -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint16_t GAINCORR:12; /*!< bit: 0..11 Gain Correction Value */
- uint16_t :4; /*!< bit: 12..15 Reserved */
- } bit; /*!< Structure used for bit access */
- uint16_t reg; /*!< Type used for register access */
-} ADC_GAINCORR_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define ADC_GAINCORR_OFFSET 0x24 /**< \brief (ADC_GAINCORR offset) Gain Correction */
-#define ADC_GAINCORR_RESETVALUE 0x0000ul /**< \brief (ADC_GAINCORR reset_value) Gain Correction */
-
-#define ADC_GAINCORR_GAINCORR_Pos 0 /**< \brief (ADC_GAINCORR) Gain Correction Value */
-#define ADC_GAINCORR_GAINCORR_Msk (0xFFFul << ADC_GAINCORR_GAINCORR_Pos)
-#define ADC_GAINCORR_GAINCORR(value) (ADC_GAINCORR_GAINCORR_Msk & ((value) << ADC_GAINCORR_GAINCORR_Pos))
-#define ADC_GAINCORR_MASK 0x0FFFul /**< \brief (ADC_GAINCORR) MASK Register */
-
-/* -------- ADC_OFFSETCORR : (ADC Offset: 0x26) (R/W 16) Offset Correction -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint16_t OFFSETCORR:12; /*!< bit: 0..11 Offset Correction Value */
- uint16_t :4; /*!< bit: 12..15 Reserved */
- } bit; /*!< Structure used for bit access */
- uint16_t reg; /*!< Type used for register access */
-} ADC_OFFSETCORR_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define ADC_OFFSETCORR_OFFSET 0x26 /**< \brief (ADC_OFFSETCORR offset) Offset Correction */
-#define ADC_OFFSETCORR_RESETVALUE 0x0000ul /**< \brief (ADC_OFFSETCORR reset_value) Offset Correction */
-
-#define ADC_OFFSETCORR_OFFSETCORR_Pos 0 /**< \brief (ADC_OFFSETCORR) Offset Correction Value */
-#define ADC_OFFSETCORR_OFFSETCORR_Msk (0xFFFul << ADC_OFFSETCORR_OFFSETCORR_Pos)
-#define ADC_OFFSETCORR_OFFSETCORR(value) (ADC_OFFSETCORR_OFFSETCORR_Msk & ((value) << ADC_OFFSETCORR_OFFSETCORR_Pos))
-#define ADC_OFFSETCORR_MASK 0x0FFFul /**< \brief (ADC_OFFSETCORR) MASK Register */
-
-/* -------- ADC_CALIB : (ADC Offset: 0x28) (R/W 16) Calibration -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint16_t LINEARITY_CAL:8; /*!< bit: 0.. 7 Linearity Calibration Value */
- uint16_t BIAS_CAL:3; /*!< bit: 8..10 Bias Calibration Value */
- uint16_t :5; /*!< bit: 11..15 Reserved */
- } bit; /*!< Structure used for bit access */
- uint16_t reg; /*!< Type used for register access */
-} ADC_CALIB_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define ADC_CALIB_OFFSET 0x28 /**< \brief (ADC_CALIB offset) Calibration */
-#define ADC_CALIB_RESETVALUE 0x0000ul /**< \brief (ADC_CALIB reset_value) Calibration */
-
-#define ADC_CALIB_LINEARITY_CAL_Pos 0 /**< \brief (ADC_CALIB) Linearity Calibration Value */
-#define ADC_CALIB_LINEARITY_CAL_Msk (0xFFul << ADC_CALIB_LINEARITY_CAL_Pos)
-#define ADC_CALIB_LINEARITY_CAL(value) (ADC_CALIB_LINEARITY_CAL_Msk & ((value) << ADC_CALIB_LINEARITY_CAL_Pos))
-#define ADC_CALIB_BIAS_CAL_Pos 8 /**< \brief (ADC_CALIB) Bias Calibration Value */
-#define ADC_CALIB_BIAS_CAL_Msk (0x7ul << ADC_CALIB_BIAS_CAL_Pos)
-#define ADC_CALIB_BIAS_CAL(value) (ADC_CALIB_BIAS_CAL_Msk & ((value) << ADC_CALIB_BIAS_CAL_Pos))
-#define ADC_CALIB_MASK 0x07FFul /**< \brief (ADC_CALIB) MASK Register */
-
-/* -------- ADC_DBGCTRL : (ADC Offset: 0x2A) (R/W 8) Debug Control -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t DBGRUN:1; /*!< bit: 0 Debug Run */
- uint8_t :7; /*!< bit: 1.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} ADC_DBGCTRL_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define ADC_DBGCTRL_OFFSET 0x2A /**< \brief (ADC_DBGCTRL offset) Debug Control */
-#define ADC_DBGCTRL_RESETVALUE 0x00ul /**< \brief (ADC_DBGCTRL reset_value) Debug Control */
-
-#define ADC_DBGCTRL_DBGRUN_Pos 0 /**< \brief (ADC_DBGCTRL) Debug Run */
-#define ADC_DBGCTRL_DBGRUN (0x1ul << ADC_DBGCTRL_DBGRUN_Pos)
-#define ADC_DBGCTRL_MASK 0x01ul /**< \brief (ADC_DBGCTRL) MASK Register */
-
-/** \brief ADC hardware registers */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef struct {
- __IO ADC_CTRLA_Type CTRLA; /**< \brief Offset: 0x00 (R/W 8) Control A */
- __IO ADC_REFCTRL_Type REFCTRL; /**< \brief Offset: 0x01 (R/W 8) Reference Control */
- __IO ADC_AVGCTRL_Type AVGCTRL; /**< \brief Offset: 0x02 (R/W 8) Average Control */
- __IO ADC_SAMPCTRL_Type SAMPCTRL; /**< \brief Offset: 0x03 (R/W 8) Sampling Time Control */
- __IO ADC_CTRLB_Type CTRLB; /**< \brief Offset: 0x04 (R/W 16) Control B */
- RoReg8 Reserved1[0x2];
- __IO ADC_WINCTRL_Type WINCTRL; /**< \brief Offset: 0x08 (R/W 8) Window Monitor Control */
- RoReg8 Reserved2[0x3];
- __IO ADC_SWTRIG_Type SWTRIG; /**< \brief Offset: 0x0C (R/W 8) Software Trigger */
- RoReg8 Reserved3[0x3];
- __IO ADC_INPUTCTRL_Type INPUTCTRL; /**< \brief Offset: 0x10 (R/W 32) Input Control */
- __IO ADC_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x14 (R/W 8) Event Control */
- RoReg8 Reserved4[0x1];
- __IO ADC_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x16 (R/W 8) Interrupt Enable Clear */
- __IO ADC_INTENSET_Type INTENSET; /**< \brief Offset: 0x17 (R/W 8) Interrupt Enable Set */
- __IO ADC_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x18 (R/W 8) Interrupt Flag Status and Clear */
- __I ADC_STATUS_Type STATUS; /**< \brief Offset: 0x19 (R/ 8) Status */
- __I ADC_RESULT_Type RESULT; /**< \brief Offset: 0x1A (R/ 16) Result */
- __IO ADC_WINLT_Type WINLT; /**< \brief Offset: 0x1C (R/W 16) Window Monitor Lower Threshold */
- RoReg8 Reserved5[0x2];
- __IO ADC_WINUT_Type WINUT; /**< \brief Offset: 0x20 (R/W 16) Window Monitor Upper Threshold */
- RoReg8 Reserved6[0x2];
- __IO ADC_GAINCORR_Type GAINCORR; /**< \brief Offset: 0x24 (R/W 16) Gain Correction */
- __IO ADC_OFFSETCORR_Type OFFSETCORR; /**< \brief Offset: 0x26 (R/W 16) Offset Correction */
- __IO ADC_CALIB_Type CALIB; /**< \brief Offset: 0x28 (R/W 16) Calibration */
- __IO ADC_DBGCTRL_Type DBGCTRL; /**< \brief Offset: 0x2A (R/W 8) Debug Control */
-} Adc;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-/*@}*/
-
-#endif /* _SAMD21_ADC_COMPONENT_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/component/dac.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/component/dac.h
deleted file mode 100644
index a9aff66..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/component/dac.h
+++ /dev/null
@@ -1,276 +0,0 @@
-/**
- * \file
- *
- * \brief Component description for DAC
- *
- * Copyright (c) 2016-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21_DAC_COMPONENT_
-#define _SAMD21_DAC_COMPONENT_
-
-/* ========================================================================== */
-/** SOFTWARE API DEFINITION FOR DAC */
-/* ========================================================================== */
-/** \addtogroup SAMD21_DAC Digital Analog Converter */
-/*@{*/
-
-#define DAC_U2214
-#define REV_DAC 0x110
-
-/* -------- DAC_CTRLA : (DAC Offset: 0x0) (R/W 8) Control A -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t SWRST:1; /*!< bit: 0 Software Reset */
- uint8_t ENABLE:1; /*!< bit: 1 Enable */
- uint8_t RUNSTDBY:1; /*!< bit: 2 Run in Standby */
- uint8_t :5; /*!< bit: 3.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} DAC_CTRLA_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DAC_CTRLA_OFFSET 0x0 /**< \brief (DAC_CTRLA offset) Control A */
-#define DAC_CTRLA_RESETVALUE 0x00ul /**< \brief (DAC_CTRLA reset_value) Control A */
-
-#define DAC_CTRLA_SWRST_Pos 0 /**< \brief (DAC_CTRLA) Software Reset */
-#define DAC_CTRLA_SWRST (0x1ul << DAC_CTRLA_SWRST_Pos)
-#define DAC_CTRLA_ENABLE_Pos 1 /**< \brief (DAC_CTRLA) Enable */
-#define DAC_CTRLA_ENABLE (0x1ul << DAC_CTRLA_ENABLE_Pos)
-#define DAC_CTRLA_RUNSTDBY_Pos 2 /**< \brief (DAC_CTRLA) Run in Standby */
-#define DAC_CTRLA_RUNSTDBY (0x1ul << DAC_CTRLA_RUNSTDBY_Pos)
-#define DAC_CTRLA_MASK 0x07ul /**< \brief (DAC_CTRLA) MASK Register */
-
-/* -------- DAC_CTRLB : (DAC Offset: 0x1) (R/W 8) Control B -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t EOEN:1; /*!< bit: 0 External Output Enable */
- uint8_t IOEN:1; /*!< bit: 1 Internal Output Enable */
- uint8_t LEFTADJ:1; /*!< bit: 2 Left Adjusted Data */
- uint8_t VPD:1; /*!< bit: 3 Voltage Pump Disable */
- uint8_t BDWP:1; /*!< bit: 4 Bypass DATABUF Write Protection */
- uint8_t :1; /*!< bit: 5 Reserved */
- uint8_t REFSEL:2; /*!< bit: 6.. 7 Reference Selection */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} DAC_CTRLB_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DAC_CTRLB_OFFSET 0x1 /**< \brief (DAC_CTRLB offset) Control B */
-#define DAC_CTRLB_RESETVALUE 0x00ul /**< \brief (DAC_CTRLB reset_value) Control B */
-
-#define DAC_CTRLB_EOEN_Pos 0 /**< \brief (DAC_CTRLB) External Output Enable */
-#define DAC_CTRLB_EOEN (0x1ul << DAC_CTRLB_EOEN_Pos)
-#define DAC_CTRLB_IOEN_Pos 1 /**< \brief (DAC_CTRLB) Internal Output Enable */
-#define DAC_CTRLB_IOEN (0x1ul << DAC_CTRLB_IOEN_Pos)
-#define DAC_CTRLB_LEFTADJ_Pos 2 /**< \brief (DAC_CTRLB) Left Adjusted Data */
-#define DAC_CTRLB_LEFTADJ (0x1ul << DAC_CTRLB_LEFTADJ_Pos)
-#define DAC_CTRLB_VPD_Pos 3 /**< \brief (DAC_CTRLB) Voltage Pump Disable */
-#define DAC_CTRLB_VPD (0x1ul << DAC_CTRLB_VPD_Pos)
-#define DAC_CTRLB_BDWP_Pos 4 /**< \brief (DAC_CTRLB) Bypass DATABUF Write Protection */
-#define DAC_CTRLB_BDWP (0x1ul << DAC_CTRLB_BDWP_Pos)
-#define DAC_CTRLB_REFSEL_Pos 6 /**< \brief (DAC_CTRLB) Reference Selection */
-#define DAC_CTRLB_REFSEL_Msk (0x3ul << DAC_CTRLB_REFSEL_Pos)
-#define DAC_CTRLB_REFSEL(value) (DAC_CTRLB_REFSEL_Msk & ((value) << DAC_CTRLB_REFSEL_Pos))
-#define DAC_CTRLB_REFSEL_INT1V_Val 0x0ul /**< \brief (DAC_CTRLB) Internal 1.0V reference */
-#define DAC_CTRLB_REFSEL_AVCC_Val 0x1ul /**< \brief (DAC_CTRLB) AVCC */
-#define DAC_CTRLB_REFSEL_VREFP_Val 0x2ul /**< \brief (DAC_CTRLB) External reference */
-#define DAC_CTRLB_REFSEL_INT1V (DAC_CTRLB_REFSEL_INT1V_Val << DAC_CTRLB_REFSEL_Pos)
-#define DAC_CTRLB_REFSEL_AVCC (DAC_CTRLB_REFSEL_AVCC_Val << DAC_CTRLB_REFSEL_Pos)
-#define DAC_CTRLB_REFSEL_VREFP (DAC_CTRLB_REFSEL_VREFP_Val << DAC_CTRLB_REFSEL_Pos)
-#define DAC_CTRLB_MASK 0xDFul /**< \brief (DAC_CTRLB) MASK Register */
-
-/* -------- DAC_EVCTRL : (DAC Offset: 0x2) (R/W 8) Event Control -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t STARTEI:1; /*!< bit: 0 Start Conversion Event Input */
- uint8_t EMPTYEO:1; /*!< bit: 1 Data Buffer Empty Event Output */
- uint8_t :6; /*!< bit: 2.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} DAC_EVCTRL_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DAC_EVCTRL_OFFSET 0x2 /**< \brief (DAC_EVCTRL offset) Event Control */
-#define DAC_EVCTRL_RESETVALUE 0x00ul /**< \brief (DAC_EVCTRL reset_value) Event Control */
-
-#define DAC_EVCTRL_STARTEI_Pos 0 /**< \brief (DAC_EVCTRL) Start Conversion Event Input */
-#define DAC_EVCTRL_STARTEI (0x1ul << DAC_EVCTRL_STARTEI_Pos)
-#define DAC_EVCTRL_EMPTYEO_Pos 1 /**< \brief (DAC_EVCTRL) Data Buffer Empty Event Output */
-#define DAC_EVCTRL_EMPTYEO (0x1ul << DAC_EVCTRL_EMPTYEO_Pos)
-#define DAC_EVCTRL_MASK 0x03ul /**< \brief (DAC_EVCTRL) MASK Register */
-
-/* -------- DAC_INTENCLR : (DAC Offset: 0x4) (R/W 8) Interrupt Enable Clear -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t UNDERRUN:1; /*!< bit: 0 Underrun Interrupt Enable */
- uint8_t EMPTY:1; /*!< bit: 1 Data Buffer Empty Interrupt Enable */
- uint8_t SYNCRDY:1; /*!< bit: 2 Synchronization Ready Interrupt Enable */
- uint8_t :5; /*!< bit: 3.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} DAC_INTENCLR_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DAC_INTENCLR_OFFSET 0x4 /**< \brief (DAC_INTENCLR offset) Interrupt Enable Clear */
-#define DAC_INTENCLR_RESETVALUE 0x00ul /**< \brief (DAC_INTENCLR reset_value) Interrupt Enable Clear */
-
-#define DAC_INTENCLR_UNDERRUN_Pos 0 /**< \brief (DAC_INTENCLR) Underrun Interrupt Enable */
-#define DAC_INTENCLR_UNDERRUN (0x1ul << DAC_INTENCLR_UNDERRUN_Pos)
-#define DAC_INTENCLR_EMPTY_Pos 1 /**< \brief (DAC_INTENCLR) Data Buffer Empty Interrupt Enable */
-#define DAC_INTENCLR_EMPTY (0x1ul << DAC_INTENCLR_EMPTY_Pos)
-#define DAC_INTENCLR_SYNCRDY_Pos 2 /**< \brief (DAC_INTENCLR) Synchronization Ready Interrupt Enable */
-#define DAC_INTENCLR_SYNCRDY (0x1ul << DAC_INTENCLR_SYNCRDY_Pos)
-#define DAC_INTENCLR_MASK 0x07ul /**< \brief (DAC_INTENCLR) MASK Register */
-
-/* -------- DAC_INTENSET : (DAC Offset: 0x5) (R/W 8) Interrupt Enable Set -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t UNDERRUN:1; /*!< bit: 0 Underrun Interrupt Enable */
- uint8_t EMPTY:1; /*!< bit: 1 Data Buffer Empty Interrupt Enable */
- uint8_t SYNCRDY:1; /*!< bit: 2 Synchronization Ready Interrupt Enable */
- uint8_t :5; /*!< bit: 3.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} DAC_INTENSET_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DAC_INTENSET_OFFSET 0x5 /**< \brief (DAC_INTENSET offset) Interrupt Enable Set */
-#define DAC_INTENSET_RESETVALUE 0x00ul /**< \brief (DAC_INTENSET reset_value) Interrupt Enable Set */
-
-#define DAC_INTENSET_UNDERRUN_Pos 0 /**< \brief (DAC_INTENSET) Underrun Interrupt Enable */
-#define DAC_INTENSET_UNDERRUN (0x1ul << DAC_INTENSET_UNDERRUN_Pos)
-#define DAC_INTENSET_EMPTY_Pos 1 /**< \brief (DAC_INTENSET) Data Buffer Empty Interrupt Enable */
-#define DAC_INTENSET_EMPTY (0x1ul << DAC_INTENSET_EMPTY_Pos)
-#define DAC_INTENSET_SYNCRDY_Pos 2 /**< \brief (DAC_INTENSET) Synchronization Ready Interrupt Enable */
-#define DAC_INTENSET_SYNCRDY (0x1ul << DAC_INTENSET_SYNCRDY_Pos)
-#define DAC_INTENSET_MASK 0x07ul /**< \brief (DAC_INTENSET) MASK Register */
-
-/* -------- DAC_INTFLAG : (DAC Offset: 0x6) (R/W 8) Interrupt Flag Status and Clear -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union { // __I to avoid read-modify-write on write-to-clear register
- struct {
- __I uint8_t UNDERRUN:1; /*!< bit: 0 Underrun */
- __I uint8_t EMPTY:1; /*!< bit: 1 Data Buffer Empty */
- __I uint8_t SYNCRDY:1; /*!< bit: 2 Synchronization Ready */
- __I uint8_t :5; /*!< bit: 3.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} DAC_INTFLAG_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DAC_INTFLAG_OFFSET 0x6 /**< \brief (DAC_INTFLAG offset) Interrupt Flag Status and Clear */
-#define DAC_INTFLAG_RESETVALUE 0x00ul /**< \brief (DAC_INTFLAG reset_value) Interrupt Flag Status and Clear */
-
-#define DAC_INTFLAG_UNDERRUN_Pos 0 /**< \brief (DAC_INTFLAG) Underrun */
-#define DAC_INTFLAG_UNDERRUN (0x1ul << DAC_INTFLAG_UNDERRUN_Pos)
-#define DAC_INTFLAG_EMPTY_Pos 1 /**< \brief (DAC_INTFLAG) Data Buffer Empty */
-#define DAC_INTFLAG_EMPTY (0x1ul << DAC_INTFLAG_EMPTY_Pos)
-#define DAC_INTFLAG_SYNCRDY_Pos 2 /**< \brief (DAC_INTFLAG) Synchronization Ready */
-#define DAC_INTFLAG_SYNCRDY (0x1ul << DAC_INTFLAG_SYNCRDY_Pos)
-#define DAC_INTFLAG_MASK 0x07ul /**< \brief (DAC_INTFLAG) MASK Register */
-
-/* -------- DAC_STATUS : (DAC Offset: 0x7) (R/ 8) Status -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t :7; /*!< bit: 0.. 6 Reserved */
- uint8_t SYNCBUSY:1; /*!< bit: 7 Synchronization Busy Status */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} DAC_STATUS_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DAC_STATUS_OFFSET 0x7 /**< \brief (DAC_STATUS offset) Status */
-#define DAC_STATUS_RESETVALUE 0x00ul /**< \brief (DAC_STATUS reset_value) Status */
-
-#define DAC_STATUS_SYNCBUSY_Pos 7 /**< \brief (DAC_STATUS) Synchronization Busy Status */
-#define DAC_STATUS_SYNCBUSY (0x1ul << DAC_STATUS_SYNCBUSY_Pos)
-#define DAC_STATUS_MASK 0x80ul /**< \brief (DAC_STATUS) MASK Register */
-
-/* -------- DAC_DATA : (DAC Offset: 0x8) (R/W 16) Data -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint16_t DATA:16; /*!< bit: 0..15 Data value to be converted */
- } bit; /*!< Structure used for bit access */
- uint16_t reg; /*!< Type used for register access */
-} DAC_DATA_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DAC_DATA_OFFSET 0x8 /**< \brief (DAC_DATA offset) Data */
-#define DAC_DATA_RESETVALUE 0x0000ul /**< \brief (DAC_DATA reset_value) Data */
-
-#define DAC_DATA_DATA_Pos 0 /**< \brief (DAC_DATA) Data value to be converted */
-#define DAC_DATA_DATA_Msk (0xFFFFul << DAC_DATA_DATA_Pos)
-#define DAC_DATA_DATA(value) (DAC_DATA_DATA_Msk & ((value) << DAC_DATA_DATA_Pos))
-#define DAC_DATA_MASK 0xFFFFul /**< \brief (DAC_DATA) MASK Register */
-
-/* -------- DAC_DATABUF : (DAC Offset: 0xC) (R/W 16) Data Buffer -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint16_t DATABUF:16; /*!< bit: 0..15 Data Buffer */
- } bit; /*!< Structure used for bit access */
- uint16_t reg; /*!< Type used for register access */
-} DAC_DATABUF_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DAC_DATABUF_OFFSET 0xC /**< \brief (DAC_DATABUF offset) Data Buffer */
-#define DAC_DATABUF_RESETVALUE 0x0000ul /**< \brief (DAC_DATABUF reset_value) Data Buffer */
-
-#define DAC_DATABUF_DATABUF_Pos 0 /**< \brief (DAC_DATABUF) Data Buffer */
-#define DAC_DATABUF_DATABUF_Msk (0xFFFFul << DAC_DATABUF_DATABUF_Pos)
-#define DAC_DATABUF_DATABUF(value) (DAC_DATABUF_DATABUF_Msk & ((value) << DAC_DATABUF_DATABUF_Pos))
-#define DAC_DATABUF_MASK 0xFFFFul /**< \brief (DAC_DATABUF) MASK Register */
-
-/** \brief DAC hardware registers */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef struct {
- __IO DAC_CTRLA_Type CTRLA; /**< \brief Offset: 0x0 (R/W 8) Control A */
- __IO DAC_CTRLB_Type CTRLB; /**< \brief Offset: 0x1 (R/W 8) Control B */
- __IO DAC_EVCTRL_Type EVCTRL; /**< \brief Offset: 0x2 (R/W 8) Event Control */
- RoReg8 Reserved1[0x1];
- __IO DAC_INTENCLR_Type INTENCLR; /**< \brief Offset: 0x4 (R/W 8) Interrupt Enable Clear */
- __IO DAC_INTENSET_Type INTENSET; /**< \brief Offset: 0x5 (R/W 8) Interrupt Enable Set */
- __IO DAC_INTFLAG_Type INTFLAG; /**< \brief Offset: 0x6 (R/W 8) Interrupt Flag Status and Clear */
- __I DAC_STATUS_Type STATUS; /**< \brief Offset: 0x7 (R/ 8) Status */
- __IO DAC_DATA_Type DATA; /**< \brief Offset: 0x8 (R/W 16) Data */
- RoReg8 Reserved2[0x2];
- __IO DAC_DATABUF_Type DATABUF; /**< \brief Offset: 0xC (R/W 16) Data Buffer */
-} Dac;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-/*@}*/
-
-#endif /* _SAMD21_DAC_COMPONENT_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/component/dmac.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/component/dmac.h
deleted file mode 100644
index 4a9f8e9..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/component/dmac.h
+++ /dev/null
@@ -1,1077 +0,0 @@
-/**
- * \file
- *
- * \brief Component description for DMAC
- *
- * Copyright (c) 2016-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21_DMAC_COMPONENT_
-#define _SAMD21_DMAC_COMPONENT_
-
-/* ========================================================================== */
-/** SOFTWARE API DEFINITION FOR DMAC */
-/* ========================================================================== */
-/** \addtogroup SAMD21_DMAC Direct Memory Access Controller */
-/*@{*/
-
-#define DMAC_U2223
-#define REV_DMAC 0x110
-
-/* -------- DMAC_CTRL : (DMAC Offset: 0x00) (R/W 16) Control -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint16_t SWRST:1; /*!< bit: 0 Software Reset */
- uint16_t DMAENABLE:1; /*!< bit: 1 DMA Enable */
- uint16_t CRCENABLE:1; /*!< bit: 2 CRC Enable */
- uint16_t :5; /*!< bit: 3.. 7 Reserved */
- uint16_t LVLEN0:1; /*!< bit: 8 Priority Level 0 Enable */
- uint16_t LVLEN1:1; /*!< bit: 9 Priority Level 1 Enable */
- uint16_t LVLEN2:1; /*!< bit: 10 Priority Level 2 Enable */
- uint16_t LVLEN3:1; /*!< bit: 11 Priority Level 3 Enable */
- uint16_t :4; /*!< bit: 12..15 Reserved */
- } bit; /*!< Structure used for bit access */
- struct {
- uint16_t :8; /*!< bit: 0.. 7 Reserved */
- uint16_t LVLEN:4; /*!< bit: 8..11 Priority Level x Enable */
- uint16_t :4; /*!< bit: 12..15 Reserved */
- } vec; /*!< Structure used for vec access */
- uint16_t reg; /*!< Type used for register access */
-} DMAC_CTRL_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_CTRL_OFFSET 0x00 /**< \brief (DMAC_CTRL offset) Control */
-#define DMAC_CTRL_RESETVALUE 0x0000ul /**< \brief (DMAC_CTRL reset_value) Control */
-
-#define DMAC_CTRL_SWRST_Pos 0 /**< \brief (DMAC_CTRL) Software Reset */
-#define DMAC_CTRL_SWRST (0x1ul << DMAC_CTRL_SWRST_Pos)
-#define DMAC_CTRL_DMAENABLE_Pos 1 /**< \brief (DMAC_CTRL) DMA Enable */
-#define DMAC_CTRL_DMAENABLE (0x1ul << DMAC_CTRL_DMAENABLE_Pos)
-#define DMAC_CTRL_CRCENABLE_Pos 2 /**< \brief (DMAC_CTRL) CRC Enable */
-#define DMAC_CTRL_CRCENABLE (0x1ul << DMAC_CTRL_CRCENABLE_Pos)
-#define DMAC_CTRL_LVLEN0_Pos 8 /**< \brief (DMAC_CTRL) Priority Level 0 Enable */
-#define DMAC_CTRL_LVLEN0 (1 << DMAC_CTRL_LVLEN0_Pos)
-#define DMAC_CTRL_LVLEN1_Pos 9 /**< \brief (DMAC_CTRL) Priority Level 1 Enable */
-#define DMAC_CTRL_LVLEN1 (1 << DMAC_CTRL_LVLEN1_Pos)
-#define DMAC_CTRL_LVLEN2_Pos 10 /**< \brief (DMAC_CTRL) Priority Level 2 Enable */
-#define DMAC_CTRL_LVLEN2 (1 << DMAC_CTRL_LVLEN2_Pos)
-#define DMAC_CTRL_LVLEN3_Pos 11 /**< \brief (DMAC_CTRL) Priority Level 3 Enable */
-#define DMAC_CTRL_LVLEN3 (1 << DMAC_CTRL_LVLEN3_Pos)
-#define DMAC_CTRL_LVLEN_Pos 8 /**< \brief (DMAC_CTRL) Priority Level x Enable */
-#define DMAC_CTRL_LVLEN_Msk (0xFul << DMAC_CTRL_LVLEN_Pos)
-#define DMAC_CTRL_LVLEN(value) (DMAC_CTRL_LVLEN_Msk & ((value) << DMAC_CTRL_LVLEN_Pos))
-#define DMAC_CTRL_MASK 0x0F07ul /**< \brief (DMAC_CTRL) MASK Register */
-
-/* -------- DMAC_CRCCTRL : (DMAC Offset: 0x02) (R/W 16) CRC Control -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint16_t CRCBEATSIZE:2; /*!< bit: 0.. 1 CRC Beat Size */
- uint16_t CRCPOLY:2; /*!< bit: 2.. 3 CRC Polynomial Type */
- uint16_t :4; /*!< bit: 4.. 7 Reserved */
- uint16_t CRCSRC:6; /*!< bit: 8..13 CRC Input Source */
- uint16_t :2; /*!< bit: 14..15 Reserved */
- } bit; /*!< Structure used for bit access */
- uint16_t reg; /*!< Type used for register access */
-} DMAC_CRCCTRL_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_CRCCTRL_OFFSET 0x02 /**< \brief (DMAC_CRCCTRL offset) CRC Control */
-#define DMAC_CRCCTRL_RESETVALUE 0x0000ul /**< \brief (DMAC_CRCCTRL reset_value) CRC Control */
-
-#define DMAC_CRCCTRL_CRCBEATSIZE_Pos 0 /**< \brief (DMAC_CRCCTRL) CRC Beat Size */
-#define DMAC_CRCCTRL_CRCBEATSIZE_Msk (0x3ul << DMAC_CRCCTRL_CRCBEATSIZE_Pos)
-#define DMAC_CRCCTRL_CRCBEATSIZE(value) (DMAC_CRCCTRL_CRCBEATSIZE_Msk & ((value) << DMAC_CRCCTRL_CRCBEATSIZE_Pos))
-#define DMAC_CRCCTRL_CRCBEATSIZE_BYTE_Val 0x0ul /**< \brief (DMAC_CRCCTRL) Byte bus access */
-#define DMAC_CRCCTRL_CRCBEATSIZE_HWORD_Val 0x1ul /**< \brief (DMAC_CRCCTRL) Half-word bus access */
-#define DMAC_CRCCTRL_CRCBEATSIZE_WORD_Val 0x2ul /**< \brief (DMAC_CRCCTRL) Word bus access */
-#define DMAC_CRCCTRL_CRCBEATSIZE_BYTE (DMAC_CRCCTRL_CRCBEATSIZE_BYTE_Val << DMAC_CRCCTRL_CRCBEATSIZE_Pos)
-#define DMAC_CRCCTRL_CRCBEATSIZE_HWORD (DMAC_CRCCTRL_CRCBEATSIZE_HWORD_Val << DMAC_CRCCTRL_CRCBEATSIZE_Pos)
-#define DMAC_CRCCTRL_CRCBEATSIZE_WORD (DMAC_CRCCTRL_CRCBEATSIZE_WORD_Val << DMAC_CRCCTRL_CRCBEATSIZE_Pos)
-#define DMAC_CRCCTRL_CRCPOLY_Pos 2 /**< \brief (DMAC_CRCCTRL) CRC Polynomial Type */
-#define DMAC_CRCCTRL_CRCPOLY_Msk (0x3ul << DMAC_CRCCTRL_CRCPOLY_Pos)
-#define DMAC_CRCCTRL_CRCPOLY(value) (DMAC_CRCCTRL_CRCPOLY_Msk & ((value) << DMAC_CRCCTRL_CRCPOLY_Pos))
-#define DMAC_CRCCTRL_CRCPOLY_CRC16_Val 0x0ul /**< \brief (DMAC_CRCCTRL) CRC-16 (CRC-CCITT) */
-#define DMAC_CRCCTRL_CRCPOLY_CRC32_Val 0x1ul /**< \brief (DMAC_CRCCTRL) CRC32 (IEEE 802.3) */
-#define DMAC_CRCCTRL_CRCPOLY_CRC16 (DMAC_CRCCTRL_CRCPOLY_CRC16_Val << DMAC_CRCCTRL_CRCPOLY_Pos)
-#define DMAC_CRCCTRL_CRCPOLY_CRC32 (DMAC_CRCCTRL_CRCPOLY_CRC32_Val << DMAC_CRCCTRL_CRCPOLY_Pos)
-#define DMAC_CRCCTRL_CRCSRC_Pos 8 /**< \brief (DMAC_CRCCTRL) CRC Input Source */
-#define DMAC_CRCCTRL_CRCSRC_Msk (0x3Ful << DMAC_CRCCTRL_CRCSRC_Pos)
-#define DMAC_CRCCTRL_CRCSRC(value) (DMAC_CRCCTRL_CRCSRC_Msk & ((value) << DMAC_CRCCTRL_CRCSRC_Pos))
-#define DMAC_CRCCTRL_CRCSRC_NOACT_Val 0x0ul /**< \brief (DMAC_CRCCTRL) No action */
-#define DMAC_CRCCTRL_CRCSRC_IO_Val 0x1ul /**< \brief (DMAC_CRCCTRL) I/O interface */
-#define DMAC_CRCCTRL_CRCSRC_NOACT (DMAC_CRCCTRL_CRCSRC_NOACT_Val << DMAC_CRCCTRL_CRCSRC_Pos)
-#define DMAC_CRCCTRL_CRCSRC_IO (DMAC_CRCCTRL_CRCSRC_IO_Val << DMAC_CRCCTRL_CRCSRC_Pos)
-#define DMAC_CRCCTRL_MASK 0x3F0Ful /**< \brief (DMAC_CRCCTRL) MASK Register */
-
-/* -------- DMAC_CRCDATAIN : (DMAC Offset: 0x04) (R/W 32) CRC Data Input -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint32_t CRCDATAIN:32; /*!< bit: 0..31 CRC Data Input */
- } bit; /*!< Structure used for bit access */
- uint32_t reg; /*!< Type used for register access */
-} DMAC_CRCDATAIN_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_CRCDATAIN_OFFSET 0x04 /**< \brief (DMAC_CRCDATAIN offset) CRC Data Input */
-#define DMAC_CRCDATAIN_RESETVALUE 0x00000000ul /**< \brief (DMAC_CRCDATAIN reset_value) CRC Data Input */
-
-#define DMAC_CRCDATAIN_CRCDATAIN_Pos 0 /**< \brief (DMAC_CRCDATAIN) CRC Data Input */
-#define DMAC_CRCDATAIN_CRCDATAIN_Msk (0xFFFFFFFFul << DMAC_CRCDATAIN_CRCDATAIN_Pos)
-#define DMAC_CRCDATAIN_CRCDATAIN(value) (DMAC_CRCDATAIN_CRCDATAIN_Msk & ((value) << DMAC_CRCDATAIN_CRCDATAIN_Pos))
-#define DMAC_CRCDATAIN_MASK 0xFFFFFFFFul /**< \brief (DMAC_CRCDATAIN) MASK Register */
-
-/* -------- DMAC_CRCCHKSUM : (DMAC Offset: 0x08) (R/W 32) CRC Checksum -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint32_t CRCCHKSUM:32; /*!< bit: 0..31 CRC Checksum */
- } bit; /*!< Structure used for bit access */
- uint32_t reg; /*!< Type used for register access */
-} DMAC_CRCCHKSUM_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_CRCCHKSUM_OFFSET 0x08 /**< \brief (DMAC_CRCCHKSUM offset) CRC Checksum */
-#define DMAC_CRCCHKSUM_RESETVALUE 0x00000000ul /**< \brief (DMAC_CRCCHKSUM reset_value) CRC Checksum */
-
-#define DMAC_CRCCHKSUM_CRCCHKSUM_Pos 0 /**< \brief (DMAC_CRCCHKSUM) CRC Checksum */
-#define DMAC_CRCCHKSUM_CRCCHKSUM_Msk (0xFFFFFFFFul << DMAC_CRCCHKSUM_CRCCHKSUM_Pos)
-#define DMAC_CRCCHKSUM_CRCCHKSUM(value) (DMAC_CRCCHKSUM_CRCCHKSUM_Msk & ((value) << DMAC_CRCCHKSUM_CRCCHKSUM_Pos))
-#define DMAC_CRCCHKSUM_MASK 0xFFFFFFFFul /**< \brief (DMAC_CRCCHKSUM) MASK Register */
-
-/* -------- DMAC_CRCSTATUS : (DMAC Offset: 0x0C) (R/W 8) CRC Status -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t CRCBUSY:1; /*!< bit: 0 CRC Module Busy */
- uint8_t CRCZERO:1; /*!< bit: 1 CRC Zero */
- uint8_t :6; /*!< bit: 2.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} DMAC_CRCSTATUS_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_CRCSTATUS_OFFSET 0x0C /**< \brief (DMAC_CRCSTATUS offset) CRC Status */
-#define DMAC_CRCSTATUS_RESETVALUE 0x00ul /**< \brief (DMAC_CRCSTATUS reset_value) CRC Status */
-
-#define DMAC_CRCSTATUS_CRCBUSY_Pos 0 /**< \brief (DMAC_CRCSTATUS) CRC Module Busy */
-#define DMAC_CRCSTATUS_CRCBUSY (0x1ul << DMAC_CRCSTATUS_CRCBUSY_Pos)
-#define DMAC_CRCSTATUS_CRCZERO_Pos 1 /**< \brief (DMAC_CRCSTATUS) CRC Zero */
-#define DMAC_CRCSTATUS_CRCZERO (0x1ul << DMAC_CRCSTATUS_CRCZERO_Pos)
-#define DMAC_CRCSTATUS_MASK 0x03ul /**< \brief (DMAC_CRCSTATUS) MASK Register */
-
-/* -------- DMAC_DBGCTRL : (DMAC Offset: 0x0D) (R/W 8) Debug Control -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t DBGRUN:1; /*!< bit: 0 Debug Run */
- uint8_t :7; /*!< bit: 1.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} DMAC_DBGCTRL_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_DBGCTRL_OFFSET 0x0D /**< \brief (DMAC_DBGCTRL offset) Debug Control */
-#define DMAC_DBGCTRL_RESETVALUE 0x00ul /**< \brief (DMAC_DBGCTRL reset_value) Debug Control */
-
-#define DMAC_DBGCTRL_DBGRUN_Pos 0 /**< \brief (DMAC_DBGCTRL) Debug Run */
-#define DMAC_DBGCTRL_DBGRUN (0x1ul << DMAC_DBGCTRL_DBGRUN_Pos)
-#define DMAC_DBGCTRL_MASK 0x01ul /**< \brief (DMAC_DBGCTRL) MASK Register */
-
-/* -------- DMAC_QOSCTRL : (DMAC Offset: 0x0E) (R/W 8) QOS Control -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t WRBQOS:2; /*!< bit: 0.. 1 Write-Back Quality of Service */
- uint8_t FQOS:2; /*!< bit: 2.. 3 Fetch Quality of Service */
- uint8_t DQOS:2; /*!< bit: 4.. 5 Data Transfer Quality of Service */
- uint8_t :2; /*!< bit: 6.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} DMAC_QOSCTRL_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_QOSCTRL_OFFSET 0x0E /**< \brief (DMAC_QOSCTRL offset) QOS Control */
-#define DMAC_QOSCTRL_RESETVALUE 0x15ul /**< \brief (DMAC_QOSCTRL reset_value) QOS Control */
-
-#define DMAC_QOSCTRL_WRBQOS_Pos 0 /**< \brief (DMAC_QOSCTRL) Write-Back Quality of Service */
-#define DMAC_QOSCTRL_WRBQOS_Msk (0x3ul << DMAC_QOSCTRL_WRBQOS_Pos)
-#define DMAC_QOSCTRL_WRBQOS(value) (DMAC_QOSCTRL_WRBQOS_Msk & ((value) << DMAC_QOSCTRL_WRBQOS_Pos))
-#define DMAC_QOSCTRL_WRBQOS_DISABLE_Val 0x0ul /**< \brief (DMAC_QOSCTRL) Background (no sensitive operation) */
-#define DMAC_QOSCTRL_WRBQOS_LOW_Val 0x1ul /**< \brief (DMAC_QOSCTRL) Sensitive Bandwidth */
-#define DMAC_QOSCTRL_WRBQOS_MEDIUM_Val 0x2ul /**< \brief (DMAC_QOSCTRL) Sensitive Latency */
-#define DMAC_QOSCTRL_WRBQOS_HIGH_Val 0x3ul /**< \brief (DMAC_QOSCTRL) Critical Latency */
-#define DMAC_QOSCTRL_WRBQOS_DISABLE (DMAC_QOSCTRL_WRBQOS_DISABLE_Val << DMAC_QOSCTRL_WRBQOS_Pos)
-#define DMAC_QOSCTRL_WRBQOS_LOW (DMAC_QOSCTRL_WRBQOS_LOW_Val << DMAC_QOSCTRL_WRBQOS_Pos)
-#define DMAC_QOSCTRL_WRBQOS_MEDIUM (DMAC_QOSCTRL_WRBQOS_MEDIUM_Val << DMAC_QOSCTRL_WRBQOS_Pos)
-#define DMAC_QOSCTRL_WRBQOS_HIGH (DMAC_QOSCTRL_WRBQOS_HIGH_Val << DMAC_QOSCTRL_WRBQOS_Pos)
-#define DMAC_QOSCTRL_FQOS_Pos 2 /**< \brief (DMAC_QOSCTRL) Fetch Quality of Service */
-#define DMAC_QOSCTRL_FQOS_Msk (0x3ul << DMAC_QOSCTRL_FQOS_Pos)
-#define DMAC_QOSCTRL_FQOS(value) (DMAC_QOSCTRL_FQOS_Msk & ((value) << DMAC_QOSCTRL_FQOS_Pos))
-#define DMAC_QOSCTRL_FQOS_DISABLE_Val 0x0ul /**< \brief (DMAC_QOSCTRL) Background (no sensitive operation) */
-#define DMAC_QOSCTRL_FQOS_LOW_Val 0x1ul /**< \brief (DMAC_QOSCTRL) Sensitive Bandwidth */
-#define DMAC_QOSCTRL_FQOS_MEDIUM_Val 0x2ul /**< \brief (DMAC_QOSCTRL) Sensitive Latency */
-#define DMAC_QOSCTRL_FQOS_HIGH_Val 0x3ul /**< \brief (DMAC_QOSCTRL) Critical Latency */
-#define DMAC_QOSCTRL_FQOS_DISABLE (DMAC_QOSCTRL_FQOS_DISABLE_Val << DMAC_QOSCTRL_FQOS_Pos)
-#define DMAC_QOSCTRL_FQOS_LOW (DMAC_QOSCTRL_FQOS_LOW_Val << DMAC_QOSCTRL_FQOS_Pos)
-#define DMAC_QOSCTRL_FQOS_MEDIUM (DMAC_QOSCTRL_FQOS_MEDIUM_Val << DMAC_QOSCTRL_FQOS_Pos)
-#define DMAC_QOSCTRL_FQOS_HIGH (DMAC_QOSCTRL_FQOS_HIGH_Val << DMAC_QOSCTRL_FQOS_Pos)
-#define DMAC_QOSCTRL_DQOS_Pos 4 /**< \brief (DMAC_QOSCTRL) Data Transfer Quality of Service */
-#define DMAC_QOSCTRL_DQOS_Msk (0x3ul << DMAC_QOSCTRL_DQOS_Pos)
-#define DMAC_QOSCTRL_DQOS(value) (DMAC_QOSCTRL_DQOS_Msk & ((value) << DMAC_QOSCTRL_DQOS_Pos))
-#define DMAC_QOSCTRL_DQOS_DISABLE_Val 0x0ul /**< \brief (DMAC_QOSCTRL) Background (no sensitive operation) */
-#define DMAC_QOSCTRL_DQOS_LOW_Val 0x1ul /**< \brief (DMAC_QOSCTRL) Sensitive Bandwidth */
-#define DMAC_QOSCTRL_DQOS_MEDIUM_Val 0x2ul /**< \brief (DMAC_QOSCTRL) Sensitive Latency */
-#define DMAC_QOSCTRL_DQOS_HIGH_Val 0x3ul /**< \brief (DMAC_QOSCTRL) Critical Latency */
-#define DMAC_QOSCTRL_DQOS_DISABLE (DMAC_QOSCTRL_DQOS_DISABLE_Val << DMAC_QOSCTRL_DQOS_Pos)
-#define DMAC_QOSCTRL_DQOS_LOW (DMAC_QOSCTRL_DQOS_LOW_Val << DMAC_QOSCTRL_DQOS_Pos)
-#define DMAC_QOSCTRL_DQOS_MEDIUM (DMAC_QOSCTRL_DQOS_MEDIUM_Val << DMAC_QOSCTRL_DQOS_Pos)
-#define DMAC_QOSCTRL_DQOS_HIGH (DMAC_QOSCTRL_DQOS_HIGH_Val << DMAC_QOSCTRL_DQOS_Pos)
-#define DMAC_QOSCTRL_MASK 0x3Ful /**< \brief (DMAC_QOSCTRL) MASK Register */
-
-/* -------- DMAC_SWTRIGCTRL : (DMAC Offset: 0x10) (R/W 32) Software Trigger Control -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint32_t SWTRIG0:1; /*!< bit: 0 Channel 0 Software Trigger */
- uint32_t SWTRIG1:1; /*!< bit: 1 Channel 1 Software Trigger */
- uint32_t SWTRIG2:1; /*!< bit: 2 Channel 2 Software Trigger */
- uint32_t SWTRIG3:1; /*!< bit: 3 Channel 3 Software Trigger */
- uint32_t SWTRIG4:1; /*!< bit: 4 Channel 4 Software Trigger */
- uint32_t SWTRIG5:1; /*!< bit: 5 Channel 5 Software Trigger */
- uint32_t SWTRIG6:1; /*!< bit: 6 Channel 6 Software Trigger */
- uint32_t SWTRIG7:1; /*!< bit: 7 Channel 7 Software Trigger */
- uint32_t SWTRIG8:1; /*!< bit: 8 Channel 8 Software Trigger */
- uint32_t SWTRIG9:1; /*!< bit: 9 Channel 9 Software Trigger */
- uint32_t SWTRIG10:1; /*!< bit: 10 Channel 10 Software Trigger */
- uint32_t SWTRIG11:1; /*!< bit: 11 Channel 11 Software Trigger */
- uint32_t :20; /*!< bit: 12..31 Reserved */
- } bit; /*!< Structure used for bit access */
- struct {
- uint32_t SWTRIG:12; /*!< bit: 0..11 Channel x Software Trigger */
- uint32_t :20; /*!< bit: 12..31 Reserved */
- } vec; /*!< Structure used for vec access */
- uint32_t reg; /*!< Type used for register access */
-} DMAC_SWTRIGCTRL_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_SWTRIGCTRL_OFFSET 0x10 /**< \brief (DMAC_SWTRIGCTRL offset) Software Trigger Control */
-#define DMAC_SWTRIGCTRL_RESETVALUE 0x00000000ul /**< \brief (DMAC_SWTRIGCTRL reset_value) Software Trigger Control */
-
-#define DMAC_SWTRIGCTRL_SWTRIG0_Pos 0 /**< \brief (DMAC_SWTRIGCTRL) Channel 0 Software Trigger */
-#define DMAC_SWTRIGCTRL_SWTRIG0 (1 << DMAC_SWTRIGCTRL_SWTRIG0_Pos)
-#define DMAC_SWTRIGCTRL_SWTRIG1_Pos 1 /**< \brief (DMAC_SWTRIGCTRL) Channel 1 Software Trigger */
-#define DMAC_SWTRIGCTRL_SWTRIG1 (1 << DMAC_SWTRIGCTRL_SWTRIG1_Pos)
-#define DMAC_SWTRIGCTRL_SWTRIG2_Pos 2 /**< \brief (DMAC_SWTRIGCTRL) Channel 2 Software Trigger */
-#define DMAC_SWTRIGCTRL_SWTRIG2 (1 << DMAC_SWTRIGCTRL_SWTRIG2_Pos)
-#define DMAC_SWTRIGCTRL_SWTRIG3_Pos 3 /**< \brief (DMAC_SWTRIGCTRL) Channel 3 Software Trigger */
-#define DMAC_SWTRIGCTRL_SWTRIG3 (1 << DMAC_SWTRIGCTRL_SWTRIG3_Pos)
-#define DMAC_SWTRIGCTRL_SWTRIG4_Pos 4 /**< \brief (DMAC_SWTRIGCTRL) Channel 4 Software Trigger */
-#define DMAC_SWTRIGCTRL_SWTRIG4 (1 << DMAC_SWTRIGCTRL_SWTRIG4_Pos)
-#define DMAC_SWTRIGCTRL_SWTRIG5_Pos 5 /**< \brief (DMAC_SWTRIGCTRL) Channel 5 Software Trigger */
-#define DMAC_SWTRIGCTRL_SWTRIG5 (1 << DMAC_SWTRIGCTRL_SWTRIG5_Pos)
-#define DMAC_SWTRIGCTRL_SWTRIG6_Pos 6 /**< \brief (DMAC_SWTRIGCTRL) Channel 6 Software Trigger */
-#define DMAC_SWTRIGCTRL_SWTRIG6 (1 << DMAC_SWTRIGCTRL_SWTRIG6_Pos)
-#define DMAC_SWTRIGCTRL_SWTRIG7_Pos 7 /**< \brief (DMAC_SWTRIGCTRL) Channel 7 Software Trigger */
-#define DMAC_SWTRIGCTRL_SWTRIG7 (1 << DMAC_SWTRIGCTRL_SWTRIG7_Pos)
-#define DMAC_SWTRIGCTRL_SWTRIG8_Pos 8 /**< \brief (DMAC_SWTRIGCTRL) Channel 8 Software Trigger */
-#define DMAC_SWTRIGCTRL_SWTRIG8 (1 << DMAC_SWTRIGCTRL_SWTRIG8_Pos)
-#define DMAC_SWTRIGCTRL_SWTRIG9_Pos 9 /**< \brief (DMAC_SWTRIGCTRL) Channel 9 Software Trigger */
-#define DMAC_SWTRIGCTRL_SWTRIG9 (1 << DMAC_SWTRIGCTRL_SWTRIG9_Pos)
-#define DMAC_SWTRIGCTRL_SWTRIG10_Pos 10 /**< \brief (DMAC_SWTRIGCTRL) Channel 10 Software Trigger */
-#define DMAC_SWTRIGCTRL_SWTRIG10 (1 << DMAC_SWTRIGCTRL_SWTRIG10_Pos)
-#define DMAC_SWTRIGCTRL_SWTRIG11_Pos 11 /**< \brief (DMAC_SWTRIGCTRL) Channel 11 Software Trigger */
-#define DMAC_SWTRIGCTRL_SWTRIG11 (1 << DMAC_SWTRIGCTRL_SWTRIG11_Pos)
-#define DMAC_SWTRIGCTRL_SWTRIG_Pos 0 /**< \brief (DMAC_SWTRIGCTRL) Channel x Software Trigger */
-#define DMAC_SWTRIGCTRL_SWTRIG_Msk (0xFFFul << DMAC_SWTRIGCTRL_SWTRIG_Pos)
-#define DMAC_SWTRIGCTRL_SWTRIG(value) (DMAC_SWTRIGCTRL_SWTRIG_Msk & ((value) << DMAC_SWTRIGCTRL_SWTRIG_Pos))
-#define DMAC_SWTRIGCTRL_MASK 0x00000FFFul /**< \brief (DMAC_SWTRIGCTRL) MASK Register */
-
-/* -------- DMAC_PRICTRL0 : (DMAC Offset: 0x14) (R/W 32) Priority Control 0 -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint32_t LVLPRI0:4; /*!< bit: 0.. 3 Level 0 Channel Priority Number */
- uint32_t :3; /*!< bit: 4.. 6 Reserved */
- uint32_t RRLVLEN0:1; /*!< bit: 7 Level 0 Round-Robin Scheduling Enable */
- uint32_t LVLPRI1:4; /*!< bit: 8..11 Level 1 Channel Priority Number */
- uint32_t :3; /*!< bit: 12..14 Reserved */
- uint32_t RRLVLEN1:1; /*!< bit: 15 Level 1 Round-Robin Scheduling Enable */
- uint32_t LVLPRI2:4; /*!< bit: 16..19 Level 2 Channel Priority Number */
- uint32_t :3; /*!< bit: 20..22 Reserved */
- uint32_t RRLVLEN2:1; /*!< bit: 23 Level 2 Round-Robin Scheduling Enable */
- uint32_t LVLPRI3:4; /*!< bit: 24..27 Level 3 Channel Priority Number */
- uint32_t :3; /*!< bit: 28..30 Reserved */
- uint32_t RRLVLEN3:1; /*!< bit: 31 Level 3 Round-Robin Scheduling Enable */
- } bit; /*!< Structure used for bit access */
- uint32_t reg; /*!< Type used for register access */
-} DMAC_PRICTRL0_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_PRICTRL0_OFFSET 0x14 /**< \brief (DMAC_PRICTRL0 offset) Priority Control 0 */
-#define DMAC_PRICTRL0_RESETVALUE 0x00000000ul /**< \brief (DMAC_PRICTRL0 reset_value) Priority Control 0 */
-
-#define DMAC_PRICTRL0_LVLPRI0_Pos 0 /**< \brief (DMAC_PRICTRL0) Level 0 Channel Priority Number */
-#define DMAC_PRICTRL0_LVLPRI0_Msk (0xFul << DMAC_PRICTRL0_LVLPRI0_Pos)
-#define DMAC_PRICTRL0_LVLPRI0(value) (DMAC_PRICTRL0_LVLPRI0_Msk & ((value) << DMAC_PRICTRL0_LVLPRI0_Pos))
-#define DMAC_PRICTRL0_RRLVLEN0_Pos 7 /**< \brief (DMAC_PRICTRL0) Level 0 Round-Robin Scheduling Enable */
-#define DMAC_PRICTRL0_RRLVLEN0 (0x1ul << DMAC_PRICTRL0_RRLVLEN0_Pos)
-#define DMAC_PRICTRL0_LVLPRI1_Pos 8 /**< \brief (DMAC_PRICTRL0) Level 1 Channel Priority Number */
-#define DMAC_PRICTRL0_LVLPRI1_Msk (0xFul << DMAC_PRICTRL0_LVLPRI1_Pos)
-#define DMAC_PRICTRL0_LVLPRI1(value) (DMAC_PRICTRL0_LVLPRI1_Msk & ((value) << DMAC_PRICTRL0_LVLPRI1_Pos))
-#define DMAC_PRICTRL0_RRLVLEN1_Pos 15 /**< \brief (DMAC_PRICTRL0) Level 1 Round-Robin Scheduling Enable */
-#define DMAC_PRICTRL0_RRLVLEN1 (0x1ul << DMAC_PRICTRL0_RRLVLEN1_Pos)
-#define DMAC_PRICTRL0_LVLPRI2_Pos 16 /**< \brief (DMAC_PRICTRL0) Level 2 Channel Priority Number */
-#define DMAC_PRICTRL0_LVLPRI2_Msk (0xFul << DMAC_PRICTRL0_LVLPRI2_Pos)
-#define DMAC_PRICTRL0_LVLPRI2(value) (DMAC_PRICTRL0_LVLPRI2_Msk & ((value) << DMAC_PRICTRL0_LVLPRI2_Pos))
-#define DMAC_PRICTRL0_RRLVLEN2_Pos 23 /**< \brief (DMAC_PRICTRL0) Level 2 Round-Robin Scheduling Enable */
-#define DMAC_PRICTRL0_RRLVLEN2 (0x1ul << DMAC_PRICTRL0_RRLVLEN2_Pos)
-#define DMAC_PRICTRL0_LVLPRI3_Pos 24 /**< \brief (DMAC_PRICTRL0) Level 3 Channel Priority Number */
-#define DMAC_PRICTRL0_LVLPRI3_Msk (0xFul << DMAC_PRICTRL0_LVLPRI3_Pos)
-#define DMAC_PRICTRL0_LVLPRI3(value) (DMAC_PRICTRL0_LVLPRI3_Msk & ((value) << DMAC_PRICTRL0_LVLPRI3_Pos))
-#define DMAC_PRICTRL0_RRLVLEN3_Pos 31 /**< \brief (DMAC_PRICTRL0) Level 3 Round-Robin Scheduling Enable */
-#define DMAC_PRICTRL0_RRLVLEN3 (0x1ul << DMAC_PRICTRL0_RRLVLEN3_Pos)
-#define DMAC_PRICTRL0_MASK 0x8F8F8F8Ful /**< \brief (DMAC_PRICTRL0) MASK Register */
-
-/* -------- DMAC_INTPEND : (DMAC Offset: 0x20) (R/W 16) Interrupt Pending -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint16_t ID:4; /*!< bit: 0.. 3 Channel ID */
- uint16_t :4; /*!< bit: 4.. 7 Reserved */
- uint16_t TERR:1; /*!< bit: 8 Transfer Error */
- uint16_t TCMPL:1; /*!< bit: 9 Transfer Complete */
- uint16_t SUSP:1; /*!< bit: 10 Channel Suspend */
- uint16_t :2; /*!< bit: 11..12 Reserved */
- uint16_t FERR:1; /*!< bit: 13 Fetch Error */
- uint16_t BUSY:1; /*!< bit: 14 Busy */
- uint16_t PEND:1; /*!< bit: 15 Pending */
- } bit; /*!< Structure used for bit access */
- uint16_t reg; /*!< Type used for register access */
-} DMAC_INTPEND_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_INTPEND_OFFSET 0x20 /**< \brief (DMAC_INTPEND offset) Interrupt Pending */
-#define DMAC_INTPEND_RESETVALUE 0x0000ul /**< \brief (DMAC_INTPEND reset_value) Interrupt Pending */
-
-#define DMAC_INTPEND_ID_Pos 0 /**< \brief (DMAC_INTPEND) Channel ID */
-#define DMAC_INTPEND_ID_Msk (0xFul << DMAC_INTPEND_ID_Pos)
-#define DMAC_INTPEND_ID(value) (DMAC_INTPEND_ID_Msk & ((value) << DMAC_INTPEND_ID_Pos))
-#define DMAC_INTPEND_TERR_Pos 8 /**< \brief (DMAC_INTPEND) Transfer Error */
-#define DMAC_INTPEND_TERR (0x1ul << DMAC_INTPEND_TERR_Pos)
-#define DMAC_INTPEND_TCMPL_Pos 9 /**< \brief (DMAC_INTPEND) Transfer Complete */
-#define DMAC_INTPEND_TCMPL (0x1ul << DMAC_INTPEND_TCMPL_Pos)
-#define DMAC_INTPEND_SUSP_Pos 10 /**< \brief (DMAC_INTPEND) Channel Suspend */
-#define DMAC_INTPEND_SUSP (0x1ul << DMAC_INTPEND_SUSP_Pos)
-#define DMAC_INTPEND_FERR_Pos 13 /**< \brief (DMAC_INTPEND) Fetch Error */
-#define DMAC_INTPEND_FERR (0x1ul << DMAC_INTPEND_FERR_Pos)
-#define DMAC_INTPEND_BUSY_Pos 14 /**< \brief (DMAC_INTPEND) Busy */
-#define DMAC_INTPEND_BUSY (0x1ul << DMAC_INTPEND_BUSY_Pos)
-#define DMAC_INTPEND_PEND_Pos 15 /**< \brief (DMAC_INTPEND) Pending */
-#define DMAC_INTPEND_PEND (0x1ul << DMAC_INTPEND_PEND_Pos)
-#define DMAC_INTPEND_MASK 0xE70Ful /**< \brief (DMAC_INTPEND) MASK Register */
-
-/* -------- DMAC_INTSTATUS : (DMAC Offset: 0x24) (R/ 32) Interrupt Status -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint32_t CHINT0:1; /*!< bit: 0 Channel 0 Pending Interrupt */
- uint32_t CHINT1:1; /*!< bit: 1 Channel 1 Pending Interrupt */
- uint32_t CHINT2:1; /*!< bit: 2 Channel 2 Pending Interrupt */
- uint32_t CHINT3:1; /*!< bit: 3 Channel 3 Pending Interrupt */
- uint32_t CHINT4:1; /*!< bit: 4 Channel 4 Pending Interrupt */
- uint32_t CHINT5:1; /*!< bit: 5 Channel 5 Pending Interrupt */
- uint32_t CHINT6:1; /*!< bit: 6 Channel 6 Pending Interrupt */
- uint32_t CHINT7:1; /*!< bit: 7 Channel 7 Pending Interrupt */
- uint32_t CHINT8:1; /*!< bit: 8 Channel 8 Pending Interrupt */
- uint32_t CHINT9:1; /*!< bit: 9 Channel 9 Pending Interrupt */
- uint32_t CHINT10:1; /*!< bit: 10 Channel 10 Pending Interrupt */
- uint32_t CHINT11:1; /*!< bit: 11 Channel 11 Pending Interrupt */
- uint32_t :20; /*!< bit: 12..31 Reserved */
- } bit; /*!< Structure used for bit access */
- struct {
- uint32_t CHINT:12; /*!< bit: 0..11 Channel x Pending Interrupt */
- uint32_t :20; /*!< bit: 12..31 Reserved */
- } vec; /*!< Structure used for vec access */
- uint32_t reg; /*!< Type used for register access */
-} DMAC_INTSTATUS_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_INTSTATUS_OFFSET 0x24 /**< \brief (DMAC_INTSTATUS offset) Interrupt Status */
-#define DMAC_INTSTATUS_RESETVALUE 0x00000000ul /**< \brief (DMAC_INTSTATUS reset_value) Interrupt Status */
-
-#define DMAC_INTSTATUS_CHINT0_Pos 0 /**< \brief (DMAC_INTSTATUS) Channel 0 Pending Interrupt */
-#define DMAC_INTSTATUS_CHINT0 (1 << DMAC_INTSTATUS_CHINT0_Pos)
-#define DMAC_INTSTATUS_CHINT1_Pos 1 /**< \brief (DMAC_INTSTATUS) Channel 1 Pending Interrupt */
-#define DMAC_INTSTATUS_CHINT1 (1 << DMAC_INTSTATUS_CHINT1_Pos)
-#define DMAC_INTSTATUS_CHINT2_Pos 2 /**< \brief (DMAC_INTSTATUS) Channel 2 Pending Interrupt */
-#define DMAC_INTSTATUS_CHINT2 (1 << DMAC_INTSTATUS_CHINT2_Pos)
-#define DMAC_INTSTATUS_CHINT3_Pos 3 /**< \brief (DMAC_INTSTATUS) Channel 3 Pending Interrupt */
-#define DMAC_INTSTATUS_CHINT3 (1 << DMAC_INTSTATUS_CHINT3_Pos)
-#define DMAC_INTSTATUS_CHINT4_Pos 4 /**< \brief (DMAC_INTSTATUS) Channel 4 Pending Interrupt */
-#define DMAC_INTSTATUS_CHINT4 (1 << DMAC_INTSTATUS_CHINT4_Pos)
-#define DMAC_INTSTATUS_CHINT5_Pos 5 /**< \brief (DMAC_INTSTATUS) Channel 5 Pending Interrupt */
-#define DMAC_INTSTATUS_CHINT5 (1 << DMAC_INTSTATUS_CHINT5_Pos)
-#define DMAC_INTSTATUS_CHINT6_Pos 6 /**< \brief (DMAC_INTSTATUS) Channel 6 Pending Interrupt */
-#define DMAC_INTSTATUS_CHINT6 (1 << DMAC_INTSTATUS_CHINT6_Pos)
-#define DMAC_INTSTATUS_CHINT7_Pos 7 /**< \brief (DMAC_INTSTATUS) Channel 7 Pending Interrupt */
-#define DMAC_INTSTATUS_CHINT7 (1 << DMAC_INTSTATUS_CHINT7_Pos)
-#define DMAC_INTSTATUS_CHINT8_Pos 8 /**< \brief (DMAC_INTSTATUS) Channel 8 Pending Interrupt */
-#define DMAC_INTSTATUS_CHINT8 (1 << DMAC_INTSTATUS_CHINT8_Pos)
-#define DMAC_INTSTATUS_CHINT9_Pos 9 /**< \brief (DMAC_INTSTATUS) Channel 9 Pending Interrupt */
-#define DMAC_INTSTATUS_CHINT9 (1 << DMAC_INTSTATUS_CHINT9_Pos)
-#define DMAC_INTSTATUS_CHINT10_Pos 10 /**< \brief (DMAC_INTSTATUS) Channel 10 Pending Interrupt */
-#define DMAC_INTSTATUS_CHINT10 (1 << DMAC_INTSTATUS_CHINT10_Pos)
-#define DMAC_INTSTATUS_CHINT11_Pos 11 /**< \brief (DMAC_INTSTATUS) Channel 11 Pending Interrupt */
-#define DMAC_INTSTATUS_CHINT11 (1 << DMAC_INTSTATUS_CHINT11_Pos)
-#define DMAC_INTSTATUS_CHINT_Pos 0 /**< \brief (DMAC_INTSTATUS) Channel x Pending Interrupt */
-#define DMAC_INTSTATUS_CHINT_Msk (0xFFFul << DMAC_INTSTATUS_CHINT_Pos)
-#define DMAC_INTSTATUS_CHINT(value) (DMAC_INTSTATUS_CHINT_Msk & ((value) << DMAC_INTSTATUS_CHINT_Pos))
-#define DMAC_INTSTATUS_MASK 0x00000FFFul /**< \brief (DMAC_INTSTATUS) MASK Register */
-
-/* -------- DMAC_BUSYCH : (DMAC Offset: 0x28) (R/ 32) Busy Channels -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint32_t BUSYCH0:1; /*!< bit: 0 Busy Channel 0 */
- uint32_t BUSYCH1:1; /*!< bit: 1 Busy Channel 1 */
- uint32_t BUSYCH2:1; /*!< bit: 2 Busy Channel 2 */
- uint32_t BUSYCH3:1; /*!< bit: 3 Busy Channel 3 */
- uint32_t BUSYCH4:1; /*!< bit: 4 Busy Channel 4 */
- uint32_t BUSYCH5:1; /*!< bit: 5 Busy Channel 5 */
- uint32_t BUSYCH6:1; /*!< bit: 6 Busy Channel 6 */
- uint32_t BUSYCH7:1; /*!< bit: 7 Busy Channel 7 */
- uint32_t BUSYCH8:1; /*!< bit: 8 Busy Channel 8 */
- uint32_t BUSYCH9:1; /*!< bit: 9 Busy Channel 9 */
- uint32_t BUSYCH10:1; /*!< bit: 10 Busy Channel 10 */
- uint32_t BUSYCH11:1; /*!< bit: 11 Busy Channel 11 */
- uint32_t :20; /*!< bit: 12..31 Reserved */
- } bit; /*!< Structure used for bit access */
- struct {
- uint32_t BUSYCH:12; /*!< bit: 0..11 Busy Channel x */
- uint32_t :20; /*!< bit: 12..31 Reserved */
- } vec; /*!< Structure used for vec access */
- uint32_t reg; /*!< Type used for register access */
-} DMAC_BUSYCH_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_BUSYCH_OFFSET 0x28 /**< \brief (DMAC_BUSYCH offset) Busy Channels */
-#define DMAC_BUSYCH_RESETVALUE 0x00000000ul /**< \brief (DMAC_BUSYCH reset_value) Busy Channels */
-
-#define DMAC_BUSYCH_BUSYCH0_Pos 0 /**< \brief (DMAC_BUSYCH) Busy Channel 0 */
-#define DMAC_BUSYCH_BUSYCH0 (1 << DMAC_BUSYCH_BUSYCH0_Pos)
-#define DMAC_BUSYCH_BUSYCH1_Pos 1 /**< \brief (DMAC_BUSYCH) Busy Channel 1 */
-#define DMAC_BUSYCH_BUSYCH1 (1 << DMAC_BUSYCH_BUSYCH1_Pos)
-#define DMAC_BUSYCH_BUSYCH2_Pos 2 /**< \brief (DMAC_BUSYCH) Busy Channel 2 */
-#define DMAC_BUSYCH_BUSYCH2 (1 << DMAC_BUSYCH_BUSYCH2_Pos)
-#define DMAC_BUSYCH_BUSYCH3_Pos 3 /**< \brief (DMAC_BUSYCH) Busy Channel 3 */
-#define DMAC_BUSYCH_BUSYCH3 (1 << DMAC_BUSYCH_BUSYCH3_Pos)
-#define DMAC_BUSYCH_BUSYCH4_Pos 4 /**< \brief (DMAC_BUSYCH) Busy Channel 4 */
-#define DMAC_BUSYCH_BUSYCH4 (1 << DMAC_BUSYCH_BUSYCH4_Pos)
-#define DMAC_BUSYCH_BUSYCH5_Pos 5 /**< \brief (DMAC_BUSYCH) Busy Channel 5 */
-#define DMAC_BUSYCH_BUSYCH5 (1 << DMAC_BUSYCH_BUSYCH5_Pos)
-#define DMAC_BUSYCH_BUSYCH6_Pos 6 /**< \brief (DMAC_BUSYCH) Busy Channel 6 */
-#define DMAC_BUSYCH_BUSYCH6 (1 << DMAC_BUSYCH_BUSYCH6_Pos)
-#define DMAC_BUSYCH_BUSYCH7_Pos 7 /**< \brief (DMAC_BUSYCH) Busy Channel 7 */
-#define DMAC_BUSYCH_BUSYCH7 (1 << DMAC_BUSYCH_BUSYCH7_Pos)
-#define DMAC_BUSYCH_BUSYCH8_Pos 8 /**< \brief (DMAC_BUSYCH) Busy Channel 8 */
-#define DMAC_BUSYCH_BUSYCH8 (1 << DMAC_BUSYCH_BUSYCH8_Pos)
-#define DMAC_BUSYCH_BUSYCH9_Pos 9 /**< \brief (DMAC_BUSYCH) Busy Channel 9 */
-#define DMAC_BUSYCH_BUSYCH9 (1 << DMAC_BUSYCH_BUSYCH9_Pos)
-#define DMAC_BUSYCH_BUSYCH10_Pos 10 /**< \brief (DMAC_BUSYCH) Busy Channel 10 */
-#define DMAC_BUSYCH_BUSYCH10 (1 << DMAC_BUSYCH_BUSYCH10_Pos)
-#define DMAC_BUSYCH_BUSYCH11_Pos 11 /**< \brief (DMAC_BUSYCH) Busy Channel 11 */
-#define DMAC_BUSYCH_BUSYCH11 (1 << DMAC_BUSYCH_BUSYCH11_Pos)
-#define DMAC_BUSYCH_BUSYCH_Pos 0 /**< \brief (DMAC_BUSYCH) Busy Channel x */
-#define DMAC_BUSYCH_BUSYCH_Msk (0xFFFul << DMAC_BUSYCH_BUSYCH_Pos)
-#define DMAC_BUSYCH_BUSYCH(value) (DMAC_BUSYCH_BUSYCH_Msk & ((value) << DMAC_BUSYCH_BUSYCH_Pos))
-#define DMAC_BUSYCH_MASK 0x00000FFFul /**< \brief (DMAC_BUSYCH) MASK Register */
-
-/* -------- DMAC_PENDCH : (DMAC Offset: 0x2C) (R/ 32) Pending Channels -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint32_t PENDCH0:1; /*!< bit: 0 Pending Channel 0 */
- uint32_t PENDCH1:1; /*!< bit: 1 Pending Channel 1 */
- uint32_t PENDCH2:1; /*!< bit: 2 Pending Channel 2 */
- uint32_t PENDCH3:1; /*!< bit: 3 Pending Channel 3 */
- uint32_t PENDCH4:1; /*!< bit: 4 Pending Channel 4 */
- uint32_t PENDCH5:1; /*!< bit: 5 Pending Channel 5 */
- uint32_t PENDCH6:1; /*!< bit: 6 Pending Channel 6 */
- uint32_t PENDCH7:1; /*!< bit: 7 Pending Channel 7 */
- uint32_t PENDCH8:1; /*!< bit: 8 Pending Channel 8 */
- uint32_t PENDCH9:1; /*!< bit: 9 Pending Channel 9 */
- uint32_t PENDCH10:1; /*!< bit: 10 Pending Channel 10 */
- uint32_t PENDCH11:1; /*!< bit: 11 Pending Channel 11 */
- uint32_t :20; /*!< bit: 12..31 Reserved */
- } bit; /*!< Structure used for bit access */
- struct {
- uint32_t PENDCH:12; /*!< bit: 0..11 Pending Channel x */
- uint32_t :20; /*!< bit: 12..31 Reserved */
- } vec; /*!< Structure used for vec access */
- uint32_t reg; /*!< Type used for register access */
-} DMAC_PENDCH_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_PENDCH_OFFSET 0x2C /**< \brief (DMAC_PENDCH offset) Pending Channels */
-#define DMAC_PENDCH_RESETVALUE 0x00000000ul /**< \brief (DMAC_PENDCH reset_value) Pending Channels */
-
-#define DMAC_PENDCH_PENDCH0_Pos 0 /**< \brief (DMAC_PENDCH) Pending Channel 0 */
-#define DMAC_PENDCH_PENDCH0 (1 << DMAC_PENDCH_PENDCH0_Pos)
-#define DMAC_PENDCH_PENDCH1_Pos 1 /**< \brief (DMAC_PENDCH) Pending Channel 1 */
-#define DMAC_PENDCH_PENDCH1 (1 << DMAC_PENDCH_PENDCH1_Pos)
-#define DMAC_PENDCH_PENDCH2_Pos 2 /**< \brief (DMAC_PENDCH) Pending Channel 2 */
-#define DMAC_PENDCH_PENDCH2 (1 << DMAC_PENDCH_PENDCH2_Pos)
-#define DMAC_PENDCH_PENDCH3_Pos 3 /**< \brief (DMAC_PENDCH) Pending Channel 3 */
-#define DMAC_PENDCH_PENDCH3 (1 << DMAC_PENDCH_PENDCH3_Pos)
-#define DMAC_PENDCH_PENDCH4_Pos 4 /**< \brief (DMAC_PENDCH) Pending Channel 4 */
-#define DMAC_PENDCH_PENDCH4 (1 << DMAC_PENDCH_PENDCH4_Pos)
-#define DMAC_PENDCH_PENDCH5_Pos 5 /**< \brief (DMAC_PENDCH) Pending Channel 5 */
-#define DMAC_PENDCH_PENDCH5 (1 << DMAC_PENDCH_PENDCH5_Pos)
-#define DMAC_PENDCH_PENDCH6_Pos 6 /**< \brief (DMAC_PENDCH) Pending Channel 6 */
-#define DMAC_PENDCH_PENDCH6 (1 << DMAC_PENDCH_PENDCH6_Pos)
-#define DMAC_PENDCH_PENDCH7_Pos 7 /**< \brief (DMAC_PENDCH) Pending Channel 7 */
-#define DMAC_PENDCH_PENDCH7 (1 << DMAC_PENDCH_PENDCH7_Pos)
-#define DMAC_PENDCH_PENDCH8_Pos 8 /**< \brief (DMAC_PENDCH) Pending Channel 8 */
-#define DMAC_PENDCH_PENDCH8 (1 << DMAC_PENDCH_PENDCH8_Pos)
-#define DMAC_PENDCH_PENDCH9_Pos 9 /**< \brief (DMAC_PENDCH) Pending Channel 9 */
-#define DMAC_PENDCH_PENDCH9 (1 << DMAC_PENDCH_PENDCH9_Pos)
-#define DMAC_PENDCH_PENDCH10_Pos 10 /**< \brief (DMAC_PENDCH) Pending Channel 10 */
-#define DMAC_PENDCH_PENDCH10 (1 << DMAC_PENDCH_PENDCH10_Pos)
-#define DMAC_PENDCH_PENDCH11_Pos 11 /**< \brief (DMAC_PENDCH) Pending Channel 11 */
-#define DMAC_PENDCH_PENDCH11 (1 << DMAC_PENDCH_PENDCH11_Pos)
-#define DMAC_PENDCH_PENDCH_Pos 0 /**< \brief (DMAC_PENDCH) Pending Channel x */
-#define DMAC_PENDCH_PENDCH_Msk (0xFFFul << DMAC_PENDCH_PENDCH_Pos)
-#define DMAC_PENDCH_PENDCH(value) (DMAC_PENDCH_PENDCH_Msk & ((value) << DMAC_PENDCH_PENDCH_Pos))
-#define DMAC_PENDCH_MASK 0x00000FFFul /**< \brief (DMAC_PENDCH) MASK Register */
-
-/* -------- DMAC_ACTIVE : (DMAC Offset: 0x30) (R/ 32) Active Channel and Levels -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint32_t LVLEX0:1; /*!< bit: 0 Level 0 Channel Trigger Request Executing */
- uint32_t LVLEX1:1; /*!< bit: 1 Level 1 Channel Trigger Request Executing */
- uint32_t LVLEX2:1; /*!< bit: 2 Level 2 Channel Trigger Request Executing */
- uint32_t LVLEX3:1; /*!< bit: 3 Level 3 Channel Trigger Request Executing */
- uint32_t :4; /*!< bit: 4.. 7 Reserved */
- uint32_t ID:5; /*!< bit: 8..12 Active Channel ID */
- uint32_t :2; /*!< bit: 13..14 Reserved */
- uint32_t ABUSY:1; /*!< bit: 15 Active Channel Busy */
- uint32_t BTCNT:16; /*!< bit: 16..31 Active Channel Block Transfer Count */
- } bit; /*!< Structure used for bit access */
- struct {
- uint32_t LVLEX:4; /*!< bit: 0.. 3 Level x Channel Trigger Request Executing */
- uint32_t :28; /*!< bit: 4..31 Reserved */
- } vec; /*!< Structure used for vec access */
- uint32_t reg; /*!< Type used for register access */
-} DMAC_ACTIVE_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_ACTIVE_OFFSET 0x30 /**< \brief (DMAC_ACTIVE offset) Active Channel and Levels */
-#define DMAC_ACTIVE_RESETVALUE 0x00000000ul /**< \brief (DMAC_ACTIVE reset_value) Active Channel and Levels */
-
-#define DMAC_ACTIVE_LVLEX0_Pos 0 /**< \brief (DMAC_ACTIVE) Level 0 Channel Trigger Request Executing */
-#define DMAC_ACTIVE_LVLEX0 (1 << DMAC_ACTIVE_LVLEX0_Pos)
-#define DMAC_ACTIVE_LVLEX1_Pos 1 /**< \brief (DMAC_ACTIVE) Level 1 Channel Trigger Request Executing */
-#define DMAC_ACTIVE_LVLEX1 (1 << DMAC_ACTIVE_LVLEX1_Pos)
-#define DMAC_ACTIVE_LVLEX2_Pos 2 /**< \brief (DMAC_ACTIVE) Level 2 Channel Trigger Request Executing */
-#define DMAC_ACTIVE_LVLEX2 (1 << DMAC_ACTIVE_LVLEX2_Pos)
-#define DMAC_ACTIVE_LVLEX3_Pos 3 /**< \brief (DMAC_ACTIVE) Level 3 Channel Trigger Request Executing */
-#define DMAC_ACTIVE_LVLEX3 (1 << DMAC_ACTIVE_LVLEX3_Pos)
-#define DMAC_ACTIVE_LVLEX_Pos 0 /**< \brief (DMAC_ACTIVE) Level x Channel Trigger Request Executing */
-#define DMAC_ACTIVE_LVLEX_Msk (0xFul << DMAC_ACTIVE_LVLEX_Pos)
-#define DMAC_ACTIVE_LVLEX(value) (DMAC_ACTIVE_LVLEX_Msk & ((value) << DMAC_ACTIVE_LVLEX_Pos))
-#define DMAC_ACTIVE_ID_Pos 8 /**< \brief (DMAC_ACTIVE) Active Channel ID */
-#define DMAC_ACTIVE_ID_Msk (0x1Ful << DMAC_ACTIVE_ID_Pos)
-#define DMAC_ACTIVE_ID(value) (DMAC_ACTIVE_ID_Msk & ((value) << DMAC_ACTIVE_ID_Pos))
-#define DMAC_ACTIVE_ABUSY_Pos 15 /**< \brief (DMAC_ACTIVE) Active Channel Busy */
-#define DMAC_ACTIVE_ABUSY (0x1ul << DMAC_ACTIVE_ABUSY_Pos)
-#define DMAC_ACTIVE_BTCNT_Pos 16 /**< \brief (DMAC_ACTIVE) Active Channel Block Transfer Count */
-#define DMAC_ACTIVE_BTCNT_Msk (0xFFFFul << DMAC_ACTIVE_BTCNT_Pos)
-#define DMAC_ACTIVE_BTCNT(value) (DMAC_ACTIVE_BTCNT_Msk & ((value) << DMAC_ACTIVE_BTCNT_Pos))
-#define DMAC_ACTIVE_MASK 0xFFFF9F0Ful /**< \brief (DMAC_ACTIVE) MASK Register */
-
-/* -------- DMAC_BASEADDR : (DMAC Offset: 0x34) (R/W 32) Descriptor Memory Section Base Address -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint32_t BASEADDR:32; /*!< bit: 0..31 Descriptor Memory Base Address */
- } bit; /*!< Structure used for bit access */
- uint32_t reg; /*!< Type used for register access */
-} DMAC_BASEADDR_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_BASEADDR_OFFSET 0x34 /**< \brief (DMAC_BASEADDR offset) Descriptor Memory Section Base Address */
-#define DMAC_BASEADDR_RESETVALUE 0x00000000ul /**< \brief (DMAC_BASEADDR reset_value) Descriptor Memory Section Base Address */
-
-#define DMAC_BASEADDR_BASEADDR_Pos 0 /**< \brief (DMAC_BASEADDR) Descriptor Memory Base Address */
-#define DMAC_BASEADDR_BASEADDR_Msk (0xFFFFFFFFul << DMAC_BASEADDR_BASEADDR_Pos)
-#define DMAC_BASEADDR_BASEADDR(value) (DMAC_BASEADDR_BASEADDR_Msk & ((value) << DMAC_BASEADDR_BASEADDR_Pos))
-#define DMAC_BASEADDR_MASK 0xFFFFFFFFul /**< \brief (DMAC_BASEADDR) MASK Register */
-
-/* -------- DMAC_WRBADDR : (DMAC Offset: 0x38) (R/W 32) Write-Back Memory Section Base Address -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint32_t WRBADDR:32; /*!< bit: 0..31 Write-Back Memory Base Address */
- } bit; /*!< Structure used for bit access */
- uint32_t reg; /*!< Type used for register access */
-} DMAC_WRBADDR_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_WRBADDR_OFFSET 0x38 /**< \brief (DMAC_WRBADDR offset) Write-Back Memory Section Base Address */
-#define DMAC_WRBADDR_RESETVALUE 0x00000000ul /**< \brief (DMAC_WRBADDR reset_value) Write-Back Memory Section Base Address */
-
-#define DMAC_WRBADDR_WRBADDR_Pos 0 /**< \brief (DMAC_WRBADDR) Write-Back Memory Base Address */
-#define DMAC_WRBADDR_WRBADDR_Msk (0xFFFFFFFFul << DMAC_WRBADDR_WRBADDR_Pos)
-#define DMAC_WRBADDR_WRBADDR(value) (DMAC_WRBADDR_WRBADDR_Msk & ((value) << DMAC_WRBADDR_WRBADDR_Pos))
-#define DMAC_WRBADDR_MASK 0xFFFFFFFFul /**< \brief (DMAC_WRBADDR) MASK Register */
-
-/* -------- DMAC_CHID : (DMAC Offset: 0x3F) (R/W 8) Channel ID -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t ID:4; /*!< bit: 0.. 3 Channel ID */
- uint8_t :4; /*!< bit: 4.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} DMAC_CHID_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_CHID_OFFSET 0x3F /**< \brief (DMAC_CHID offset) Channel ID */
-#define DMAC_CHID_RESETVALUE 0x00ul /**< \brief (DMAC_CHID reset_value) Channel ID */
-
-#define DMAC_CHID_ID_Pos 0 /**< \brief (DMAC_CHID) Channel ID */
-#define DMAC_CHID_ID_Msk (0xFul << DMAC_CHID_ID_Pos)
-#define DMAC_CHID_ID(value) (DMAC_CHID_ID_Msk & ((value) << DMAC_CHID_ID_Pos))
-#define DMAC_CHID_MASK 0x0Ful /**< \brief (DMAC_CHID) MASK Register */
-
-/* -------- DMAC_CHCTRLA : (DMAC Offset: 0x40) (R/W 8) Channel Control A -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t SWRST:1; /*!< bit: 0 Channel Software Reset */
- uint8_t ENABLE:1; /*!< bit: 1 Channel Enable */
- uint8_t :6; /*!< bit: 2.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} DMAC_CHCTRLA_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_CHCTRLA_OFFSET 0x40 /**< \brief (DMAC_CHCTRLA offset) Channel Control A */
-#define DMAC_CHCTRLA_RESETVALUE 0x00ul /**< \brief (DMAC_CHCTRLA reset_value) Channel Control A */
-
-#define DMAC_CHCTRLA_SWRST_Pos 0 /**< \brief (DMAC_CHCTRLA) Channel Software Reset */
-#define DMAC_CHCTRLA_SWRST (0x1ul << DMAC_CHCTRLA_SWRST_Pos)
-#define DMAC_CHCTRLA_ENABLE_Pos 1 /**< \brief (DMAC_CHCTRLA) Channel Enable */
-#define DMAC_CHCTRLA_ENABLE (0x1ul << DMAC_CHCTRLA_ENABLE_Pos)
-#define DMAC_CHCTRLA_MASK 0x03ul /**< \brief (DMAC_CHCTRLA) MASK Register */
-
-/* -------- DMAC_CHCTRLB : (DMAC Offset: 0x44) (R/W 32) Channel Control B -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint32_t EVACT:3; /*!< bit: 0.. 2 Event Input Action */
- uint32_t EVIE:1; /*!< bit: 3 Channel Event Input Enable */
- uint32_t EVOE:1; /*!< bit: 4 Channel Event Output Enable */
- uint32_t LVL:2; /*!< bit: 5.. 6 Channel Arbitration Level */
- uint32_t :1; /*!< bit: 7 Reserved */
- uint32_t TRIGSRC:6; /*!< bit: 8..13 Peripheral Trigger Source */
- uint32_t :8; /*!< bit: 14..21 Reserved */
- uint32_t TRIGACT:2; /*!< bit: 22..23 Trigger Action */
- uint32_t CMD:2; /*!< bit: 24..25 Software Command */
- uint32_t :6; /*!< bit: 26..31 Reserved */
- } bit; /*!< Structure used for bit access */
- uint32_t reg; /*!< Type used for register access */
-} DMAC_CHCTRLB_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_CHCTRLB_OFFSET 0x44 /**< \brief (DMAC_CHCTRLB offset) Channel Control B */
-#define DMAC_CHCTRLB_RESETVALUE 0x00000000ul /**< \brief (DMAC_CHCTRLB reset_value) Channel Control B */
-
-#define DMAC_CHCTRLB_EVACT_Pos 0 /**< \brief (DMAC_CHCTRLB) Event Input Action */
-#define DMAC_CHCTRLB_EVACT_Msk (0x7ul << DMAC_CHCTRLB_EVACT_Pos)
-#define DMAC_CHCTRLB_EVACT(value) (DMAC_CHCTRLB_EVACT_Msk & ((value) << DMAC_CHCTRLB_EVACT_Pos))
-#define DMAC_CHCTRLB_EVACT_NOACT_Val 0x0ul /**< \brief (DMAC_CHCTRLB) No action */
-#define DMAC_CHCTRLB_EVACT_TRIG_Val 0x1ul /**< \brief (DMAC_CHCTRLB) Transfer and periodic transfer trigger */
-#define DMAC_CHCTRLB_EVACT_CTRIG_Val 0x2ul /**< \brief (DMAC_CHCTRLB) Conditional transfer trigger */
-#define DMAC_CHCTRLB_EVACT_CBLOCK_Val 0x3ul /**< \brief (DMAC_CHCTRLB) Conditional block transfer */
-#define DMAC_CHCTRLB_EVACT_SUSPEND_Val 0x4ul /**< \brief (DMAC_CHCTRLB) Channel suspend operation */
-#define DMAC_CHCTRLB_EVACT_RESUME_Val 0x5ul /**< \brief (DMAC_CHCTRLB) Channel resume operation */
-#define DMAC_CHCTRLB_EVACT_SSKIP_Val 0x6ul /**< \brief (DMAC_CHCTRLB) Skip next block suspend action */
-#define DMAC_CHCTRLB_EVACT_NOACT (DMAC_CHCTRLB_EVACT_NOACT_Val << DMAC_CHCTRLB_EVACT_Pos)
-#define DMAC_CHCTRLB_EVACT_TRIG (DMAC_CHCTRLB_EVACT_TRIG_Val << DMAC_CHCTRLB_EVACT_Pos)
-#define DMAC_CHCTRLB_EVACT_CTRIG (DMAC_CHCTRLB_EVACT_CTRIG_Val << DMAC_CHCTRLB_EVACT_Pos)
-#define DMAC_CHCTRLB_EVACT_CBLOCK (DMAC_CHCTRLB_EVACT_CBLOCK_Val << DMAC_CHCTRLB_EVACT_Pos)
-#define DMAC_CHCTRLB_EVACT_SUSPEND (DMAC_CHCTRLB_EVACT_SUSPEND_Val << DMAC_CHCTRLB_EVACT_Pos)
-#define DMAC_CHCTRLB_EVACT_RESUME (DMAC_CHCTRLB_EVACT_RESUME_Val << DMAC_CHCTRLB_EVACT_Pos)
-#define DMAC_CHCTRLB_EVACT_SSKIP (DMAC_CHCTRLB_EVACT_SSKIP_Val << DMAC_CHCTRLB_EVACT_Pos)
-#define DMAC_CHCTRLB_EVIE_Pos 3 /**< \brief (DMAC_CHCTRLB) Channel Event Input Enable */
-#define DMAC_CHCTRLB_EVIE (0x1ul << DMAC_CHCTRLB_EVIE_Pos)
-#define DMAC_CHCTRLB_EVOE_Pos 4 /**< \brief (DMAC_CHCTRLB) Channel Event Output Enable */
-#define DMAC_CHCTRLB_EVOE (0x1ul << DMAC_CHCTRLB_EVOE_Pos)
-#define DMAC_CHCTRLB_LVL_Pos 5 /**< \brief (DMAC_CHCTRLB) Channel Arbitration Level */
-#define DMAC_CHCTRLB_LVL_Msk (0x3ul << DMAC_CHCTRLB_LVL_Pos)
-#define DMAC_CHCTRLB_LVL(value) (DMAC_CHCTRLB_LVL_Msk & ((value) << DMAC_CHCTRLB_LVL_Pos))
-#define DMAC_CHCTRLB_LVL_LVL0_Val 0x0ul /**< \brief (DMAC_CHCTRLB) Channel Priority Level 0 */
-#define DMAC_CHCTRLB_LVL_LVL1_Val 0x1ul /**< \brief (DMAC_CHCTRLB) Channel Priority Level 1 */
-#define DMAC_CHCTRLB_LVL_LVL2_Val 0x2ul /**< \brief (DMAC_CHCTRLB) Channel Priority Level 2 */
-#define DMAC_CHCTRLB_LVL_LVL3_Val 0x3ul /**< \brief (DMAC_CHCTRLB) Channel Priority Level 3 */
-#define DMAC_CHCTRLB_LVL_LVL0 (DMAC_CHCTRLB_LVL_LVL0_Val << DMAC_CHCTRLB_LVL_Pos)
-#define DMAC_CHCTRLB_LVL_LVL1 (DMAC_CHCTRLB_LVL_LVL1_Val << DMAC_CHCTRLB_LVL_Pos)
-#define DMAC_CHCTRLB_LVL_LVL2 (DMAC_CHCTRLB_LVL_LVL2_Val << DMAC_CHCTRLB_LVL_Pos)
-#define DMAC_CHCTRLB_LVL_LVL3 (DMAC_CHCTRLB_LVL_LVL3_Val << DMAC_CHCTRLB_LVL_Pos)
-#define DMAC_CHCTRLB_TRIGSRC_Pos 8 /**< \brief (DMAC_CHCTRLB) Peripheral Trigger Source */
-#define DMAC_CHCTRLB_TRIGSRC_Msk (0x3Ful << DMAC_CHCTRLB_TRIGSRC_Pos)
-#define DMAC_CHCTRLB_TRIGSRC(value) (DMAC_CHCTRLB_TRIGSRC_Msk & ((value) << DMAC_CHCTRLB_TRIGSRC_Pos))
-#define DMAC_CHCTRLB_TRIGSRC_DISABLE_Val 0x0ul /**< \brief (DMAC_CHCTRLB) Only software/event triggers */
-#define DMAC_CHCTRLB_TRIGSRC_DISABLE (DMAC_CHCTRLB_TRIGSRC_DISABLE_Val << DMAC_CHCTRLB_TRIGSRC_Pos)
-#define DMAC_CHCTRLB_TRIGACT_Pos 22 /**< \brief (DMAC_CHCTRLB) Trigger Action */
-#define DMAC_CHCTRLB_TRIGACT_Msk (0x3ul << DMAC_CHCTRLB_TRIGACT_Pos)
-#define DMAC_CHCTRLB_TRIGACT(value) (DMAC_CHCTRLB_TRIGACT_Msk & ((value) << DMAC_CHCTRLB_TRIGACT_Pos))
-#define DMAC_CHCTRLB_TRIGACT_BLOCK_Val 0x0ul /**< \brief (DMAC_CHCTRLB) One trigger required for each block transfer */
-#define DMAC_CHCTRLB_TRIGACT_BEAT_Val 0x2ul /**< \brief (DMAC_CHCTRLB) One trigger required for each beat transfer */
-#define DMAC_CHCTRLB_TRIGACT_TRANSACTION_Val 0x3ul /**< \brief (DMAC_CHCTRLB) One trigger required for each transaction */
-#define DMAC_CHCTRLB_TRIGACT_BLOCK (DMAC_CHCTRLB_TRIGACT_BLOCK_Val << DMAC_CHCTRLB_TRIGACT_Pos)
-#define DMAC_CHCTRLB_TRIGACT_BEAT (DMAC_CHCTRLB_TRIGACT_BEAT_Val << DMAC_CHCTRLB_TRIGACT_Pos)
-#define DMAC_CHCTRLB_TRIGACT_TRANSACTION (DMAC_CHCTRLB_TRIGACT_TRANSACTION_Val << DMAC_CHCTRLB_TRIGACT_Pos)
-#define DMAC_CHCTRLB_CMD_Pos 24 /**< \brief (DMAC_CHCTRLB) Software Command */
-#define DMAC_CHCTRLB_CMD_Msk (0x3ul << DMAC_CHCTRLB_CMD_Pos)
-#define DMAC_CHCTRLB_CMD(value) (DMAC_CHCTRLB_CMD_Msk & ((value) << DMAC_CHCTRLB_CMD_Pos))
-#define DMAC_CHCTRLB_CMD_NOACT_Val 0x0ul /**< \brief (DMAC_CHCTRLB) No action */
-#define DMAC_CHCTRLB_CMD_SUSPEND_Val 0x1ul /**< \brief (DMAC_CHCTRLB) Channel suspend operation */
-#define DMAC_CHCTRLB_CMD_RESUME_Val 0x2ul /**< \brief (DMAC_CHCTRLB) Channel resume operation */
-#define DMAC_CHCTRLB_CMD_NOACT (DMAC_CHCTRLB_CMD_NOACT_Val << DMAC_CHCTRLB_CMD_Pos)
-#define DMAC_CHCTRLB_CMD_SUSPEND (DMAC_CHCTRLB_CMD_SUSPEND_Val << DMAC_CHCTRLB_CMD_Pos)
-#define DMAC_CHCTRLB_CMD_RESUME (DMAC_CHCTRLB_CMD_RESUME_Val << DMAC_CHCTRLB_CMD_Pos)
-#define DMAC_CHCTRLB_MASK 0x03C03F7Ful /**< \brief (DMAC_CHCTRLB) MASK Register */
-
-/* -------- DMAC_CHINTENCLR : (DMAC Offset: 0x4C) (R/W 8) Channel Interrupt Enable Clear -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t TERR:1; /*!< bit: 0 Transfer Error Interrupt Enable */
- uint8_t TCMPL:1; /*!< bit: 1 Transfer Complete Interrupt Enable */
- uint8_t SUSP:1; /*!< bit: 2 Channel Suspend Interrupt Enable */
- uint8_t :5; /*!< bit: 3.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} DMAC_CHINTENCLR_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_CHINTENCLR_OFFSET 0x4C /**< \brief (DMAC_CHINTENCLR offset) Channel Interrupt Enable Clear */
-#define DMAC_CHINTENCLR_RESETVALUE 0x00ul /**< \brief (DMAC_CHINTENCLR reset_value) Channel Interrupt Enable Clear */
-
-#define DMAC_CHINTENCLR_TERR_Pos 0 /**< \brief (DMAC_CHINTENCLR) Transfer Error Interrupt Enable */
-#define DMAC_CHINTENCLR_TERR (0x1ul << DMAC_CHINTENCLR_TERR_Pos)
-#define DMAC_CHINTENCLR_TCMPL_Pos 1 /**< \brief (DMAC_CHINTENCLR) Transfer Complete Interrupt Enable */
-#define DMAC_CHINTENCLR_TCMPL (0x1ul << DMAC_CHINTENCLR_TCMPL_Pos)
-#define DMAC_CHINTENCLR_SUSP_Pos 2 /**< \brief (DMAC_CHINTENCLR) Channel Suspend Interrupt Enable */
-#define DMAC_CHINTENCLR_SUSP (0x1ul << DMAC_CHINTENCLR_SUSP_Pos)
-#define DMAC_CHINTENCLR_MASK 0x07ul /**< \brief (DMAC_CHINTENCLR) MASK Register */
-
-/* -------- DMAC_CHINTENSET : (DMAC Offset: 0x4D) (R/W 8) Channel Interrupt Enable Set -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t TERR:1; /*!< bit: 0 Transfer Error Interrupt Enable */
- uint8_t TCMPL:1; /*!< bit: 1 Transfer Complete Interrupt Enable */
- uint8_t SUSP:1; /*!< bit: 2 Channel Suspend Interrupt Enable */
- uint8_t :5; /*!< bit: 3.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} DMAC_CHINTENSET_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_CHINTENSET_OFFSET 0x4D /**< \brief (DMAC_CHINTENSET offset) Channel Interrupt Enable Set */
-#define DMAC_CHINTENSET_RESETVALUE 0x00ul /**< \brief (DMAC_CHINTENSET reset_value) Channel Interrupt Enable Set */
-
-#define DMAC_CHINTENSET_TERR_Pos 0 /**< \brief (DMAC_CHINTENSET) Transfer Error Interrupt Enable */
-#define DMAC_CHINTENSET_TERR (0x1ul << DMAC_CHINTENSET_TERR_Pos)
-#define DMAC_CHINTENSET_TCMPL_Pos 1 /**< \brief (DMAC_CHINTENSET) Transfer Complete Interrupt Enable */
-#define DMAC_CHINTENSET_TCMPL (0x1ul << DMAC_CHINTENSET_TCMPL_Pos)
-#define DMAC_CHINTENSET_SUSP_Pos 2 /**< \brief (DMAC_CHINTENSET) Channel Suspend Interrupt Enable */
-#define DMAC_CHINTENSET_SUSP (0x1ul << DMAC_CHINTENSET_SUSP_Pos)
-#define DMAC_CHINTENSET_MASK 0x07ul /**< \brief (DMAC_CHINTENSET) MASK Register */
-
-/* -------- DMAC_CHINTFLAG : (DMAC Offset: 0x4E) (R/W 8) Channel Interrupt Flag Status and Clear -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union { // __I to avoid read-modify-write on write-to-clear register
- struct {
- __I uint8_t TERR:1; /*!< bit: 0 Transfer Error */
- __I uint8_t TCMPL:1; /*!< bit: 1 Transfer Complete */
- __I uint8_t SUSP:1; /*!< bit: 2 Channel Suspend */
- __I uint8_t :5; /*!< bit: 3.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} DMAC_CHINTFLAG_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_CHINTFLAG_OFFSET 0x4E /**< \brief (DMAC_CHINTFLAG offset) Channel Interrupt Flag Status and Clear */
-#define DMAC_CHINTFLAG_RESETVALUE 0x00ul /**< \brief (DMAC_CHINTFLAG reset_value) Channel Interrupt Flag Status and Clear */
-
-#define DMAC_CHINTFLAG_TERR_Pos 0 /**< \brief (DMAC_CHINTFLAG) Transfer Error */
-#define DMAC_CHINTFLAG_TERR (0x1ul << DMAC_CHINTFLAG_TERR_Pos)
-#define DMAC_CHINTFLAG_TCMPL_Pos 1 /**< \brief (DMAC_CHINTFLAG) Transfer Complete */
-#define DMAC_CHINTFLAG_TCMPL (0x1ul << DMAC_CHINTFLAG_TCMPL_Pos)
-#define DMAC_CHINTFLAG_SUSP_Pos 2 /**< \brief (DMAC_CHINTFLAG) Channel Suspend */
-#define DMAC_CHINTFLAG_SUSP (0x1ul << DMAC_CHINTFLAG_SUSP_Pos)
-#define DMAC_CHINTFLAG_MASK 0x07ul /**< \brief (DMAC_CHINTFLAG) MASK Register */
-
-/* -------- DMAC_CHSTATUS : (DMAC Offset: 0x4F) (R/ 8) Channel Status -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint8_t PEND:1; /*!< bit: 0 Channel Pending */
- uint8_t BUSY:1; /*!< bit: 1 Channel Busy */
- uint8_t FERR:1; /*!< bit: 2 Fetch Error */
- uint8_t :5; /*!< bit: 3.. 7 Reserved */
- } bit; /*!< Structure used for bit access */
- uint8_t reg; /*!< Type used for register access */
-} DMAC_CHSTATUS_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_CHSTATUS_OFFSET 0x4F /**< \brief (DMAC_CHSTATUS offset) Channel Status */
-#define DMAC_CHSTATUS_RESETVALUE 0x00ul /**< \brief (DMAC_CHSTATUS reset_value) Channel Status */
-
-#define DMAC_CHSTATUS_PEND_Pos 0 /**< \brief (DMAC_CHSTATUS) Channel Pending */
-#define DMAC_CHSTATUS_PEND (0x1ul << DMAC_CHSTATUS_PEND_Pos)
-#define DMAC_CHSTATUS_BUSY_Pos 1 /**< \brief (DMAC_CHSTATUS) Channel Busy */
-#define DMAC_CHSTATUS_BUSY (0x1ul << DMAC_CHSTATUS_BUSY_Pos)
-#define DMAC_CHSTATUS_FERR_Pos 2 /**< \brief (DMAC_CHSTATUS) Fetch Error */
-#define DMAC_CHSTATUS_FERR (0x1ul << DMAC_CHSTATUS_FERR_Pos)
-#define DMAC_CHSTATUS_MASK 0x07ul /**< \brief (DMAC_CHSTATUS) MASK Register */
-
-/* -------- DMAC_BTCTRL : (DMAC Offset: 0x00) (R/W 16) Block Transfer Control -------- */
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-typedef union {
- struct {
- uint16_t VALID:1; /*!< bit: 0 Descriptor Valid */
- uint16_t EVOSEL:2; /*!< bit: 1.. 2 Event Output Selection */
- uint16_t BLOCKACT:2; /*!< bit: 3.. 4 Block Action */
- uint16_t :3; /*!< bit: 5.. 7 Reserved */
- uint16_t BEATSIZE:2; /*!< bit: 8.. 9 Beat Size */
- uint16_t SRCINC:1; /*!< bit: 10 Source Address Increment Enable */
- uint16_t DSTINC:1; /*!< bit: 11 Destination Address Increment Enable */
- uint16_t STEPSEL:1; /*!< bit: 12 Step Selection */
- uint16_t STEPSIZE:3; /*!< bit: 13..15 Address Increment Step Size */
- } bit; /*!< Structure used for bit access */
- uint16_t reg; /*!< Type used for register access */
-} DMAC_BTCTRL_Type;
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-
-#define DMAC_BTCTRL_OFFSET 0x00 /**< \brief (DMAC_BTCTRL offset) Block Transfer Control */
-#define DMAC_BTCTRL_RESETVALUE 0x0000ul /**< \brief (DMAC_BTCTRL reset_value) Block Transfer Control */
-
-#define DMAC_BTCTRL_VALID_Pos 0 /**< \brief (DMAC_BTCTRL) Descriptor Valid */
-#define DMAC_BTCTRL_VALID (0x1ul << DMAC_BTCTRL_VALID_Pos)
-#define DMAC_BTCTRL_EVOSEL_Pos 1 /**< \brief (DMAC_BTCTRL) Event Output Selection */
-#define DMAC_BTCTRL_EVOSEL_Msk (0x3ul << DMAC_BTCTRL_EVOSEL_Pos)
-#define DMAC_BTCTRL_EVOSEL(value) (DMAC_BTCTRL_EVOSEL_Msk & ((value) << DMAC_BTCTRL_EVOSEL_Pos))
-#define DMAC_BTCTRL_EVOSEL_DISABLE_Val 0x0ul /**< \brief (DMAC_BTCTRL) Event generation disabled */
-#define DMAC_BTCTRL_EVOSEL_BLOCK_Val 0x1ul /**< \brief (DMAC_BTCTRL) Event strobe when block transfer complete */
-#define DMAC_BTCTRL_EVOSEL_BEAT_Val 0x3ul /**< \brief (DMAC_BTCTRL) Event strobe when beat transfer complete */
-#define DMAC_BTCTRL_EVOSEL_DISABLE (DMAC_BTCTRL_EVOSEL_DISABLE_Val << DMAC_BTCTRL_EVOSEL_Pos)
-#define DMAC_BTCTRL_EVOSEL_BLOCK (DMAC_BTCTRL_EVOSEL_BLOCK_Val << DMAC_BTCTRL_EVOSEL_Pos)
-#define DMAC_BTCTRL_EVOSEL_BEAT (DMAC_BTCTRL_EVOSEL_BEAT_Val << DMAC_BTCTRL_EVOSEL_Pos)
-#define DMAC_BTCTRL_BLOCKACT_Pos 3 /**< \brief (DMAC_BTCTRL) Block Action */
-#define DMAC_BTCTRL_BLOCKACT_Msk (0x3ul << DMAC_BTCTRL_BLOCKACT_Pos)
-#define DMAC_BTCTRL_BLOCKACT(value) (DMAC_BTCTRL_BLOCKACT_Msk & ((value) << DMAC_BTCTRL_BLOCKACT_Pos))
-#define DMAC_BTCTRL_BLOCKACT_NOACT_Val 0x0ul /**< \brief (DMAC_BTCTRL) No action */
-#define DMAC_BTCTRL_BLOCKACT_INT_Val 0x1ul /**< \brief (DMAC_BTCTRL) Channel in normal operation and block interrupt */
-#define DMAC_BTCTRL_BLOCKACT_SUSPEND_Val 0x2ul /**< \brief (DMAC_BTCTRL) Channel suspend operation is completed */
-#define DMAC_BTCTRL_BLOCKACT_BOTH_Val 0x3ul /**< \brief (DMAC_BTCTRL) Both channel suspend operation and block interrupt */
-#define DMAC_BTCTRL_BLOCKACT_NOACT (DMAC_BTCTRL_BLOCKACT_NOACT_Val << DMAC_BTCTRL_BLOCKACT_Pos)
-#define DMAC_BTCTRL_BLOCKACT_INT (DMAC_BTCTRL_BLOCKACT_INT_Val << DMAC_BTCTRL_BLOCKACT_Pos)
-#define DMAC_BTCTRL_BLOCKACT_SUSPEND (DMAC_BTCTRL_BLOCKACT_SUSPEND_Val << DMAC_BTCTRL_BLOCKACT_Pos)
-#define DMAC_BTCTRL_BLOCKACT_BOTH (DMAC_BTCTRL_BLOCKACT_BOTH_Val << DMAC_BTCTRL_BLOCKACT_Pos)
-#define DMAC_BTCTRL_BEATSIZE_Pos 8 /**< \brief (DMAC_BTCTRL) Beat Size */
-#define DMAC_BTCTRL_BEATSIZE_Msk (0x3ul << DMAC_BTCTRL_BEATSIZE_Pos)
-#define DMAC_BTCTRL_BEATSIZE(value) (DMAC_BTCTRL_BEATSIZE_Msk & ((value) << DMAC_BTCTRL_BEATSIZE_Pos))
-#define DMAC_BTCTRL_BEATSIZE_BYTE_Val 0x0ul /**< \brief (DMAC_BTCTRL) 8-bit access */
-#define DMAC_BTCTRL_BEATSIZE_HWORD_Val 0x1ul /**< \brief (DMAC_BTCTRL) 16-bit access */
-#define DMAC_BTCTRL_BEATSIZE_WORD_Val 0x2ul /**< \brief (DMAC_BTCTRL) 32-bit access */
-#define DMAC_BTCTRL_BEATSIZE_BYTE (DMAC_BTCTRL_BEATSIZE_BYTE_Val << DMAC_BTCTRL_BEATSIZE_Pos)
-#define DMAC_BTCTRL_BEATSIZE_HWORD (DMAC_BTCTRL_BEATSIZE_HWORD_Val << DMAC_BTCTRL_BEATSIZE_Pos)
-#define DMAC_BTCTRL_BEATSIZE_WORD (DMAC_BTCTRL_BEATSIZE_WORD_Val << DMAC_BTCTRL_BEATSIZE_Pos)
-#define DMAC_BTCTRL_SRCINC_Pos 10 /**< \brief (DMAC_BTCTRL) Source Address Increment Enable */
-#define DMAC_BTCTRL_SRCINC (0x1ul << DMAC_BTCTRL_SRCINC_Pos)
-#define DMAC_BTCTRL_DSTINC_Pos 11 /**< \brief (DMAC_BTCTRL) Destination Address Increment Enable */
-#define DMAC_BTCTRL_DSTINC (0x1ul << DMAC_BTCTRL_DSTINC_Pos)
-#define DMAC_BTCTRL_STEPSEL_Pos 12 /**< \brief (DMAC_BTCTRL) Step Selection */
-#define DMAC_BTCTRL_STEPSEL (0x1ul << DMAC_BTCTRL_STEPSEL_Pos)
-#define DMAC_BTCTRL_STEPSEL_DST_Val 0x0ul /**< \brief (DMAC_BTCTRL) Step size settings apply to the destination address */
-#define DMAC_BTCTRL_STEPSEL_SRC_Val 0x1ul /**< \brief (DMAC_BTCTRL) Step size settings apply to the source address */
-#define DMAC_BTCTRL_STEPSEL_DST (DMAC_BTCTRL_STEPSEL_DST_Val << DMAC_BTCTRL_STEPSEL_Pos)
-#define DMAC_BTCTRL_STEPSEL_SRC (DMAC_BTCTRL_STEPSEL_SRC_Val << DMAC_BTCTRL_STEPSEL_Pos)
-#define DMAC_BTCTRL_STEPSIZE_Pos 13 /**< \brief (DMAC_BTCTRL) Address Increment Step Size */
-#define DMAC_BTCTRL_STEPSIZE_Msk (0x7ul << DMAC_BTCTRL_STEPSIZE_Pos)
-#define DMAC_BTCTRL_STEPSIZE(value) (DMAC_BTCTRL_STEPSIZE_Msk & ((value) << DMAC_BTCTRL_STEPSIZE_Pos))
-#define DMAC_BTCTRL_STEPSIZE_X1_Val 0x0ul /**< \brief (DMAC_BTCTRL) Next ADDR <- ADDR + (1<Microchip Support
- */
-
-#ifndef _SAMD21E15A_PIO_
-#define _SAMD21E15A_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-
-#endif /* _SAMD21E15A_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e15b.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e15b.h
deleted file mode 100644
index 3fdf86c..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e15b.h
+++ /dev/null
@@ -1,631 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21E15B
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21E15B_PIO_
-#define _SAMD21E15B_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-
-#endif /* _SAMD21E15B_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e15bu.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e15bu.h
deleted file mode 100644
index 3097e76..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e15bu.h
+++ /dev/null
@@ -1,631 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21E15BU
- *
- * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21E15BU_PIO_
-#define _SAMD21E15BU_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-
-#endif /* _SAMD21E15BU_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e15l.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e15l.h
deleted file mode 100644
index 4754473..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e15l.h
+++ /dev/null
@@ -1,610 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21E15L
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21E15L_PIO_
-#define _SAMD21E15L_PIO_
-
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB04 36 /**< \brief Pin Number for PB04 */
-#define PORT_PB04 (1ul << 4) /**< \brief PORT Mask for PB04 */
-#define PIN_PB05 37 /**< \brief Pin Number for PB05 */
-#define PORT_PB05 (1ul << 5) /**< \brief PORT Mask for PB05 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PB04A_EIC_EXTINT4 36L /**< \brief EIC signal: EXTINT4 on PB04 mux A */
-#define MUX_PB04A_EIC_EXTINT4 0L
-#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4)
-#define PORT_PB04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PB05A_EIC_EXTINT5 37L /**< \brief EIC signal: EXTINT5 on PB05 mux A */
-#define MUX_PB05A_EIC_EXTINT5 0L
-#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5)
-#define PORT_PB05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PB04B_ADC_AIN12 36L /**< \brief ADC signal: AIN12 on PB04 mux B */
-#define MUX_PB04B_ADC_AIN12 1L
-#define PINMUX_PB04B_ADC_AIN12 ((PIN_PB04B_ADC_AIN12 << 16) | MUX_PB04B_ADC_AIN12)
-#define PORT_PB04B_ADC_AIN12 (1ul << 4)
-#define PIN_PB05B_ADC_AIN13 37L /**< \brief ADC signal: AIN13 on PB05 mux B */
-#define MUX_PB05B_ADC_AIN13 1L
-#define PINMUX_PB05B_ADC_AIN13 ((PIN_PB05B_ADC_AIN13 << 16) | MUX_PB05B_ADC_AIN13)
-#define PORT_PB05B_ADC_AIN13 (1ul << 5)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for AC1 peripheral ========== */
-#define PIN_PB04B_AC1_AIN0 36L /**< \brief AC1 signal: AIN0 on PB04 mux B */
-#define MUX_PB04B_AC1_AIN0 1L
-#define PINMUX_PB04B_AC1_AIN0 ((PIN_PB04B_AC1_AIN0 << 16) | MUX_PB04B_AC1_AIN0)
-#define PORT_PB04B_AC1_AIN0 (1ul << 4)
-#define PIN_PB05B_AC1_AIN1 37L /**< \brief AC1 signal: AIN1 on PB05 mux B */
-#define MUX_PB05B_AC1_AIN1 1L
-#define PINMUX_PB05B_AC1_AIN1 ((PIN_PB05B_AC1_AIN1 << 16) | MUX_PB05B_AC1_AIN1)
-#define PORT_PB05B_AC1_AIN1 (1ul << 5)
-#define PIN_PB02B_AC1_AIN2 34L /**< \brief AC1 signal: AIN2 on PB02 mux B */
-#define MUX_PB02B_AC1_AIN2 1L
-#define PINMUX_PB02B_AC1_AIN2 ((PIN_PB02B_AC1_AIN2 << 16) | MUX_PB02B_AC1_AIN2)
-#define PORT_PB02B_AC1_AIN2 (1ul << 2)
-#define PIN_PB03B_AC1_AIN3 35L /**< \brief AC1 signal: AIN3 on PB03 mux B */
-#define MUX_PB03B_AC1_AIN3 1L
-#define PINMUX_PB03B_AC1_AIN3 ((PIN_PB03B_AC1_AIN3 << 16) | MUX_PB03B_AC1_AIN3)
-#define PORT_PB03B_AC1_AIN3 (1ul << 3)
-#define PIN_PA24H_AC1_CMP0 24L /**< \brief AC1 signal: CMP0 on PA24 mux H */
-#define MUX_PA24H_AC1_CMP0 7L
-#define PINMUX_PA24H_AC1_CMP0 ((PIN_PA24H_AC1_CMP0 << 16) | MUX_PA24H_AC1_CMP0)
-#define PORT_PA24H_AC1_CMP0 (1ul << 24)
-#define PIN_PA25H_AC1_CMP1 25L /**< \brief AC1 signal: CMP1 on PA25 mux H */
-#define MUX_PA25H_AC1_CMP1 7L
-#define PINMUX_PA25H_AC1_CMP1 ((PIN_PA25H_AC1_CMP1 << 16) | MUX_PA25H_AC1_CMP1)
-#define PORT_PA25H_AC1_CMP1 (1ul << 25)
-
-#endif /* _SAMD21E15L_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e16a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e16a.h
deleted file mode 100644
index 6798cf3..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e16a.h
+++ /dev/null
@@ -1,634 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21E16A
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _SAMD21E16A_PIO_
-#define _SAMD21E16A_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-
-#endif /* _SAMD21E16A_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e16b.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e16b.h
deleted file mode 100644
index a892941..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e16b.h
+++ /dev/null
@@ -1,631 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21E16B
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21E16B_PIO_
-#define _SAMD21E16B_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-
-#endif /* _SAMD21E16B_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e16bu.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e16bu.h
deleted file mode 100644
index a85c292..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e16bu.h
+++ /dev/null
@@ -1,631 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21E16BU
- *
- * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21E16BU_PIO_
-#define _SAMD21E16BU_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-
-#endif /* _SAMD21E16BU_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e16l.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e16l.h
deleted file mode 100644
index c766825..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e16l.h
+++ /dev/null
@@ -1,610 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21E16L
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21E16L_PIO_
-#define _SAMD21E16L_PIO_
-
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB04 36 /**< \brief Pin Number for PB04 */
-#define PORT_PB04 (1ul << 4) /**< \brief PORT Mask for PB04 */
-#define PIN_PB05 37 /**< \brief Pin Number for PB05 */
-#define PORT_PB05 (1ul << 5) /**< \brief PORT Mask for PB05 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PB04A_EIC_EXTINT4 36L /**< \brief EIC signal: EXTINT4 on PB04 mux A */
-#define MUX_PB04A_EIC_EXTINT4 0L
-#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4)
-#define PORT_PB04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PB05A_EIC_EXTINT5 37L /**< \brief EIC signal: EXTINT5 on PB05 mux A */
-#define MUX_PB05A_EIC_EXTINT5 0L
-#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5)
-#define PORT_PB05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PB04B_ADC_AIN12 36L /**< \brief ADC signal: AIN12 on PB04 mux B */
-#define MUX_PB04B_ADC_AIN12 1L
-#define PINMUX_PB04B_ADC_AIN12 ((PIN_PB04B_ADC_AIN12 << 16) | MUX_PB04B_ADC_AIN12)
-#define PORT_PB04B_ADC_AIN12 (1ul << 4)
-#define PIN_PB05B_ADC_AIN13 37L /**< \brief ADC signal: AIN13 on PB05 mux B */
-#define MUX_PB05B_ADC_AIN13 1L
-#define PINMUX_PB05B_ADC_AIN13 ((PIN_PB05B_ADC_AIN13 << 16) | MUX_PB05B_ADC_AIN13)
-#define PORT_PB05B_ADC_AIN13 (1ul << 5)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for AC1 peripheral ========== */
-#define PIN_PB04B_AC1_AIN0 36L /**< \brief AC1 signal: AIN0 on PB04 mux B */
-#define MUX_PB04B_AC1_AIN0 1L
-#define PINMUX_PB04B_AC1_AIN0 ((PIN_PB04B_AC1_AIN0 << 16) | MUX_PB04B_AC1_AIN0)
-#define PORT_PB04B_AC1_AIN0 (1ul << 4)
-#define PIN_PB05B_AC1_AIN1 37L /**< \brief AC1 signal: AIN1 on PB05 mux B */
-#define MUX_PB05B_AC1_AIN1 1L
-#define PINMUX_PB05B_AC1_AIN1 ((PIN_PB05B_AC1_AIN1 << 16) | MUX_PB05B_AC1_AIN1)
-#define PORT_PB05B_AC1_AIN1 (1ul << 5)
-#define PIN_PB02B_AC1_AIN2 34L /**< \brief AC1 signal: AIN2 on PB02 mux B */
-#define MUX_PB02B_AC1_AIN2 1L
-#define PINMUX_PB02B_AC1_AIN2 ((PIN_PB02B_AC1_AIN2 << 16) | MUX_PB02B_AC1_AIN2)
-#define PORT_PB02B_AC1_AIN2 (1ul << 2)
-#define PIN_PB03B_AC1_AIN3 35L /**< \brief AC1 signal: AIN3 on PB03 mux B */
-#define MUX_PB03B_AC1_AIN3 1L
-#define PINMUX_PB03B_AC1_AIN3 ((PIN_PB03B_AC1_AIN3 << 16) | MUX_PB03B_AC1_AIN3)
-#define PORT_PB03B_AC1_AIN3 (1ul << 3)
-#define PIN_PA24H_AC1_CMP0 24L /**< \brief AC1 signal: CMP0 on PA24 mux H */
-#define MUX_PA24H_AC1_CMP0 7L
-#define PINMUX_PA24H_AC1_CMP0 ((PIN_PA24H_AC1_CMP0 << 16) | MUX_PA24H_AC1_CMP0)
-#define PORT_PA24H_AC1_CMP0 (1ul << 24)
-#define PIN_PA25H_AC1_CMP1 25L /**< \brief AC1 signal: CMP1 on PA25 mux H */
-#define MUX_PA25H_AC1_CMP1 7L
-#define PINMUX_PA25H_AC1_CMP1 ((PIN_PA25H_AC1_CMP1 << 16) | MUX_PA25H_AC1_CMP1)
-#define PORT_PA25H_AC1_CMP1 (1ul << 25)
-
-#endif /* _SAMD21E16L_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e17a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e17a.h
deleted file mode 100644
index f84b2f2..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e17a.h
+++ /dev/null
@@ -1,634 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21E17A
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _SAMD21E17A_PIO_
-#define _SAMD21E17A_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-
-#endif /* _SAMD21E17A_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e17d.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e17d.h
deleted file mode 100644
index e0c91a8..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e17d.h
+++ /dev/null
@@ -1,700 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21E17D
- *
- * Copyright (c) 2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _SAMD21E17D_PIO_
-#define _SAMD21E17D_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA16A_EIC_EXTINT_NUM 0L /**< \brief EIC signal: PIN_PA16 External Interrupt Line */
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA00A_EIC_EXTINT_NUM 0L /**< \brief EIC signal: PIN_PA00 External Interrupt Line */
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA17A_EIC_EXTINT_NUM 1L /**< \brief EIC signal: PIN_PA17 External Interrupt Line */
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA01A_EIC_EXTINT_NUM 1L /**< \brief EIC signal: PIN_PA01 External Interrupt Line */
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA18A_EIC_EXTINT_NUM 2L /**< \brief EIC signal: PIN_PA18 External Interrupt Line */
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA02A_EIC_EXTINT_NUM 2L /**< \brief EIC signal: PIN_PA02 External Interrupt Line */
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA03A_EIC_EXTINT_NUM 3L /**< \brief EIC signal: PIN_PA03 External Interrupt Line */
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PA19A_EIC_EXTINT_NUM 3L /**< \brief EIC signal: PIN_PA19 External Interrupt Line */
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA04A_EIC_EXTINT_NUM 4L /**< \brief EIC signal: PIN_PA04 External Interrupt Line */
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA05A_EIC_EXTINT_NUM 5L /**< \brief EIC signal: PIN_PA05 External Interrupt Line */
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA06A_EIC_EXTINT_NUM 6L /**< \brief EIC signal: PIN_PA06 External Interrupt Line */
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA22A_EIC_EXTINT_NUM 6L /**< \brief EIC signal: PIN_PA22 External Interrupt Line */
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA07A_EIC_EXTINT_NUM 7L /**< \brief EIC signal: PIN_PA07 External Interrupt Line */
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA23A_EIC_EXTINT_NUM 7L /**< \brief EIC signal: PIN_PA23 External Interrupt Line */
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PA28A_EIC_EXTINT_NUM 8L /**< \brief EIC signal: PIN_PA28 External Interrupt Line */
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA09A_EIC_EXTINT_NUM 9L /**< \brief EIC signal: PIN_PA09 External Interrupt Line */
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA10A_EIC_EXTINT_NUM 10L /**< \brief EIC signal: PIN_PA10 External Interrupt Line */
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PA30A_EIC_EXTINT_NUM 10L /**< \brief EIC signal: PIN_PA30 External Interrupt Line */
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA11A_EIC_EXTINT_NUM 11L /**< \brief EIC signal: PIN_PA11 External Interrupt Line */
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PA31A_EIC_EXTINT_NUM 11L /**< \brief EIC signal: PIN_PA31 External Interrupt Line */
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA24A_EIC_EXTINT_NUM 12L /**< \brief EIC signal: PIN_PA24 External Interrupt Line */
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA25A_EIC_EXTINT_NUM 13L /**< \brief EIC signal: PIN_PA25 External Interrupt Line */
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA14A_EIC_EXTINT_NUM 14L /**< \brief EIC signal: PIN_PA14 External Interrupt Line */
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA15A_EIC_EXTINT_NUM 15L /**< \brief EIC signal: PIN_PA15 External Interrupt Line */
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA27A_EIC_EXTINT_NUM 15L /**< \brief EIC signal: PIN_PA27 External Interrupt Line */
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-/* ========== PORT definition for TCC3 peripheral ========== */
-#define PIN_PA02F_TCC3_WO0 2L /**< \brief TCC3 signal: WO0 on PA02 mux F */
-#define MUX_PA02F_TCC3_WO0 5L
-#define PINMUX_PA02F_TCC3_WO0 ((PIN_PA02F_TCC3_WO0 << 16) | MUX_PA02F_TCC3_WO0)
-#define PORT_PA02F_TCC3_WO0 (1ul << 2)
-#define PIN_PA03F_TCC3_WO1 3L /**< \brief TCC3 signal: WO1 on PA03 mux F */
-#define MUX_PA03F_TCC3_WO1 5L
-#define PINMUX_PA03F_TCC3_WO1 ((PIN_PA03F_TCC3_WO1 << 16) | MUX_PA03F_TCC3_WO1)
-#define PORT_PA03F_TCC3_WO1 (1ul<< 3)
-#define PIN_PA04F_TCC3_WO2 4L /**< \brief TCC3 signal: WO2 on PA04 mux F */
-#define MUX_PA04F_TCC3_WO2 5L
-#define PINMUX_PA04F_TCC3_WO2 ((PIN_PA04F_TCC3_WO2 << 16) | MUX_PA04F_TCC3_WO2)
-#define PORT_PA04F_TCC3_WO2 (1ul<< 4)
-#define PIN_PA05F_TCC3_WO3 5L /**< \brief TCC3 signal: WO3 on PA05 mux F */
-#define MUX_PA05F_TCC3_WO3 5L
-#define PINMUX_PA05F_TCC3_WO3 ((PIN_PA05F_TCC3_WO3 << 16) | MUX_PA05F_TCC3_WO3)
-#define PORT_PA05F_TCC3_WO3 (1ul << 5)
-#define PIN_PA06F_TCC3_WO4 6L /**< \brief TCC3 signal: WO4 on PA06 mux F */
-#define MUX_PA06F_TCC3_WO4 5L
-#define PINMUX_PA06F_TCC3_WO4 ((PIN_PA06F_TCC3_WO4 << 16) | MUX_PA06F_TCC3_WO4)
-#define PORT_PA06F_TCC3_WO4 (1ul << 6)
-#define PIN_PA30F_TCC3_WO4 30L /**< \brief TCC3 signal: WO4 on PA30 mux F */
-#define MUX_PA30F_TCC3_WO4 5L
-#define PINMUX_PA30F_TCC3_WO4 ((PIN_PA30F_TCC3_WO4 << 16) | MUX_PA30F_TCC3_WO4)
-#define PORT_PA30F_TCC3_WO4 (1ul << 30)
-#define PIN_PA07F_TCC3_WO5 7L /**< \brief TCC3 signal: WO5 on PA07 mux F */
-#define MUX_PA07F_TCC3_WO5 5L
-#define PINMUX_PA07F_TCC3_WO5 ((PIN_PA07F_TCC3_WO5 << 16) | MUX_PA07F_TCC3_WO5)
-#define PORT_PA07F_TCC3_WO5 (1ul << 7)
-#define PIN_PA31F_TCC3_WO5 31L /**< \brief TCC3 signal: WO5 on PA31 mux F */
-#define MUX_PA31F_TCC3_WO5 5L
-#define PINMUX_PA31F_TCC3_WO5 ((PIN_PA31F_TCC3_WO5 << 16) | MUX_PA31F_TCC3_WO5)
-#define PORT_PA31F_TCC3_WO5 (1ul << 31)
-#define PIN_PA27F_TCC3_WO6 27L /**< \brief TCC3 signal: WO6 on PA27 mux F */
-#define MUX_PA27F_TCC3_WO6 5L
-#define PINMUX_PA27F_TCC3_WO6 ((PIN_PA27F_TCC3_WO6 << 16) | MUX_PA27F_TCC3_WO6)
-#define PORT_PA27F_TCC3_WO6 (1ul << 27)
-#define PIN_PA28F_TCC3_WO7 28L /**< \brief TCC3 signal: WO7 on PA28 mux F */
-#define MUX_PA28F_TCC3_WO7 5L
-#define PINMUX_PA28F_TCC3_WO7 ((PIN_PA28F_TCC3_WO7 << 16) | MUX_PA28F_TCC3_WO7)
-#define PORT_PA28F_TCC3_WO7 (1ul << 28)
-
-#endif /* _SAMD21E17D_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e17du.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e17du.h
deleted file mode 100644
index 9de0bc7..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e17du.h
+++ /dev/null
@@ -1,700 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21E17DU
- *
- * Copyright (c) 2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _SAMD21E17DU_PIO_
-#define _SAMD21E17DU_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA16A_EIC_EXTINT_NUM 0L /**< \brief EIC signal: PIN_PA16 External Interrupt Line */
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA00A_EIC_EXTINT_NUM 0L /**< \brief EIC signal: PIN_PA00 External Interrupt Line */
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA17A_EIC_EXTINT_NUM 1L /**< \brief EIC signal: PIN_PA17 External Interrupt Line */
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA01A_EIC_EXTINT_NUM 1L /**< \brief EIC signal: PIN_PA01 External Interrupt Line */
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA18A_EIC_EXTINT_NUM 2L /**< \brief EIC signal: PIN_PA18 External Interrupt Line */
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA02A_EIC_EXTINT_NUM 2L /**< \brief EIC signal: PIN_PA02 External Interrupt Line */
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA03A_EIC_EXTINT_NUM 3L /**< \brief EIC signal: PIN_PA03 External Interrupt Line */
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PA19A_EIC_EXTINT_NUM 3L /**< \brief EIC signal: PIN_PA19 External Interrupt Line */
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA04A_EIC_EXTINT_NUM 4L /**< \brief EIC signal: PIN_PA04 External Interrupt Line */
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA05A_EIC_EXTINT_NUM 5L /**< \brief EIC signal: PIN_PA05 External Interrupt Line */
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA06A_EIC_EXTINT_NUM 6L /**< \brief EIC signal: PIN_PA06 External Interrupt Line */
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA22A_EIC_EXTINT_NUM 6L /**< \brief EIC signal: PIN_PA22 External Interrupt Line */
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA07A_EIC_EXTINT_NUM 7L /**< \brief EIC signal: PIN_PA07 External Interrupt Line */
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA23A_EIC_EXTINT_NUM 7L /**< \brief EIC signal: PIN_PA23 External Interrupt Line */
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PA28A_EIC_EXTINT_NUM 8L /**< \brief EIC signal: PIN_PA28 External Interrupt Line */
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA09A_EIC_EXTINT_NUM 9L /**< \brief EIC signal: PIN_PA09 External Interrupt Line */
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA10A_EIC_EXTINT_NUM 10L /**< \brief EIC signal: PIN_PA10 External Interrupt Line */
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PA30A_EIC_EXTINT_NUM 10L /**< \brief EIC signal: PIN_PA30 External Interrupt Line */
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA11A_EIC_EXTINT_NUM 11L /**< \brief EIC signal: PIN_PA11 External Interrupt Line */
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PA31A_EIC_EXTINT_NUM 11L /**< \brief EIC signal: PIN_PA31 External Interrupt Line */
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA24A_EIC_EXTINT_NUM 12L /**< \brief EIC signal: PIN_PA24 External Interrupt Line */
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA25A_EIC_EXTINT_NUM 13L /**< \brief EIC signal: PIN_PA25 External Interrupt Line */
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA14A_EIC_EXTINT_NUM 14L /**< \brief EIC signal: PIN_PA14 External Interrupt Line */
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA15A_EIC_EXTINT_NUM 15L /**< \brief EIC signal: PIN_PA15 External Interrupt Line */
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA27A_EIC_EXTINT_NUM 15L /**< \brief EIC signal: PIN_PA27 External Interrupt Line */
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-/* ========== PORT definition for TCC3 peripheral ========== */
-#define PIN_PA02F_TCC3_WO0 2L /**< \brief TCC3 signal: WO0 on PA02 mux F */
-#define MUX_PA02F_TCC3_WO0 5L
-#define PINMUX_PA02F_TCC3_WO0 ((PIN_PA02F_TCC3_WO0 << 16) | MUX_PA02F_TCC3_WO0)
-#define PORT_PA02F_TCC3_WO0 (1ul << 2)
-#define PIN_PA03F_TCC3_WO1 3L /**< \brief TCC3 signal: WO1 on PA03 mux F */
-#define MUX_PA03F_TCC3_WO1 5L
-#define PINMUX_PA03F_TCC3_WO1 ((PIN_PA03F_TCC3_WO1 << 16) | MUX_PA03F_TCC3_WO1)
-#define PORT_PA03F_TCC3_WO1 (1ul<< 3)
-#define PIN_PA04F_TCC3_WO2 4L /**< \brief TCC3 signal: WO2 on PA04 mux F */
-#define MUX_PA04F_TCC3_WO2 5L
-#define PINMUX_PA04F_TCC3_WO2 ((PIN_PA04F_TCC3_WO2 << 16) | MUX_PA04F_TCC3_WO2)
-#define PORT_PA04F_TCC3_WO2 (1ul<< 4)
-#define PIN_PA05F_TCC3_WO3 5L /**< \brief TCC3 signal: WO3 on PA05 mux F */
-#define MUX_PA05F_TCC3_WO3 5L
-#define PINMUX_PA05F_TCC3_WO3 ((PIN_PA05F_TCC3_WO3 << 16) | MUX_PA05F_TCC3_WO3)
-#define PORT_PA05F_TCC3_WO3 (1ul << 5)
-#define PIN_PA06F_TCC3_WO4 6L /**< \brief TCC3 signal: WO4 on PA06 mux F */
-#define MUX_PA06F_TCC3_WO4 5L
-#define PINMUX_PA06F_TCC3_WO4 ((PIN_PA06F_TCC3_WO4 << 16) | MUX_PA06F_TCC3_WO4)
-#define PORT_PA06F_TCC3_WO4 (1ul << 6)
-#define PIN_PA30F_TCC3_WO4 30L /**< \brief TCC3 signal: WO4 on PA30 mux F */
-#define MUX_PA30F_TCC3_WO4 5L
-#define PINMUX_PA30F_TCC3_WO4 ((PIN_PA30F_TCC3_WO4 << 16) | MUX_PA30F_TCC3_WO4)
-#define PORT_PA30F_TCC3_WO4 (1ul << 30)
-#define PIN_PA07F_TCC3_WO5 7L /**< \brief TCC3 signal: WO5 on PA07 mux F */
-#define MUX_PA07F_TCC3_WO5 5L
-#define PINMUX_PA07F_TCC3_WO5 ((PIN_PA07F_TCC3_WO5 << 16) | MUX_PA07F_TCC3_WO5)
-#define PORT_PA07F_TCC3_WO5 (1ul << 7)
-#define PIN_PA31F_TCC3_WO5 31L /**< \brief TCC3 signal: WO5 on PA31 mux F */
-#define MUX_PA31F_TCC3_WO5 5L
-#define PINMUX_PA31F_TCC3_WO5 ((PIN_PA31F_TCC3_WO5 << 16) | MUX_PA31F_TCC3_WO5)
-#define PORT_PA31F_TCC3_WO5 (1ul << 31)
-#define PIN_PA27F_TCC3_WO6 27L /**< \brief TCC3 signal: WO6 on PA27 mux F */
-#define MUX_PA27F_TCC3_WO6 5L
-#define PINMUX_PA27F_TCC3_WO6 ((PIN_PA27F_TCC3_WO6 << 16) | MUX_PA27F_TCC3_WO6)
-#define PORT_PA27F_TCC3_WO6 (1ul << 27)
-#define PIN_PA28F_TCC3_WO7 28L /**< \brief TCC3 signal: WO7 on PA28 mux F */
-#define MUX_PA28F_TCC3_WO7 5L
-#define PINMUX_PA28F_TCC3_WO7 ((PIN_PA28F_TCC3_WO7 << 16) | MUX_PA28F_TCC3_WO7)
-#define PORT_PA28F_TCC3_WO7 (1ul << 28)
-
-#endif /* _SAMD21E17DU_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e17l.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e17l.h
deleted file mode 100644
index c8185d9..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e17l.h
+++ /dev/null
@@ -1,676 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21E17L
- *
- * Copyright (c) 2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21E17L_PIO_
-#define _SAMD21E17L_PIO_
-
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB04 36 /**< \brief Pin Number for PB04 */
-#define PORT_PB04 (1ul << 4) /**< \brief PORT Mask for PB04 */
-#define PIN_PB05 37 /**< \brief Pin Number for PB05 */
-#define PORT_PB05 (1ul << 5) /**< \brief PORT Mask for PB05 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA16A_EIC_EXTINT_NUM 0L /**< \brief EIC signal: PIN_PA16 External Interrupt Line */
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA17A_EIC_EXTINT_NUM 1L /**< \brief EIC signal: PIN_PA17 External Interrupt Line */
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA02A_EIC_EXTINT_NUM 2L /**< \brief EIC signal: PIN_PA02 External Interrupt Line */
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA18A_EIC_EXTINT_NUM 2L /**< \brief EIC signal: PIN_PA18 External Interrupt Line */
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PB02A_EIC_EXTINT_NUM 2L /**< \brief EIC signal: PIN_PB02 External Interrupt Line */
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA03A_EIC_EXTINT_NUM 3L /**< \brief EIC signal: PIN_PA03 External Interrupt Line */
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PA19A_EIC_EXTINT_NUM 3L /**< \brief EIC signal: PIN_PA19 External Interrupt Line */
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PB03A_EIC_EXTINT_NUM 3L /**< \brief EIC signal: PIN_PB03 External Interrupt Line */
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA04A_EIC_EXTINT_NUM 4L /**< \brief EIC signal: PIN_PA04 External Interrupt Line */
-#define PIN_PB04A_EIC_EXTINT4 36L /**< \brief EIC signal: EXTINT4 on PB04 mux A */
-#define MUX_PB04A_EIC_EXTINT4 0L
-#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4)
-#define PORT_PB04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PB04A_EIC_EXTINT_NUM 4L /**< \brief EIC signal: PIN_PB04 External Interrupt Line */
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA05A_EIC_EXTINT_NUM 5L /**< \brief EIC signal: PIN_PA05 External Interrupt Line */
-#define PIN_PB05A_EIC_EXTINT5 37L /**< \brief EIC signal: EXTINT5 on PB05 mux A */
-#define MUX_PB05A_EIC_EXTINT5 0L
-#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5)
-#define PORT_PB05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PB05A_EIC_EXTINT_NUM 5L /**< \brief EIC signal: PIN_PB05 External Interrupt Line */
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA06A_EIC_EXTINT_NUM 6L /**< \brief EIC signal: PIN_PA06 External Interrupt Line */
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA22A_EIC_EXTINT_NUM 6L /**< \brief EIC signal: PIN_PA22 External Interrupt Line */
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA07A_EIC_EXTINT_NUM 7L /**< \brief EIC signal: PIN_PA07 External Interrupt Line */
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA23A_EIC_EXTINT_NUM 7L /**< \brief EIC signal: PIN_PA23 External Interrupt Line */
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA09A_EIC_EXTINT_NUM 9L /**< \brief EIC signal: PIN_PA09 External Interrupt Line */
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA10A_EIC_EXTINT_NUM 10L /**< \brief EIC signal: PIN_PA10 External Interrupt Line */
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PA30A_EIC_EXTINT_NUM 10L /**< \brief EIC signal: PIN_PA30 External Interrupt Line */
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA11A_EIC_EXTINT_NUM 11L /**< \brief EIC signal: PIN_PA11 External Interrupt Line */
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PA31A_EIC_EXTINT_NUM 11L /**< \brief EIC signal: PIN_PA31 External Interrupt Line */
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA24A_EIC_EXTINT_NUM 12L /**< \brief EIC signal: PIN_PA24 External Interrupt Line */
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA25A_EIC_EXTINT_NUM 13L /**< \brief EIC signal: PIN_PA25 External Interrupt Line */
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA14A_EIC_EXTINT_NUM 14L /**< \brief EIC signal: PIN_PA14 External Interrupt Line */
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA15A_EIC_EXTINT_NUM 15L /**< \brief EIC signal: PIN_PA15 External Interrupt Line */
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PB04B_ADC_AIN12 36L /**< \brief ADC signal: AIN12 on PB04 mux B */
-#define MUX_PB04B_ADC_AIN12 1L
-#define PINMUX_PB04B_ADC_AIN12 ((PIN_PB04B_ADC_AIN12 << 16) | MUX_PB04B_ADC_AIN12)
-#define PORT_PB04B_ADC_AIN12 (1ul << 4)
-#define PIN_PB05B_ADC_AIN13 37L /**< \brief ADC signal: AIN13 on PB05 mux B */
-#define MUX_PB05B_ADC_AIN13 1L
-#define PINMUX_PB05B_ADC_AIN13 ((PIN_PB05B_ADC_AIN13 << 16) | MUX_PB05B_ADC_AIN13)
-#define PORT_PB05B_ADC_AIN13 (1ul << 5)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for AC1 peripheral ========== */
-#define PIN_PB04B_AC1_AIN0 36L /**< \brief AC1 signal: AIN0 on PB04 mux B */
-#define MUX_PB04B_AC1_AIN0 1L
-#define PINMUX_PB04B_AC1_AIN0 ((PIN_PB04B_AC1_AIN0 << 16) | MUX_PB04B_AC1_AIN0)
-#define PORT_PB04B_AC1_AIN0 (1ul << 4)
-#define PIN_PB05B_AC1_AIN1 37L /**< \brief AC1 signal: AIN1 on PB05 mux B */
-#define MUX_PB05B_AC1_AIN1 1L
-#define PINMUX_PB05B_AC1_AIN1 ((PIN_PB05B_AC1_AIN1 << 16) | MUX_PB05B_AC1_AIN1)
-#define PORT_PB05B_AC1_AIN1 (1ul << 5)
-#define PIN_PB02B_AC1_AIN2 34L /**< \brief AC1 signal: AIN2 on PB02 mux B */
-#define MUX_PB02B_AC1_AIN2 1L
-#define PINMUX_PB02B_AC1_AIN2 ((PIN_PB02B_AC1_AIN2 << 16) | MUX_PB02B_AC1_AIN2)
-#define PORT_PB02B_AC1_AIN2 (1ul << 2)
-#define PIN_PB03B_AC1_AIN3 35L /**< \brief AC1 signal: AIN3 on PB03 mux B */
-#define MUX_PB03B_AC1_AIN3 1L
-#define PINMUX_PB03B_AC1_AIN3 ((PIN_PB03B_AC1_AIN3 << 16) | MUX_PB03B_AC1_AIN3)
-#define PORT_PB03B_AC1_AIN3 (1ul << 3)
-#define PIN_PA24H_AC1_CMP0 24L /**< \brief AC1 signal: CMP0 on PA24 mux H */
-#define MUX_PA24H_AC1_CMP0 7L
-#define PINMUX_PA24H_AC1_CMP0 ((PIN_PA24H_AC1_CMP0 << 16) | MUX_PA24H_AC1_CMP0)
-#define PORT_PA24H_AC1_CMP0 (1ul << 24)
-#define PIN_PA25H_AC1_CMP1 25L /**< \brief AC1 signal: CMP1 on PA25 mux H */
-#define MUX_PA25H_AC1_CMP1 7L
-#define PINMUX_PA25H_AC1_CMP1 ((PIN_PA25H_AC1_CMP1 << 16) | MUX_PA25H_AC1_CMP1)
-#define PORT_PA25H_AC1_CMP1 (1ul << 25)
-/* ========== PORT definition for TCC3 peripheral ========== */
-#define PIN_PA02F_TCC3_WO0 2L /**< \brief TCC3 signal: WO0 on PA02 mux F */
-#define MUX_PA02F_TCC3_WO0 5L
-#define PINMUX_PA02F_TCC3_WO0 ((PIN_PA02F_TCC3_WO0 << 16) | MUX_PA02F_TCC3_WO0)
-#define PORT_PA02F_TCC3_WO0 (1ul << 2)
-#define PIN_PA03F_TCC3_WO1 3L /**< \brief TCC3 signal: WO1 on PA03 mux F */
-#define MUX_PA03F_TCC3_WO1 5L
-#define PINMUX_PA03F_TCC3_WO1 ((PIN_PA03F_TCC3_WO1 << 16) | MUX_PA03F_TCC3_WO1)
-#define PORT_PA03F_TCC3_WO1 (1ul << 3)
-#define PIN_PA04F_TCC3_WO2 4L /**< \brief TCC3 signal: WO2 on PA04 mux F */
-#define MUX_PA04F_TCC3_WO2 5L
-#define PINMUX_PA04F_TCC3_WO2 ((PIN_PA04F_TCC3_WO2 << 16) | MUX_PA04F_TCC3_WO2)
-#define PORT_PA04F_TCC3_WO2 (1ul << 4)
-#define PIN_PB02F_TCC3_WO2 34L /**< \brief TCC3 signal: WO2 on PB02 mux F */
-#define MUX_PB02F_TCC3_WO2 5L
-#define PINMUX_PB02F_TCC3_WO2 ((PIN_PB02F_TCC3_WO2 << 16) | MUX_PB02F_TCC3_WO2)
-#define PORT_PB02F_TCC3_WO2 (1ul << 2)
-#define PIN_PA05F_TCC3_WO3 5L /**< \brief TCC3 signal: WO3 on PA05 mux F */
-#define MUX_PA05F_TCC3_WO3 5L
-#define PINMUX_PA05F_TCC3_WO3 ((PIN_PA05F_TCC3_WO3 << 16) | MUX_PA05F_TCC3_WO3)
-#define PORT_PA05F_TCC3_WO3 (1ul << 5)
-#define PIN_PB03F_TCC3_WO3 35L /**< \brief TCC3 signal: WO3 on PB03 mux F */
-#define MUX_PB03F_TCC3_WO3 5L
-#define PINMUX_PB03F_TCC3_WO3 ((PIN_PB03F_TCC3_WO3 << 16) | MUX_PB03F_TCC3_WO3)
-#define PORT_PB03F_TCC3_WO3 (1ul << 3)
-#define PIN_PA06F_TCC3_WO4 6L /**< \brief TCC3 signal: WO4 on PA06 mux F */
-#define MUX_PA06F_TCC3_WO4 5L
-#define PINMUX_PA06F_TCC3_WO4 ((PIN_PA06F_TCC3_WO4 << 16) | MUX_PA06F_TCC3_WO4)
-#define PORT_PA06F_TCC3_WO4 (1ul << 6)
-#define PIN_PA30F_TCC3_WO4 30L /**< \brief TCC3 signal: WO4 on PA30 mux F */
-#define MUX_PA30F_TCC3_WO4 5L
-#define PINMUX_PA30F_TCC3_WO4 ((PIN_PA30F_TCC3_WO4 << 16) | MUX_PA30F_TCC3_WO4)
-#define PORT_PA30F_TCC3_WO4 (1ul << 30)
-#define PIN_PA07F_TCC3_WO5 7L /**< \brief TCC3 signal: WO5 on PA07 mux F */
-#define MUX_PA07F_TCC3_WO5 5L
-#define PINMUX_PA07F_TCC3_WO5 ((PIN_PA07F_TCC3_WO5 << 16) | MUX_PA07F_TCC3_WO5)
-#define PORT_PA07F_TCC3_WO5 (1ul << 7)
-#define PIN_PA31F_TCC3_WO5 31L /**< \brief TCC3 signal: WO5 on PA31 mux F */
-#define MUX_PA31F_TCC3_WO5 5L
-#define PINMUX_PA31F_TCC3_WO5 ((PIN_PA31F_TCC3_WO5 << 16) | MUX_PA31F_TCC3_WO5)
-#define PORT_PA31F_TCC3_WO5 (1ul << 31)
-
-#endif /* _SAMD21E17L_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e18a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e18a.h
deleted file mode 100644
index 61f15d5..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21e18a.h
+++ /dev/null
@@ -1,634 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21E18A
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _SAMD21E18A_PIO_
-#define _SAMD21E18A_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-
-#endif /* _SAMD21E18A_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g15a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g15a.h
deleted file mode 100644
index 1c51f21..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g15a.h
+++ /dev/null
@@ -1,908 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21G15A
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _SAMD21G15A_PIO_
-#define _SAMD21G15A_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA12 12 /**< \brief Pin Number for PA12 */
-#define PORT_PA12 (1ul << 12) /**< \brief PORT Mask for PA12 */
-#define PIN_PA13 13 /**< \brief Pin Number for PA13 */
-#define PORT_PA13 (1ul << 13) /**< \brief PORT Mask for PA13 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA20 20 /**< \brief Pin Number for PA20 */
-#define PORT_PA20 (1ul << 20) /**< \brief PORT Mask for PA20 */
-#define PIN_PA21 21 /**< \brief Pin Number for PA21 */
-#define PORT_PA21 (1ul << 21) /**< \brief PORT Mask for PA21 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB08 40 /**< \brief Pin Number for PB08 */
-#define PORT_PB08 (1ul << 8) /**< \brief PORT Mask for PB08 */
-#define PIN_PB09 41 /**< \brief Pin Number for PB09 */
-#define PORT_PB09 (1ul << 9) /**< \brief PORT Mask for PB09 */
-#define PIN_PB10 42 /**< \brief Pin Number for PB10 */
-#define PORT_PB10 (1ul << 10) /**< \brief PORT Mask for PB10 */
-#define PIN_PB11 43 /**< \brief Pin Number for PB11 */
-#define PORT_PB11 (1ul << 11) /**< \brief PORT Mask for PB11 */
-#define PIN_PB22 54 /**< \brief Pin Number for PB22 */
-#define PORT_PB22 (1ul << 22) /**< \brief PORT Mask for PB22 */
-#define PIN_PB23 55 /**< \brief Pin Number for PB23 */
-#define PORT_PB23 (1ul << 23) /**< \brief PORT Mask for PB23 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PB22H_GCLK_IO0 54L /**< \brief GCLK signal: IO0 on PB22 mux H */
-#define MUX_PB22H_GCLK_IO0 7L
-#define PINMUX_PB22H_GCLK_IO0 ((PIN_PB22H_GCLK_IO0 << 16) | MUX_PB22H_GCLK_IO0)
-#define PORT_PB22H_GCLK_IO0 (1ul << 22)
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PB23H_GCLK_IO1 55L /**< \brief GCLK signal: IO1 on PB23 mux H */
-#define MUX_PB23H_GCLK_IO1 7L
-#define PINMUX_PB23H_GCLK_IO1 ((PIN_PB23H_GCLK_IO1 << 16) | MUX_PB23H_GCLK_IO1)
-#define PORT_PB23H_GCLK_IO1 (1ul << 23)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA20H_GCLK_IO4 20L /**< \brief GCLK signal: IO4 on PA20 mux H */
-#define MUX_PA20H_GCLK_IO4 7L
-#define PINMUX_PA20H_GCLK_IO4 ((PIN_PA20H_GCLK_IO4 << 16) | MUX_PA20H_GCLK_IO4)
-#define PORT_PA20H_GCLK_IO4 (1ul << 20)
-#define PIN_PB10H_GCLK_IO4 42L /**< \brief GCLK signal: IO4 on PB10 mux H */
-#define MUX_PB10H_GCLK_IO4 7L
-#define PINMUX_PB10H_GCLK_IO4 ((PIN_PB10H_GCLK_IO4 << 16) | MUX_PB10H_GCLK_IO4)
-#define PORT_PB10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA21H_GCLK_IO5 21L /**< \brief GCLK signal: IO5 on PA21 mux H */
-#define MUX_PA21H_GCLK_IO5 7L
-#define PINMUX_PA21H_GCLK_IO5 ((PIN_PA21H_GCLK_IO5 << 16) | MUX_PA21H_GCLK_IO5)
-#define PORT_PA21H_GCLK_IO5 (1ul << 21)
-#define PIN_PB11H_GCLK_IO5 43L /**< \brief GCLK signal: IO5 on PB11 mux H */
-#define MUX_PB11H_GCLK_IO5 7L
-#define PINMUX_PB11H_GCLK_IO5 ((PIN_PB11H_GCLK_IO5 << 16) | MUX_PB11H_GCLK_IO5)
-#define PORT_PB11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA20A_EIC_EXTINT4 20L /**< \brief EIC signal: EXTINT4 on PA20 mux A */
-#define MUX_PA20A_EIC_EXTINT4 0L
-#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4)
-#define PORT_PA20A_EIC_EXTINT4 (1ul << 20)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA21A_EIC_EXTINT5 21L /**< \brief EIC signal: EXTINT5 on PA21 mux A */
-#define MUX_PA21A_EIC_EXTINT5 0L
-#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5)
-#define PORT_PA21A_EIC_EXTINT5 (1ul << 21)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PB22A_EIC_EXTINT6 54L /**< \brief EIC signal: EXTINT6 on PB22 mux A */
-#define MUX_PB22A_EIC_EXTINT6 0L
-#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6)
-#define PORT_PB22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PB23A_EIC_EXTINT7 55L /**< \brief EIC signal: EXTINT7 on PB23 mux A */
-#define MUX_PB23A_EIC_EXTINT7 0L
-#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7)
-#define PORT_PB23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PB08A_EIC_EXTINT8 40L /**< \brief EIC signal: EXTINT8 on PB08 mux A */
-#define MUX_PB08A_EIC_EXTINT8 0L
-#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8)
-#define PORT_PB08A_EIC_EXTINT8 (1ul << 8)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PB09A_EIC_EXTINT9 41L /**< \brief EIC signal: EXTINT9 on PB09 mux A */
-#define MUX_PB09A_EIC_EXTINT9 0L
-#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9)
-#define PORT_PB09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PB10A_EIC_EXTINT10 42L /**< \brief EIC signal: EXTINT10 on PB10 mux A */
-#define MUX_PB10A_EIC_EXTINT10 0L
-#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10)
-#define PORT_PB10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PB11A_EIC_EXTINT11 43L /**< \brief EIC signal: EXTINT11 on PB11 mux A */
-#define MUX_PB11A_EIC_EXTINT11 0L
-#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11)
-#define PORT_PB11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA12A_EIC_EXTINT12 12L /**< \brief EIC signal: EXTINT12 on PA12 mux A */
-#define MUX_PA12A_EIC_EXTINT12 0L
-#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12)
-#define PORT_PA12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA13A_EIC_EXTINT13 13L /**< \brief EIC signal: EXTINT13 on PA13 mux A */
-#define MUX_PA13A_EIC_EXTINT13 0L
-#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13)
-#define PORT_PA13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA12C_SERCOM2_PAD0 12L /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */
-#define MUX_PA12C_SERCOM2_PAD0 2L
-#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0)
-#define PORT_PA12C_SERCOM2_PAD0 (1ul << 12)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA13C_SERCOM2_PAD1 13L /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */
-#define MUX_PA13C_SERCOM2_PAD1 2L
-#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1)
-#define PORT_PA13C_SERCOM2_PAD1 (1ul << 13)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA20D_SERCOM3_PAD2 20L /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */
-#define MUX_PA20D_SERCOM3_PAD2 3L
-#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2)
-#define PORT_PA20D_SERCOM3_PAD2 (1ul << 20)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA21D_SERCOM3_PAD3 21L /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */
-#define MUX_PA21D_SERCOM3_PAD3 3L
-#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3)
-#define PORT_PA21D_SERCOM3_PAD3 (1ul << 21)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for SERCOM4 peripheral ========== */
-#define PIN_PA12D_SERCOM4_PAD0 12L /**< \brief SERCOM4 signal: PAD0 on PA12 mux D */
-#define MUX_PA12D_SERCOM4_PAD0 3L
-#define PINMUX_PA12D_SERCOM4_PAD0 ((PIN_PA12D_SERCOM4_PAD0 << 16) | MUX_PA12D_SERCOM4_PAD0)
-#define PORT_PA12D_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PB08D_SERCOM4_PAD0 40L /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */
-#define MUX_PB08D_SERCOM4_PAD0 3L
-#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0)
-#define PORT_PB08D_SERCOM4_PAD0 (1ul << 8)
-#define PIN_PA13D_SERCOM4_PAD1 13L /**< \brief SERCOM4 signal: PAD1 on PA13 mux D */
-#define MUX_PA13D_SERCOM4_PAD1 3L
-#define PINMUX_PA13D_SERCOM4_PAD1 ((PIN_PA13D_SERCOM4_PAD1 << 16) | MUX_PA13D_SERCOM4_PAD1)
-#define PORT_PA13D_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PB09D_SERCOM4_PAD1 41L /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */
-#define MUX_PB09D_SERCOM4_PAD1 3L
-#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1)
-#define PORT_PB09D_SERCOM4_PAD1 (1ul << 9)
-#define PIN_PA14D_SERCOM4_PAD2 14L /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */
-#define MUX_PA14D_SERCOM4_PAD2 3L
-#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2)
-#define PORT_PA14D_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PB10D_SERCOM4_PAD2 42L /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */
-#define MUX_PB10D_SERCOM4_PAD2 3L
-#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2)
-#define PORT_PB10D_SERCOM4_PAD2 (1ul << 10)
-#define PIN_PA15D_SERCOM4_PAD3 15L /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */
-#define MUX_PA15D_SERCOM4_PAD3 3L
-#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3)
-#define PORT_PA15D_SERCOM4_PAD3 (1ul << 15)
-#define PIN_PB11D_SERCOM4_PAD3 43L /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */
-#define MUX_PB11D_SERCOM4_PAD3 3L
-#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3)
-#define PORT_PB11D_SERCOM4_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM5 peripheral ========== */
-#define PIN_PA22D_SERCOM5_PAD0 22L /**< \brief SERCOM5 signal: PAD0 on PA22 mux D */
-#define MUX_PA22D_SERCOM5_PAD0 3L
-#define PINMUX_PA22D_SERCOM5_PAD0 ((PIN_PA22D_SERCOM5_PAD0 << 16) | MUX_PA22D_SERCOM5_PAD0)
-#define PORT_PA22D_SERCOM5_PAD0 (1ul << 22)
-#define PIN_PB02D_SERCOM5_PAD0 34L /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */
-#define MUX_PB02D_SERCOM5_PAD0 3L
-#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0)
-#define PORT_PB02D_SERCOM5_PAD0 (1ul << 2)
-#define PIN_PA23D_SERCOM5_PAD1 23L /**< \brief SERCOM5 signal: PAD1 on PA23 mux D */
-#define MUX_PA23D_SERCOM5_PAD1 3L
-#define PINMUX_PA23D_SERCOM5_PAD1 ((PIN_PA23D_SERCOM5_PAD1 << 16) | MUX_PA23D_SERCOM5_PAD1)
-#define PORT_PA23D_SERCOM5_PAD1 (1ul << 23)
-#define PIN_PB03D_SERCOM5_PAD1 35L /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */
-#define MUX_PB03D_SERCOM5_PAD1 3L
-#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1)
-#define PORT_PB03D_SERCOM5_PAD1 (1ul << 3)
-#define PIN_PA24D_SERCOM5_PAD2 24L /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */
-#define MUX_PA24D_SERCOM5_PAD2 3L
-#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2)
-#define PORT_PA24D_SERCOM5_PAD2 (1ul << 24)
-#define PIN_PB22D_SERCOM5_PAD2 54L /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */
-#define MUX_PB22D_SERCOM5_PAD2 3L
-#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2)
-#define PORT_PB22D_SERCOM5_PAD2 (1ul << 22)
-#define PIN_PA20C_SERCOM5_PAD2 20L /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */
-#define MUX_PA20C_SERCOM5_PAD2 2L
-#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2)
-#define PORT_PA20C_SERCOM5_PAD2 (1ul << 20)
-#define PIN_PA25D_SERCOM5_PAD3 25L /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */
-#define MUX_PA25D_SERCOM5_PAD3 3L
-#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3)
-#define PORT_PA25D_SERCOM5_PAD3 (1ul << 25)
-#define PIN_PB23D_SERCOM5_PAD3 55L /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */
-#define MUX_PB23D_SERCOM5_PAD3 3L
-#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3)
-#define PORT_PB23D_SERCOM5_PAD3 (1ul << 23)
-#define PIN_PA21C_SERCOM5_PAD3 21L /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */
-#define MUX_PA21C_SERCOM5_PAD3 2L
-#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3)
-#define PORT_PA21C_SERCOM5_PAD3 (1ul << 21)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PB10F_TCC0_WO4 42L /**< \brief TCC0 signal: WO4 on PB10 mux F */
-#define MUX_PB10F_TCC0_WO4 5L
-#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4)
-#define PORT_PB10F_TCC0_WO4 (1ul << 10)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PB11F_TCC0_WO5 43L /**< \brief TCC0 signal: WO5 on PB11 mux F */
-#define MUX_PB11F_TCC0_WO5 5L
-#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5)
-#define PORT_PB11F_TCC0_WO5 (1ul << 11)
-#define PIN_PA12F_TCC0_WO6 12L /**< \brief TCC0 signal: WO6 on PA12 mux F */
-#define MUX_PA12F_TCC0_WO6 5L
-#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6)
-#define PORT_PA12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA20F_TCC0_WO6 20L /**< \brief TCC0 signal: WO6 on PA20 mux F */
-#define MUX_PA20F_TCC0_WO6 5L
-#define PINMUX_PA20F_TCC0_WO6 ((PIN_PA20F_TCC0_WO6 << 16) | MUX_PA20F_TCC0_WO6)
-#define PORT_PA20F_TCC0_WO6 (1ul << 20)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA13F_TCC0_WO7 13L /**< \brief TCC0 signal: WO7 on PA13 mux F */
-#define MUX_PA13F_TCC0_WO7 5L
-#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7)
-#define PORT_PA13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA21F_TCC0_WO7 21L /**< \brief TCC0 signal: WO7 on PA21 mux F */
-#define MUX_PA21F_TCC0_WO7 5L
-#define PINMUX_PA21F_TCC0_WO7 ((PIN_PA21F_TCC0_WO7 << 16) | MUX_PA21F_TCC0_WO7)
-#define PORT_PA21F_TCC0_WO7 (1ul << 21)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA12E_TCC2_WO0 12L /**< \brief TCC2 signal: WO0 on PA12 mux E */
-#define MUX_PA12E_TCC2_WO0 4L
-#define PINMUX_PA12E_TCC2_WO0 ((PIN_PA12E_TCC2_WO0 << 16) | MUX_PA12E_TCC2_WO0)
-#define PORT_PA12E_TCC2_WO0 (1ul << 12)
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA13E_TCC2_WO1 13L /**< \brief TCC2 signal: WO1 on PA13 mux E */
-#define MUX_PA13E_TCC2_WO1 4L
-#define PINMUX_PA13E_TCC2_WO1 ((PIN_PA13E_TCC2_WO1 << 16) | MUX_PA13E_TCC2_WO1)
-#define PORT_PA13E_TCC2_WO1 (1ul << 13)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PB08E_TC4_WO0 40L /**< \brief TC4 signal: WO0 on PB08 mux E */
-#define MUX_PB08E_TC4_WO0 4L
-#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0)
-#define PORT_PB08E_TC4_WO0 (1ul << 8)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-#define PIN_PB09E_TC4_WO1 41L /**< \brief TC4 signal: WO1 on PB09 mux E */
-#define MUX_PB09E_TC4_WO1 4L
-#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1)
-#define PORT_PB09E_TC4_WO1 (1ul << 9)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PB10E_TC5_WO0 42L /**< \brief TC5 signal: WO0 on PB10 mux E */
-#define MUX_PB10E_TC5_WO0 4L
-#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0)
-#define PORT_PB10E_TC5_WO0 (1ul << 10)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-#define PIN_PB11E_TC5_WO1 43L /**< \brief TC5 signal: WO1 on PB11 mux E */
-#define MUX_PB11E_TC5_WO1 4L
-#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1)
-#define PORT_PB11E_TC5_WO1 (1ul << 11)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PB08B_ADC_AIN2 40L /**< \brief ADC signal: AIN2 on PB08 mux B */
-#define MUX_PB08B_ADC_AIN2 1L
-#define PINMUX_PB08B_ADC_AIN2 ((PIN_PB08B_ADC_AIN2 << 16) | MUX_PB08B_ADC_AIN2)
-#define PORT_PB08B_ADC_AIN2 (1ul << 8)
-#define PIN_PB09B_ADC_AIN3 41L /**< \brief ADC signal: AIN3 on PB09 mux B */
-#define MUX_PB09B_ADC_AIN3 1L
-#define PINMUX_PB09B_ADC_AIN3 ((PIN_PB09B_ADC_AIN3 << 16) | MUX_PB09B_ADC_AIN3)
-#define PORT_PB09B_ADC_AIN3 (1ul << 9)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA12H_AC_CMP0 12L /**< \brief AC signal: CMP0 on PA12 mux H */
-#define MUX_PA12H_AC_CMP0 7L
-#define PINMUX_PA12H_AC_CMP0 ((PIN_PA12H_AC_CMP0 << 16) | MUX_PA12H_AC_CMP0)
-#define PORT_PA12H_AC_CMP0 (1ul << 12)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA13H_AC_CMP1 13L /**< \brief AC signal: CMP1 on PA13 mux H */
-#define MUX_PA13H_AC_CMP1 7L
-#define PINMUX_PA13H_AC_CMP1 ((PIN_PA13H_AC_CMP1 << 16) | MUX_PA13H_AC_CMP1)
-#define PORT_PA13H_AC_CMP1 (1ul << 13)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA21G_I2S_FS0 21L /**< \brief I2S signal: FS0 on PA21 mux G */
-#define MUX_PA21G_I2S_FS0 6L
-#define PINMUX_PA21G_I2S_FS0 ((PIN_PA21G_I2S_FS0 << 16) | MUX_PA21G_I2S_FS0)
-#define PORT_PA21G_I2S_FS0 (1ul << 21)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PB10G_I2S_MCK1 42L /**< \brief I2S signal: MCK1 on PB10 mux G */
-#define MUX_PB10G_I2S_MCK1 6L
-#define PINMUX_PB10G_I2S_MCK1 ((PIN_PB10G_I2S_MCK1 << 16) | MUX_PB10G_I2S_MCK1)
-#define PORT_PB10G_I2S_MCK1 (1ul << 10)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA20G_I2S_SCK0 20L /**< \brief I2S signal: SCK0 on PA20 mux G */
-#define MUX_PA20G_I2S_SCK0 6L
-#define PINMUX_PA20G_I2S_SCK0 ((PIN_PA20G_I2S_SCK0 << 16) | MUX_PA20G_I2S_SCK0)
-#define PORT_PA20G_I2S_SCK0 (1ul << 20)
-#define PIN_PB11G_I2S_SCK1 43L /**< \brief I2S signal: SCK1 on PB11 mux G */
-#define MUX_PB11G_I2S_SCK1 6L
-#define PINMUX_PB11G_I2S_SCK1 ((PIN_PB11G_I2S_SCK1 << 16) | MUX_PB11G_I2S_SCK1)
-#define PORT_PB11G_I2S_SCK1 (1ul << 11)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-
-#endif /* _SAMD21G15A_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g15b.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g15b.h
deleted file mode 100644
index df61e19..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g15b.h
+++ /dev/null
@@ -1,905 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21G15B
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21G15B_PIO_
-#define _SAMD21G15B_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA12 12 /**< \brief Pin Number for PA12 */
-#define PORT_PA12 (1ul << 12) /**< \brief PORT Mask for PA12 */
-#define PIN_PA13 13 /**< \brief Pin Number for PA13 */
-#define PORT_PA13 (1ul << 13) /**< \brief PORT Mask for PA13 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA20 20 /**< \brief Pin Number for PA20 */
-#define PORT_PA20 (1ul << 20) /**< \brief PORT Mask for PA20 */
-#define PIN_PA21 21 /**< \brief Pin Number for PA21 */
-#define PORT_PA21 (1ul << 21) /**< \brief PORT Mask for PA21 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB08 40 /**< \brief Pin Number for PB08 */
-#define PORT_PB08 (1ul << 8) /**< \brief PORT Mask for PB08 */
-#define PIN_PB09 41 /**< \brief Pin Number for PB09 */
-#define PORT_PB09 (1ul << 9) /**< \brief PORT Mask for PB09 */
-#define PIN_PB10 42 /**< \brief Pin Number for PB10 */
-#define PORT_PB10 (1ul << 10) /**< \brief PORT Mask for PB10 */
-#define PIN_PB11 43 /**< \brief Pin Number for PB11 */
-#define PORT_PB11 (1ul << 11) /**< \brief PORT Mask for PB11 */
-#define PIN_PB22 54 /**< \brief Pin Number for PB22 */
-#define PORT_PB22 (1ul << 22) /**< \brief PORT Mask for PB22 */
-#define PIN_PB23 55 /**< \brief Pin Number for PB23 */
-#define PORT_PB23 (1ul << 23) /**< \brief PORT Mask for PB23 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PB22H_GCLK_IO0 54L /**< \brief GCLK signal: IO0 on PB22 mux H */
-#define MUX_PB22H_GCLK_IO0 7L
-#define PINMUX_PB22H_GCLK_IO0 ((PIN_PB22H_GCLK_IO0 << 16) | MUX_PB22H_GCLK_IO0)
-#define PORT_PB22H_GCLK_IO0 (1ul << 22)
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PB23H_GCLK_IO1 55L /**< \brief GCLK signal: IO1 on PB23 mux H */
-#define MUX_PB23H_GCLK_IO1 7L
-#define PINMUX_PB23H_GCLK_IO1 ((PIN_PB23H_GCLK_IO1 << 16) | MUX_PB23H_GCLK_IO1)
-#define PORT_PB23H_GCLK_IO1 (1ul << 23)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA20H_GCLK_IO4 20L /**< \brief GCLK signal: IO4 on PA20 mux H */
-#define MUX_PA20H_GCLK_IO4 7L
-#define PINMUX_PA20H_GCLK_IO4 ((PIN_PA20H_GCLK_IO4 << 16) | MUX_PA20H_GCLK_IO4)
-#define PORT_PA20H_GCLK_IO4 (1ul << 20)
-#define PIN_PB10H_GCLK_IO4 42L /**< \brief GCLK signal: IO4 on PB10 mux H */
-#define MUX_PB10H_GCLK_IO4 7L
-#define PINMUX_PB10H_GCLK_IO4 ((PIN_PB10H_GCLK_IO4 << 16) | MUX_PB10H_GCLK_IO4)
-#define PORT_PB10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA21H_GCLK_IO5 21L /**< \brief GCLK signal: IO5 on PA21 mux H */
-#define MUX_PA21H_GCLK_IO5 7L
-#define PINMUX_PA21H_GCLK_IO5 ((PIN_PA21H_GCLK_IO5 << 16) | MUX_PA21H_GCLK_IO5)
-#define PORT_PA21H_GCLK_IO5 (1ul << 21)
-#define PIN_PB11H_GCLK_IO5 43L /**< \brief GCLK signal: IO5 on PB11 mux H */
-#define MUX_PB11H_GCLK_IO5 7L
-#define PINMUX_PB11H_GCLK_IO5 ((PIN_PB11H_GCLK_IO5 << 16) | MUX_PB11H_GCLK_IO5)
-#define PORT_PB11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA20A_EIC_EXTINT4 20L /**< \brief EIC signal: EXTINT4 on PA20 mux A */
-#define MUX_PA20A_EIC_EXTINT4 0L
-#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4)
-#define PORT_PA20A_EIC_EXTINT4 (1ul << 20)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA21A_EIC_EXTINT5 21L /**< \brief EIC signal: EXTINT5 on PA21 mux A */
-#define MUX_PA21A_EIC_EXTINT5 0L
-#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5)
-#define PORT_PA21A_EIC_EXTINT5 (1ul << 21)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PB22A_EIC_EXTINT6 54L /**< \brief EIC signal: EXTINT6 on PB22 mux A */
-#define MUX_PB22A_EIC_EXTINT6 0L
-#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6)
-#define PORT_PB22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PB23A_EIC_EXTINT7 55L /**< \brief EIC signal: EXTINT7 on PB23 mux A */
-#define MUX_PB23A_EIC_EXTINT7 0L
-#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7)
-#define PORT_PB23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PB08A_EIC_EXTINT8 40L /**< \brief EIC signal: EXTINT8 on PB08 mux A */
-#define MUX_PB08A_EIC_EXTINT8 0L
-#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8)
-#define PORT_PB08A_EIC_EXTINT8 (1ul << 8)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PB09A_EIC_EXTINT9 41L /**< \brief EIC signal: EXTINT9 on PB09 mux A */
-#define MUX_PB09A_EIC_EXTINT9 0L
-#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9)
-#define PORT_PB09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PB10A_EIC_EXTINT10 42L /**< \brief EIC signal: EXTINT10 on PB10 mux A */
-#define MUX_PB10A_EIC_EXTINT10 0L
-#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10)
-#define PORT_PB10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PB11A_EIC_EXTINT11 43L /**< \brief EIC signal: EXTINT11 on PB11 mux A */
-#define MUX_PB11A_EIC_EXTINT11 0L
-#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11)
-#define PORT_PB11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA12A_EIC_EXTINT12 12L /**< \brief EIC signal: EXTINT12 on PA12 mux A */
-#define MUX_PA12A_EIC_EXTINT12 0L
-#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12)
-#define PORT_PA12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA13A_EIC_EXTINT13 13L /**< \brief EIC signal: EXTINT13 on PA13 mux A */
-#define MUX_PA13A_EIC_EXTINT13 0L
-#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13)
-#define PORT_PA13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA12C_SERCOM2_PAD0 12L /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */
-#define MUX_PA12C_SERCOM2_PAD0 2L
-#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0)
-#define PORT_PA12C_SERCOM2_PAD0 (1ul << 12)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA13C_SERCOM2_PAD1 13L /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */
-#define MUX_PA13C_SERCOM2_PAD1 2L
-#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1)
-#define PORT_PA13C_SERCOM2_PAD1 (1ul << 13)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA20D_SERCOM3_PAD2 20L /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */
-#define MUX_PA20D_SERCOM3_PAD2 3L
-#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2)
-#define PORT_PA20D_SERCOM3_PAD2 (1ul << 20)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA21D_SERCOM3_PAD3 21L /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */
-#define MUX_PA21D_SERCOM3_PAD3 3L
-#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3)
-#define PORT_PA21D_SERCOM3_PAD3 (1ul << 21)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for SERCOM4 peripheral ========== */
-#define PIN_PA12D_SERCOM4_PAD0 12L /**< \brief SERCOM4 signal: PAD0 on PA12 mux D */
-#define MUX_PA12D_SERCOM4_PAD0 3L
-#define PINMUX_PA12D_SERCOM4_PAD0 ((PIN_PA12D_SERCOM4_PAD0 << 16) | MUX_PA12D_SERCOM4_PAD0)
-#define PORT_PA12D_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PB08D_SERCOM4_PAD0 40L /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */
-#define MUX_PB08D_SERCOM4_PAD0 3L
-#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0)
-#define PORT_PB08D_SERCOM4_PAD0 (1ul << 8)
-#define PIN_PA13D_SERCOM4_PAD1 13L /**< \brief SERCOM4 signal: PAD1 on PA13 mux D */
-#define MUX_PA13D_SERCOM4_PAD1 3L
-#define PINMUX_PA13D_SERCOM4_PAD1 ((PIN_PA13D_SERCOM4_PAD1 << 16) | MUX_PA13D_SERCOM4_PAD1)
-#define PORT_PA13D_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PB09D_SERCOM4_PAD1 41L /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */
-#define MUX_PB09D_SERCOM4_PAD1 3L
-#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1)
-#define PORT_PB09D_SERCOM4_PAD1 (1ul << 9)
-#define PIN_PA14D_SERCOM4_PAD2 14L /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */
-#define MUX_PA14D_SERCOM4_PAD2 3L
-#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2)
-#define PORT_PA14D_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PB10D_SERCOM4_PAD2 42L /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */
-#define MUX_PB10D_SERCOM4_PAD2 3L
-#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2)
-#define PORT_PB10D_SERCOM4_PAD2 (1ul << 10)
-#define PIN_PA15D_SERCOM4_PAD3 15L /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */
-#define MUX_PA15D_SERCOM4_PAD3 3L
-#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3)
-#define PORT_PA15D_SERCOM4_PAD3 (1ul << 15)
-#define PIN_PB11D_SERCOM4_PAD3 43L /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */
-#define MUX_PB11D_SERCOM4_PAD3 3L
-#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3)
-#define PORT_PB11D_SERCOM4_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM5 peripheral ========== */
-#define PIN_PA22D_SERCOM5_PAD0 22L /**< \brief SERCOM5 signal: PAD0 on PA22 mux D */
-#define MUX_PA22D_SERCOM5_PAD0 3L
-#define PINMUX_PA22D_SERCOM5_PAD0 ((PIN_PA22D_SERCOM5_PAD0 << 16) | MUX_PA22D_SERCOM5_PAD0)
-#define PORT_PA22D_SERCOM5_PAD0 (1ul << 22)
-#define PIN_PB02D_SERCOM5_PAD0 34L /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */
-#define MUX_PB02D_SERCOM5_PAD0 3L
-#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0)
-#define PORT_PB02D_SERCOM5_PAD0 (1ul << 2)
-#define PIN_PA23D_SERCOM5_PAD1 23L /**< \brief SERCOM5 signal: PAD1 on PA23 mux D */
-#define MUX_PA23D_SERCOM5_PAD1 3L
-#define PINMUX_PA23D_SERCOM5_PAD1 ((PIN_PA23D_SERCOM5_PAD1 << 16) | MUX_PA23D_SERCOM5_PAD1)
-#define PORT_PA23D_SERCOM5_PAD1 (1ul << 23)
-#define PIN_PB03D_SERCOM5_PAD1 35L /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */
-#define MUX_PB03D_SERCOM5_PAD1 3L
-#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1)
-#define PORT_PB03D_SERCOM5_PAD1 (1ul << 3)
-#define PIN_PA24D_SERCOM5_PAD2 24L /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */
-#define MUX_PA24D_SERCOM5_PAD2 3L
-#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2)
-#define PORT_PA24D_SERCOM5_PAD2 (1ul << 24)
-#define PIN_PB22D_SERCOM5_PAD2 54L /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */
-#define MUX_PB22D_SERCOM5_PAD2 3L
-#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2)
-#define PORT_PB22D_SERCOM5_PAD2 (1ul << 22)
-#define PIN_PA20C_SERCOM5_PAD2 20L /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */
-#define MUX_PA20C_SERCOM5_PAD2 2L
-#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2)
-#define PORT_PA20C_SERCOM5_PAD2 (1ul << 20)
-#define PIN_PA25D_SERCOM5_PAD3 25L /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */
-#define MUX_PA25D_SERCOM5_PAD3 3L
-#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3)
-#define PORT_PA25D_SERCOM5_PAD3 (1ul << 25)
-#define PIN_PB23D_SERCOM5_PAD3 55L /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */
-#define MUX_PB23D_SERCOM5_PAD3 3L
-#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3)
-#define PORT_PB23D_SERCOM5_PAD3 (1ul << 23)
-#define PIN_PA21C_SERCOM5_PAD3 21L /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */
-#define MUX_PA21C_SERCOM5_PAD3 2L
-#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3)
-#define PORT_PA21C_SERCOM5_PAD3 (1ul << 21)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PB10F_TCC0_WO4 42L /**< \brief TCC0 signal: WO4 on PB10 mux F */
-#define MUX_PB10F_TCC0_WO4 5L
-#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4)
-#define PORT_PB10F_TCC0_WO4 (1ul << 10)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PB11F_TCC0_WO5 43L /**< \brief TCC0 signal: WO5 on PB11 mux F */
-#define MUX_PB11F_TCC0_WO5 5L
-#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5)
-#define PORT_PB11F_TCC0_WO5 (1ul << 11)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA12F_TCC0_WO6 12L /**< \brief TCC0 signal: WO6 on PA12 mux F */
-#define MUX_PA12F_TCC0_WO6 5L
-#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6)
-#define PORT_PA12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA20F_TCC0_WO6 20L /**< \brief TCC0 signal: WO6 on PA20 mux F */
-#define MUX_PA20F_TCC0_WO6 5L
-#define PINMUX_PA20F_TCC0_WO6 ((PIN_PA20F_TCC0_WO6 << 16) | MUX_PA20F_TCC0_WO6)
-#define PORT_PA20F_TCC0_WO6 (1ul << 20)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA13F_TCC0_WO7 13L /**< \brief TCC0 signal: WO7 on PA13 mux F */
-#define MUX_PA13F_TCC0_WO7 5L
-#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7)
-#define PORT_PA13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA21F_TCC0_WO7 21L /**< \brief TCC0 signal: WO7 on PA21 mux F */
-#define MUX_PA21F_TCC0_WO7 5L
-#define PINMUX_PA21F_TCC0_WO7 ((PIN_PA21F_TCC0_WO7 << 16) | MUX_PA21F_TCC0_WO7)
-#define PORT_PA21F_TCC0_WO7 (1ul << 21)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA12E_TCC2_WO0 12L /**< \brief TCC2 signal: WO0 on PA12 mux E */
-#define MUX_PA12E_TCC2_WO0 4L
-#define PINMUX_PA12E_TCC2_WO0 ((PIN_PA12E_TCC2_WO0 << 16) | MUX_PA12E_TCC2_WO0)
-#define PORT_PA12E_TCC2_WO0 (1ul << 12)
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA13E_TCC2_WO1 13L /**< \brief TCC2 signal: WO1 on PA13 mux E */
-#define MUX_PA13E_TCC2_WO1 4L
-#define PINMUX_PA13E_TCC2_WO1 ((PIN_PA13E_TCC2_WO1 << 16) | MUX_PA13E_TCC2_WO1)
-#define PORT_PA13E_TCC2_WO1 (1ul << 13)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PB08E_TC4_WO0 40L /**< \brief TC4 signal: WO0 on PB08 mux E */
-#define MUX_PB08E_TC4_WO0 4L
-#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0)
-#define PORT_PB08E_TC4_WO0 (1ul << 8)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-#define PIN_PB09E_TC4_WO1 41L /**< \brief TC4 signal: WO1 on PB09 mux E */
-#define MUX_PB09E_TC4_WO1 4L
-#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1)
-#define PORT_PB09E_TC4_WO1 (1ul << 9)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PB10E_TC5_WO0 42L /**< \brief TC5 signal: WO0 on PB10 mux E */
-#define MUX_PB10E_TC5_WO0 4L
-#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0)
-#define PORT_PB10E_TC5_WO0 (1ul << 10)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-#define PIN_PB11E_TC5_WO1 43L /**< \brief TC5 signal: WO1 on PB11 mux E */
-#define MUX_PB11E_TC5_WO1 4L
-#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1)
-#define PORT_PB11E_TC5_WO1 (1ul << 11)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PB08B_ADC_AIN2 40L /**< \brief ADC signal: AIN2 on PB08 mux B */
-#define MUX_PB08B_ADC_AIN2 1L
-#define PINMUX_PB08B_ADC_AIN2 ((PIN_PB08B_ADC_AIN2 << 16) | MUX_PB08B_ADC_AIN2)
-#define PORT_PB08B_ADC_AIN2 (1ul << 8)
-#define PIN_PB09B_ADC_AIN3 41L /**< \brief ADC signal: AIN3 on PB09 mux B */
-#define MUX_PB09B_ADC_AIN3 1L
-#define PINMUX_PB09B_ADC_AIN3 ((PIN_PB09B_ADC_AIN3 << 16) | MUX_PB09B_ADC_AIN3)
-#define PORT_PB09B_ADC_AIN3 (1ul << 9)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA12H_AC_CMP0 12L /**< \brief AC signal: CMP0 on PA12 mux H */
-#define MUX_PA12H_AC_CMP0 7L
-#define PINMUX_PA12H_AC_CMP0 ((PIN_PA12H_AC_CMP0 << 16) | MUX_PA12H_AC_CMP0)
-#define PORT_PA12H_AC_CMP0 (1ul << 12)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA13H_AC_CMP1 13L /**< \brief AC signal: CMP1 on PA13 mux H */
-#define MUX_PA13H_AC_CMP1 7L
-#define PINMUX_PA13H_AC_CMP1 ((PIN_PA13H_AC_CMP1 << 16) | MUX_PA13H_AC_CMP1)
-#define PORT_PA13H_AC_CMP1 (1ul << 13)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA21G_I2S_FS0 21L /**< \brief I2S signal: FS0 on PA21 mux G */
-#define MUX_PA21G_I2S_FS0 6L
-#define PINMUX_PA21G_I2S_FS0 ((PIN_PA21G_I2S_FS0 << 16) | MUX_PA21G_I2S_FS0)
-#define PORT_PA21G_I2S_FS0 (1ul << 21)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PB10G_I2S_MCK1 42L /**< \brief I2S signal: MCK1 on PB10 mux G */
-#define MUX_PB10G_I2S_MCK1 6L
-#define PINMUX_PB10G_I2S_MCK1 ((PIN_PB10G_I2S_MCK1 << 16) | MUX_PB10G_I2S_MCK1)
-#define PORT_PB10G_I2S_MCK1 (1ul << 10)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA20G_I2S_SCK0 20L /**< \brief I2S signal: SCK0 on PA20 mux G */
-#define MUX_PA20G_I2S_SCK0 6L
-#define PINMUX_PA20G_I2S_SCK0 ((PIN_PA20G_I2S_SCK0 << 16) | MUX_PA20G_I2S_SCK0)
-#define PORT_PA20G_I2S_SCK0 (1ul << 20)
-#define PIN_PB11G_I2S_SCK1 43L /**< \brief I2S signal: SCK1 on PB11 mux G */
-#define MUX_PB11G_I2S_SCK1 6L
-#define PINMUX_PB11G_I2S_SCK1 ((PIN_PB11G_I2S_SCK1 << 16) | MUX_PB11G_I2S_SCK1)
-#define PORT_PB11G_I2S_SCK1 (1ul << 11)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-
-#endif /* _SAMD21G15B_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g15l.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g15l.h
deleted file mode 100644
index cf3d776..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g15l.h
+++ /dev/null
@@ -1,894 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21G15L
- *
- * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21G15L_PIO_
-#define _SAMD21G15L_PIO_
-
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA12 12 /**< \brief Pin Number for PA12 */
-#define PORT_PA12 (1ul << 12) /**< \brief PORT Mask for PA12 */
-#define PIN_PA13 13 /**< \brief Pin Number for PA13 */
-#define PORT_PA13 (1ul << 13) /**< \brief PORT Mask for PA13 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA20 20 /**< \brief Pin Number for PA20 */
-#define PORT_PA20 (1ul << 20) /**< \brief PORT Mask for PA20 */
-#define PIN_PA21 21 /**< \brief Pin Number for PA21 */
-#define PORT_PA21 (1ul << 21) /**< \brief PORT Mask for PA21 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB00 32 /**< \brief Pin Number for PB00 */
-#define PORT_PB00 (1ul << 0) /**< \brief PORT Mask for PB00 */
-#define PIN_PB01 33 /**< \brief Pin Number for PB01 */
-#define PORT_PB01 (1ul << 1) /**< \brief PORT Mask for PB01 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB04 36 /**< \brief Pin Number for PB04 */
-#define PORT_PB04 (1ul << 4) /**< \brief PORT Mask for PB04 */
-#define PIN_PB05 37 /**< \brief Pin Number for PB05 */
-#define PORT_PB05 (1ul << 5) /**< \brief PORT Mask for PB05 */
-#define PIN_PB08 40 /**< \brief Pin Number for PB08 */
-#define PORT_PB08 (1ul << 8) /**< \brief PORT Mask for PB08 */
-#define PIN_PB09 41 /**< \brief Pin Number for PB09 */
-#define PORT_PB09 (1ul << 9) /**< \brief PORT Mask for PB09 */
-#define PIN_PB10 42 /**< \brief Pin Number for PB10 */
-#define PORT_PB10 (1ul << 10) /**< \brief PORT Mask for PB10 */
-#define PIN_PB11 43 /**< \brief Pin Number for PB11 */
-#define PORT_PB11 (1ul << 11) /**< \brief PORT Mask for PB11 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA20H_GCLK_IO4 20L /**< \brief GCLK signal: IO4 on PA20 mux H */
-#define MUX_PA20H_GCLK_IO4 7L
-#define PINMUX_PA20H_GCLK_IO4 ((PIN_PA20H_GCLK_IO4 << 16) | MUX_PA20H_GCLK_IO4)
-#define PORT_PA20H_GCLK_IO4 (1ul << 20)
-#define PIN_PB10H_GCLK_IO4 42L /**< \brief GCLK signal: IO4 on PB10 mux H */
-#define MUX_PB10H_GCLK_IO4 7L
-#define PINMUX_PB10H_GCLK_IO4 ((PIN_PB10H_GCLK_IO4 << 16) | MUX_PB10H_GCLK_IO4)
-#define PORT_PB10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA21H_GCLK_IO5 21L /**< \brief GCLK signal: IO5 on PA21 mux H */
-#define MUX_PA21H_GCLK_IO5 7L
-#define PINMUX_PA21H_GCLK_IO5 ((PIN_PA21H_GCLK_IO5 << 16) | MUX_PA21H_GCLK_IO5)
-#define PORT_PA21H_GCLK_IO5 (1ul << 21)
-#define PIN_PB11H_GCLK_IO5 43L /**< \brief GCLK signal: IO5 on PB11 mux H */
-#define MUX_PB11H_GCLK_IO5 7L
-#define PINMUX_PB11H_GCLK_IO5 ((PIN_PB11H_GCLK_IO5 << 16) | MUX_PB11H_GCLK_IO5)
-#define PORT_PB11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PB00A_EIC_EXTINT0 32L /**< \brief EIC signal: EXTINT0 on PB00 mux A */
-#define MUX_PB00A_EIC_EXTINT0 0L
-#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0)
-#define PORT_PB00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PB01A_EIC_EXTINT1 33L /**< \brief EIC signal: EXTINT1 on PB01 mux A */
-#define MUX_PB01A_EIC_EXTINT1 0L
-#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1)
-#define PORT_PB01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA20A_EIC_EXTINT4 20L /**< \brief EIC signal: EXTINT4 on PA20 mux A */
-#define MUX_PA20A_EIC_EXTINT4 0L
-#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4)
-#define PORT_PA20A_EIC_EXTINT4 (1ul << 20)
-#define PIN_PB04A_EIC_EXTINT4 36L /**< \brief EIC signal: EXTINT4 on PB04 mux A */
-#define MUX_PB04A_EIC_EXTINT4 0L
-#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4)
-#define PORT_PB04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA21A_EIC_EXTINT5 21L /**< \brief EIC signal: EXTINT5 on PA21 mux A */
-#define MUX_PA21A_EIC_EXTINT5 0L
-#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5)
-#define PORT_PA21A_EIC_EXTINT5 (1ul << 21)
-#define PIN_PB05A_EIC_EXTINT5 37L /**< \brief EIC signal: EXTINT5 on PB05 mux A */
-#define MUX_PB05A_EIC_EXTINT5 0L
-#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5)
-#define PORT_PB05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PB08A_EIC_EXTINT8 40L /**< \brief EIC signal: EXTINT8 on PB08 mux A */
-#define MUX_PB08A_EIC_EXTINT8 0L
-#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8)
-#define PORT_PB08A_EIC_EXTINT8 (1ul << 8)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PB09A_EIC_EXTINT9 41L /**< \brief EIC signal: EXTINT9 on PB09 mux A */
-#define MUX_PB09A_EIC_EXTINT9 0L
-#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9)
-#define PORT_PB09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PB10A_EIC_EXTINT10 42L /**< \brief EIC signal: EXTINT10 on PB10 mux A */
-#define MUX_PB10A_EIC_EXTINT10 0L
-#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10)
-#define PORT_PB10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PB11A_EIC_EXTINT11 43L /**< \brief EIC signal: EXTINT11 on PB11 mux A */
-#define MUX_PB11A_EIC_EXTINT11 0L
-#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11)
-#define PORT_PB11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA12A_EIC_EXTINT12 12L /**< \brief EIC signal: EXTINT12 on PA12 mux A */
-#define MUX_PA12A_EIC_EXTINT12 0L
-#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12)
-#define PORT_PA12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA13A_EIC_EXTINT13 13L /**< \brief EIC signal: EXTINT13 on PA13 mux A */
-#define MUX_PA13A_EIC_EXTINT13 0L
-#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13)
-#define PORT_PA13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA12C_SERCOM2_PAD0 12L /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */
-#define MUX_PA12C_SERCOM2_PAD0 2L
-#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0)
-#define PORT_PA12C_SERCOM2_PAD0 (1ul << 12)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA13C_SERCOM2_PAD1 13L /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */
-#define MUX_PA13C_SERCOM2_PAD1 2L
-#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1)
-#define PORT_PA13C_SERCOM2_PAD1 (1ul << 13)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA20D_SERCOM3_PAD2 20L /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */
-#define MUX_PA20D_SERCOM3_PAD2 3L
-#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2)
-#define PORT_PA20D_SERCOM3_PAD2 (1ul << 20)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA21D_SERCOM3_PAD3 21L /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */
-#define MUX_PA21D_SERCOM3_PAD3 3L
-#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3)
-#define PORT_PA21D_SERCOM3_PAD3 (1ul << 21)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for SERCOM4 peripheral ========== */
-#define PIN_PA12D_SERCOM4_PAD0 12L /**< \brief SERCOM4 signal: PAD0 on PA12 mux D */
-#define MUX_PA12D_SERCOM4_PAD0 3L
-#define PINMUX_PA12D_SERCOM4_PAD0 ((PIN_PA12D_SERCOM4_PAD0 << 16) | MUX_PA12D_SERCOM4_PAD0)
-#define PORT_PA12D_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PB08D_SERCOM4_PAD0 40L /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */
-#define MUX_PB08D_SERCOM4_PAD0 3L
-#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0)
-#define PORT_PB08D_SERCOM4_PAD0 (1ul << 8)
-#define PIN_PA13D_SERCOM4_PAD1 13L /**< \brief SERCOM4 signal: PAD1 on PA13 mux D */
-#define MUX_PA13D_SERCOM4_PAD1 3L
-#define PINMUX_PA13D_SERCOM4_PAD1 ((PIN_PA13D_SERCOM4_PAD1 << 16) | MUX_PA13D_SERCOM4_PAD1)
-#define PORT_PA13D_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PB09D_SERCOM4_PAD1 41L /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */
-#define MUX_PB09D_SERCOM4_PAD1 3L
-#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1)
-#define PORT_PB09D_SERCOM4_PAD1 (1ul << 9)
-#define PIN_PA14D_SERCOM4_PAD2 14L /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */
-#define MUX_PA14D_SERCOM4_PAD2 3L
-#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2)
-#define PORT_PA14D_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PB10D_SERCOM4_PAD2 42L /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */
-#define MUX_PB10D_SERCOM4_PAD2 3L
-#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2)
-#define PORT_PB10D_SERCOM4_PAD2 (1ul << 10)
-#define PIN_PA15D_SERCOM4_PAD3 15L /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */
-#define MUX_PA15D_SERCOM4_PAD3 3L
-#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3)
-#define PORT_PA15D_SERCOM4_PAD3 (1ul << 15)
-#define PIN_PB11D_SERCOM4_PAD3 43L /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */
-#define MUX_PB11D_SERCOM4_PAD3 3L
-#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3)
-#define PORT_PB11D_SERCOM4_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM5 peripheral ========== */
-#define PIN_PA22D_SERCOM5_PAD0 22L /**< \brief SERCOM5 signal: PAD0 on PA22 mux D */
-#define MUX_PA22D_SERCOM5_PAD0 3L
-#define PINMUX_PA22D_SERCOM5_PAD0 ((PIN_PA22D_SERCOM5_PAD0 << 16) | MUX_PA22D_SERCOM5_PAD0)
-#define PORT_PA22D_SERCOM5_PAD0 (1ul << 22)
-#define PIN_PB02D_SERCOM5_PAD0 34L /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */
-#define MUX_PB02D_SERCOM5_PAD0 3L
-#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0)
-#define PORT_PB02D_SERCOM5_PAD0 (1ul << 2)
-#define PIN_PA23D_SERCOM5_PAD1 23L /**< \brief SERCOM5 signal: PAD1 on PA23 mux D */
-#define MUX_PA23D_SERCOM5_PAD1 3L
-#define PINMUX_PA23D_SERCOM5_PAD1 ((PIN_PA23D_SERCOM5_PAD1 << 16) | MUX_PA23D_SERCOM5_PAD1)
-#define PORT_PA23D_SERCOM5_PAD1 (1ul << 23)
-#define PIN_PB03D_SERCOM5_PAD1 35L /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */
-#define MUX_PB03D_SERCOM5_PAD1 3L
-#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1)
-#define PORT_PB03D_SERCOM5_PAD1 (1ul << 3)
-#define PIN_PA24D_SERCOM5_PAD2 24L /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */
-#define MUX_PA24D_SERCOM5_PAD2 3L
-#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2)
-#define PORT_PA24D_SERCOM5_PAD2 (1ul << 24)
-#define PIN_PB00D_SERCOM5_PAD2 32L /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */
-#define MUX_PB00D_SERCOM5_PAD2 3L
-#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2)
-#define PORT_PB00D_SERCOM5_PAD2 (1ul << 0)
-#define PIN_PA20C_SERCOM5_PAD2 20L /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */
-#define MUX_PA20C_SERCOM5_PAD2 2L
-#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2)
-#define PORT_PA20C_SERCOM5_PAD2 (1ul << 20)
-#define PIN_PA25D_SERCOM5_PAD3 25L /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */
-#define MUX_PA25D_SERCOM5_PAD3 3L
-#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3)
-#define PORT_PA25D_SERCOM5_PAD3 (1ul << 25)
-#define PIN_PB01D_SERCOM5_PAD3 33L /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */
-#define MUX_PB01D_SERCOM5_PAD3 3L
-#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3)
-#define PORT_PB01D_SERCOM5_PAD3 (1ul << 1)
-#define PIN_PA21C_SERCOM5_PAD3 21L /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */
-#define MUX_PA21C_SERCOM5_PAD3 2L
-#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3)
-#define PORT_PA21C_SERCOM5_PAD3 (1ul << 21)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PB10F_TCC0_WO4 42L /**< \brief TCC0 signal: WO4 on PB10 mux F */
-#define MUX_PB10F_TCC0_WO4 5L
-#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4)
-#define PORT_PB10F_TCC0_WO4 (1ul << 10)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PB11F_TCC0_WO5 43L /**< \brief TCC0 signal: WO5 on PB11 mux F */
-#define MUX_PB11F_TCC0_WO5 5L
-#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5)
-#define PORT_PB11F_TCC0_WO5 (1ul << 11)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA12F_TCC0_WO6 12L /**< \brief TCC0 signal: WO6 on PA12 mux F */
-#define MUX_PA12F_TCC0_WO6 5L
-#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6)
-#define PORT_PA12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA20F_TCC0_WO6 20L /**< \brief TCC0 signal: WO6 on PA20 mux F */
-#define MUX_PA20F_TCC0_WO6 5L
-#define PINMUX_PA20F_TCC0_WO6 ((PIN_PA20F_TCC0_WO6 << 16) | MUX_PA20F_TCC0_WO6)
-#define PORT_PA20F_TCC0_WO6 (1ul << 20)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA13F_TCC0_WO7 13L /**< \brief TCC0 signal: WO7 on PA13 mux F */
-#define MUX_PA13F_TCC0_WO7 5L
-#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7)
-#define PORT_PA13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA21F_TCC0_WO7 21L /**< \brief TCC0 signal: WO7 on PA21 mux F */
-#define MUX_PA21F_TCC0_WO7 5L
-#define PINMUX_PA21F_TCC0_WO7 ((PIN_PA21F_TCC0_WO7 << 16) | MUX_PA21F_TCC0_WO7)
-#define PORT_PA21F_TCC0_WO7 (1ul << 21)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA12E_TCC2_WO0 12L /**< \brief TCC2 signal: WO0 on PA12 mux E */
-#define MUX_PA12E_TCC2_WO0 4L
-#define PINMUX_PA12E_TCC2_WO0 ((PIN_PA12E_TCC2_WO0 << 16) | MUX_PA12E_TCC2_WO0)
-#define PORT_PA12E_TCC2_WO0 (1ul << 12)
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA13E_TCC2_WO1 13L /**< \brief TCC2 signal: WO1 on PA13 mux E */
-#define MUX_PA13E_TCC2_WO1 4L
-#define PINMUX_PA13E_TCC2_WO1 ((PIN_PA13E_TCC2_WO1 << 16) | MUX_PA13E_TCC2_WO1)
-#define PORT_PA13E_TCC2_WO1 (1ul << 13)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PB08E_TC4_WO0 40L /**< \brief TC4 signal: WO0 on PB08 mux E */
-#define MUX_PB08E_TC4_WO0 4L
-#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0)
-#define PORT_PB08E_TC4_WO0 (1ul << 8)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-#define PIN_PB09E_TC4_WO1 41L /**< \brief TC4 signal: WO1 on PB09 mux E */
-#define MUX_PB09E_TC4_WO1 4L
-#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1)
-#define PORT_PB09E_TC4_WO1 (1ul << 9)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PB10E_TC5_WO0 42L /**< \brief TC5 signal: WO0 on PB10 mux E */
-#define MUX_PB10E_TC5_WO0 4L
-#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0)
-#define PORT_PB10E_TC5_WO0 (1ul << 10)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-#define PIN_PB11E_TC5_WO1 43L /**< \brief TC5 signal: WO1 on PB11 mux E */
-#define MUX_PB11E_TC5_WO1 4L
-#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1)
-#define PORT_PB11E_TC5_WO1 (1ul << 11)
-/* ========== PORT definition for TC6 peripheral ========== */
-#define PIN_PB02E_TC6_WO0 34L /**< \brief TC6 signal: WO0 on PB02 mux E */
-#define MUX_PB02E_TC6_WO0 4L
-#define PINMUX_PB02E_TC6_WO0 ((PIN_PB02E_TC6_WO0 << 16) | MUX_PB02E_TC6_WO0)
-#define PORT_PB02E_TC6_WO0 (1ul << 2)
-#define PIN_PB03E_TC6_WO1 35L /**< \brief TC6 signal: WO1 on PB03 mux E */
-#define MUX_PB03E_TC6_WO1 4L
-#define PINMUX_PB03E_TC6_WO1 ((PIN_PB03E_TC6_WO1 << 16) | MUX_PB03E_TC6_WO1)
-#define PORT_PB03E_TC6_WO1 (1ul << 3)
-/* ========== PORT definition for TC7 peripheral ========== */
-#define PIN_PA20E_TC7_WO0 20L /**< \brief TC7 signal: WO0 on PA20 mux E */
-#define MUX_PA20E_TC7_WO0 4L
-#define PINMUX_PA20E_TC7_WO0 ((PIN_PA20E_TC7_WO0 << 16) | MUX_PA20E_TC7_WO0)
-#define PORT_PA20E_TC7_WO0 (1ul << 20)
-#define PIN_PB00E_TC7_WO0 32L /**< \brief TC7 signal: WO0 on PB00 mux E */
-#define MUX_PB00E_TC7_WO0 4L
-#define PINMUX_PB00E_TC7_WO0 ((PIN_PB00E_TC7_WO0 << 16) | MUX_PB00E_TC7_WO0)
-#define PORT_PB00E_TC7_WO0 (1ul << 0)
-#define PIN_PA21E_TC7_WO1 21L /**< \brief TC7 signal: WO1 on PA21 mux E */
-#define MUX_PA21E_TC7_WO1 4L
-#define PINMUX_PA21E_TC7_WO1 ((PIN_PA21E_TC7_WO1 << 16) | MUX_PA21E_TC7_WO1)
-#define PORT_PA21E_TC7_WO1 (1ul << 21)
-#define PIN_PB01E_TC7_WO1 33L /**< \brief TC7 signal: WO1 on PB01 mux E */
-#define MUX_PB01E_TC7_WO1 4L
-#define PINMUX_PB01E_TC7_WO1 ((PIN_PB01E_TC7_WO1 << 16) | MUX_PB01E_TC7_WO1)
-#define PORT_PB01E_TC7_WO1 (1ul << 1)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PB08B_ADC_AIN2 40L /**< \brief ADC signal: AIN2 on PB08 mux B */
-#define MUX_PB08B_ADC_AIN2 1L
-#define PINMUX_PB08B_ADC_AIN2 ((PIN_PB08B_ADC_AIN2 << 16) | MUX_PB08B_ADC_AIN2)
-#define PORT_PB08B_ADC_AIN2 (1ul << 8)
-#define PIN_PB09B_ADC_AIN3 41L /**< \brief ADC signal: AIN3 on PB09 mux B */
-#define MUX_PB09B_ADC_AIN3 1L
-#define PINMUX_PB09B_ADC_AIN3 ((PIN_PB09B_ADC_AIN3 << 16) | MUX_PB09B_ADC_AIN3)
-#define PORT_PB09B_ADC_AIN3 (1ul << 9)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB00B_ADC_AIN8 32L /**< \brief ADC signal: AIN8 on PB00 mux B */
-#define MUX_PB00B_ADC_AIN8 1L
-#define PINMUX_PB00B_ADC_AIN8 ((PIN_PB00B_ADC_AIN8 << 16) | MUX_PB00B_ADC_AIN8)
-#define PORT_PB00B_ADC_AIN8 (1ul << 0)
-#define PIN_PB01B_ADC_AIN9 33L /**< \brief ADC signal: AIN9 on PB01 mux B */
-#define MUX_PB01B_ADC_AIN9 1L
-#define PINMUX_PB01B_ADC_AIN9 ((PIN_PB01B_ADC_AIN9 << 16) | MUX_PB01B_ADC_AIN9)
-#define PORT_PB01B_ADC_AIN9 (1ul << 1)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PB04B_ADC_AIN12 36L /**< \brief ADC signal: AIN12 on PB04 mux B */
-#define MUX_PB04B_ADC_AIN12 1L
-#define PINMUX_PB04B_ADC_AIN12 ((PIN_PB04B_ADC_AIN12 << 16) | MUX_PB04B_ADC_AIN12)
-#define PORT_PB04B_ADC_AIN12 (1ul << 4)
-#define PIN_PB05B_ADC_AIN13 37L /**< \brief ADC signal: AIN13 on PB05 mux B */
-#define MUX_PB05B_ADC_AIN13 1L
-#define PINMUX_PB05B_ADC_AIN13 ((PIN_PB05B_ADC_AIN13 << 16) | MUX_PB05B_ADC_AIN13)
-#define PORT_PB05B_ADC_AIN13 (1ul << 5)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA12H_AC_CMP0 12L /**< \brief AC signal: CMP0 on PA12 mux H */
-#define MUX_PA12H_AC_CMP0 7L
-#define PINMUX_PA12H_AC_CMP0 ((PIN_PA12H_AC_CMP0 << 16) | MUX_PA12H_AC_CMP0)
-#define PORT_PA12H_AC_CMP0 (1ul << 12)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA13H_AC_CMP1 13L /**< \brief AC signal: CMP1 on PA13 mux H */
-#define MUX_PA13H_AC_CMP1 7L
-#define PINMUX_PA13H_AC_CMP1 ((PIN_PA13H_AC_CMP1 << 16) | MUX_PA13H_AC_CMP1)
-#define PORT_PA13H_AC_CMP1 (1ul << 13)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for AC1 peripheral ========== */
-#define PIN_PB04B_AC1_AIN0 36L /**< \brief AC1 signal: AIN0 on PB04 mux B */
-#define MUX_PB04B_AC1_AIN0 1L
-#define PINMUX_PB04B_AC1_AIN0 ((PIN_PB04B_AC1_AIN0 << 16) | MUX_PB04B_AC1_AIN0)
-#define PORT_PB04B_AC1_AIN0 (1ul << 4)
-#define PIN_PB05B_AC1_AIN1 37L /**< \brief AC1 signal: AIN1 on PB05 mux B */
-#define MUX_PB05B_AC1_AIN1 1L
-#define PINMUX_PB05B_AC1_AIN1 ((PIN_PB05B_AC1_AIN1 << 16) | MUX_PB05B_AC1_AIN1)
-#define PORT_PB05B_AC1_AIN1 (1ul << 5)
-#define PIN_PB02B_AC1_AIN2 34L /**< \brief AC1 signal: AIN2 on PB02 mux B */
-#define MUX_PB02B_AC1_AIN2 1L
-#define PINMUX_PB02B_AC1_AIN2 ((PIN_PB02B_AC1_AIN2 << 16) | MUX_PB02B_AC1_AIN2)
-#define PORT_PB02B_AC1_AIN2 (1ul << 2)
-#define PIN_PB03B_AC1_AIN3 35L /**< \brief AC1 signal: AIN3 on PB03 mux B */
-#define MUX_PB03B_AC1_AIN3 1L
-#define PINMUX_PB03B_AC1_AIN3 ((PIN_PB03B_AC1_AIN3 << 16) | MUX_PB03B_AC1_AIN3)
-#define PORT_PB03B_AC1_AIN3 (1ul << 3)
-#define PIN_PA24H_AC1_CMP0 24L /**< \brief AC1 signal: CMP0 on PA24 mux H */
-#define MUX_PA24H_AC1_CMP0 7L
-#define PINMUX_PA24H_AC1_CMP0 ((PIN_PA24H_AC1_CMP0 << 16) | MUX_PA24H_AC1_CMP0)
-#define PORT_PA24H_AC1_CMP0 (1ul << 24)
-#define PIN_PA25H_AC1_CMP1 25L /**< \brief AC1 signal: CMP1 on PA25 mux H */
-#define MUX_PA25H_AC1_CMP1 7L
-#define PINMUX_PA25H_AC1_CMP1 ((PIN_PA25H_AC1_CMP1 << 16) | MUX_PA25H_AC1_CMP1)
-#define PORT_PA25H_AC1_CMP1 (1ul << 25)
-
-#endif /* _SAMD21G15L_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g16a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g16a.h
deleted file mode 100644
index 398234c..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g16a.h
+++ /dev/null
@@ -1,908 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21G16A
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _SAMD21G16A_PIO_
-#define _SAMD21G16A_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA12 12 /**< \brief Pin Number for PA12 */
-#define PORT_PA12 (1ul << 12) /**< \brief PORT Mask for PA12 */
-#define PIN_PA13 13 /**< \brief Pin Number for PA13 */
-#define PORT_PA13 (1ul << 13) /**< \brief PORT Mask for PA13 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA20 20 /**< \brief Pin Number for PA20 */
-#define PORT_PA20 (1ul << 20) /**< \brief PORT Mask for PA20 */
-#define PIN_PA21 21 /**< \brief Pin Number for PA21 */
-#define PORT_PA21 (1ul << 21) /**< \brief PORT Mask for PA21 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB08 40 /**< \brief Pin Number for PB08 */
-#define PORT_PB08 (1ul << 8) /**< \brief PORT Mask for PB08 */
-#define PIN_PB09 41 /**< \brief Pin Number for PB09 */
-#define PORT_PB09 (1ul << 9) /**< \brief PORT Mask for PB09 */
-#define PIN_PB10 42 /**< \brief Pin Number for PB10 */
-#define PORT_PB10 (1ul << 10) /**< \brief PORT Mask for PB10 */
-#define PIN_PB11 43 /**< \brief Pin Number for PB11 */
-#define PORT_PB11 (1ul << 11) /**< \brief PORT Mask for PB11 */
-#define PIN_PB22 54 /**< \brief Pin Number for PB22 */
-#define PORT_PB22 (1ul << 22) /**< \brief PORT Mask for PB22 */
-#define PIN_PB23 55 /**< \brief Pin Number for PB23 */
-#define PORT_PB23 (1ul << 23) /**< \brief PORT Mask for PB23 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PB22H_GCLK_IO0 54L /**< \brief GCLK signal: IO0 on PB22 mux H */
-#define MUX_PB22H_GCLK_IO0 7L
-#define PINMUX_PB22H_GCLK_IO0 ((PIN_PB22H_GCLK_IO0 << 16) | MUX_PB22H_GCLK_IO0)
-#define PORT_PB22H_GCLK_IO0 (1ul << 22)
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PB23H_GCLK_IO1 55L /**< \brief GCLK signal: IO1 on PB23 mux H */
-#define MUX_PB23H_GCLK_IO1 7L
-#define PINMUX_PB23H_GCLK_IO1 ((PIN_PB23H_GCLK_IO1 << 16) | MUX_PB23H_GCLK_IO1)
-#define PORT_PB23H_GCLK_IO1 (1ul << 23)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA20H_GCLK_IO4 20L /**< \brief GCLK signal: IO4 on PA20 mux H */
-#define MUX_PA20H_GCLK_IO4 7L
-#define PINMUX_PA20H_GCLK_IO4 ((PIN_PA20H_GCLK_IO4 << 16) | MUX_PA20H_GCLK_IO4)
-#define PORT_PA20H_GCLK_IO4 (1ul << 20)
-#define PIN_PB10H_GCLK_IO4 42L /**< \brief GCLK signal: IO4 on PB10 mux H */
-#define MUX_PB10H_GCLK_IO4 7L
-#define PINMUX_PB10H_GCLK_IO4 ((PIN_PB10H_GCLK_IO4 << 16) | MUX_PB10H_GCLK_IO4)
-#define PORT_PB10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA21H_GCLK_IO5 21L /**< \brief GCLK signal: IO5 on PA21 mux H */
-#define MUX_PA21H_GCLK_IO5 7L
-#define PINMUX_PA21H_GCLK_IO5 ((PIN_PA21H_GCLK_IO5 << 16) | MUX_PA21H_GCLK_IO5)
-#define PORT_PA21H_GCLK_IO5 (1ul << 21)
-#define PIN_PB11H_GCLK_IO5 43L /**< \brief GCLK signal: IO5 on PB11 mux H */
-#define MUX_PB11H_GCLK_IO5 7L
-#define PINMUX_PB11H_GCLK_IO5 ((PIN_PB11H_GCLK_IO5 << 16) | MUX_PB11H_GCLK_IO5)
-#define PORT_PB11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA20A_EIC_EXTINT4 20L /**< \brief EIC signal: EXTINT4 on PA20 mux A */
-#define MUX_PA20A_EIC_EXTINT4 0L
-#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4)
-#define PORT_PA20A_EIC_EXTINT4 (1ul << 20)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA21A_EIC_EXTINT5 21L /**< \brief EIC signal: EXTINT5 on PA21 mux A */
-#define MUX_PA21A_EIC_EXTINT5 0L
-#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5)
-#define PORT_PA21A_EIC_EXTINT5 (1ul << 21)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PB22A_EIC_EXTINT6 54L /**< \brief EIC signal: EXTINT6 on PB22 mux A */
-#define MUX_PB22A_EIC_EXTINT6 0L
-#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6)
-#define PORT_PB22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PB23A_EIC_EXTINT7 55L /**< \brief EIC signal: EXTINT7 on PB23 mux A */
-#define MUX_PB23A_EIC_EXTINT7 0L
-#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7)
-#define PORT_PB23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PB08A_EIC_EXTINT8 40L /**< \brief EIC signal: EXTINT8 on PB08 mux A */
-#define MUX_PB08A_EIC_EXTINT8 0L
-#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8)
-#define PORT_PB08A_EIC_EXTINT8 (1ul << 8)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PB09A_EIC_EXTINT9 41L /**< \brief EIC signal: EXTINT9 on PB09 mux A */
-#define MUX_PB09A_EIC_EXTINT9 0L
-#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9)
-#define PORT_PB09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PB10A_EIC_EXTINT10 42L /**< \brief EIC signal: EXTINT10 on PB10 mux A */
-#define MUX_PB10A_EIC_EXTINT10 0L
-#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10)
-#define PORT_PB10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PB11A_EIC_EXTINT11 43L /**< \brief EIC signal: EXTINT11 on PB11 mux A */
-#define MUX_PB11A_EIC_EXTINT11 0L
-#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11)
-#define PORT_PB11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA12A_EIC_EXTINT12 12L /**< \brief EIC signal: EXTINT12 on PA12 mux A */
-#define MUX_PA12A_EIC_EXTINT12 0L
-#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12)
-#define PORT_PA12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA13A_EIC_EXTINT13 13L /**< \brief EIC signal: EXTINT13 on PA13 mux A */
-#define MUX_PA13A_EIC_EXTINT13 0L
-#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13)
-#define PORT_PA13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA12C_SERCOM2_PAD0 12L /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */
-#define MUX_PA12C_SERCOM2_PAD0 2L
-#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0)
-#define PORT_PA12C_SERCOM2_PAD0 (1ul << 12)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA13C_SERCOM2_PAD1 13L /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */
-#define MUX_PA13C_SERCOM2_PAD1 2L
-#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1)
-#define PORT_PA13C_SERCOM2_PAD1 (1ul << 13)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA20D_SERCOM3_PAD2 20L /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */
-#define MUX_PA20D_SERCOM3_PAD2 3L
-#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2)
-#define PORT_PA20D_SERCOM3_PAD2 (1ul << 20)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA21D_SERCOM3_PAD3 21L /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */
-#define MUX_PA21D_SERCOM3_PAD3 3L
-#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3)
-#define PORT_PA21D_SERCOM3_PAD3 (1ul << 21)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for SERCOM4 peripheral ========== */
-#define PIN_PA12D_SERCOM4_PAD0 12L /**< \brief SERCOM4 signal: PAD0 on PA12 mux D */
-#define MUX_PA12D_SERCOM4_PAD0 3L
-#define PINMUX_PA12D_SERCOM4_PAD0 ((PIN_PA12D_SERCOM4_PAD0 << 16) | MUX_PA12D_SERCOM4_PAD0)
-#define PORT_PA12D_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PB08D_SERCOM4_PAD0 40L /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */
-#define MUX_PB08D_SERCOM4_PAD0 3L
-#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0)
-#define PORT_PB08D_SERCOM4_PAD0 (1ul << 8)
-#define PIN_PA13D_SERCOM4_PAD1 13L /**< \brief SERCOM4 signal: PAD1 on PA13 mux D */
-#define MUX_PA13D_SERCOM4_PAD1 3L
-#define PINMUX_PA13D_SERCOM4_PAD1 ((PIN_PA13D_SERCOM4_PAD1 << 16) | MUX_PA13D_SERCOM4_PAD1)
-#define PORT_PA13D_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PB09D_SERCOM4_PAD1 41L /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */
-#define MUX_PB09D_SERCOM4_PAD1 3L
-#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1)
-#define PORT_PB09D_SERCOM4_PAD1 (1ul << 9)
-#define PIN_PA14D_SERCOM4_PAD2 14L /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */
-#define MUX_PA14D_SERCOM4_PAD2 3L
-#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2)
-#define PORT_PA14D_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PB10D_SERCOM4_PAD2 42L /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */
-#define MUX_PB10D_SERCOM4_PAD2 3L
-#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2)
-#define PORT_PB10D_SERCOM4_PAD2 (1ul << 10)
-#define PIN_PA15D_SERCOM4_PAD3 15L /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */
-#define MUX_PA15D_SERCOM4_PAD3 3L
-#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3)
-#define PORT_PA15D_SERCOM4_PAD3 (1ul << 15)
-#define PIN_PB11D_SERCOM4_PAD3 43L /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */
-#define MUX_PB11D_SERCOM4_PAD3 3L
-#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3)
-#define PORT_PB11D_SERCOM4_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM5 peripheral ========== */
-#define PIN_PA22D_SERCOM5_PAD0 22L /**< \brief SERCOM5 signal: PAD0 on PA22 mux D */
-#define MUX_PA22D_SERCOM5_PAD0 3L
-#define PINMUX_PA22D_SERCOM5_PAD0 ((PIN_PA22D_SERCOM5_PAD0 << 16) | MUX_PA22D_SERCOM5_PAD0)
-#define PORT_PA22D_SERCOM5_PAD0 (1ul << 22)
-#define PIN_PB02D_SERCOM5_PAD0 34L /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */
-#define MUX_PB02D_SERCOM5_PAD0 3L
-#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0)
-#define PORT_PB02D_SERCOM5_PAD0 (1ul << 2)
-#define PIN_PA23D_SERCOM5_PAD1 23L /**< \brief SERCOM5 signal: PAD1 on PA23 mux D */
-#define MUX_PA23D_SERCOM5_PAD1 3L
-#define PINMUX_PA23D_SERCOM5_PAD1 ((PIN_PA23D_SERCOM5_PAD1 << 16) | MUX_PA23D_SERCOM5_PAD1)
-#define PORT_PA23D_SERCOM5_PAD1 (1ul << 23)
-#define PIN_PB03D_SERCOM5_PAD1 35L /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */
-#define MUX_PB03D_SERCOM5_PAD1 3L
-#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1)
-#define PORT_PB03D_SERCOM5_PAD1 (1ul << 3)
-#define PIN_PA24D_SERCOM5_PAD2 24L /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */
-#define MUX_PA24D_SERCOM5_PAD2 3L
-#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2)
-#define PORT_PA24D_SERCOM5_PAD2 (1ul << 24)
-#define PIN_PB22D_SERCOM5_PAD2 54L /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */
-#define MUX_PB22D_SERCOM5_PAD2 3L
-#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2)
-#define PORT_PB22D_SERCOM5_PAD2 (1ul << 22)
-#define PIN_PA20C_SERCOM5_PAD2 20L /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */
-#define MUX_PA20C_SERCOM5_PAD2 2L
-#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2)
-#define PORT_PA20C_SERCOM5_PAD2 (1ul << 20)
-#define PIN_PA25D_SERCOM5_PAD3 25L /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */
-#define MUX_PA25D_SERCOM5_PAD3 3L
-#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3)
-#define PORT_PA25D_SERCOM5_PAD3 (1ul << 25)
-#define PIN_PB23D_SERCOM5_PAD3 55L /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */
-#define MUX_PB23D_SERCOM5_PAD3 3L
-#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3)
-#define PORT_PB23D_SERCOM5_PAD3 (1ul << 23)
-#define PIN_PA21C_SERCOM5_PAD3 21L /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */
-#define MUX_PA21C_SERCOM5_PAD3 2L
-#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3)
-#define PORT_PA21C_SERCOM5_PAD3 (1ul << 21)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PB10F_TCC0_WO4 42L /**< \brief TCC0 signal: WO4 on PB10 mux F */
-#define MUX_PB10F_TCC0_WO4 5L
-#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4)
-#define PORT_PB10F_TCC0_WO4 (1ul << 10)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PB11F_TCC0_WO5 43L /**< \brief TCC0 signal: WO5 on PB11 mux F */
-#define MUX_PB11F_TCC0_WO5 5L
-#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5)
-#define PORT_PB11F_TCC0_WO5 (1ul << 11)
-#define PIN_PA12F_TCC0_WO6 12L /**< \brief TCC0 signal: WO6 on PA12 mux F */
-#define MUX_PA12F_TCC0_WO6 5L
-#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6)
-#define PORT_PA12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA20F_TCC0_WO6 20L /**< \brief TCC0 signal: WO6 on PA20 mux F */
-#define MUX_PA20F_TCC0_WO6 5L
-#define PINMUX_PA20F_TCC0_WO6 ((PIN_PA20F_TCC0_WO6 << 16) | MUX_PA20F_TCC0_WO6)
-#define PORT_PA20F_TCC0_WO6 (1ul << 20)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA13F_TCC0_WO7 13L /**< \brief TCC0 signal: WO7 on PA13 mux F */
-#define MUX_PA13F_TCC0_WO7 5L
-#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7)
-#define PORT_PA13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA21F_TCC0_WO7 21L /**< \brief TCC0 signal: WO7 on PA21 mux F */
-#define MUX_PA21F_TCC0_WO7 5L
-#define PINMUX_PA21F_TCC0_WO7 ((PIN_PA21F_TCC0_WO7 << 16) | MUX_PA21F_TCC0_WO7)
-#define PORT_PA21F_TCC0_WO7 (1ul << 21)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA12E_TCC2_WO0 12L /**< \brief TCC2 signal: WO0 on PA12 mux E */
-#define MUX_PA12E_TCC2_WO0 4L
-#define PINMUX_PA12E_TCC2_WO0 ((PIN_PA12E_TCC2_WO0 << 16) | MUX_PA12E_TCC2_WO0)
-#define PORT_PA12E_TCC2_WO0 (1ul << 12)
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA13E_TCC2_WO1 13L /**< \brief TCC2 signal: WO1 on PA13 mux E */
-#define MUX_PA13E_TCC2_WO1 4L
-#define PINMUX_PA13E_TCC2_WO1 ((PIN_PA13E_TCC2_WO1 << 16) | MUX_PA13E_TCC2_WO1)
-#define PORT_PA13E_TCC2_WO1 (1ul << 13)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PB08E_TC4_WO0 40L /**< \brief TC4 signal: WO0 on PB08 mux E */
-#define MUX_PB08E_TC4_WO0 4L
-#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0)
-#define PORT_PB08E_TC4_WO0 (1ul << 8)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-#define PIN_PB09E_TC4_WO1 41L /**< \brief TC4 signal: WO1 on PB09 mux E */
-#define MUX_PB09E_TC4_WO1 4L
-#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1)
-#define PORT_PB09E_TC4_WO1 (1ul << 9)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PB10E_TC5_WO0 42L /**< \brief TC5 signal: WO0 on PB10 mux E */
-#define MUX_PB10E_TC5_WO0 4L
-#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0)
-#define PORT_PB10E_TC5_WO0 (1ul << 10)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-#define PIN_PB11E_TC5_WO1 43L /**< \brief TC5 signal: WO1 on PB11 mux E */
-#define MUX_PB11E_TC5_WO1 4L
-#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1)
-#define PORT_PB11E_TC5_WO1 (1ul << 11)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PB08B_ADC_AIN2 40L /**< \brief ADC signal: AIN2 on PB08 mux B */
-#define MUX_PB08B_ADC_AIN2 1L
-#define PINMUX_PB08B_ADC_AIN2 ((PIN_PB08B_ADC_AIN2 << 16) | MUX_PB08B_ADC_AIN2)
-#define PORT_PB08B_ADC_AIN2 (1ul << 8)
-#define PIN_PB09B_ADC_AIN3 41L /**< \brief ADC signal: AIN3 on PB09 mux B */
-#define MUX_PB09B_ADC_AIN3 1L
-#define PINMUX_PB09B_ADC_AIN3 ((PIN_PB09B_ADC_AIN3 << 16) | MUX_PB09B_ADC_AIN3)
-#define PORT_PB09B_ADC_AIN3 (1ul << 9)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA12H_AC_CMP0 12L /**< \brief AC signal: CMP0 on PA12 mux H */
-#define MUX_PA12H_AC_CMP0 7L
-#define PINMUX_PA12H_AC_CMP0 ((PIN_PA12H_AC_CMP0 << 16) | MUX_PA12H_AC_CMP0)
-#define PORT_PA12H_AC_CMP0 (1ul << 12)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA13H_AC_CMP1 13L /**< \brief AC signal: CMP1 on PA13 mux H */
-#define MUX_PA13H_AC_CMP1 7L
-#define PINMUX_PA13H_AC_CMP1 ((PIN_PA13H_AC_CMP1 << 16) | MUX_PA13H_AC_CMP1)
-#define PORT_PA13H_AC_CMP1 (1ul << 13)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA21G_I2S_FS0 21L /**< \brief I2S signal: FS0 on PA21 mux G */
-#define MUX_PA21G_I2S_FS0 6L
-#define PINMUX_PA21G_I2S_FS0 ((PIN_PA21G_I2S_FS0 << 16) | MUX_PA21G_I2S_FS0)
-#define PORT_PA21G_I2S_FS0 (1ul << 21)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PB10G_I2S_MCK1 42L /**< \brief I2S signal: MCK1 on PB10 mux G */
-#define MUX_PB10G_I2S_MCK1 6L
-#define PINMUX_PB10G_I2S_MCK1 ((PIN_PB10G_I2S_MCK1 << 16) | MUX_PB10G_I2S_MCK1)
-#define PORT_PB10G_I2S_MCK1 (1ul << 10)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA20G_I2S_SCK0 20L /**< \brief I2S signal: SCK0 on PA20 mux G */
-#define MUX_PA20G_I2S_SCK0 6L
-#define PINMUX_PA20G_I2S_SCK0 ((PIN_PA20G_I2S_SCK0 << 16) | MUX_PA20G_I2S_SCK0)
-#define PORT_PA20G_I2S_SCK0 (1ul << 20)
-#define PIN_PB11G_I2S_SCK1 43L /**< \brief I2S signal: SCK1 on PB11 mux G */
-#define MUX_PB11G_I2S_SCK1 6L
-#define PINMUX_PB11G_I2S_SCK1 ((PIN_PB11G_I2S_SCK1 << 16) | MUX_PB11G_I2S_SCK1)
-#define PORT_PB11G_I2S_SCK1 (1ul << 11)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-
-#endif /* _SAMD21G16A_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g16b.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g16b.h
deleted file mode 100644
index ed463a8..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g16b.h
+++ /dev/null
@@ -1,905 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21G16B
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21G16B_PIO_
-#define _SAMD21G16B_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA12 12 /**< \brief Pin Number for PA12 */
-#define PORT_PA12 (1ul << 12) /**< \brief PORT Mask for PA12 */
-#define PIN_PA13 13 /**< \brief Pin Number for PA13 */
-#define PORT_PA13 (1ul << 13) /**< \brief PORT Mask for PA13 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA20 20 /**< \brief Pin Number for PA20 */
-#define PORT_PA20 (1ul << 20) /**< \brief PORT Mask for PA20 */
-#define PIN_PA21 21 /**< \brief Pin Number for PA21 */
-#define PORT_PA21 (1ul << 21) /**< \brief PORT Mask for PA21 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB08 40 /**< \brief Pin Number for PB08 */
-#define PORT_PB08 (1ul << 8) /**< \brief PORT Mask for PB08 */
-#define PIN_PB09 41 /**< \brief Pin Number for PB09 */
-#define PORT_PB09 (1ul << 9) /**< \brief PORT Mask for PB09 */
-#define PIN_PB10 42 /**< \brief Pin Number for PB10 */
-#define PORT_PB10 (1ul << 10) /**< \brief PORT Mask for PB10 */
-#define PIN_PB11 43 /**< \brief Pin Number for PB11 */
-#define PORT_PB11 (1ul << 11) /**< \brief PORT Mask for PB11 */
-#define PIN_PB22 54 /**< \brief Pin Number for PB22 */
-#define PORT_PB22 (1ul << 22) /**< \brief PORT Mask for PB22 */
-#define PIN_PB23 55 /**< \brief Pin Number for PB23 */
-#define PORT_PB23 (1ul << 23) /**< \brief PORT Mask for PB23 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PB22H_GCLK_IO0 54L /**< \brief GCLK signal: IO0 on PB22 mux H */
-#define MUX_PB22H_GCLK_IO0 7L
-#define PINMUX_PB22H_GCLK_IO0 ((PIN_PB22H_GCLK_IO0 << 16) | MUX_PB22H_GCLK_IO0)
-#define PORT_PB22H_GCLK_IO0 (1ul << 22)
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PB23H_GCLK_IO1 55L /**< \brief GCLK signal: IO1 on PB23 mux H */
-#define MUX_PB23H_GCLK_IO1 7L
-#define PINMUX_PB23H_GCLK_IO1 ((PIN_PB23H_GCLK_IO1 << 16) | MUX_PB23H_GCLK_IO1)
-#define PORT_PB23H_GCLK_IO1 (1ul << 23)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA20H_GCLK_IO4 20L /**< \brief GCLK signal: IO4 on PA20 mux H */
-#define MUX_PA20H_GCLK_IO4 7L
-#define PINMUX_PA20H_GCLK_IO4 ((PIN_PA20H_GCLK_IO4 << 16) | MUX_PA20H_GCLK_IO4)
-#define PORT_PA20H_GCLK_IO4 (1ul << 20)
-#define PIN_PB10H_GCLK_IO4 42L /**< \brief GCLK signal: IO4 on PB10 mux H */
-#define MUX_PB10H_GCLK_IO4 7L
-#define PINMUX_PB10H_GCLK_IO4 ((PIN_PB10H_GCLK_IO4 << 16) | MUX_PB10H_GCLK_IO4)
-#define PORT_PB10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA21H_GCLK_IO5 21L /**< \brief GCLK signal: IO5 on PA21 mux H */
-#define MUX_PA21H_GCLK_IO5 7L
-#define PINMUX_PA21H_GCLK_IO5 ((PIN_PA21H_GCLK_IO5 << 16) | MUX_PA21H_GCLK_IO5)
-#define PORT_PA21H_GCLK_IO5 (1ul << 21)
-#define PIN_PB11H_GCLK_IO5 43L /**< \brief GCLK signal: IO5 on PB11 mux H */
-#define MUX_PB11H_GCLK_IO5 7L
-#define PINMUX_PB11H_GCLK_IO5 ((PIN_PB11H_GCLK_IO5 << 16) | MUX_PB11H_GCLK_IO5)
-#define PORT_PB11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA20A_EIC_EXTINT4 20L /**< \brief EIC signal: EXTINT4 on PA20 mux A */
-#define MUX_PA20A_EIC_EXTINT4 0L
-#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4)
-#define PORT_PA20A_EIC_EXTINT4 (1ul << 20)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA21A_EIC_EXTINT5 21L /**< \brief EIC signal: EXTINT5 on PA21 mux A */
-#define MUX_PA21A_EIC_EXTINT5 0L
-#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5)
-#define PORT_PA21A_EIC_EXTINT5 (1ul << 21)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PB22A_EIC_EXTINT6 54L /**< \brief EIC signal: EXTINT6 on PB22 mux A */
-#define MUX_PB22A_EIC_EXTINT6 0L
-#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6)
-#define PORT_PB22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PB23A_EIC_EXTINT7 55L /**< \brief EIC signal: EXTINT7 on PB23 mux A */
-#define MUX_PB23A_EIC_EXTINT7 0L
-#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7)
-#define PORT_PB23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PB08A_EIC_EXTINT8 40L /**< \brief EIC signal: EXTINT8 on PB08 mux A */
-#define MUX_PB08A_EIC_EXTINT8 0L
-#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8)
-#define PORT_PB08A_EIC_EXTINT8 (1ul << 8)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PB09A_EIC_EXTINT9 41L /**< \brief EIC signal: EXTINT9 on PB09 mux A */
-#define MUX_PB09A_EIC_EXTINT9 0L
-#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9)
-#define PORT_PB09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PB10A_EIC_EXTINT10 42L /**< \brief EIC signal: EXTINT10 on PB10 mux A */
-#define MUX_PB10A_EIC_EXTINT10 0L
-#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10)
-#define PORT_PB10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PB11A_EIC_EXTINT11 43L /**< \brief EIC signal: EXTINT11 on PB11 mux A */
-#define MUX_PB11A_EIC_EXTINT11 0L
-#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11)
-#define PORT_PB11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA12A_EIC_EXTINT12 12L /**< \brief EIC signal: EXTINT12 on PA12 mux A */
-#define MUX_PA12A_EIC_EXTINT12 0L
-#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12)
-#define PORT_PA12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA13A_EIC_EXTINT13 13L /**< \brief EIC signal: EXTINT13 on PA13 mux A */
-#define MUX_PA13A_EIC_EXTINT13 0L
-#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13)
-#define PORT_PA13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA12C_SERCOM2_PAD0 12L /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */
-#define MUX_PA12C_SERCOM2_PAD0 2L
-#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0)
-#define PORT_PA12C_SERCOM2_PAD0 (1ul << 12)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA13C_SERCOM2_PAD1 13L /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */
-#define MUX_PA13C_SERCOM2_PAD1 2L
-#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1)
-#define PORT_PA13C_SERCOM2_PAD1 (1ul << 13)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA20D_SERCOM3_PAD2 20L /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */
-#define MUX_PA20D_SERCOM3_PAD2 3L
-#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2)
-#define PORT_PA20D_SERCOM3_PAD2 (1ul << 20)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA21D_SERCOM3_PAD3 21L /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */
-#define MUX_PA21D_SERCOM3_PAD3 3L
-#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3)
-#define PORT_PA21D_SERCOM3_PAD3 (1ul << 21)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for SERCOM4 peripheral ========== */
-#define PIN_PA12D_SERCOM4_PAD0 12L /**< \brief SERCOM4 signal: PAD0 on PA12 mux D */
-#define MUX_PA12D_SERCOM4_PAD0 3L
-#define PINMUX_PA12D_SERCOM4_PAD0 ((PIN_PA12D_SERCOM4_PAD0 << 16) | MUX_PA12D_SERCOM4_PAD0)
-#define PORT_PA12D_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PB08D_SERCOM4_PAD0 40L /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */
-#define MUX_PB08D_SERCOM4_PAD0 3L
-#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0)
-#define PORT_PB08D_SERCOM4_PAD0 (1ul << 8)
-#define PIN_PA13D_SERCOM4_PAD1 13L /**< \brief SERCOM4 signal: PAD1 on PA13 mux D */
-#define MUX_PA13D_SERCOM4_PAD1 3L
-#define PINMUX_PA13D_SERCOM4_PAD1 ((PIN_PA13D_SERCOM4_PAD1 << 16) | MUX_PA13D_SERCOM4_PAD1)
-#define PORT_PA13D_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PB09D_SERCOM4_PAD1 41L /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */
-#define MUX_PB09D_SERCOM4_PAD1 3L
-#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1)
-#define PORT_PB09D_SERCOM4_PAD1 (1ul << 9)
-#define PIN_PA14D_SERCOM4_PAD2 14L /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */
-#define MUX_PA14D_SERCOM4_PAD2 3L
-#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2)
-#define PORT_PA14D_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PB10D_SERCOM4_PAD2 42L /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */
-#define MUX_PB10D_SERCOM4_PAD2 3L
-#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2)
-#define PORT_PB10D_SERCOM4_PAD2 (1ul << 10)
-#define PIN_PA15D_SERCOM4_PAD3 15L /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */
-#define MUX_PA15D_SERCOM4_PAD3 3L
-#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3)
-#define PORT_PA15D_SERCOM4_PAD3 (1ul << 15)
-#define PIN_PB11D_SERCOM4_PAD3 43L /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */
-#define MUX_PB11D_SERCOM4_PAD3 3L
-#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3)
-#define PORT_PB11D_SERCOM4_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM5 peripheral ========== */
-#define PIN_PA22D_SERCOM5_PAD0 22L /**< \brief SERCOM5 signal: PAD0 on PA22 mux D */
-#define MUX_PA22D_SERCOM5_PAD0 3L
-#define PINMUX_PA22D_SERCOM5_PAD0 ((PIN_PA22D_SERCOM5_PAD0 << 16) | MUX_PA22D_SERCOM5_PAD0)
-#define PORT_PA22D_SERCOM5_PAD0 (1ul << 22)
-#define PIN_PB02D_SERCOM5_PAD0 34L /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */
-#define MUX_PB02D_SERCOM5_PAD0 3L
-#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0)
-#define PORT_PB02D_SERCOM5_PAD0 (1ul << 2)
-#define PIN_PA23D_SERCOM5_PAD1 23L /**< \brief SERCOM5 signal: PAD1 on PA23 mux D */
-#define MUX_PA23D_SERCOM5_PAD1 3L
-#define PINMUX_PA23D_SERCOM5_PAD1 ((PIN_PA23D_SERCOM5_PAD1 << 16) | MUX_PA23D_SERCOM5_PAD1)
-#define PORT_PA23D_SERCOM5_PAD1 (1ul << 23)
-#define PIN_PB03D_SERCOM5_PAD1 35L /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */
-#define MUX_PB03D_SERCOM5_PAD1 3L
-#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1)
-#define PORT_PB03D_SERCOM5_PAD1 (1ul << 3)
-#define PIN_PA24D_SERCOM5_PAD2 24L /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */
-#define MUX_PA24D_SERCOM5_PAD2 3L
-#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2)
-#define PORT_PA24D_SERCOM5_PAD2 (1ul << 24)
-#define PIN_PB22D_SERCOM5_PAD2 54L /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */
-#define MUX_PB22D_SERCOM5_PAD2 3L
-#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2)
-#define PORT_PB22D_SERCOM5_PAD2 (1ul << 22)
-#define PIN_PA20C_SERCOM5_PAD2 20L /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */
-#define MUX_PA20C_SERCOM5_PAD2 2L
-#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2)
-#define PORT_PA20C_SERCOM5_PAD2 (1ul << 20)
-#define PIN_PA25D_SERCOM5_PAD3 25L /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */
-#define MUX_PA25D_SERCOM5_PAD3 3L
-#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3)
-#define PORT_PA25D_SERCOM5_PAD3 (1ul << 25)
-#define PIN_PB23D_SERCOM5_PAD3 55L /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */
-#define MUX_PB23D_SERCOM5_PAD3 3L
-#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3)
-#define PORT_PB23D_SERCOM5_PAD3 (1ul << 23)
-#define PIN_PA21C_SERCOM5_PAD3 21L /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */
-#define MUX_PA21C_SERCOM5_PAD3 2L
-#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3)
-#define PORT_PA21C_SERCOM5_PAD3 (1ul << 21)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PB10F_TCC0_WO4 42L /**< \brief TCC0 signal: WO4 on PB10 mux F */
-#define MUX_PB10F_TCC0_WO4 5L
-#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4)
-#define PORT_PB10F_TCC0_WO4 (1ul << 10)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PB11F_TCC0_WO5 43L /**< \brief TCC0 signal: WO5 on PB11 mux F */
-#define MUX_PB11F_TCC0_WO5 5L
-#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5)
-#define PORT_PB11F_TCC0_WO5 (1ul << 11)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA12F_TCC0_WO6 12L /**< \brief TCC0 signal: WO6 on PA12 mux F */
-#define MUX_PA12F_TCC0_WO6 5L
-#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6)
-#define PORT_PA12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA20F_TCC0_WO6 20L /**< \brief TCC0 signal: WO6 on PA20 mux F */
-#define MUX_PA20F_TCC0_WO6 5L
-#define PINMUX_PA20F_TCC0_WO6 ((PIN_PA20F_TCC0_WO6 << 16) | MUX_PA20F_TCC0_WO6)
-#define PORT_PA20F_TCC0_WO6 (1ul << 20)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA13F_TCC0_WO7 13L /**< \brief TCC0 signal: WO7 on PA13 mux F */
-#define MUX_PA13F_TCC0_WO7 5L
-#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7)
-#define PORT_PA13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA21F_TCC0_WO7 21L /**< \brief TCC0 signal: WO7 on PA21 mux F */
-#define MUX_PA21F_TCC0_WO7 5L
-#define PINMUX_PA21F_TCC0_WO7 ((PIN_PA21F_TCC0_WO7 << 16) | MUX_PA21F_TCC0_WO7)
-#define PORT_PA21F_TCC0_WO7 (1ul << 21)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA12E_TCC2_WO0 12L /**< \brief TCC2 signal: WO0 on PA12 mux E */
-#define MUX_PA12E_TCC2_WO0 4L
-#define PINMUX_PA12E_TCC2_WO0 ((PIN_PA12E_TCC2_WO0 << 16) | MUX_PA12E_TCC2_WO0)
-#define PORT_PA12E_TCC2_WO0 (1ul << 12)
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA13E_TCC2_WO1 13L /**< \brief TCC2 signal: WO1 on PA13 mux E */
-#define MUX_PA13E_TCC2_WO1 4L
-#define PINMUX_PA13E_TCC2_WO1 ((PIN_PA13E_TCC2_WO1 << 16) | MUX_PA13E_TCC2_WO1)
-#define PORT_PA13E_TCC2_WO1 (1ul << 13)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PB08E_TC4_WO0 40L /**< \brief TC4 signal: WO0 on PB08 mux E */
-#define MUX_PB08E_TC4_WO0 4L
-#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0)
-#define PORT_PB08E_TC4_WO0 (1ul << 8)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-#define PIN_PB09E_TC4_WO1 41L /**< \brief TC4 signal: WO1 on PB09 mux E */
-#define MUX_PB09E_TC4_WO1 4L
-#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1)
-#define PORT_PB09E_TC4_WO1 (1ul << 9)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PB10E_TC5_WO0 42L /**< \brief TC5 signal: WO0 on PB10 mux E */
-#define MUX_PB10E_TC5_WO0 4L
-#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0)
-#define PORT_PB10E_TC5_WO0 (1ul << 10)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-#define PIN_PB11E_TC5_WO1 43L /**< \brief TC5 signal: WO1 on PB11 mux E */
-#define MUX_PB11E_TC5_WO1 4L
-#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1)
-#define PORT_PB11E_TC5_WO1 (1ul << 11)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PB08B_ADC_AIN2 40L /**< \brief ADC signal: AIN2 on PB08 mux B */
-#define MUX_PB08B_ADC_AIN2 1L
-#define PINMUX_PB08B_ADC_AIN2 ((PIN_PB08B_ADC_AIN2 << 16) | MUX_PB08B_ADC_AIN2)
-#define PORT_PB08B_ADC_AIN2 (1ul << 8)
-#define PIN_PB09B_ADC_AIN3 41L /**< \brief ADC signal: AIN3 on PB09 mux B */
-#define MUX_PB09B_ADC_AIN3 1L
-#define PINMUX_PB09B_ADC_AIN3 ((PIN_PB09B_ADC_AIN3 << 16) | MUX_PB09B_ADC_AIN3)
-#define PORT_PB09B_ADC_AIN3 (1ul << 9)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA12H_AC_CMP0 12L /**< \brief AC signal: CMP0 on PA12 mux H */
-#define MUX_PA12H_AC_CMP0 7L
-#define PINMUX_PA12H_AC_CMP0 ((PIN_PA12H_AC_CMP0 << 16) | MUX_PA12H_AC_CMP0)
-#define PORT_PA12H_AC_CMP0 (1ul << 12)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA13H_AC_CMP1 13L /**< \brief AC signal: CMP1 on PA13 mux H */
-#define MUX_PA13H_AC_CMP1 7L
-#define PINMUX_PA13H_AC_CMP1 ((PIN_PA13H_AC_CMP1 << 16) | MUX_PA13H_AC_CMP1)
-#define PORT_PA13H_AC_CMP1 (1ul << 13)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA21G_I2S_FS0 21L /**< \brief I2S signal: FS0 on PA21 mux G */
-#define MUX_PA21G_I2S_FS0 6L
-#define PINMUX_PA21G_I2S_FS0 ((PIN_PA21G_I2S_FS0 << 16) | MUX_PA21G_I2S_FS0)
-#define PORT_PA21G_I2S_FS0 (1ul << 21)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PB10G_I2S_MCK1 42L /**< \brief I2S signal: MCK1 on PB10 mux G */
-#define MUX_PB10G_I2S_MCK1 6L
-#define PINMUX_PB10G_I2S_MCK1 ((PIN_PB10G_I2S_MCK1 << 16) | MUX_PB10G_I2S_MCK1)
-#define PORT_PB10G_I2S_MCK1 (1ul << 10)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA20G_I2S_SCK0 20L /**< \brief I2S signal: SCK0 on PA20 mux G */
-#define MUX_PA20G_I2S_SCK0 6L
-#define PINMUX_PA20G_I2S_SCK0 ((PIN_PA20G_I2S_SCK0 << 16) | MUX_PA20G_I2S_SCK0)
-#define PORT_PA20G_I2S_SCK0 (1ul << 20)
-#define PIN_PB11G_I2S_SCK1 43L /**< \brief I2S signal: SCK1 on PB11 mux G */
-#define MUX_PB11G_I2S_SCK1 6L
-#define PINMUX_PB11G_I2S_SCK1 ((PIN_PB11G_I2S_SCK1 << 16) | MUX_PB11G_I2S_SCK1)
-#define PORT_PB11G_I2S_SCK1 (1ul << 11)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-
-#endif /* _SAMD21G16B_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g16l.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g16l.h
deleted file mode 100644
index 41c64ba..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g16l.h
+++ /dev/null
@@ -1,894 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21G16L
- *
- * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21G16L_PIO_
-#define _SAMD21G16L_PIO_
-
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA12 12 /**< \brief Pin Number for PA12 */
-#define PORT_PA12 (1ul << 12) /**< \brief PORT Mask for PA12 */
-#define PIN_PA13 13 /**< \brief Pin Number for PA13 */
-#define PORT_PA13 (1ul << 13) /**< \brief PORT Mask for PA13 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA20 20 /**< \brief Pin Number for PA20 */
-#define PORT_PA20 (1ul << 20) /**< \brief PORT Mask for PA20 */
-#define PIN_PA21 21 /**< \brief Pin Number for PA21 */
-#define PORT_PA21 (1ul << 21) /**< \brief PORT Mask for PA21 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB00 32 /**< \brief Pin Number for PB00 */
-#define PORT_PB00 (1ul << 0) /**< \brief PORT Mask for PB00 */
-#define PIN_PB01 33 /**< \brief Pin Number for PB01 */
-#define PORT_PB01 (1ul << 1) /**< \brief PORT Mask for PB01 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB04 36 /**< \brief Pin Number for PB04 */
-#define PORT_PB04 (1ul << 4) /**< \brief PORT Mask for PB04 */
-#define PIN_PB05 37 /**< \brief Pin Number for PB05 */
-#define PORT_PB05 (1ul << 5) /**< \brief PORT Mask for PB05 */
-#define PIN_PB08 40 /**< \brief Pin Number for PB08 */
-#define PORT_PB08 (1ul << 8) /**< \brief PORT Mask for PB08 */
-#define PIN_PB09 41 /**< \brief Pin Number for PB09 */
-#define PORT_PB09 (1ul << 9) /**< \brief PORT Mask for PB09 */
-#define PIN_PB10 42 /**< \brief Pin Number for PB10 */
-#define PORT_PB10 (1ul << 10) /**< \brief PORT Mask for PB10 */
-#define PIN_PB11 43 /**< \brief Pin Number for PB11 */
-#define PORT_PB11 (1ul << 11) /**< \brief PORT Mask for PB11 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA20H_GCLK_IO4 20L /**< \brief GCLK signal: IO4 on PA20 mux H */
-#define MUX_PA20H_GCLK_IO4 7L
-#define PINMUX_PA20H_GCLK_IO4 ((PIN_PA20H_GCLK_IO4 << 16) | MUX_PA20H_GCLK_IO4)
-#define PORT_PA20H_GCLK_IO4 (1ul << 20)
-#define PIN_PB10H_GCLK_IO4 42L /**< \brief GCLK signal: IO4 on PB10 mux H */
-#define MUX_PB10H_GCLK_IO4 7L
-#define PINMUX_PB10H_GCLK_IO4 ((PIN_PB10H_GCLK_IO4 << 16) | MUX_PB10H_GCLK_IO4)
-#define PORT_PB10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA21H_GCLK_IO5 21L /**< \brief GCLK signal: IO5 on PA21 mux H */
-#define MUX_PA21H_GCLK_IO5 7L
-#define PINMUX_PA21H_GCLK_IO5 ((PIN_PA21H_GCLK_IO5 << 16) | MUX_PA21H_GCLK_IO5)
-#define PORT_PA21H_GCLK_IO5 (1ul << 21)
-#define PIN_PB11H_GCLK_IO5 43L /**< \brief GCLK signal: IO5 on PB11 mux H */
-#define MUX_PB11H_GCLK_IO5 7L
-#define PINMUX_PB11H_GCLK_IO5 ((PIN_PB11H_GCLK_IO5 << 16) | MUX_PB11H_GCLK_IO5)
-#define PORT_PB11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PB00A_EIC_EXTINT0 32L /**< \brief EIC signal: EXTINT0 on PB00 mux A */
-#define MUX_PB00A_EIC_EXTINT0 0L
-#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0)
-#define PORT_PB00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PB01A_EIC_EXTINT1 33L /**< \brief EIC signal: EXTINT1 on PB01 mux A */
-#define MUX_PB01A_EIC_EXTINT1 0L
-#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1)
-#define PORT_PB01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA20A_EIC_EXTINT4 20L /**< \brief EIC signal: EXTINT4 on PA20 mux A */
-#define MUX_PA20A_EIC_EXTINT4 0L
-#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4)
-#define PORT_PA20A_EIC_EXTINT4 (1ul << 20)
-#define PIN_PB04A_EIC_EXTINT4 36L /**< \brief EIC signal: EXTINT4 on PB04 mux A */
-#define MUX_PB04A_EIC_EXTINT4 0L
-#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4)
-#define PORT_PB04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA21A_EIC_EXTINT5 21L /**< \brief EIC signal: EXTINT5 on PA21 mux A */
-#define MUX_PA21A_EIC_EXTINT5 0L
-#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5)
-#define PORT_PA21A_EIC_EXTINT5 (1ul << 21)
-#define PIN_PB05A_EIC_EXTINT5 37L /**< \brief EIC signal: EXTINT5 on PB05 mux A */
-#define MUX_PB05A_EIC_EXTINT5 0L
-#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5)
-#define PORT_PB05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PB08A_EIC_EXTINT8 40L /**< \brief EIC signal: EXTINT8 on PB08 mux A */
-#define MUX_PB08A_EIC_EXTINT8 0L
-#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8)
-#define PORT_PB08A_EIC_EXTINT8 (1ul << 8)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PB09A_EIC_EXTINT9 41L /**< \brief EIC signal: EXTINT9 on PB09 mux A */
-#define MUX_PB09A_EIC_EXTINT9 0L
-#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9)
-#define PORT_PB09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PB10A_EIC_EXTINT10 42L /**< \brief EIC signal: EXTINT10 on PB10 mux A */
-#define MUX_PB10A_EIC_EXTINT10 0L
-#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10)
-#define PORT_PB10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PB11A_EIC_EXTINT11 43L /**< \brief EIC signal: EXTINT11 on PB11 mux A */
-#define MUX_PB11A_EIC_EXTINT11 0L
-#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11)
-#define PORT_PB11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA12A_EIC_EXTINT12 12L /**< \brief EIC signal: EXTINT12 on PA12 mux A */
-#define MUX_PA12A_EIC_EXTINT12 0L
-#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12)
-#define PORT_PA12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA13A_EIC_EXTINT13 13L /**< \brief EIC signal: EXTINT13 on PA13 mux A */
-#define MUX_PA13A_EIC_EXTINT13 0L
-#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13)
-#define PORT_PA13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA12C_SERCOM2_PAD0 12L /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */
-#define MUX_PA12C_SERCOM2_PAD0 2L
-#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0)
-#define PORT_PA12C_SERCOM2_PAD0 (1ul << 12)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA13C_SERCOM2_PAD1 13L /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */
-#define MUX_PA13C_SERCOM2_PAD1 2L
-#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1)
-#define PORT_PA13C_SERCOM2_PAD1 (1ul << 13)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA20D_SERCOM3_PAD2 20L /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */
-#define MUX_PA20D_SERCOM3_PAD2 3L
-#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2)
-#define PORT_PA20D_SERCOM3_PAD2 (1ul << 20)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA21D_SERCOM3_PAD3 21L /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */
-#define MUX_PA21D_SERCOM3_PAD3 3L
-#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3)
-#define PORT_PA21D_SERCOM3_PAD3 (1ul << 21)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for SERCOM4 peripheral ========== */
-#define PIN_PA12D_SERCOM4_PAD0 12L /**< \brief SERCOM4 signal: PAD0 on PA12 mux D */
-#define MUX_PA12D_SERCOM4_PAD0 3L
-#define PINMUX_PA12D_SERCOM4_PAD0 ((PIN_PA12D_SERCOM4_PAD0 << 16) | MUX_PA12D_SERCOM4_PAD0)
-#define PORT_PA12D_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PB08D_SERCOM4_PAD0 40L /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */
-#define MUX_PB08D_SERCOM4_PAD0 3L
-#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0)
-#define PORT_PB08D_SERCOM4_PAD0 (1ul << 8)
-#define PIN_PA13D_SERCOM4_PAD1 13L /**< \brief SERCOM4 signal: PAD1 on PA13 mux D */
-#define MUX_PA13D_SERCOM4_PAD1 3L
-#define PINMUX_PA13D_SERCOM4_PAD1 ((PIN_PA13D_SERCOM4_PAD1 << 16) | MUX_PA13D_SERCOM4_PAD1)
-#define PORT_PA13D_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PB09D_SERCOM4_PAD1 41L /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */
-#define MUX_PB09D_SERCOM4_PAD1 3L
-#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1)
-#define PORT_PB09D_SERCOM4_PAD1 (1ul << 9)
-#define PIN_PA14D_SERCOM4_PAD2 14L /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */
-#define MUX_PA14D_SERCOM4_PAD2 3L
-#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2)
-#define PORT_PA14D_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PB10D_SERCOM4_PAD2 42L /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */
-#define MUX_PB10D_SERCOM4_PAD2 3L
-#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2)
-#define PORT_PB10D_SERCOM4_PAD2 (1ul << 10)
-#define PIN_PA15D_SERCOM4_PAD3 15L /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */
-#define MUX_PA15D_SERCOM4_PAD3 3L
-#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3)
-#define PORT_PA15D_SERCOM4_PAD3 (1ul << 15)
-#define PIN_PB11D_SERCOM4_PAD3 43L /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */
-#define MUX_PB11D_SERCOM4_PAD3 3L
-#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3)
-#define PORT_PB11D_SERCOM4_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM5 peripheral ========== */
-#define PIN_PA22D_SERCOM5_PAD0 22L /**< \brief SERCOM5 signal: PAD0 on PA22 mux D */
-#define MUX_PA22D_SERCOM5_PAD0 3L
-#define PINMUX_PA22D_SERCOM5_PAD0 ((PIN_PA22D_SERCOM5_PAD0 << 16) | MUX_PA22D_SERCOM5_PAD0)
-#define PORT_PA22D_SERCOM5_PAD0 (1ul << 22)
-#define PIN_PB02D_SERCOM5_PAD0 34L /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */
-#define MUX_PB02D_SERCOM5_PAD0 3L
-#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0)
-#define PORT_PB02D_SERCOM5_PAD0 (1ul << 2)
-#define PIN_PA23D_SERCOM5_PAD1 23L /**< \brief SERCOM5 signal: PAD1 on PA23 mux D */
-#define MUX_PA23D_SERCOM5_PAD1 3L
-#define PINMUX_PA23D_SERCOM5_PAD1 ((PIN_PA23D_SERCOM5_PAD1 << 16) | MUX_PA23D_SERCOM5_PAD1)
-#define PORT_PA23D_SERCOM5_PAD1 (1ul << 23)
-#define PIN_PB03D_SERCOM5_PAD1 35L /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */
-#define MUX_PB03D_SERCOM5_PAD1 3L
-#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1)
-#define PORT_PB03D_SERCOM5_PAD1 (1ul << 3)
-#define PIN_PA24D_SERCOM5_PAD2 24L /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */
-#define MUX_PA24D_SERCOM5_PAD2 3L
-#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2)
-#define PORT_PA24D_SERCOM5_PAD2 (1ul << 24)
-#define PIN_PB00D_SERCOM5_PAD2 32L /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */
-#define MUX_PB00D_SERCOM5_PAD2 3L
-#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2)
-#define PORT_PB00D_SERCOM5_PAD2 (1ul << 0)
-#define PIN_PA20C_SERCOM5_PAD2 20L /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */
-#define MUX_PA20C_SERCOM5_PAD2 2L
-#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2)
-#define PORT_PA20C_SERCOM5_PAD2 (1ul << 20)
-#define PIN_PA25D_SERCOM5_PAD3 25L /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */
-#define MUX_PA25D_SERCOM5_PAD3 3L
-#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3)
-#define PORT_PA25D_SERCOM5_PAD3 (1ul << 25)
-#define PIN_PB01D_SERCOM5_PAD3 33L /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */
-#define MUX_PB01D_SERCOM5_PAD3 3L
-#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3)
-#define PORT_PB01D_SERCOM5_PAD3 (1ul << 1)
-#define PIN_PA21C_SERCOM5_PAD3 21L /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */
-#define MUX_PA21C_SERCOM5_PAD3 2L
-#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3)
-#define PORT_PA21C_SERCOM5_PAD3 (1ul << 21)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PB10F_TCC0_WO4 42L /**< \brief TCC0 signal: WO4 on PB10 mux F */
-#define MUX_PB10F_TCC0_WO4 5L
-#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4)
-#define PORT_PB10F_TCC0_WO4 (1ul << 10)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PB11F_TCC0_WO5 43L /**< \brief TCC0 signal: WO5 on PB11 mux F */
-#define MUX_PB11F_TCC0_WO5 5L
-#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5)
-#define PORT_PB11F_TCC0_WO5 (1ul << 11)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA12F_TCC0_WO6 12L /**< \brief TCC0 signal: WO6 on PA12 mux F */
-#define MUX_PA12F_TCC0_WO6 5L
-#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6)
-#define PORT_PA12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA20F_TCC0_WO6 20L /**< \brief TCC0 signal: WO6 on PA20 mux F */
-#define MUX_PA20F_TCC0_WO6 5L
-#define PINMUX_PA20F_TCC0_WO6 ((PIN_PA20F_TCC0_WO6 << 16) | MUX_PA20F_TCC0_WO6)
-#define PORT_PA20F_TCC0_WO6 (1ul << 20)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA13F_TCC0_WO7 13L /**< \brief TCC0 signal: WO7 on PA13 mux F */
-#define MUX_PA13F_TCC0_WO7 5L
-#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7)
-#define PORT_PA13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA21F_TCC0_WO7 21L /**< \brief TCC0 signal: WO7 on PA21 mux F */
-#define MUX_PA21F_TCC0_WO7 5L
-#define PINMUX_PA21F_TCC0_WO7 ((PIN_PA21F_TCC0_WO7 << 16) | MUX_PA21F_TCC0_WO7)
-#define PORT_PA21F_TCC0_WO7 (1ul << 21)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA12E_TCC2_WO0 12L /**< \brief TCC2 signal: WO0 on PA12 mux E */
-#define MUX_PA12E_TCC2_WO0 4L
-#define PINMUX_PA12E_TCC2_WO0 ((PIN_PA12E_TCC2_WO0 << 16) | MUX_PA12E_TCC2_WO0)
-#define PORT_PA12E_TCC2_WO0 (1ul << 12)
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA13E_TCC2_WO1 13L /**< \brief TCC2 signal: WO1 on PA13 mux E */
-#define MUX_PA13E_TCC2_WO1 4L
-#define PINMUX_PA13E_TCC2_WO1 ((PIN_PA13E_TCC2_WO1 << 16) | MUX_PA13E_TCC2_WO1)
-#define PORT_PA13E_TCC2_WO1 (1ul << 13)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PB08E_TC4_WO0 40L /**< \brief TC4 signal: WO0 on PB08 mux E */
-#define MUX_PB08E_TC4_WO0 4L
-#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0)
-#define PORT_PB08E_TC4_WO0 (1ul << 8)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-#define PIN_PB09E_TC4_WO1 41L /**< \brief TC4 signal: WO1 on PB09 mux E */
-#define MUX_PB09E_TC4_WO1 4L
-#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1)
-#define PORT_PB09E_TC4_WO1 (1ul << 9)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PB10E_TC5_WO0 42L /**< \brief TC5 signal: WO0 on PB10 mux E */
-#define MUX_PB10E_TC5_WO0 4L
-#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0)
-#define PORT_PB10E_TC5_WO0 (1ul << 10)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-#define PIN_PB11E_TC5_WO1 43L /**< \brief TC5 signal: WO1 on PB11 mux E */
-#define MUX_PB11E_TC5_WO1 4L
-#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1)
-#define PORT_PB11E_TC5_WO1 (1ul << 11)
-/* ========== PORT definition for TC6 peripheral ========== */
-#define PIN_PB02E_TC6_WO0 34L /**< \brief TC6 signal: WO0 on PB02 mux E */
-#define MUX_PB02E_TC6_WO0 4L
-#define PINMUX_PB02E_TC6_WO0 ((PIN_PB02E_TC6_WO0 << 16) | MUX_PB02E_TC6_WO0)
-#define PORT_PB02E_TC6_WO0 (1ul << 2)
-#define PIN_PB03E_TC6_WO1 35L /**< \brief TC6 signal: WO1 on PB03 mux E */
-#define MUX_PB03E_TC6_WO1 4L
-#define PINMUX_PB03E_TC6_WO1 ((PIN_PB03E_TC6_WO1 << 16) | MUX_PB03E_TC6_WO1)
-#define PORT_PB03E_TC6_WO1 (1ul << 3)
-/* ========== PORT definition for TC7 peripheral ========== */
-#define PIN_PA20E_TC7_WO0 20L /**< \brief TC7 signal: WO0 on PA20 mux E */
-#define MUX_PA20E_TC7_WO0 4L
-#define PINMUX_PA20E_TC7_WO0 ((PIN_PA20E_TC7_WO0 << 16) | MUX_PA20E_TC7_WO0)
-#define PORT_PA20E_TC7_WO0 (1ul << 20)
-#define PIN_PB00E_TC7_WO0 32L /**< \brief TC7 signal: WO0 on PB00 mux E */
-#define MUX_PB00E_TC7_WO0 4L
-#define PINMUX_PB00E_TC7_WO0 ((PIN_PB00E_TC7_WO0 << 16) | MUX_PB00E_TC7_WO0)
-#define PORT_PB00E_TC7_WO0 (1ul << 0)
-#define PIN_PA21E_TC7_WO1 21L /**< \brief TC7 signal: WO1 on PA21 mux E */
-#define MUX_PA21E_TC7_WO1 4L
-#define PINMUX_PA21E_TC7_WO1 ((PIN_PA21E_TC7_WO1 << 16) | MUX_PA21E_TC7_WO1)
-#define PORT_PA21E_TC7_WO1 (1ul << 21)
-#define PIN_PB01E_TC7_WO1 33L /**< \brief TC7 signal: WO1 on PB01 mux E */
-#define MUX_PB01E_TC7_WO1 4L
-#define PINMUX_PB01E_TC7_WO1 ((PIN_PB01E_TC7_WO1 << 16) | MUX_PB01E_TC7_WO1)
-#define PORT_PB01E_TC7_WO1 (1ul << 1)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PB08B_ADC_AIN2 40L /**< \brief ADC signal: AIN2 on PB08 mux B */
-#define MUX_PB08B_ADC_AIN2 1L
-#define PINMUX_PB08B_ADC_AIN2 ((PIN_PB08B_ADC_AIN2 << 16) | MUX_PB08B_ADC_AIN2)
-#define PORT_PB08B_ADC_AIN2 (1ul << 8)
-#define PIN_PB09B_ADC_AIN3 41L /**< \brief ADC signal: AIN3 on PB09 mux B */
-#define MUX_PB09B_ADC_AIN3 1L
-#define PINMUX_PB09B_ADC_AIN3 ((PIN_PB09B_ADC_AIN3 << 16) | MUX_PB09B_ADC_AIN3)
-#define PORT_PB09B_ADC_AIN3 (1ul << 9)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB00B_ADC_AIN8 32L /**< \brief ADC signal: AIN8 on PB00 mux B */
-#define MUX_PB00B_ADC_AIN8 1L
-#define PINMUX_PB00B_ADC_AIN8 ((PIN_PB00B_ADC_AIN8 << 16) | MUX_PB00B_ADC_AIN8)
-#define PORT_PB00B_ADC_AIN8 (1ul << 0)
-#define PIN_PB01B_ADC_AIN9 33L /**< \brief ADC signal: AIN9 on PB01 mux B */
-#define MUX_PB01B_ADC_AIN9 1L
-#define PINMUX_PB01B_ADC_AIN9 ((PIN_PB01B_ADC_AIN9 << 16) | MUX_PB01B_ADC_AIN9)
-#define PORT_PB01B_ADC_AIN9 (1ul << 1)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PB04B_ADC_AIN12 36L /**< \brief ADC signal: AIN12 on PB04 mux B */
-#define MUX_PB04B_ADC_AIN12 1L
-#define PINMUX_PB04B_ADC_AIN12 ((PIN_PB04B_ADC_AIN12 << 16) | MUX_PB04B_ADC_AIN12)
-#define PORT_PB04B_ADC_AIN12 (1ul << 4)
-#define PIN_PB05B_ADC_AIN13 37L /**< \brief ADC signal: AIN13 on PB05 mux B */
-#define MUX_PB05B_ADC_AIN13 1L
-#define PINMUX_PB05B_ADC_AIN13 ((PIN_PB05B_ADC_AIN13 << 16) | MUX_PB05B_ADC_AIN13)
-#define PORT_PB05B_ADC_AIN13 (1ul << 5)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA12H_AC_CMP0 12L /**< \brief AC signal: CMP0 on PA12 mux H */
-#define MUX_PA12H_AC_CMP0 7L
-#define PINMUX_PA12H_AC_CMP0 ((PIN_PA12H_AC_CMP0 << 16) | MUX_PA12H_AC_CMP0)
-#define PORT_PA12H_AC_CMP0 (1ul << 12)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA13H_AC_CMP1 13L /**< \brief AC signal: CMP1 on PA13 mux H */
-#define MUX_PA13H_AC_CMP1 7L
-#define PINMUX_PA13H_AC_CMP1 ((PIN_PA13H_AC_CMP1 << 16) | MUX_PA13H_AC_CMP1)
-#define PORT_PA13H_AC_CMP1 (1ul << 13)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for AC1 peripheral ========== */
-#define PIN_PB04B_AC1_AIN0 36L /**< \brief AC1 signal: AIN0 on PB04 mux B */
-#define MUX_PB04B_AC1_AIN0 1L
-#define PINMUX_PB04B_AC1_AIN0 ((PIN_PB04B_AC1_AIN0 << 16) | MUX_PB04B_AC1_AIN0)
-#define PORT_PB04B_AC1_AIN0 (1ul << 4)
-#define PIN_PB05B_AC1_AIN1 37L /**< \brief AC1 signal: AIN1 on PB05 mux B */
-#define MUX_PB05B_AC1_AIN1 1L
-#define PINMUX_PB05B_AC1_AIN1 ((PIN_PB05B_AC1_AIN1 << 16) | MUX_PB05B_AC1_AIN1)
-#define PORT_PB05B_AC1_AIN1 (1ul << 5)
-#define PIN_PB02B_AC1_AIN2 34L /**< \brief AC1 signal: AIN2 on PB02 mux B */
-#define MUX_PB02B_AC1_AIN2 1L
-#define PINMUX_PB02B_AC1_AIN2 ((PIN_PB02B_AC1_AIN2 << 16) | MUX_PB02B_AC1_AIN2)
-#define PORT_PB02B_AC1_AIN2 (1ul << 2)
-#define PIN_PB03B_AC1_AIN3 35L /**< \brief AC1 signal: AIN3 on PB03 mux B */
-#define MUX_PB03B_AC1_AIN3 1L
-#define PINMUX_PB03B_AC1_AIN3 ((PIN_PB03B_AC1_AIN3 << 16) | MUX_PB03B_AC1_AIN3)
-#define PORT_PB03B_AC1_AIN3 (1ul << 3)
-#define PIN_PA24H_AC1_CMP0 24L /**< \brief AC1 signal: CMP0 on PA24 mux H */
-#define MUX_PA24H_AC1_CMP0 7L
-#define PINMUX_PA24H_AC1_CMP0 ((PIN_PA24H_AC1_CMP0 << 16) | MUX_PA24H_AC1_CMP0)
-#define PORT_PA24H_AC1_CMP0 (1ul << 24)
-#define PIN_PA25H_AC1_CMP1 25L /**< \brief AC1 signal: CMP1 on PA25 mux H */
-#define MUX_PA25H_AC1_CMP1 7L
-#define PINMUX_PA25H_AC1_CMP1 ((PIN_PA25H_AC1_CMP1 << 16) | MUX_PA25H_AC1_CMP1)
-#define PORT_PA25H_AC1_CMP1 (1ul << 25)
-
-#endif /* _SAMD21G16L_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g17a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g17a.h
deleted file mode 100644
index 4284e10..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g17a.h
+++ /dev/null
@@ -1,908 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21G17A
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _SAMD21G17A_PIO_
-#define _SAMD21G17A_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA12 12 /**< \brief Pin Number for PA12 */
-#define PORT_PA12 (1ul << 12) /**< \brief PORT Mask for PA12 */
-#define PIN_PA13 13 /**< \brief Pin Number for PA13 */
-#define PORT_PA13 (1ul << 13) /**< \brief PORT Mask for PA13 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA20 20 /**< \brief Pin Number for PA20 */
-#define PORT_PA20 (1ul << 20) /**< \brief PORT Mask for PA20 */
-#define PIN_PA21 21 /**< \brief Pin Number for PA21 */
-#define PORT_PA21 (1ul << 21) /**< \brief PORT Mask for PA21 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB08 40 /**< \brief Pin Number for PB08 */
-#define PORT_PB08 (1ul << 8) /**< \brief PORT Mask for PB08 */
-#define PIN_PB09 41 /**< \brief Pin Number for PB09 */
-#define PORT_PB09 (1ul << 9) /**< \brief PORT Mask for PB09 */
-#define PIN_PB10 42 /**< \brief Pin Number for PB10 */
-#define PORT_PB10 (1ul << 10) /**< \brief PORT Mask for PB10 */
-#define PIN_PB11 43 /**< \brief Pin Number for PB11 */
-#define PORT_PB11 (1ul << 11) /**< \brief PORT Mask for PB11 */
-#define PIN_PB22 54 /**< \brief Pin Number for PB22 */
-#define PORT_PB22 (1ul << 22) /**< \brief PORT Mask for PB22 */
-#define PIN_PB23 55 /**< \brief Pin Number for PB23 */
-#define PORT_PB23 (1ul << 23) /**< \brief PORT Mask for PB23 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PB22H_GCLK_IO0 54L /**< \brief GCLK signal: IO0 on PB22 mux H */
-#define MUX_PB22H_GCLK_IO0 7L
-#define PINMUX_PB22H_GCLK_IO0 ((PIN_PB22H_GCLK_IO0 << 16) | MUX_PB22H_GCLK_IO0)
-#define PORT_PB22H_GCLK_IO0 (1ul << 22)
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PB23H_GCLK_IO1 55L /**< \brief GCLK signal: IO1 on PB23 mux H */
-#define MUX_PB23H_GCLK_IO1 7L
-#define PINMUX_PB23H_GCLK_IO1 ((PIN_PB23H_GCLK_IO1 << 16) | MUX_PB23H_GCLK_IO1)
-#define PORT_PB23H_GCLK_IO1 (1ul << 23)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA20H_GCLK_IO4 20L /**< \brief GCLK signal: IO4 on PA20 mux H */
-#define MUX_PA20H_GCLK_IO4 7L
-#define PINMUX_PA20H_GCLK_IO4 ((PIN_PA20H_GCLK_IO4 << 16) | MUX_PA20H_GCLK_IO4)
-#define PORT_PA20H_GCLK_IO4 (1ul << 20)
-#define PIN_PB10H_GCLK_IO4 42L /**< \brief GCLK signal: IO4 on PB10 mux H */
-#define MUX_PB10H_GCLK_IO4 7L
-#define PINMUX_PB10H_GCLK_IO4 ((PIN_PB10H_GCLK_IO4 << 16) | MUX_PB10H_GCLK_IO4)
-#define PORT_PB10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA21H_GCLK_IO5 21L /**< \brief GCLK signal: IO5 on PA21 mux H */
-#define MUX_PA21H_GCLK_IO5 7L
-#define PINMUX_PA21H_GCLK_IO5 ((PIN_PA21H_GCLK_IO5 << 16) | MUX_PA21H_GCLK_IO5)
-#define PORT_PA21H_GCLK_IO5 (1ul << 21)
-#define PIN_PB11H_GCLK_IO5 43L /**< \brief GCLK signal: IO5 on PB11 mux H */
-#define MUX_PB11H_GCLK_IO5 7L
-#define PINMUX_PB11H_GCLK_IO5 ((PIN_PB11H_GCLK_IO5 << 16) | MUX_PB11H_GCLK_IO5)
-#define PORT_PB11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA20A_EIC_EXTINT4 20L /**< \brief EIC signal: EXTINT4 on PA20 mux A */
-#define MUX_PA20A_EIC_EXTINT4 0L
-#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4)
-#define PORT_PA20A_EIC_EXTINT4 (1ul << 20)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA21A_EIC_EXTINT5 21L /**< \brief EIC signal: EXTINT5 on PA21 mux A */
-#define MUX_PA21A_EIC_EXTINT5 0L
-#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5)
-#define PORT_PA21A_EIC_EXTINT5 (1ul << 21)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PB22A_EIC_EXTINT6 54L /**< \brief EIC signal: EXTINT6 on PB22 mux A */
-#define MUX_PB22A_EIC_EXTINT6 0L
-#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6)
-#define PORT_PB22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PB23A_EIC_EXTINT7 55L /**< \brief EIC signal: EXTINT7 on PB23 mux A */
-#define MUX_PB23A_EIC_EXTINT7 0L
-#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7)
-#define PORT_PB23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PB08A_EIC_EXTINT8 40L /**< \brief EIC signal: EXTINT8 on PB08 mux A */
-#define MUX_PB08A_EIC_EXTINT8 0L
-#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8)
-#define PORT_PB08A_EIC_EXTINT8 (1ul << 8)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PB09A_EIC_EXTINT9 41L /**< \brief EIC signal: EXTINT9 on PB09 mux A */
-#define MUX_PB09A_EIC_EXTINT9 0L
-#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9)
-#define PORT_PB09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PB10A_EIC_EXTINT10 42L /**< \brief EIC signal: EXTINT10 on PB10 mux A */
-#define MUX_PB10A_EIC_EXTINT10 0L
-#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10)
-#define PORT_PB10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PB11A_EIC_EXTINT11 43L /**< \brief EIC signal: EXTINT11 on PB11 mux A */
-#define MUX_PB11A_EIC_EXTINT11 0L
-#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11)
-#define PORT_PB11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA12A_EIC_EXTINT12 12L /**< \brief EIC signal: EXTINT12 on PA12 mux A */
-#define MUX_PA12A_EIC_EXTINT12 0L
-#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12)
-#define PORT_PA12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA13A_EIC_EXTINT13 13L /**< \brief EIC signal: EXTINT13 on PA13 mux A */
-#define MUX_PA13A_EIC_EXTINT13 0L
-#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13)
-#define PORT_PA13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA12C_SERCOM2_PAD0 12L /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */
-#define MUX_PA12C_SERCOM2_PAD0 2L
-#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0)
-#define PORT_PA12C_SERCOM2_PAD0 (1ul << 12)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA13C_SERCOM2_PAD1 13L /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */
-#define MUX_PA13C_SERCOM2_PAD1 2L
-#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1)
-#define PORT_PA13C_SERCOM2_PAD1 (1ul << 13)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA20D_SERCOM3_PAD2 20L /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */
-#define MUX_PA20D_SERCOM3_PAD2 3L
-#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2)
-#define PORT_PA20D_SERCOM3_PAD2 (1ul << 20)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA21D_SERCOM3_PAD3 21L /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */
-#define MUX_PA21D_SERCOM3_PAD3 3L
-#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3)
-#define PORT_PA21D_SERCOM3_PAD3 (1ul << 21)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for SERCOM4 peripheral ========== */
-#define PIN_PA12D_SERCOM4_PAD0 12L /**< \brief SERCOM4 signal: PAD0 on PA12 mux D */
-#define MUX_PA12D_SERCOM4_PAD0 3L
-#define PINMUX_PA12D_SERCOM4_PAD0 ((PIN_PA12D_SERCOM4_PAD0 << 16) | MUX_PA12D_SERCOM4_PAD0)
-#define PORT_PA12D_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PB08D_SERCOM4_PAD0 40L /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */
-#define MUX_PB08D_SERCOM4_PAD0 3L
-#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0)
-#define PORT_PB08D_SERCOM4_PAD0 (1ul << 8)
-#define PIN_PA13D_SERCOM4_PAD1 13L /**< \brief SERCOM4 signal: PAD1 on PA13 mux D */
-#define MUX_PA13D_SERCOM4_PAD1 3L
-#define PINMUX_PA13D_SERCOM4_PAD1 ((PIN_PA13D_SERCOM4_PAD1 << 16) | MUX_PA13D_SERCOM4_PAD1)
-#define PORT_PA13D_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PB09D_SERCOM4_PAD1 41L /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */
-#define MUX_PB09D_SERCOM4_PAD1 3L
-#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1)
-#define PORT_PB09D_SERCOM4_PAD1 (1ul << 9)
-#define PIN_PA14D_SERCOM4_PAD2 14L /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */
-#define MUX_PA14D_SERCOM4_PAD2 3L
-#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2)
-#define PORT_PA14D_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PB10D_SERCOM4_PAD2 42L /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */
-#define MUX_PB10D_SERCOM4_PAD2 3L
-#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2)
-#define PORT_PB10D_SERCOM4_PAD2 (1ul << 10)
-#define PIN_PA15D_SERCOM4_PAD3 15L /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */
-#define MUX_PA15D_SERCOM4_PAD3 3L
-#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3)
-#define PORT_PA15D_SERCOM4_PAD3 (1ul << 15)
-#define PIN_PB11D_SERCOM4_PAD3 43L /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */
-#define MUX_PB11D_SERCOM4_PAD3 3L
-#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3)
-#define PORT_PB11D_SERCOM4_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM5 peripheral ========== */
-#define PIN_PA22D_SERCOM5_PAD0 22L /**< \brief SERCOM5 signal: PAD0 on PA22 mux D */
-#define MUX_PA22D_SERCOM5_PAD0 3L
-#define PINMUX_PA22D_SERCOM5_PAD0 ((PIN_PA22D_SERCOM5_PAD0 << 16) | MUX_PA22D_SERCOM5_PAD0)
-#define PORT_PA22D_SERCOM5_PAD0 (1ul << 22)
-#define PIN_PB02D_SERCOM5_PAD0 34L /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */
-#define MUX_PB02D_SERCOM5_PAD0 3L
-#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0)
-#define PORT_PB02D_SERCOM5_PAD0 (1ul << 2)
-#define PIN_PA23D_SERCOM5_PAD1 23L /**< \brief SERCOM5 signal: PAD1 on PA23 mux D */
-#define MUX_PA23D_SERCOM5_PAD1 3L
-#define PINMUX_PA23D_SERCOM5_PAD1 ((PIN_PA23D_SERCOM5_PAD1 << 16) | MUX_PA23D_SERCOM5_PAD1)
-#define PORT_PA23D_SERCOM5_PAD1 (1ul << 23)
-#define PIN_PB03D_SERCOM5_PAD1 35L /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */
-#define MUX_PB03D_SERCOM5_PAD1 3L
-#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1)
-#define PORT_PB03D_SERCOM5_PAD1 (1ul << 3)
-#define PIN_PA24D_SERCOM5_PAD2 24L /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */
-#define MUX_PA24D_SERCOM5_PAD2 3L
-#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2)
-#define PORT_PA24D_SERCOM5_PAD2 (1ul << 24)
-#define PIN_PB22D_SERCOM5_PAD2 54L /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */
-#define MUX_PB22D_SERCOM5_PAD2 3L
-#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2)
-#define PORT_PB22D_SERCOM5_PAD2 (1ul << 22)
-#define PIN_PA20C_SERCOM5_PAD2 20L /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */
-#define MUX_PA20C_SERCOM5_PAD2 2L
-#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2)
-#define PORT_PA20C_SERCOM5_PAD2 (1ul << 20)
-#define PIN_PA25D_SERCOM5_PAD3 25L /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */
-#define MUX_PA25D_SERCOM5_PAD3 3L
-#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3)
-#define PORT_PA25D_SERCOM5_PAD3 (1ul << 25)
-#define PIN_PB23D_SERCOM5_PAD3 55L /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */
-#define MUX_PB23D_SERCOM5_PAD3 3L
-#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3)
-#define PORT_PB23D_SERCOM5_PAD3 (1ul << 23)
-#define PIN_PA21C_SERCOM5_PAD3 21L /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */
-#define MUX_PA21C_SERCOM5_PAD3 2L
-#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3)
-#define PORT_PA21C_SERCOM5_PAD3 (1ul << 21)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PB10F_TCC0_WO4 42L /**< \brief TCC0 signal: WO4 on PB10 mux F */
-#define MUX_PB10F_TCC0_WO4 5L
-#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4)
-#define PORT_PB10F_TCC0_WO4 (1ul << 10)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PB11F_TCC0_WO5 43L /**< \brief TCC0 signal: WO5 on PB11 mux F */
-#define MUX_PB11F_TCC0_WO5 5L
-#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5)
-#define PORT_PB11F_TCC0_WO5 (1ul << 11)
-#define PIN_PA12F_TCC0_WO6 12L /**< \brief TCC0 signal: WO6 on PA12 mux F */
-#define MUX_PA12F_TCC0_WO6 5L
-#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6)
-#define PORT_PA12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA20F_TCC0_WO6 20L /**< \brief TCC0 signal: WO6 on PA20 mux F */
-#define MUX_PA20F_TCC0_WO6 5L
-#define PINMUX_PA20F_TCC0_WO6 ((PIN_PA20F_TCC0_WO6 << 16) | MUX_PA20F_TCC0_WO6)
-#define PORT_PA20F_TCC0_WO6 (1ul << 20)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA13F_TCC0_WO7 13L /**< \brief TCC0 signal: WO7 on PA13 mux F */
-#define MUX_PA13F_TCC0_WO7 5L
-#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7)
-#define PORT_PA13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA21F_TCC0_WO7 21L /**< \brief TCC0 signal: WO7 on PA21 mux F */
-#define MUX_PA21F_TCC0_WO7 5L
-#define PINMUX_PA21F_TCC0_WO7 ((PIN_PA21F_TCC0_WO7 << 16) | MUX_PA21F_TCC0_WO7)
-#define PORT_PA21F_TCC0_WO7 (1ul << 21)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA12E_TCC2_WO0 12L /**< \brief TCC2 signal: WO0 on PA12 mux E */
-#define MUX_PA12E_TCC2_WO0 4L
-#define PINMUX_PA12E_TCC2_WO0 ((PIN_PA12E_TCC2_WO0 << 16) | MUX_PA12E_TCC2_WO0)
-#define PORT_PA12E_TCC2_WO0 (1ul << 12)
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA13E_TCC2_WO1 13L /**< \brief TCC2 signal: WO1 on PA13 mux E */
-#define MUX_PA13E_TCC2_WO1 4L
-#define PINMUX_PA13E_TCC2_WO1 ((PIN_PA13E_TCC2_WO1 << 16) | MUX_PA13E_TCC2_WO1)
-#define PORT_PA13E_TCC2_WO1 (1ul << 13)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PB08E_TC4_WO0 40L /**< \brief TC4 signal: WO0 on PB08 mux E */
-#define MUX_PB08E_TC4_WO0 4L
-#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0)
-#define PORT_PB08E_TC4_WO0 (1ul << 8)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-#define PIN_PB09E_TC4_WO1 41L /**< \brief TC4 signal: WO1 on PB09 mux E */
-#define MUX_PB09E_TC4_WO1 4L
-#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1)
-#define PORT_PB09E_TC4_WO1 (1ul << 9)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PB10E_TC5_WO0 42L /**< \brief TC5 signal: WO0 on PB10 mux E */
-#define MUX_PB10E_TC5_WO0 4L
-#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0)
-#define PORT_PB10E_TC5_WO0 (1ul << 10)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-#define PIN_PB11E_TC5_WO1 43L /**< \brief TC5 signal: WO1 on PB11 mux E */
-#define MUX_PB11E_TC5_WO1 4L
-#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1)
-#define PORT_PB11E_TC5_WO1 (1ul << 11)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PB08B_ADC_AIN2 40L /**< \brief ADC signal: AIN2 on PB08 mux B */
-#define MUX_PB08B_ADC_AIN2 1L
-#define PINMUX_PB08B_ADC_AIN2 ((PIN_PB08B_ADC_AIN2 << 16) | MUX_PB08B_ADC_AIN2)
-#define PORT_PB08B_ADC_AIN2 (1ul << 8)
-#define PIN_PB09B_ADC_AIN3 41L /**< \brief ADC signal: AIN3 on PB09 mux B */
-#define MUX_PB09B_ADC_AIN3 1L
-#define PINMUX_PB09B_ADC_AIN3 ((PIN_PB09B_ADC_AIN3 << 16) | MUX_PB09B_ADC_AIN3)
-#define PORT_PB09B_ADC_AIN3 (1ul << 9)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA12H_AC_CMP0 12L /**< \brief AC signal: CMP0 on PA12 mux H */
-#define MUX_PA12H_AC_CMP0 7L
-#define PINMUX_PA12H_AC_CMP0 ((PIN_PA12H_AC_CMP0 << 16) | MUX_PA12H_AC_CMP0)
-#define PORT_PA12H_AC_CMP0 (1ul << 12)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA13H_AC_CMP1 13L /**< \brief AC signal: CMP1 on PA13 mux H */
-#define MUX_PA13H_AC_CMP1 7L
-#define PINMUX_PA13H_AC_CMP1 ((PIN_PA13H_AC_CMP1 << 16) | MUX_PA13H_AC_CMP1)
-#define PORT_PA13H_AC_CMP1 (1ul << 13)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA21G_I2S_FS0 21L /**< \brief I2S signal: FS0 on PA21 mux G */
-#define MUX_PA21G_I2S_FS0 6L
-#define PINMUX_PA21G_I2S_FS0 ((PIN_PA21G_I2S_FS0 << 16) | MUX_PA21G_I2S_FS0)
-#define PORT_PA21G_I2S_FS0 (1ul << 21)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PB10G_I2S_MCK1 42L /**< \brief I2S signal: MCK1 on PB10 mux G */
-#define MUX_PB10G_I2S_MCK1 6L
-#define PINMUX_PB10G_I2S_MCK1 ((PIN_PB10G_I2S_MCK1 << 16) | MUX_PB10G_I2S_MCK1)
-#define PORT_PB10G_I2S_MCK1 (1ul << 10)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA20G_I2S_SCK0 20L /**< \brief I2S signal: SCK0 on PA20 mux G */
-#define MUX_PA20G_I2S_SCK0 6L
-#define PINMUX_PA20G_I2S_SCK0 ((PIN_PA20G_I2S_SCK0 << 16) | MUX_PA20G_I2S_SCK0)
-#define PORT_PA20G_I2S_SCK0 (1ul << 20)
-#define PIN_PB11G_I2S_SCK1 43L /**< \brief I2S signal: SCK1 on PB11 mux G */
-#define MUX_PB11G_I2S_SCK1 6L
-#define PINMUX_PB11G_I2S_SCK1 ((PIN_PB11G_I2S_SCK1 << 16) | MUX_PB11G_I2S_SCK1)
-#define PORT_PB11G_I2S_SCK1 (1ul << 11)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-
-#endif /* _SAMD21G17A_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g17au.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g17au.h
deleted file mode 100644
index 8807b13..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g17au.h
+++ /dev/null
@@ -1,856 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21G17AU
- *
- * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
- /*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _SAMD21G17AU_PIO_
-#define _SAMD21G17AU_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA12 12 /**< \brief Pin Number for PA12 */
-#define PORT_PA12 (1ul << 12) /**< \brief PORT Mask for PA12 */
-#define PIN_PA13 13 /**< \brief Pin Number for PA13 */
-#define PORT_PA13 (1ul << 13) /**< \brief PORT Mask for PA13 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA20 20 /**< \brief Pin Number for PA20 */
-#define PORT_PA20 (1ul << 20) /**< \brief PORT Mask for PA20 */
-#define PIN_PA21 21 /**< \brief Pin Number for PA21 */
-#define PORT_PA21 (1ul << 21) /**< \brief PORT Mask for PA21 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB04 36 /**< \brief Pin Number for PB04 */
-#define PORT_PB04 (1ul << 4) /**< \brief PORT Mask for PB04 */
-#define PIN_PB08 40 /**< \brief Pin Number for PB08 */
-#define PORT_PB08 (1ul << 8) /**< \brief PORT Mask for PB08 */
-#define PIN_PB09 41 /**< \brief Pin Number for PB09 */
-#define PORT_PB09 (1ul << 9) /**< \brief PORT Mask for PB09 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA20H_GCLK_IO4 20L /**< \brief GCLK signal: IO4 on PA20 mux H */
-#define MUX_PA20H_GCLK_IO4 7L
-#define PINMUX_PA20H_GCLK_IO4 ((PIN_PA20H_GCLK_IO4 << 16) | MUX_PA20H_GCLK_IO4)
-#define PORT_PA20H_GCLK_IO4 (1ul << 20)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA21H_GCLK_IO5 21L /**< \brief GCLK signal: IO5 on PA21 mux H */
-#define MUX_PA21H_GCLK_IO5 7L
-#define PINMUX_PA21H_GCLK_IO5 ((PIN_PA21H_GCLK_IO5 << 16) | MUX_PA21H_GCLK_IO5)
-#define PORT_PA21H_GCLK_IO5 (1ul << 21)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA20A_EIC_EXTINT4 20L /**< \brief EIC signal: EXTINT4 on PA20 mux A */
-#define MUX_PA20A_EIC_EXTINT4 0L
-#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4)
-#define PORT_PA20A_EIC_EXTINT4 (1ul << 20)
-#define PIN_PB04A_EIC_EXTINT4 36L /**< \brief EIC signal: EXTINT4 on PB04 mux A */
-#define MUX_PB04A_EIC_EXTINT4 0L
-#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4)
-#define PORT_PB04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA21A_EIC_EXTINT5 21L /**< \brief EIC signal: EXTINT5 on PA21 mux A */
-#define MUX_PA21A_EIC_EXTINT5 0L
-#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5)
-#define PORT_PA21A_EIC_EXTINT5 (1ul << 21)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PB08A_EIC_EXTINT8 40L /**< \brief EIC signal: EXTINT8 on PB08 mux A */
-#define MUX_PB08A_EIC_EXTINT8 0L
-#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8)
-#define PORT_PB08A_EIC_EXTINT8 (1ul << 8)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PB09A_EIC_EXTINT9 41L /**< \brief EIC signal: EXTINT9 on PB09 mux A */
-#define MUX_PB09A_EIC_EXTINT9 0L
-#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9)
-#define PORT_PB09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PA12A_EIC_EXTINT12 12L /**< \brief EIC signal: EXTINT12 on PA12 mux A */
-#define MUX_PA12A_EIC_EXTINT12 0L
-#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12)
-#define PORT_PA12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA13A_EIC_EXTINT13 13L /**< \brief EIC signal: EXTINT13 on PA13 mux A */
-#define MUX_PA13A_EIC_EXTINT13 0L
-#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13)
-#define PORT_PA13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA12C_SERCOM2_PAD0 12L /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */
-#define MUX_PA12C_SERCOM2_PAD0 2L
-#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0)
-#define PORT_PA12C_SERCOM2_PAD0 (1ul << 12)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA13C_SERCOM2_PAD1 13L /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */
-#define MUX_PA13C_SERCOM2_PAD1 2L
-#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1)
-#define PORT_PA13C_SERCOM2_PAD1 (1ul << 13)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA20D_SERCOM3_PAD2 20L /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */
-#define MUX_PA20D_SERCOM3_PAD2 3L
-#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2)
-#define PORT_PA20D_SERCOM3_PAD2 (1ul << 20)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA21D_SERCOM3_PAD3 21L /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */
-#define MUX_PA21D_SERCOM3_PAD3 3L
-#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3)
-#define PORT_PA21D_SERCOM3_PAD3 (1ul << 21)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for SERCOM4 peripheral ========== */
-#define PIN_PA12D_SERCOM4_PAD0 12L /**< \brief SERCOM4 signal: PAD0 on PA12 mux D */
-#define MUX_PA12D_SERCOM4_PAD0 3L
-#define PINMUX_PA12D_SERCOM4_PAD0 ((PIN_PA12D_SERCOM4_PAD0 << 16) | MUX_PA12D_SERCOM4_PAD0)
-#define PORT_PA12D_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PB08D_SERCOM4_PAD0 40L /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */
-#define MUX_PB08D_SERCOM4_PAD0 3L
-#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0)
-#define PORT_PB08D_SERCOM4_PAD0 (1ul << 8)
-#define PIN_PA13D_SERCOM4_PAD1 13L /**< \brief SERCOM4 signal: PAD1 on PA13 mux D */
-#define MUX_PA13D_SERCOM4_PAD1 3L
-#define PINMUX_PA13D_SERCOM4_PAD1 ((PIN_PA13D_SERCOM4_PAD1 << 16) | MUX_PA13D_SERCOM4_PAD1)
-#define PORT_PA13D_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PB09D_SERCOM4_PAD1 41L /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */
-#define MUX_PB09D_SERCOM4_PAD1 3L
-#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1)
-#define PORT_PB09D_SERCOM4_PAD1 (1ul << 9)
-#define PIN_PA14D_SERCOM4_PAD2 14L /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */
-#define MUX_PA14D_SERCOM4_PAD2 3L
-#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2)
-#define PORT_PA14D_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PA15D_SERCOM4_PAD3 15L /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */
-#define MUX_PA15D_SERCOM4_PAD3 3L
-#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3)
-#define PORT_PA15D_SERCOM4_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM5 peripheral ========== */
-#define PIN_PA22D_SERCOM5_PAD0 22L /**< \brief SERCOM5 signal: PAD0 on PA22 mux D */
-#define MUX_PA22D_SERCOM5_PAD0 3L
-#define PINMUX_PA22D_SERCOM5_PAD0 ((PIN_PA22D_SERCOM5_PAD0 << 16) | MUX_PA22D_SERCOM5_PAD0)
-#define PORT_PA22D_SERCOM5_PAD0 (1ul << 22)
-#define PIN_PB02D_SERCOM5_PAD0 34L /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */
-#define MUX_PB02D_SERCOM5_PAD0 3L
-#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0)
-#define PORT_PB02D_SERCOM5_PAD0 (1ul << 2)
-#define PIN_PA23D_SERCOM5_PAD1 23L /**< \brief SERCOM5 signal: PAD1 on PA23 mux D */
-#define MUX_PA23D_SERCOM5_PAD1 3L
-#define PINMUX_PA23D_SERCOM5_PAD1 ((PIN_PA23D_SERCOM5_PAD1 << 16) | MUX_PA23D_SERCOM5_PAD1)
-#define PORT_PA23D_SERCOM5_PAD1 (1ul << 23)
-#define PIN_PB03D_SERCOM5_PAD1 35L /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */
-#define MUX_PB03D_SERCOM5_PAD1 3L
-#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1)
-#define PORT_PB03D_SERCOM5_PAD1 (1ul << 3)
-#define PIN_PA24D_SERCOM5_PAD2 24L /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */
-#define MUX_PA24D_SERCOM5_PAD2 3L
-#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2)
-#define PORT_PA24D_SERCOM5_PAD2 (1ul << 24)
-#define PIN_PA20C_SERCOM5_PAD2 20L /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */
-#define MUX_PA20C_SERCOM5_PAD2 2L
-#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2)
-#define PORT_PA20C_SERCOM5_PAD2 (1ul << 20)
-#define PIN_PA25D_SERCOM5_PAD3 25L /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */
-#define MUX_PA25D_SERCOM5_PAD3 3L
-#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3)
-#define PORT_PA25D_SERCOM5_PAD3 (1ul << 25)
-#define PIN_PA21C_SERCOM5_PAD3 21L /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */
-#define MUX_PA21C_SERCOM5_PAD3 2L
-#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3)
-#define PORT_PA21C_SERCOM5_PAD3 (1ul << 21)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PA12F_TCC0_WO6 12L /**< \brief TCC0 signal: WO6 on PA12 mux F */
-#define MUX_PA12F_TCC0_WO6 5L
-#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6)
-#define PORT_PA12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA20F_TCC0_WO6 20L /**< \brief TCC0 signal: WO6 on PA20 mux F */
-#define MUX_PA20F_TCC0_WO6 5L
-#define PINMUX_PA20F_TCC0_WO6 ((PIN_PA20F_TCC0_WO6 << 16) | MUX_PA20F_TCC0_WO6)
-#define PORT_PA20F_TCC0_WO6 (1ul << 20)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA13F_TCC0_WO7 13L /**< \brief TCC0 signal: WO7 on PA13 mux F */
-#define MUX_PA13F_TCC0_WO7 5L
-#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7)
-#define PORT_PA13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA21F_TCC0_WO7 21L /**< \brief TCC0 signal: WO7 on PA21 mux F */
-#define MUX_PA21F_TCC0_WO7 5L
-#define PINMUX_PA21F_TCC0_WO7 ((PIN_PA21F_TCC0_WO7 << 16) | MUX_PA21F_TCC0_WO7)
-#define PORT_PA21F_TCC0_WO7 (1ul << 21)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA12E_TCC2_WO0 12L /**< \brief TCC2 signal: WO0 on PA12 mux E */
-#define MUX_PA12E_TCC2_WO0 4L
-#define PINMUX_PA12E_TCC2_WO0 ((PIN_PA12E_TCC2_WO0 << 16) | MUX_PA12E_TCC2_WO0)
-#define PORT_PA12E_TCC2_WO0 (1ul << 12)
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA13E_TCC2_WO1 13L /**< \brief TCC2 signal: WO1 on PA13 mux E */
-#define MUX_PA13E_TCC2_WO1 4L
-#define PINMUX_PA13E_TCC2_WO1 ((PIN_PA13E_TCC2_WO1 << 16) | MUX_PA13E_TCC2_WO1)
-#define PORT_PA13E_TCC2_WO1 (1ul << 13)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PB08E_TC4_WO0 40L /**< \brief TC4 signal: WO0 on PB08 mux E */
-#define MUX_PB08E_TC4_WO0 4L
-#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0)
-#define PORT_PB08E_TC4_WO0 (1ul << 8)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-#define PIN_PB09E_TC4_WO1 41L /**< \brief TC4 signal: WO1 on PB09 mux E */
-#define MUX_PB09E_TC4_WO1 4L
-#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1)
-#define PORT_PB09E_TC4_WO1 (1ul << 9)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-/* ========== PORT definition for TC6 peripheral ========== */
-#define PIN_PB02E_TC6_WO0 34L /**< \brief TC6 signal: WO0 on PB02 mux E */
-#define MUX_PB02E_TC6_WO0 4L
-#define PINMUX_PB02E_TC6_WO0 ((PIN_PB02E_TC6_WO0 << 16) | MUX_PB02E_TC6_WO0)
-#define PORT_PB02E_TC6_WO0 (1ul << 2)
-#define PIN_PB03E_TC6_WO1 35L /**< \brief TC6 signal: WO1 on PB03 mux E */
-#define MUX_PB03E_TC6_WO1 4L
-#define PINMUX_PB03E_TC6_WO1 ((PIN_PB03E_TC6_WO1 << 16) | MUX_PB03E_TC6_WO1)
-#define PORT_PB03E_TC6_WO1 (1ul << 3)
-/* ========== PORT definition for TC7 peripheral ========== */
-#define PIN_PA20E_TC7_WO0 20L /**< \brief TC7 signal: WO0 on PA20 mux E */
-#define MUX_PA20E_TC7_WO0 4L
-#define PINMUX_PA20E_TC7_WO0 ((PIN_PA20E_TC7_WO0 << 16) | MUX_PA20E_TC7_WO0)
-#define PORT_PA20E_TC7_WO0 (1ul << 20)
-#define PIN_PA21E_TC7_WO1 21L /**< \brief TC7 signal: WO1 on PA21 mux E */
-#define MUX_PA21E_TC7_WO1 4L
-#define PINMUX_PA21E_TC7_WO1 ((PIN_PA21E_TC7_WO1 << 16) | MUX_PA21E_TC7_WO1)
-#define PORT_PA21E_TC7_WO1 (1ul << 21)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PB08B_ADC_AIN2 40L /**< \brief ADC signal: AIN2 on PB08 mux B */
-#define MUX_PB08B_ADC_AIN2 1L
-#define PINMUX_PB08B_ADC_AIN2 ((PIN_PB08B_ADC_AIN2 << 16) | MUX_PB08B_ADC_AIN2)
-#define PORT_PB08B_ADC_AIN2 (1ul << 8)
-#define PIN_PB09B_ADC_AIN3 41L /**< \brief ADC signal: AIN3 on PB09 mux B */
-#define MUX_PB09B_ADC_AIN3 1L
-#define PINMUX_PB09B_ADC_AIN3 ((PIN_PB09B_ADC_AIN3 << 16) | MUX_PB09B_ADC_AIN3)
-#define PORT_PB09B_ADC_AIN3 (1ul << 9)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PB04B_ADC_AIN12 36L /**< \brief ADC signal: AIN12 on PB04 mux B */
-#define MUX_PB04B_ADC_AIN12 1L
-#define PINMUX_PB04B_ADC_AIN12 ((PIN_PB04B_ADC_AIN12 << 16) | MUX_PB04B_ADC_AIN12)
-#define PORT_PB04B_ADC_AIN12 (1ul << 4)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA12H_AC_CMP0 12L /**< \brief AC signal: CMP0 on PA12 mux H */
-#define MUX_PA12H_AC_CMP0 7L
-#define PINMUX_PA12H_AC_CMP0 ((PIN_PA12H_AC_CMP0 << 16) | MUX_PA12H_AC_CMP0)
-#define PORT_PA12H_AC_CMP0 (1ul << 12)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA13H_AC_CMP1 13L /**< \brief AC signal: CMP1 on PA13 mux H */
-#define MUX_PA13H_AC_CMP1 7L
-#define PINMUX_PA13H_AC_CMP1 ((PIN_PA13H_AC_CMP1 << 16) | MUX_PA13H_AC_CMP1)
-#define PORT_PA13H_AC_CMP1 (1ul << 13)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA21G_I2S_FS0 21L /**< \brief I2S signal: FS0 on PA21 mux G */
-#define MUX_PA21G_I2S_FS0 6L
-#define PINMUX_PA21G_I2S_FS0 ((PIN_PA21G_I2S_FS0 << 16) | MUX_PA21G_I2S_FS0)
-#define PORT_PA21G_I2S_FS0 (1ul << 21)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA20G_I2S_SCK0 20L /**< \brief I2S signal: SCK0 on PA20 mux G */
-#define MUX_PA20G_I2S_SCK0 6L
-#define PINMUX_PA20G_I2S_SCK0 ((PIN_PA20G_I2S_SCK0 << 16) | MUX_PA20G_I2S_SCK0)
-#define PORT_PA20G_I2S_SCK0 (1ul << 20)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-
-#endif /* _SAMD21G17AU_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g17d.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g17d.h
deleted file mode 100644
index 5355bcc..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g17d.h
+++ /dev/null
@@ -1,1010 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21G17D
- *
- * Copyright (c) 2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _SAMD21G17D_PIO_
-#define _SAMD21G17D_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA12 12 /**< \brief Pin Number for PA12 */
-#define PORT_PA12 (1ul << 12) /**< \brief PORT Mask for PA12 */
-#define PIN_PA13 13 /**< \brief Pin Number for PA13 */
-#define PORT_PA13 (1ul << 13) /**< \brief PORT Mask for PA13 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA20 20 /**< \brief Pin Number for PA20 */
-#define PORT_PA20 (1ul << 20) /**< \brief PORT Mask for PA20 */
-#define PIN_PA21 21 /**< \brief Pin Number for PA21 */
-#define PORT_PA21 (1ul << 21) /**< \brief PORT Mask for PA21 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB08 40 /**< \brief Pin Number for PB08 */
-#define PORT_PB08 (1ul << 8) /**< \brief PORT Mask for PB08 */
-#define PIN_PB09 41 /**< \brief Pin Number for PB09 */
-#define PORT_PB09 (1ul << 9) /**< \brief PORT Mask for PB09 */
-#define PIN_PB10 42 /**< \brief Pin Number for PB10 */
-#define PORT_PB10 (1ul << 10) /**< \brief PORT Mask for PB10 */
-#define PIN_PB11 43 /**< \brief Pin Number for PB11 */
-#define PORT_PB11 (1ul << 11) /**< \brief PORT Mask for PB11 */
-#define PIN_PB22 54 /**< \brief Pin Number for PB22 */
-#define PORT_PB22 (1ul << 22) /**< \brief PORT Mask for PB22 */
-#define PIN_PB23 55 /**< \brief Pin Number for PB23 */
-#define PORT_PB23 (1ul << 23) /**< \brief PORT Mask for PB23 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PB22H_GCLK_IO0 54L /**< \brief GCLK signal: IO0 on PB22 mux H */
-#define MUX_PB22H_GCLK_IO0 7L
-#define PINMUX_PB22H_GCLK_IO0 ((PIN_PB22H_GCLK_IO0 << 16) | MUX_PB22H_GCLK_IO0)
-#define PORT_PB22H_GCLK_IO0 (1ul << 22)
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PB23H_GCLK_IO1 55L /**< \brief GCLK signal: IO1 on PB23 mux H */
-#define MUX_PB23H_GCLK_IO1 7L
-#define PINMUX_PB23H_GCLK_IO1 ((PIN_PB23H_GCLK_IO1 << 16) | MUX_PB23H_GCLK_IO1)
-#define PORT_PB23H_GCLK_IO1 (1ul << 23)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA20H_GCLK_IO4 20L /**< \brief GCLK signal: IO4 on PA20 mux H */
-#define MUX_PA20H_GCLK_IO4 7L
-#define PINMUX_PA20H_GCLK_IO4 ((PIN_PA20H_GCLK_IO4 << 16) | MUX_PA20H_GCLK_IO4)
-#define PORT_PA20H_GCLK_IO4 (1ul << 20)
-#define PIN_PB10H_GCLK_IO4 42L /**< \brief GCLK signal: IO4 on PB10 mux H */
-#define MUX_PB10H_GCLK_IO4 7L
-#define PINMUX_PB10H_GCLK_IO4 ((PIN_PB10H_GCLK_IO4 << 16) | MUX_PB10H_GCLK_IO4)
-#define PORT_PB10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA21H_GCLK_IO5 21L /**< \brief GCLK signal: IO5 on PA21 mux H */
-#define MUX_PA21H_GCLK_IO5 7L
-#define PINMUX_PA21H_GCLK_IO5 ((PIN_PA21H_GCLK_IO5 << 16) | MUX_PA21H_GCLK_IO5)
-#define PORT_PA21H_GCLK_IO5 (1ul << 21)
-#define PIN_PB11H_GCLK_IO5 43L /**< \brief GCLK signal: IO5 on PB11 mux H */
-#define MUX_PB11H_GCLK_IO5 7L
-#define PINMUX_PB11H_GCLK_IO5 ((PIN_PB11H_GCLK_IO5 << 16) | MUX_PB11H_GCLK_IO5)
-#define PORT_PB11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA16A_EIC_EXTINT_NUM 0L /**< \brief EIC signal: PIN_PA16 External Interrupt Line */
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA00A_EIC_EXTINT_NUM 0L /**< \brief EIC signal: PIN_PA00 External Interrupt Line */
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA17A_EIC_EXTINT_NUM 1L /**< \brief EIC signal: PIN_PA17 External Interrupt Line */
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA01A_EIC_EXTINT_NUM 1L /**< \brief EIC signal: PIN_PA01 External Interrupt Line */
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA18A_EIC_EXTINT_NUM 2L /**< \brief EIC signal: PIN_PA18 External Interrupt Line */
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA02A_EIC_EXTINT_NUM 2L /**< \brief EIC signal: PIN_PA02 External Interrupt Line */
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PB02A_EIC_EXTINT_NUM 2L /**< \brief EIC signal: PIN_PB02 External Interrupt Line */
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA03A_EIC_EXTINT_NUM 3L /**< \brief EIC signal: PIN_PA03 External Interrupt Line */
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PA19A_EIC_EXTINT_NUM 3L /**< \brief EIC signal: PIN_PA19 External Interrupt Line */
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PB03A_EIC_EXTINT_NUM 3L /**< \brief EIC signal: PIN_PB03 External Interrupt Line */
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA04A_EIC_EXTINT_NUM 4L /**< \brief EIC signal: PIN_PA04 External Interrupt Line */
-#define PIN_PA20A_EIC_EXTINT4 20L /**< \brief EIC signal: EXTINT4 on PA20 mux A */
-#define MUX_PA20A_EIC_EXTINT4 0L
-#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4)
-#define PORT_PA20A_EIC_EXTINT4 (1ul << 20)
-#define PIN_PA20A_EIC_EXTINT_NUM 4L /**< \brief EIC signal: PIN_PA20 External Interrupt Line */
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA05A_EIC_EXTINT_NUM 5L /**< \brief EIC signal: PIN_PA05 External Interrupt Line */
-#define PIN_PA21A_EIC_EXTINT5 21L /**< \brief EIC signal: EXTINT5 on PA21 mux A */
-#define MUX_PA21A_EIC_EXTINT5 0L
-#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5)
-#define PORT_PA21A_EIC_EXTINT5 (1ul << 21)
-#define PIN_PA21A_EIC_EXTINT_NUM 5L /**< \brief EIC signal: PIN_PA21 External Interrupt Line */
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA06A_EIC_EXTINT_NUM 6L /**< \brief EIC signal: PIN_PA06 External Interrupt Line */
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA22A_EIC_EXTINT_NUM 6L /**< \brief EIC signal: PIN_PA22 External Interrupt Line */
-#define PIN_PB22A_EIC_EXTINT6 54L /**< \brief EIC signal: EXTINT6 on PB22 mux A */
-#define MUX_PB22A_EIC_EXTINT6 0L
-#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6)
-#define PORT_PB22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PB22A_EIC_EXTINT_NUM 6L /**< \brief EIC signal: PIN_PB22 External Interrupt Line */
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA07A_EIC_EXTINT_NUM 7L /**< \brief EIC signal: PIN_PA07 External Interrupt Line */
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA23A_EIC_EXTINT_NUM 7L /**< \brief EIC signal: PIN_PA23 External Interrupt Line */
-#define PIN_PB23A_EIC_EXTINT7 55L /**< \brief EIC signal: EXTINT7 on PB23 mux A */
-#define MUX_PB23A_EIC_EXTINT7 0L
-#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7)
-#define PORT_PB23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PB23A_EIC_EXTINT_NUM 7L /**< \brief EIC signal: PIN_PB23 External Interrupt Line */
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PA28A_EIC_EXTINT_NUM 8L /**< \brief EIC signal: PIN_PA28 External Interrupt Line */
-#define PIN_PB08A_EIC_EXTINT8 40L /**< \brief EIC signal: EXTINT8 on PB08 mux A */
-#define MUX_PB08A_EIC_EXTINT8 0L
-#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8)
-#define PORT_PB08A_EIC_EXTINT8 (1ul << 8)
-#define PIN_PB08A_EIC_EXTINT_NUM 8L /**< \brief EIC signal: PIN_PB08 External Interrupt Line */
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA09A_EIC_EXTINT_NUM 9L /**< \brief EIC signal: PIN_PA09 External Interrupt Line */
-#define PIN_PB09A_EIC_EXTINT9 41L /**< \brief EIC signal: EXTINT9 on PB09 mux A */
-#define MUX_PB09A_EIC_EXTINT9 0L
-#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9)
-#define PORT_PB09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PB09A_EIC_EXTINT_NUM 9L /**< \brief EIC signal: PIN_PB09 External Interrupt Line */
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA10A_EIC_EXTINT_NUM 10L /**< \brief EIC signal: PIN_PA10 External Interrupt Line */
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PA30A_EIC_EXTINT_NUM 10L /**< \brief EIC signal: PIN_PA30 External Interrupt Line */
-#define PIN_PB10A_EIC_EXTINT10 42L /**< \brief EIC signal: EXTINT10 on PB10 mux A */
-#define MUX_PB10A_EIC_EXTINT10 0L
-#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10)
-#define PORT_PB10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PB10A_EIC_EXTINT_NUM 10L /**< \brief EIC signal: PIN_PB10 External Interrupt Line */
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA11A_EIC_EXTINT_NUM 11L /**< \brief EIC signal: PIN_PA11 External Interrupt Line */
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PA31A_EIC_EXTINT_NUM 11L /**< \brief EIC signal: PIN_PA31 External Interrupt Line */
-#define PIN_PB11A_EIC_EXTINT11 43L /**< \brief EIC signal: EXTINT11 on PB11 mux A */
-#define MUX_PB11A_EIC_EXTINT11 0L
-#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11)
-#define PORT_PB11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PB11A_EIC_EXTINT_NUM 11L /**< \brief EIC signal: PIN_PB11 External Interrupt Line */
-#define PIN_PA12A_EIC_EXTINT12 12L /**< \brief EIC signal: EXTINT12 on PA12 mux A */
-#define MUX_PA12A_EIC_EXTINT12 0L
-#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12)
-#define PORT_PA12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA12A_EIC_EXTINT_NUM 12L /**< \brief EIC signal: PIN_PA12 External Interrupt Line */
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA24A_EIC_EXTINT_NUM 12L /**< \brief EIC signal: PIN_PA24 External Interrupt Line */
-#define PIN_PA13A_EIC_EXTINT13 13L /**< \brief EIC signal: EXTINT13 on PA13 mux A */
-#define MUX_PA13A_EIC_EXTINT13 0L
-#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13)
-#define PORT_PA13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PA13A_EIC_EXTINT_NUM 13L /**< \brief EIC signal: PIN_PA13 External Interrupt Line */
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA25A_EIC_EXTINT_NUM 13L /**< \brief EIC signal: PIN_PA25 External Interrupt Line */
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA14A_EIC_EXTINT_NUM 14L /**< \brief EIC signal: PIN_PA14 External Interrupt Line */
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA15A_EIC_EXTINT_NUM 15L /**< \brief EIC signal: PIN_PA15 External Interrupt Line */
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA27A_EIC_EXTINT_NUM 15L /**< \brief EIC signal: PIN_PA27 External Interrupt Line */
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA12C_SERCOM2_PAD0 12L /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */
-#define MUX_PA12C_SERCOM2_PAD0 2L
-#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0)
-#define PORT_PA12C_SERCOM2_PAD0 (1ul << 12)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA13C_SERCOM2_PAD1 13L /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */
-#define MUX_PA13C_SERCOM2_PAD1 2L
-#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1)
-#define PORT_PA13C_SERCOM2_PAD1 (1ul << 13)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA20D_SERCOM3_PAD2 20L /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */
-#define MUX_PA20D_SERCOM3_PAD2 3L
-#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2)
-#define PORT_PA20D_SERCOM3_PAD2 (1ul << 20)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA21D_SERCOM3_PAD3 21L /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */
-#define MUX_PA21D_SERCOM3_PAD3 3L
-#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3)
-#define PORT_PA21D_SERCOM3_PAD3 (1ul << 21)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for SERCOM4 peripheral ========== */
-#define PIN_PA12D_SERCOM4_PAD0 12L /**< \brief SERCOM4 signal: PAD0 on PA12 mux D */
-#define MUX_PA12D_SERCOM4_PAD0 3L
-#define PINMUX_PA12D_SERCOM4_PAD0 ((PIN_PA12D_SERCOM4_PAD0 << 16) | MUX_PA12D_SERCOM4_PAD0)
-#define PORT_PA12D_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PB08D_SERCOM4_PAD0 40L /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */
-#define MUX_PB08D_SERCOM4_PAD0 3L
-#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0)
-#define PORT_PB08D_SERCOM4_PAD0 (1ul << 8)
-#define PIN_PA13D_SERCOM4_PAD1 13L /**< \brief SERCOM4 signal: PAD1 on PA13 mux D */
-#define MUX_PA13D_SERCOM4_PAD1 3L
-#define PINMUX_PA13D_SERCOM4_PAD1 ((PIN_PA13D_SERCOM4_PAD1 << 16) | MUX_PA13D_SERCOM4_PAD1)
-#define PORT_PA13D_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PB09D_SERCOM4_PAD1 41L /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */
-#define MUX_PB09D_SERCOM4_PAD1 3L
-#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1)
-#define PORT_PB09D_SERCOM4_PAD1 (1ul << 9)
-#define PIN_PA14D_SERCOM4_PAD2 14L /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */
-#define MUX_PA14D_SERCOM4_PAD2 3L
-#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2)
-#define PORT_PA14D_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PB10D_SERCOM4_PAD2 42L /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */
-#define MUX_PB10D_SERCOM4_PAD2 3L
-#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2)
-#define PORT_PB10D_SERCOM4_PAD2 (1ul << 10)
-#define PIN_PA15D_SERCOM4_PAD3 15L /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */
-#define MUX_PA15D_SERCOM4_PAD3 3L
-#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3)
-#define PORT_PA15D_SERCOM4_PAD3 (1ul << 15)
-#define PIN_PB11D_SERCOM4_PAD3 43L /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */
-#define MUX_PB11D_SERCOM4_PAD3 3L
-#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3)
-#define PORT_PB11D_SERCOM4_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM5 peripheral ========== */
-#define PIN_PA22D_SERCOM5_PAD0 22L /**< \brief SERCOM5 signal: PAD0 on PA22 mux D */
-#define MUX_PA22D_SERCOM5_PAD0 3L
-#define PINMUX_PA22D_SERCOM5_PAD0 ((PIN_PA22D_SERCOM5_PAD0 << 16) | MUX_PA22D_SERCOM5_PAD0)
-#define PORT_PA22D_SERCOM5_PAD0 (1ul << 22)
-#define PIN_PB02D_SERCOM5_PAD0 34L /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */
-#define MUX_PB02D_SERCOM5_PAD0 3L
-#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0)
-#define PORT_PB02D_SERCOM5_PAD0 (1ul << 2)
-#define PIN_PA23D_SERCOM5_PAD1 23L /**< \brief SERCOM5 signal: PAD1 on PA23 mux D */
-#define MUX_PA23D_SERCOM5_PAD1 3L
-#define PINMUX_PA23D_SERCOM5_PAD1 ((PIN_PA23D_SERCOM5_PAD1 << 16) | MUX_PA23D_SERCOM5_PAD1)
-#define PORT_PA23D_SERCOM5_PAD1 (1ul << 23)
-#define PIN_PB03D_SERCOM5_PAD1 35L /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */
-#define MUX_PB03D_SERCOM5_PAD1 3L
-#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1)
-#define PORT_PB03D_SERCOM5_PAD1 (1ul << 3)
-#define PIN_PA24D_SERCOM5_PAD2 24L /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */
-#define MUX_PA24D_SERCOM5_PAD2 3L
-#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2)
-#define PORT_PA24D_SERCOM5_PAD2 (1ul << 24)
-#define PIN_PB22D_SERCOM5_PAD2 54L /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */
-#define MUX_PB22D_SERCOM5_PAD2 3L
-#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2)
-#define PORT_PB22D_SERCOM5_PAD2 (1ul << 22)
-#define PIN_PA20C_SERCOM5_PAD2 20L /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */
-#define MUX_PA20C_SERCOM5_PAD2 2L
-#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2)
-#define PORT_PA20C_SERCOM5_PAD2 (1ul << 20)
-#define PIN_PA25D_SERCOM5_PAD3 25L /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */
-#define MUX_PA25D_SERCOM5_PAD3 3L
-#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3)
-#define PORT_PA25D_SERCOM5_PAD3 (1ul << 25)
-#define PIN_PB23D_SERCOM5_PAD3 55L /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */
-#define MUX_PB23D_SERCOM5_PAD3 3L
-#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3)
-#define PORT_PB23D_SERCOM5_PAD3 (1ul << 23)
-#define PIN_PA21C_SERCOM5_PAD3 21L /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */
-#define MUX_PA21C_SERCOM5_PAD3 2L
-#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3)
-#define PORT_PA21C_SERCOM5_PAD3 (1ul << 21)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PB10F_TCC0_WO4 42L /**< \brief TCC0 signal: WO4 on PB10 mux F */
-#define MUX_PB10F_TCC0_WO4 5L
-#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4)
-#define PORT_PB10F_TCC0_WO4 (1ul << 10)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PB11F_TCC0_WO5 43L /**< \brief TCC0 signal: WO5 on PB11 mux F */
-#define MUX_PB11F_TCC0_WO5 5L
-#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5)
-#define PORT_PB11F_TCC0_WO5 (1ul << 11)
-#define PIN_PA12F_TCC0_WO6 12L /**< \brief TCC0 signal: WO6 on PA12 mux F */
-#define MUX_PA12F_TCC0_WO6 5L
-#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6)
-#define PORT_PA12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA20F_TCC0_WO6 20L /**< \brief TCC0 signal: WO6 on PA20 mux F */
-#define MUX_PA20F_TCC0_WO6 5L
-#define PINMUX_PA20F_TCC0_WO6 ((PIN_PA20F_TCC0_WO6 << 16) | MUX_PA20F_TCC0_WO6)
-#define PORT_PA20F_TCC0_WO6 (1ul << 20)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA13F_TCC0_WO7 13L /**< \brief TCC0 signal: WO7 on PA13 mux F */
-#define MUX_PA13F_TCC0_WO7 5L
-#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7)
-#define PORT_PA13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA21F_TCC0_WO7 21L /**< \brief TCC0 signal: WO7 on PA21 mux F */
-#define MUX_PA21F_TCC0_WO7 5L
-#define PINMUX_PA21F_TCC0_WO7 ((PIN_PA21F_TCC0_WO7 << 16) | MUX_PA21F_TCC0_WO7)
-#define PORT_PA21F_TCC0_WO7 (1ul << 21)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA12E_TCC2_WO0 12L /**< \brief TCC2 signal: WO0 on PA12 mux E */
-#define MUX_PA12E_TCC2_WO0 4L
-#define PINMUX_PA12E_TCC2_WO0 ((PIN_PA12E_TCC2_WO0 << 16) | MUX_PA12E_TCC2_WO0)
-#define PORT_PA12E_TCC2_WO0 (1ul << 12)
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA13E_TCC2_WO1 13L /**< \brief TCC2 signal: WO1 on PA13 mux E */
-#define MUX_PA13E_TCC2_WO1 4L
-#define PINMUX_PA13E_TCC2_WO1 ((PIN_PA13E_TCC2_WO1 << 16) | MUX_PA13E_TCC2_WO1)
-#define PORT_PA13E_TCC2_WO1 (1ul << 13)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PB08E_TC4_WO0 40L /**< \brief TC4 signal: WO0 on PB08 mux E */
-#define MUX_PB08E_TC4_WO0 4L
-#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0)
-#define PORT_PB08E_TC4_WO0 (1ul << 8)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-#define PIN_PB09E_TC4_WO1 41L /**< \brief TC4 signal: WO1 on PB09 mux E */
-#define MUX_PB09E_TC4_WO1 4L
-#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1)
-#define PORT_PB09E_TC4_WO1 (1ul << 9)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PB10E_TC5_WO0 42L /**< \brief TC5 signal: WO0 on PB10 mux E */
-#define MUX_PB10E_TC5_WO0 4L
-#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0)
-#define PORT_PB10E_TC5_WO0 (1ul << 10)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-#define PIN_PB11E_TC5_WO1 43L /**< \brief TC5 signal: WO1 on PB11 mux E */
-#define MUX_PB11E_TC5_WO1 4L
-#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1)
-#define PORT_PB11E_TC5_WO1 (1ul << 11)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PB08B_ADC_AIN2 40L /**< \brief ADC signal: AIN2 on PB08 mux B */
-#define MUX_PB08B_ADC_AIN2 1L
-#define PINMUX_PB08B_ADC_AIN2 ((PIN_PB08B_ADC_AIN2 << 16) | MUX_PB08B_ADC_AIN2)
-#define PORT_PB08B_ADC_AIN2 (1ul << 8)
-#define PIN_PB09B_ADC_AIN3 41L /**< \brief ADC signal: AIN3 on PB09 mux B */
-#define MUX_PB09B_ADC_AIN3 1L
-#define PINMUX_PB09B_ADC_AIN3 ((PIN_PB09B_ADC_AIN3 << 16) | MUX_PB09B_ADC_AIN3)
-#define PORT_PB09B_ADC_AIN3 (1ul << 9)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA12H_AC_CMP0 12L /**< \brief AC signal: CMP0 on PA12 mux H */
-#define MUX_PA12H_AC_CMP0 7L
-#define PINMUX_PA12H_AC_CMP0 ((PIN_PA12H_AC_CMP0 << 16) | MUX_PA12H_AC_CMP0)
-#define PORT_PA12H_AC_CMP0 (1ul << 12)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA13H_AC_CMP1 13L /**< \brief AC signal: CMP1 on PA13 mux H */
-#define MUX_PA13H_AC_CMP1 7L
-#define PINMUX_PA13H_AC_CMP1 ((PIN_PA13H_AC_CMP1 << 16) | MUX_PA13H_AC_CMP1)
-#define PORT_PA13H_AC_CMP1 (1ul << 13)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA21G_I2S_FS0 21L /**< \brief I2S signal: FS0 on PA21 mux G */
-#define MUX_PA21G_I2S_FS0 6L
-#define PINMUX_PA21G_I2S_FS0 ((PIN_PA21G_I2S_FS0 << 16) | MUX_PA21G_I2S_FS0)
-#define PORT_PA21G_I2S_FS0 (1ul << 21)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PB10G_I2S_MCK1 42L /**< \brief I2S signal: MCK1 on PB10 mux G */
-#define MUX_PB10G_I2S_MCK1 6L
-#define PINMUX_PB10G_I2S_MCK1 ((PIN_PB10G_I2S_MCK1 << 16) | MUX_PB10G_I2S_MCK1)
-#define PORT_PB10G_I2S_MCK1 (1ul << 10)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA20G_I2S_SCK0 20L /**< \brief I2S signal: SCK0 on PA20 mux G */
-#define MUX_PA20G_I2S_SCK0 6L
-#define PINMUX_PA20G_I2S_SCK0 ((PIN_PA20G_I2S_SCK0 << 16) | MUX_PA20G_I2S_SCK0)
-#define PORT_PA20G_I2S_SCK0 (1ul << 20)
-#define PIN_PB11G_I2S_SCK1 43L /**< \brief I2S signal: SCK1 on PB11 mux G */
-#define MUX_PB11G_I2S_SCK1 6L
-#define PINMUX_PB11G_I2S_SCK1 ((PIN_PB11G_I2S_SCK1 << 16) | MUX_PB11G_I2S_SCK1)
-#define PORT_PB11G_I2S_SCK1 (1ul << 11)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-/* ========== PORT definition for TCC3 peripheral ========== */
-#define PIN_PA02F_TCC3_WO0 2L /**< \brief TCC3 signal: WO0 on PA02 mux F */
-#define MUX_PA02F_TCC3_WO0 5L
-#define PINMUX_PA02F_TCC3_WO0 ((PIN_PA02F_TCC3_WO0 << 16) | MUX_PA02F_TCC3_WO0)
-#define PORT_PA02F_TCC3_WO0 (1ul << 2)
-#define PIN_PB22F_TCC3_WO0 54L /**< \brief TCC3 signal: WO0 on PB22 mux F */
-#define MUX_PB22F_TCC3_WO0 5L
-#define PINMUX_PB22F_TCC3_WO0 ((PIN_PB22F_TCC3_WO0 << 16) | MUX_PB22F_TCC3_WO0)
-#define PORT_PB22F_TCC3_WO0 (1ul << 22)
-#define PIN_PA03F_TCC3_WO1 3L /**< \brief TCC3 signal: WO1 on PA03 mux F */
-#define MUX_PA03F_TCC3_WO1 5L
-#define PINMUX_PA03F_TCC3_WO1 ((PIN_PA03F_TCC3_WO1 << 16) | MUX_PA03F_TCC3_WO1)
-#define PORT_PA03F_TCC3_WO1 (1ul << 3)
-#define PIN_PB23F_TCC3_WO1 55L /**< \brief TCC3 signal: WO1 on PB23 mux F */
-#define MUX_PB23F_TCC3_WO1 5L
-#define PINMUX_PB23F_TCC3_WO1 ((PIN_PB23F_TCC3_WO1 << 16) | MUX_PB23F_TCC3_WO1)
-#define PORT_PB23F_TCC3_WO1 (1ul << 23)
-#define PIN_PA04F_TCC3_WO2 4L /**< \brief TCC3 signal: WO2 on PA04 mux F */
-#define MUX_PA04F_TCC3_WO2 5L
-#define PINMUX_PA04F_TCC3_WO2 ((PIN_PA04F_TCC3_WO2 << 16) | MUX_PA04F_TCC3_WO2)
-#define PORT_PA04F_TCC3_WO2 (1ul << 4)
-#define PIN_PB02F_TCC3_WO2 34L /**< \brief TCC3 signal: WO2 on PB02 mux F */
-#define MUX_PB02F_TCC3_WO2 5L
-#define PINMUX_PB02F_TCC3_WO2 ((PIN_PB02F_TCC3_WO2 << 16) | MUX_PB02F_TCC3_WO2)
-#define PORT_PB02F_TCC3_WO2 (1ul << 2)
-#define PIN_PA05F_TCC3_WO3 5L /**< \brief TCC3 signal: WO3 on PA05 mux F */
-#define MUX_PA05F_TCC3_WO3 5L
-#define PINMUX_PA05F_TCC3_WO3 ((PIN_PA05F_TCC3_WO3 << 16) | MUX_PA05F_TCC3_WO3)
-#define PORT_PA05F_TCC3_WO3 (1ul << 5)
-#define PIN_PB03F_TCC3_WO3 35L /**< \brief TCC3 signal: WO3 on PB03 mux F */
-#define MUX_PB03F_TCC3_WO3 5L
-#define PINMUX_PB03F_TCC3_WO3 ((PIN_PB03F_TCC3_WO3 << 16) | MUX_PB03F_TCC3_WO3)
-#define PORT_PB03F_TCC3_WO3 (1ul << 3)
-#define PIN_PA06F_TCC3_WO4 6L /**< \brief TCC3 signal: WO4 on PA06 mux F */
-#define MUX_PA06F_TCC3_WO4 5L
-#define PINMUX_PA06F_TCC3_WO4 ((PIN_PA06F_TCC3_WO4 << 16) | MUX_PA06F_TCC3_WO4)
-#define PORT_PA06F_TCC3_WO4 (1ul << 6)
-#define PIN_PA30F_TCC3_WO4 30L /**< \brief TCC3 signal: WO4 on PA30 mux F */
-#define MUX_PA30F_TCC3_WO4 5L
-#define PINMUX_PA30F_TCC3_WO4 ((PIN_PA30F_TCC3_WO4 << 16) | MUX_PA30F_TCC3_WO4)
-#define PORT_PA30F_TCC3_WO4 (1ul << 30)
-#define PIN_PA07F_TCC3_WO5 7L /**< \brief TCC3 signal: WO5 on PA07 mux F */
-#define MUX_PA07F_TCC3_WO5 5L
-#define PINMUX_PA07F_TCC3_WO5 ((PIN_PA07F_TCC3_WO5 << 16) | MUX_PA07F_TCC3_WO5)
-#define PORT_PA07F_TCC3_WO5 (1ul << 7)
-#define PIN_PA31F_TCC3_WO5 31L /**< \brief TCC3 signal: WO5 on PA31 mux F */
-#define MUX_PA31F_TCC3_WO5 5L
-#define PINMUX_PA31F_TCC3_WO5 ((PIN_PA31F_TCC3_WO5 << 16) | MUX_PA31F_TCC3_WO5)
-#define PORT_PA31F_TCC3_WO5 (1ul << 31)
-#define PIN_PA27F_TCC3_WO6 27L /**< \brief TCC3 signal: WO6 on PA27 mux F */
-#define MUX_PA27F_TCC3_WO6 5L
-#define PINMUX_PA27F_TCC3_WO6 ((PIN_PA27F_TCC3_WO6 << 16) | MUX_PA27F_TCC3_WO6)
-#define PORT_PA27F_TCC3_WO6 (1ul << 27)
-#define PIN_PB08F_TCC3_WO6 40L /**< \brief TCC3 signal: WO6 on PB08 mux F */
-#define MUX_PB08F_TCC3_WO6 5L
-#define PINMUX_PB08F_TCC3_WO6 ((PIN_PB08F_TCC3_WO6 << 16) | MUX_PB08F_TCC3_WO6)
-#define PORT_PB08F_TCC3_WO6 (1ul << 8)
-#define PIN_PA28F_TCC3_WO7 28L /**< \brief TCC3 signal: WO7 on PA28 mux F */
-#define MUX_PA28F_TCC3_WO7 5L
-#define PINMUX_PA28F_TCC3_WO7 ((PIN_PA28F_TCC3_WO7 << 16) | MUX_PA28F_TCC3_WO7)
-#define PORT_PA28F_TCC3_WO7 (1ul << 28)
-#define PIN_PB09F_TCC3_WO7 41L /**< \brief TCC3 signal: WO7 on PB09 mux F */
-#define MUX_PB09F_TCC3_WO7 5L
-#define PINMUX_PB09F_TCC3_WO7 ((PIN_PB09F_TCC3_WO7 << 16) | MUX_PB09F_TCC3_WO7)
-#define PORT_PB09F_TCC3_WO7 (1ul << 9)
-
-#endif /* _SAMD21G17D_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g17l.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g17l.h
deleted file mode 100644
index b395916..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g17l.h
+++ /dev/null
@@ -1,988 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21G17L
- *
- * Copyright (c) 2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21G17L_PIO_
-#define _SAMD21G17L_PIO_
-
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA12 12 /**< \brief Pin Number for PA12 */
-#define PORT_PA12 (1ul << 12) /**< \brief PORT Mask for PA12 */
-#define PIN_PA13 13 /**< \brief Pin Number for PA13 */
-#define PORT_PA13 (1ul << 13) /**< \brief PORT Mask for PA13 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA20 20 /**< \brief Pin Number for PA20 */
-#define PORT_PA20 (1ul << 20) /**< \brief PORT Mask for PA20 */
-#define PIN_PA21 21 /**< \brief Pin Number for PA21 */
-#define PORT_PA21 (1ul << 21) /**< \brief PORT Mask for PA21 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB00 32 /**< \brief Pin Number for PB00 */
-#define PORT_PB00 (1ul << 0) /**< \brief PORT Mask for PB00 */
-#define PIN_PB01 33 /**< \brief Pin Number for PB01 */
-#define PORT_PB01 (1ul << 1) /**< \brief PORT Mask for PB01 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB04 36 /**< \brief Pin Number for PB04 */
-#define PORT_PB04 (1ul << 4) /**< \brief PORT Mask for PB04 */
-#define PIN_PB05 37 /**< \brief Pin Number for PB05 */
-#define PORT_PB05 (1ul << 5) /**< \brief PORT Mask for PB05 */
-#define PIN_PB08 40 /**< \brief Pin Number for PB08 */
-#define PORT_PB08 (1ul << 8) /**< \brief PORT Mask for PB08 */
-#define PIN_PB09 41 /**< \brief Pin Number for PB09 */
-#define PORT_PB09 (1ul << 9) /**< \brief PORT Mask for PB09 */
-#define PIN_PB10 42 /**< \brief Pin Number for PB10 */
-#define PORT_PB10 (1ul << 10) /**< \brief PORT Mask for PB10 */
-#define PIN_PB11 43 /**< \brief Pin Number for PB11 */
-#define PORT_PB11 (1ul << 11) /**< \brief PORT Mask for PB11 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA20H_GCLK_IO4 20L /**< \brief GCLK signal: IO4 on PA20 mux H */
-#define MUX_PA20H_GCLK_IO4 7L
-#define PINMUX_PA20H_GCLK_IO4 ((PIN_PA20H_GCLK_IO4 << 16) | MUX_PA20H_GCLK_IO4)
-#define PORT_PA20H_GCLK_IO4 (1ul << 20)
-#define PIN_PB10H_GCLK_IO4 42L /**< \brief GCLK signal: IO4 on PB10 mux H */
-#define MUX_PB10H_GCLK_IO4 7L
-#define PINMUX_PB10H_GCLK_IO4 ((PIN_PB10H_GCLK_IO4 << 16) | MUX_PB10H_GCLK_IO4)
-#define PORT_PB10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA21H_GCLK_IO5 21L /**< \brief GCLK signal: IO5 on PA21 mux H */
-#define MUX_PA21H_GCLK_IO5 7L
-#define PINMUX_PA21H_GCLK_IO5 ((PIN_PA21H_GCLK_IO5 << 16) | MUX_PA21H_GCLK_IO5)
-#define PORT_PA21H_GCLK_IO5 (1ul << 21)
-#define PIN_PB11H_GCLK_IO5 43L /**< \brief GCLK signal: IO5 on PB11 mux H */
-#define MUX_PB11H_GCLK_IO5 7L
-#define PINMUX_PB11H_GCLK_IO5 ((PIN_PB11H_GCLK_IO5 << 16) | MUX_PB11H_GCLK_IO5)
-#define PORT_PB11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA16A_EIC_EXTINT_NUM 0L /**< \brief EIC signal: PIN_PA16 External Interrupt Line */
-#define PIN_PB00A_EIC_EXTINT0 32L /**< \brief EIC signal: EXTINT0 on PB00 mux A */
-#define MUX_PB00A_EIC_EXTINT0 0L
-#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0)
-#define PORT_PB00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PB00A_EIC_EXTINT_NUM 0L /**< \brief EIC signal: PIN_PB00 External Interrupt Line */
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA17A_EIC_EXTINT_NUM 1L /**< \brief EIC signal: PIN_PA17 External Interrupt Line */
-#define PIN_PB01A_EIC_EXTINT1 33L /**< \brief EIC signal: EXTINT1 on PB01 mux A */
-#define MUX_PB01A_EIC_EXTINT1 0L
-#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1)
-#define PORT_PB01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PB01A_EIC_EXTINT_NUM 1L /**< \brief EIC signal: PIN_PB01 External Interrupt Line */
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA02A_EIC_EXTINT_NUM 2L /**< \brief EIC signal: PIN_PA02 External Interrupt Line */
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA18A_EIC_EXTINT_NUM 2L /**< \brief EIC signal: PIN_PA18 External Interrupt Line */
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PB02A_EIC_EXTINT_NUM 2L /**< \brief EIC signal: PIN_PB02 External Interrupt Line */
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA03A_EIC_EXTINT_NUM 3L /**< \brief EIC signal: PIN_PA03 External Interrupt Line */
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PA19A_EIC_EXTINT_NUM 3L /**< \brief EIC signal: PIN_PA19 External Interrupt Line */
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PB03A_EIC_EXTINT_NUM 3L /**< \brief EIC signal: PIN_PB03 External Interrupt Line */
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA04A_EIC_EXTINT_NUM 4L /**< \brief EIC signal: PIN_PA04 External Interrupt Line */
-#define PIN_PA20A_EIC_EXTINT4 20L /**< \brief EIC signal: EXTINT4 on PA20 mux A */
-#define MUX_PA20A_EIC_EXTINT4 0L
-#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4)
-#define PORT_PA20A_EIC_EXTINT4 (1ul << 20)
-#define PIN_PA20A_EIC_EXTINT_NUM 4L /**< \brief EIC signal: PIN_PA20 External Interrupt Line */
-#define PIN_PB04A_EIC_EXTINT4 36L /**< \brief EIC signal: EXTINT4 on PB04 mux A */
-#define MUX_PB04A_EIC_EXTINT4 0L
-#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4)
-#define PORT_PB04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PB04A_EIC_EXTINT_NUM 4L /**< \brief EIC signal: PIN_PB04 External Interrupt Line */
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA05A_EIC_EXTINT_NUM 5L /**< \brief EIC signal: PIN_PA05 External Interrupt Line */
-#define PIN_PA21A_EIC_EXTINT5 21L /**< \brief EIC signal: EXTINT5 on PA21 mux A */
-#define MUX_PA21A_EIC_EXTINT5 0L
-#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5)
-#define PORT_PA21A_EIC_EXTINT5 (1ul << 21)
-#define PIN_PA21A_EIC_EXTINT_NUM 5L /**< \brief EIC signal: PIN_PA21 External Interrupt Line */
-#define PIN_PB05A_EIC_EXTINT5 37L /**< \brief EIC signal: EXTINT5 on PB05 mux A */
-#define MUX_PB05A_EIC_EXTINT5 0L
-#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5)
-#define PORT_PB05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PB05A_EIC_EXTINT_NUM 5L /**< \brief EIC signal: PIN_PB05 External Interrupt Line */
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA06A_EIC_EXTINT_NUM 6L /**< \brief EIC signal: PIN_PA06 External Interrupt Line */
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA22A_EIC_EXTINT_NUM 6L /**< \brief EIC signal: PIN_PA22 External Interrupt Line */
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA07A_EIC_EXTINT_NUM 7L /**< \brief EIC signal: PIN_PA07 External Interrupt Line */
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA23A_EIC_EXTINT_NUM 7L /**< \brief EIC signal: PIN_PA23 External Interrupt Line */
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PA28A_EIC_EXTINT_NUM 8L /**< \brief EIC signal: PIN_PA28 External Interrupt Line */
-#define PIN_PB08A_EIC_EXTINT8 40L /**< \brief EIC signal: EXTINT8 on PB08 mux A */
-#define MUX_PB08A_EIC_EXTINT8 0L
-#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8)
-#define PORT_PB08A_EIC_EXTINT8 (1ul << 8)
-#define PIN_PB08A_EIC_EXTINT_NUM 8L /**< \brief EIC signal: PIN_PB08 External Interrupt Line */
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA09A_EIC_EXTINT_NUM 9L /**< \brief EIC signal: PIN_PA09 External Interrupt Line */
-#define PIN_PB09A_EIC_EXTINT9 41L /**< \brief EIC signal: EXTINT9 on PB09 mux A */
-#define MUX_PB09A_EIC_EXTINT9 0L
-#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9)
-#define PORT_PB09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PB09A_EIC_EXTINT_NUM 9L /**< \brief EIC signal: PIN_PB09 External Interrupt Line */
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA10A_EIC_EXTINT_NUM 10L /**< \brief EIC signal: PIN_PA10 External Interrupt Line */
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PA30A_EIC_EXTINT_NUM 10L /**< \brief EIC signal: PIN_PA30 External Interrupt Line */
-#define PIN_PB10A_EIC_EXTINT10 42L /**< \brief EIC signal: EXTINT10 on PB10 mux A */
-#define MUX_PB10A_EIC_EXTINT10 0L
-#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10)
-#define PORT_PB10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PB10A_EIC_EXTINT_NUM 10L /**< \brief EIC signal: PIN_PB10 External Interrupt Line */
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA11A_EIC_EXTINT_NUM 11L /**< \brief EIC signal: PIN_PA11 External Interrupt Line */
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PA31A_EIC_EXTINT_NUM 11L /**< \brief EIC signal: PIN_PA31 External Interrupt Line */
-#define PIN_PB11A_EIC_EXTINT11 43L /**< \brief EIC signal: EXTINT11 on PB11 mux A */
-#define MUX_PB11A_EIC_EXTINT11 0L
-#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11)
-#define PORT_PB11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PB11A_EIC_EXTINT_NUM 11L /**< \brief EIC signal: PIN_PB11 External Interrupt Line */
-#define PIN_PA12A_EIC_EXTINT12 12L /**< \brief EIC signal: EXTINT12 on PA12 mux A */
-#define MUX_PA12A_EIC_EXTINT12 0L
-#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12)
-#define PORT_PA12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA12A_EIC_EXTINT_NUM 12L /**< \brief EIC signal: PIN_PA12 External Interrupt Line */
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA24A_EIC_EXTINT_NUM 12L /**< \brief EIC signal: PIN_PA24 External Interrupt Line */
-#define PIN_PA13A_EIC_EXTINT13 13L /**< \brief EIC signal: EXTINT13 on PA13 mux A */
-#define MUX_PA13A_EIC_EXTINT13 0L
-#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13)
-#define PORT_PA13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PA13A_EIC_EXTINT_NUM 13L /**< \brief EIC signal: PIN_PA13 External Interrupt Line */
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA25A_EIC_EXTINT_NUM 13L /**< \brief EIC signal: PIN_PA25 External Interrupt Line */
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA14A_EIC_EXTINT_NUM 14L /**< \brief EIC signal: PIN_PA14 External Interrupt Line */
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA27A_EIC_EXTINT_NUM 15L /**< \brief EIC signal: PIN_PA27 External Interrupt Line */
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA15A_EIC_EXTINT_NUM 15L /**< \brief EIC signal: PIN_PA15 External Interrupt Line */
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA12C_SERCOM2_PAD0 12L /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */
-#define MUX_PA12C_SERCOM2_PAD0 2L
-#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0)
-#define PORT_PA12C_SERCOM2_PAD0 (1ul << 12)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA13C_SERCOM2_PAD1 13L /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */
-#define MUX_PA13C_SERCOM2_PAD1 2L
-#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1)
-#define PORT_PA13C_SERCOM2_PAD1 (1ul << 13)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA20D_SERCOM3_PAD2 20L /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */
-#define MUX_PA20D_SERCOM3_PAD2 3L
-#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2)
-#define PORT_PA20D_SERCOM3_PAD2 (1ul << 20)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA21D_SERCOM3_PAD3 21L /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */
-#define MUX_PA21D_SERCOM3_PAD3 3L
-#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3)
-#define PORT_PA21D_SERCOM3_PAD3 (1ul << 21)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for SERCOM4 peripheral ========== */
-#define PIN_PA12D_SERCOM4_PAD0 12L /**< \brief SERCOM4 signal: PAD0 on PA12 mux D */
-#define MUX_PA12D_SERCOM4_PAD0 3L
-#define PINMUX_PA12D_SERCOM4_PAD0 ((PIN_PA12D_SERCOM4_PAD0 << 16) | MUX_PA12D_SERCOM4_PAD0)
-#define PORT_PA12D_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PB08D_SERCOM4_PAD0 40L /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */
-#define MUX_PB08D_SERCOM4_PAD0 3L
-#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0)
-#define PORT_PB08D_SERCOM4_PAD0 (1ul << 8)
-#define PIN_PA13D_SERCOM4_PAD1 13L /**< \brief SERCOM4 signal: PAD1 on PA13 mux D */
-#define MUX_PA13D_SERCOM4_PAD1 3L
-#define PINMUX_PA13D_SERCOM4_PAD1 ((PIN_PA13D_SERCOM4_PAD1 << 16) | MUX_PA13D_SERCOM4_PAD1)
-#define PORT_PA13D_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PB09D_SERCOM4_PAD1 41L /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */
-#define MUX_PB09D_SERCOM4_PAD1 3L
-#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1)
-#define PORT_PB09D_SERCOM4_PAD1 (1ul << 9)
-#define PIN_PA14D_SERCOM4_PAD2 14L /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */
-#define MUX_PA14D_SERCOM4_PAD2 3L
-#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2)
-#define PORT_PA14D_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PB10D_SERCOM4_PAD2 42L /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */
-#define MUX_PB10D_SERCOM4_PAD2 3L
-#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2)
-#define PORT_PB10D_SERCOM4_PAD2 (1ul << 10)
-#define PIN_PA15D_SERCOM4_PAD3 15L /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */
-#define MUX_PA15D_SERCOM4_PAD3 3L
-#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3)
-#define PORT_PA15D_SERCOM4_PAD3 (1ul << 15)
-#define PIN_PB11D_SERCOM4_PAD3 43L /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */
-#define MUX_PB11D_SERCOM4_PAD3 3L
-#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3)
-#define PORT_PB11D_SERCOM4_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM5 peripheral ========== */
-#define PIN_PA22D_SERCOM5_PAD0 22L /**< \brief SERCOM5 signal: PAD0 on PA22 mux D */
-#define MUX_PA22D_SERCOM5_PAD0 3L
-#define PINMUX_PA22D_SERCOM5_PAD0 ((PIN_PA22D_SERCOM5_PAD0 << 16) | MUX_PA22D_SERCOM5_PAD0)
-#define PORT_PA22D_SERCOM5_PAD0 (1ul << 22)
-#define PIN_PB02D_SERCOM5_PAD0 34L /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */
-#define MUX_PB02D_SERCOM5_PAD0 3L
-#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0)
-#define PORT_PB02D_SERCOM5_PAD0 (1ul << 2)
-#define PIN_PA23D_SERCOM5_PAD1 23L /**< \brief SERCOM5 signal: PAD1 on PA23 mux D */
-#define MUX_PA23D_SERCOM5_PAD1 3L
-#define PINMUX_PA23D_SERCOM5_PAD1 ((PIN_PA23D_SERCOM5_PAD1 << 16) | MUX_PA23D_SERCOM5_PAD1)
-#define PORT_PA23D_SERCOM5_PAD1 (1ul << 23)
-#define PIN_PB03D_SERCOM5_PAD1 35L /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */
-#define MUX_PB03D_SERCOM5_PAD1 3L
-#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1)
-#define PORT_PB03D_SERCOM5_PAD1 (1ul << 3)
-#define PIN_PA24D_SERCOM5_PAD2 24L /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */
-#define MUX_PA24D_SERCOM5_PAD2 3L
-#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2)
-#define PORT_PA24D_SERCOM5_PAD2 (1ul << 24)
-#define PIN_PB00D_SERCOM5_PAD2 32L /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */
-#define MUX_PB00D_SERCOM5_PAD2 3L
-#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2)
-#define PORT_PB00D_SERCOM5_PAD2 (1ul << 0)
-#define PIN_PA20C_SERCOM5_PAD2 20L /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */
-#define MUX_PA20C_SERCOM5_PAD2 2L
-#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2)
-#define PORT_PA20C_SERCOM5_PAD2 (1ul << 20)
-#define PIN_PA25D_SERCOM5_PAD3 25L /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */
-#define MUX_PA25D_SERCOM5_PAD3 3L
-#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3)
-#define PORT_PA25D_SERCOM5_PAD3 (1ul << 25)
-#define PIN_PB01D_SERCOM5_PAD3 33L /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */
-#define MUX_PB01D_SERCOM5_PAD3 3L
-#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3)
-#define PORT_PB01D_SERCOM5_PAD3 (1ul << 1)
-#define PIN_PA21C_SERCOM5_PAD3 21L /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */
-#define MUX_PA21C_SERCOM5_PAD3 2L
-#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3)
-#define PORT_PA21C_SERCOM5_PAD3 (1ul << 21)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PB10F_TCC0_WO4 42L /**< \brief TCC0 signal: WO4 on PB10 mux F */
-#define MUX_PB10F_TCC0_WO4 5L
-#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4)
-#define PORT_PB10F_TCC0_WO4 (1ul << 10)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PB11F_TCC0_WO5 43L /**< \brief TCC0 signal: WO5 on PB11 mux F */
-#define MUX_PB11F_TCC0_WO5 5L
-#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5)
-#define PORT_PB11F_TCC0_WO5 (1ul << 11)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA12F_TCC0_WO6 12L /**< \brief TCC0 signal: WO6 on PA12 mux F */
-#define MUX_PA12F_TCC0_WO6 5L
-#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6)
-#define PORT_PA12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA20F_TCC0_WO6 20L /**< \brief TCC0 signal: WO6 on PA20 mux F */
-#define MUX_PA20F_TCC0_WO6 5L
-#define PINMUX_PA20F_TCC0_WO6 ((PIN_PA20F_TCC0_WO6 << 16) | MUX_PA20F_TCC0_WO6)
-#define PORT_PA20F_TCC0_WO6 (1ul << 20)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA13F_TCC0_WO7 13L /**< \brief TCC0 signal: WO7 on PA13 mux F */
-#define MUX_PA13F_TCC0_WO7 5L
-#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7)
-#define PORT_PA13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA21F_TCC0_WO7 21L /**< \brief TCC0 signal: WO7 on PA21 mux F */
-#define MUX_PA21F_TCC0_WO7 5L
-#define PINMUX_PA21F_TCC0_WO7 ((PIN_PA21F_TCC0_WO7 << 16) | MUX_PA21F_TCC0_WO7)
-#define PORT_PA21F_TCC0_WO7 (1ul << 21)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA12E_TCC2_WO0 12L /**< \brief TCC2 signal: WO0 on PA12 mux E */
-#define MUX_PA12E_TCC2_WO0 4L
-#define PINMUX_PA12E_TCC2_WO0 ((PIN_PA12E_TCC2_WO0 << 16) | MUX_PA12E_TCC2_WO0)
-#define PORT_PA12E_TCC2_WO0 (1ul << 12)
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA13E_TCC2_WO1 13L /**< \brief TCC2 signal: WO1 on PA13 mux E */
-#define MUX_PA13E_TCC2_WO1 4L
-#define PINMUX_PA13E_TCC2_WO1 ((PIN_PA13E_TCC2_WO1 << 16) | MUX_PA13E_TCC2_WO1)
-#define PORT_PA13E_TCC2_WO1 (1ul << 13)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PB08E_TC4_WO0 40L /**< \brief TC4 signal: WO0 on PB08 mux E */
-#define MUX_PB08E_TC4_WO0 4L
-#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0)
-#define PORT_PB08E_TC4_WO0 (1ul << 8)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-#define PIN_PB09E_TC4_WO1 41L /**< \brief TC4 signal: WO1 on PB09 mux E */
-#define MUX_PB09E_TC4_WO1 4L
-#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1)
-#define PORT_PB09E_TC4_WO1 (1ul << 9)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PB10E_TC5_WO0 42L /**< \brief TC5 signal: WO0 on PB10 mux E */
-#define MUX_PB10E_TC5_WO0 4L
-#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0)
-#define PORT_PB10E_TC5_WO0 (1ul << 10)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-#define PIN_PB11E_TC5_WO1 43L /**< \brief TC5 signal: WO1 on PB11 mux E */
-#define MUX_PB11E_TC5_WO1 4L
-#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1)
-#define PORT_PB11E_TC5_WO1 (1ul << 11)
-/* ========== PORT definition for TC6 peripheral ========== */
-#define PIN_PB02E_TC6_WO0 34L /**< \brief TC6 signal: WO0 on PB02 mux E */
-#define MUX_PB02E_TC6_WO0 4L
-#define PINMUX_PB02E_TC6_WO0 ((PIN_PB02E_TC6_WO0 << 16) | MUX_PB02E_TC6_WO0)
-#define PORT_PB02E_TC6_WO0 (1ul << 2)
-#define PIN_PB03E_TC6_WO1 35L /**< \brief TC6 signal: WO1 on PB03 mux E */
-#define MUX_PB03E_TC6_WO1 4L
-#define PINMUX_PB03E_TC6_WO1 ((PIN_PB03E_TC6_WO1 << 16) | MUX_PB03E_TC6_WO1)
-#define PORT_PB03E_TC6_WO1 (1ul << 3)
-/* ========== PORT definition for TC7 peripheral ========== */
-#define PIN_PA20E_TC7_WO0 20L /**< \brief TC7 signal: WO0 on PA20 mux E */
-#define MUX_PA20E_TC7_WO0 4L
-#define PINMUX_PA20E_TC7_WO0 ((PIN_PA20E_TC7_WO0 << 16) | MUX_PA20E_TC7_WO0)
-#define PORT_PA20E_TC7_WO0 (1ul << 20)
-#define PIN_PB00E_TC7_WO0 32L /**< \brief TC7 signal: WO0 on PB00 mux E */
-#define MUX_PB00E_TC7_WO0 4L
-#define PINMUX_PB00E_TC7_WO0 ((PIN_PB00E_TC7_WO0 << 16) | MUX_PB00E_TC7_WO0)
-#define PORT_PB00E_TC7_WO0 (1ul << 0)
-#define PIN_PA21E_TC7_WO1 21L /**< \brief TC7 signal: WO1 on PA21 mux E */
-#define MUX_PA21E_TC7_WO1 4L
-#define PINMUX_PA21E_TC7_WO1 ((PIN_PA21E_TC7_WO1 << 16) | MUX_PA21E_TC7_WO1)
-#define PORT_PA21E_TC7_WO1 (1ul << 21)
-#define PIN_PB01E_TC7_WO1 33L /**< \brief TC7 signal: WO1 on PB01 mux E */
-#define MUX_PB01E_TC7_WO1 4L
-#define PINMUX_PB01E_TC7_WO1 ((PIN_PB01E_TC7_WO1 << 16) | MUX_PB01E_TC7_WO1)
-#define PORT_PB01E_TC7_WO1 (1ul << 1)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PB08B_ADC_AIN2 40L /**< \brief ADC signal: AIN2 on PB08 mux B */
-#define MUX_PB08B_ADC_AIN2 1L
-#define PINMUX_PB08B_ADC_AIN2 ((PIN_PB08B_ADC_AIN2 << 16) | MUX_PB08B_ADC_AIN2)
-#define PORT_PB08B_ADC_AIN2 (1ul << 8)
-#define PIN_PB09B_ADC_AIN3 41L /**< \brief ADC signal: AIN3 on PB09 mux B */
-#define MUX_PB09B_ADC_AIN3 1L
-#define PINMUX_PB09B_ADC_AIN3 ((PIN_PB09B_ADC_AIN3 << 16) | MUX_PB09B_ADC_AIN3)
-#define PORT_PB09B_ADC_AIN3 (1ul << 9)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB00B_ADC_AIN8 32L /**< \brief ADC signal: AIN8 on PB00 mux B */
-#define MUX_PB00B_ADC_AIN8 1L
-#define PINMUX_PB00B_ADC_AIN8 ((PIN_PB00B_ADC_AIN8 << 16) | MUX_PB00B_ADC_AIN8)
-#define PORT_PB00B_ADC_AIN8 (1ul << 0)
-#define PIN_PB01B_ADC_AIN9 33L /**< \brief ADC signal: AIN9 on PB01 mux B */
-#define MUX_PB01B_ADC_AIN9 1L
-#define PINMUX_PB01B_ADC_AIN9 ((PIN_PB01B_ADC_AIN9 << 16) | MUX_PB01B_ADC_AIN9)
-#define PORT_PB01B_ADC_AIN9 (1ul << 1)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PB04B_ADC_AIN12 36L /**< \brief ADC signal: AIN12 on PB04 mux B */
-#define MUX_PB04B_ADC_AIN12 1L
-#define PINMUX_PB04B_ADC_AIN12 ((PIN_PB04B_ADC_AIN12 << 16) | MUX_PB04B_ADC_AIN12)
-#define PORT_PB04B_ADC_AIN12 (1ul << 4)
-#define PIN_PB05B_ADC_AIN13 37L /**< \brief ADC signal: AIN13 on PB05 mux B */
-#define MUX_PB05B_ADC_AIN13 1L
-#define PINMUX_PB05B_ADC_AIN13 ((PIN_PB05B_ADC_AIN13 << 16) | MUX_PB05B_ADC_AIN13)
-#define PORT_PB05B_ADC_AIN13 (1ul << 5)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA12H_AC_CMP0 12L /**< \brief AC signal: CMP0 on PA12 mux H */
-#define MUX_PA12H_AC_CMP0 7L
-#define PINMUX_PA12H_AC_CMP0 ((PIN_PA12H_AC_CMP0 << 16) | MUX_PA12H_AC_CMP0)
-#define PORT_PA12H_AC_CMP0 (1ul << 12)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA13H_AC_CMP1 13L /**< \brief AC signal: CMP1 on PA13 mux H */
-#define MUX_PA13H_AC_CMP1 7L
-#define PINMUX_PA13H_AC_CMP1 ((PIN_PA13H_AC_CMP1 << 16) | MUX_PA13H_AC_CMP1)
-#define PORT_PA13H_AC_CMP1 (1ul << 13)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for AC1 peripheral ========== */
-#define PIN_PB04B_AC1_AIN0 36L /**< \brief AC1 signal: AIN0 on PB04 mux B */
-#define MUX_PB04B_AC1_AIN0 1L
-#define PINMUX_PB04B_AC1_AIN0 ((PIN_PB04B_AC1_AIN0 << 16) | MUX_PB04B_AC1_AIN0)
-#define PORT_PB04B_AC1_AIN0 (1ul << 4)
-#define PIN_PB05B_AC1_AIN1 37L /**< \brief AC1 signal: AIN1 on PB05 mux B */
-#define MUX_PB05B_AC1_AIN1 1L
-#define PINMUX_PB05B_AC1_AIN1 ((PIN_PB05B_AC1_AIN1 << 16) | MUX_PB05B_AC1_AIN1)
-#define PORT_PB05B_AC1_AIN1 (1ul << 5)
-#define PIN_PB02B_AC1_AIN2 34L /**< \brief AC1 signal: AIN2 on PB02 mux B */
-#define MUX_PB02B_AC1_AIN2 1L
-#define PINMUX_PB02B_AC1_AIN2 ((PIN_PB02B_AC1_AIN2 << 16) | MUX_PB02B_AC1_AIN2)
-#define PORT_PB02B_AC1_AIN2 (1ul << 2)
-#define PIN_PB03B_AC1_AIN3 35L /**< \brief AC1 signal: AIN3 on PB03 mux B */
-#define MUX_PB03B_AC1_AIN3 1L
-#define PINMUX_PB03B_AC1_AIN3 ((PIN_PB03B_AC1_AIN3 << 16) | MUX_PB03B_AC1_AIN3)
-#define PORT_PB03B_AC1_AIN3 (1ul << 3)
-#define PIN_PA24H_AC1_CMP0 24L /**< \brief AC1 signal: CMP0 on PA24 mux H */
-#define MUX_PA24H_AC1_CMP0 7L
-#define PINMUX_PA24H_AC1_CMP0 ((PIN_PA24H_AC1_CMP0 << 16) | MUX_PA24H_AC1_CMP0)
-#define PORT_PA24H_AC1_CMP0 (1ul << 24)
-#define PIN_PA25H_AC1_CMP1 25L /**< \brief AC1 signal: CMP1 on PA25 mux H */
-#define MUX_PA25H_AC1_CMP1 7L
-#define PINMUX_PA25H_AC1_CMP1 ((PIN_PA25H_AC1_CMP1 << 16) | MUX_PA25H_AC1_CMP1)
-#define PORT_PA25H_AC1_CMP1 (1ul << 25)
-/* ========== PORT definition for TCC3 peripheral ========== */
-#define PIN_PA02F_TCC3_WO0 2L /**< \brief TCC3 signal: WO0 on PA02 mux F */
-#define MUX_PA02F_TCC3_WO0 5L
-#define PINMUX_PA02F_TCC3_WO0 ((PIN_PA02F_TCC3_WO0 << 16) | MUX_PA02F_TCC3_WO0)
-#define PORT_PA02F_TCC3_WO0 (1ul << 2)
-#define PIN_PA03F_TCC3_WO1 3L /**< \brief TCC3 signal: WO1 on PA03 mux F */
-#define MUX_PA03F_TCC3_WO1 5L
-#define PINMUX_PA03F_TCC3_WO1 ((PIN_PA03F_TCC3_WO1 << 16) | MUX_PA03F_TCC3_WO1)
-#define PORT_PA03F_TCC3_WO1 (1ul << 3)
-#define PIN_PA04F_TCC3_WO2 4L /**< \brief TCC3 signal: WO2 on PA04 mux F */
-#define MUX_PA04F_TCC3_WO2 5L
-#define PINMUX_PA04F_TCC3_WO2 ((PIN_PA04F_TCC3_WO2 << 16) | MUX_PA04F_TCC3_WO2)
-#define PORT_PA04F_TCC3_WO2 (1ul << 4)
-#define PIN_PB02F_TCC3_WO2 34L /**< \brief TCC3 signal: WO2 on PB02 mux F */
-#define MUX_PB02F_TCC3_WO2 5L
-#define PINMUX_PB02F_TCC3_WO2 ((PIN_PB02F_TCC3_WO2 << 16) | MUX_PB02F_TCC3_WO2)
-#define PORT_PB02F_TCC3_WO2 (1ul << 2)
-#define PIN_PA05F_TCC3_WO3 5L /**< \brief TCC3 signal: WO3 on PA05 mux F */
-#define MUX_PA05F_TCC3_WO3 5L
-#define PINMUX_PA05F_TCC3_WO3 ((PIN_PA05F_TCC3_WO3 << 16) | MUX_PA05F_TCC3_WO3)
-#define PORT_PA05F_TCC3_WO3 (1ul << 5)
-#define PIN_PB03F_TCC3_WO3 35L /**< \brief TCC3 signal: WO3 on PB03 mux F */
-#define MUX_PB03F_TCC3_WO3 5L
-#define PINMUX_PB03F_TCC3_WO3 ((PIN_PB03F_TCC3_WO3 << 16) | MUX_PB03F_TCC3_WO3)
-#define PORT_PB03F_TCC3_WO3 (1ul << 3)
-#define PIN_PA06F_TCC3_WO4 6L /**< \brief TCC3 signal: WO4 on PA06 mux F */
-#define MUX_PA06F_TCC3_WO4 5L
-#define PINMUX_PA06F_TCC3_WO4 ((PIN_PA06F_TCC3_WO4 << 16) | MUX_PA06F_TCC3_WO4)
-#define PORT_PA06F_TCC3_WO4 (1ul << 6)
-#define PIN_PA30F_TCC3_WO4 30L /**< \brief TCC3 signal: WO4 on PA30 mux F */
-#define MUX_PA30F_TCC3_WO4 5L
-#define PINMUX_PA30F_TCC3_WO4 ((PIN_PA30F_TCC3_WO4 << 16) | MUX_PA30F_TCC3_WO4)
-#define PORT_PA30F_TCC3_WO4 (1ul << 30)
-#define PIN_PA07F_TCC3_WO5 7L /**< \brief TCC3 signal: WO5 on PA07 mux F */
-#define MUX_PA07F_TCC3_WO5 5L
-#define PINMUX_PA07F_TCC3_WO5 ((PIN_PA07F_TCC3_WO5 << 16) | MUX_PA07F_TCC3_WO5)
-#define PORT_PA07F_TCC3_WO5 (1ul << 7)
-#define PIN_PA31F_TCC3_WO5 31L /**< \brief TCC3 signal: WO5 on PA31 mux F */
-#define MUX_PA31F_TCC3_WO5 5L
-#define PINMUX_PA31F_TCC3_WO5 ((PIN_PA31F_TCC3_WO5 << 16) | MUX_PA31F_TCC3_WO5)
-#define PORT_PA31F_TCC3_WO5 (1ul << 31)
-#define PIN_PA27F_TCC3_WO6 27L /**< \brief TCC3 signal: WO6 on PA27 mux F */
-#define MUX_PA27F_TCC3_WO6 5L
-#define PINMUX_PA27F_TCC3_WO6 ((PIN_PA27F_TCC3_WO6 << 16) | MUX_PA27F_TCC3_WO6)
-#define PORT_PA27F_TCC3_WO6 (1ul << 27)
-#define PIN_PB08F_TCC3_WO6 40L /**< \brief TCC3 signal: WO6 on PB08 mux F */
-#define MUX_PB08F_TCC3_WO6 5L
-#define PINMUX_PB08F_TCC3_WO6 ((PIN_PB08F_TCC3_WO6 << 16) | MUX_PB08F_TCC3_WO6)
-#define PORT_PB08F_TCC3_WO6 (1ul << 8)
-#define PIN_PA28F_TCC3_WO7 28L /**< \brief TCC3 signal: WO7 on PA28 mux F */
-#define MUX_PA28F_TCC3_WO7 5L
-#define PINMUX_PA28F_TCC3_WO7 ((PIN_PA28F_TCC3_WO7 << 16) | MUX_PA28F_TCC3_WO7)
-#define PORT_PA28F_TCC3_WO7 (1ul << 28)
-#define PIN_PB09F_TCC3_WO7 41L /**< \brief TCC3 signal: WO7 on PB09 mux F */
-#define MUX_PB09F_TCC3_WO7 5L
-#define PINMUX_PB09F_TCC3_WO7 ((PIN_PB09F_TCC3_WO7 << 16) | MUX_PB09F_TCC3_WO7)
-#define PORT_PB09F_TCC3_WO7 (1ul << 9)
-
-#endif /* _SAMD21G17L_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g18a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g18a.h
deleted file mode 100644
index ed5727c..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g18a.h
+++ /dev/null
@@ -1,908 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21G18A
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _SAMD21G18A_PIO_
-#define _SAMD21G18A_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA12 12 /**< \brief Pin Number for PA12 */
-#define PORT_PA12 (1ul << 12) /**< \brief PORT Mask for PA12 */
-#define PIN_PA13 13 /**< \brief Pin Number for PA13 */
-#define PORT_PA13 (1ul << 13) /**< \brief PORT Mask for PA13 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA20 20 /**< \brief Pin Number for PA20 */
-#define PORT_PA20 (1ul << 20) /**< \brief PORT Mask for PA20 */
-#define PIN_PA21 21 /**< \brief Pin Number for PA21 */
-#define PORT_PA21 (1ul << 21) /**< \brief PORT Mask for PA21 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB08 40 /**< \brief Pin Number for PB08 */
-#define PORT_PB08 (1ul << 8) /**< \brief PORT Mask for PB08 */
-#define PIN_PB09 41 /**< \brief Pin Number for PB09 */
-#define PORT_PB09 (1ul << 9) /**< \brief PORT Mask for PB09 */
-#define PIN_PB10 42 /**< \brief Pin Number for PB10 */
-#define PORT_PB10 (1ul << 10) /**< \brief PORT Mask for PB10 */
-#define PIN_PB11 43 /**< \brief Pin Number for PB11 */
-#define PORT_PB11 (1ul << 11) /**< \brief PORT Mask for PB11 */
-#define PIN_PB22 54 /**< \brief Pin Number for PB22 */
-#define PORT_PB22 (1ul << 22) /**< \brief PORT Mask for PB22 */
-#define PIN_PB23 55 /**< \brief Pin Number for PB23 */
-#define PORT_PB23 (1ul << 23) /**< \brief PORT Mask for PB23 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PB22H_GCLK_IO0 54L /**< \brief GCLK signal: IO0 on PB22 mux H */
-#define MUX_PB22H_GCLK_IO0 7L
-#define PINMUX_PB22H_GCLK_IO0 ((PIN_PB22H_GCLK_IO0 << 16) | MUX_PB22H_GCLK_IO0)
-#define PORT_PB22H_GCLK_IO0 (1ul << 22)
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PB23H_GCLK_IO1 55L /**< \brief GCLK signal: IO1 on PB23 mux H */
-#define MUX_PB23H_GCLK_IO1 7L
-#define PINMUX_PB23H_GCLK_IO1 ((PIN_PB23H_GCLK_IO1 << 16) | MUX_PB23H_GCLK_IO1)
-#define PORT_PB23H_GCLK_IO1 (1ul << 23)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA20H_GCLK_IO4 20L /**< \brief GCLK signal: IO4 on PA20 mux H */
-#define MUX_PA20H_GCLK_IO4 7L
-#define PINMUX_PA20H_GCLK_IO4 ((PIN_PA20H_GCLK_IO4 << 16) | MUX_PA20H_GCLK_IO4)
-#define PORT_PA20H_GCLK_IO4 (1ul << 20)
-#define PIN_PB10H_GCLK_IO4 42L /**< \brief GCLK signal: IO4 on PB10 mux H */
-#define MUX_PB10H_GCLK_IO4 7L
-#define PINMUX_PB10H_GCLK_IO4 ((PIN_PB10H_GCLK_IO4 << 16) | MUX_PB10H_GCLK_IO4)
-#define PORT_PB10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA21H_GCLK_IO5 21L /**< \brief GCLK signal: IO5 on PA21 mux H */
-#define MUX_PA21H_GCLK_IO5 7L
-#define PINMUX_PA21H_GCLK_IO5 ((PIN_PA21H_GCLK_IO5 << 16) | MUX_PA21H_GCLK_IO5)
-#define PORT_PA21H_GCLK_IO5 (1ul << 21)
-#define PIN_PB11H_GCLK_IO5 43L /**< \brief GCLK signal: IO5 on PB11 mux H */
-#define MUX_PB11H_GCLK_IO5 7L
-#define PINMUX_PB11H_GCLK_IO5 ((PIN_PB11H_GCLK_IO5 << 16) | MUX_PB11H_GCLK_IO5)
-#define PORT_PB11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA20A_EIC_EXTINT4 20L /**< \brief EIC signal: EXTINT4 on PA20 mux A */
-#define MUX_PA20A_EIC_EXTINT4 0L
-#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4)
-#define PORT_PA20A_EIC_EXTINT4 (1ul << 20)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA21A_EIC_EXTINT5 21L /**< \brief EIC signal: EXTINT5 on PA21 mux A */
-#define MUX_PA21A_EIC_EXTINT5 0L
-#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5)
-#define PORT_PA21A_EIC_EXTINT5 (1ul << 21)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PB22A_EIC_EXTINT6 54L /**< \brief EIC signal: EXTINT6 on PB22 mux A */
-#define MUX_PB22A_EIC_EXTINT6 0L
-#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6)
-#define PORT_PB22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PB23A_EIC_EXTINT7 55L /**< \brief EIC signal: EXTINT7 on PB23 mux A */
-#define MUX_PB23A_EIC_EXTINT7 0L
-#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7)
-#define PORT_PB23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PB08A_EIC_EXTINT8 40L /**< \brief EIC signal: EXTINT8 on PB08 mux A */
-#define MUX_PB08A_EIC_EXTINT8 0L
-#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8)
-#define PORT_PB08A_EIC_EXTINT8 (1ul << 8)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PB09A_EIC_EXTINT9 41L /**< \brief EIC signal: EXTINT9 on PB09 mux A */
-#define MUX_PB09A_EIC_EXTINT9 0L
-#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9)
-#define PORT_PB09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PB10A_EIC_EXTINT10 42L /**< \brief EIC signal: EXTINT10 on PB10 mux A */
-#define MUX_PB10A_EIC_EXTINT10 0L
-#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10)
-#define PORT_PB10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PB11A_EIC_EXTINT11 43L /**< \brief EIC signal: EXTINT11 on PB11 mux A */
-#define MUX_PB11A_EIC_EXTINT11 0L
-#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11)
-#define PORT_PB11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA12A_EIC_EXTINT12 12L /**< \brief EIC signal: EXTINT12 on PA12 mux A */
-#define MUX_PA12A_EIC_EXTINT12 0L
-#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12)
-#define PORT_PA12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA13A_EIC_EXTINT13 13L /**< \brief EIC signal: EXTINT13 on PA13 mux A */
-#define MUX_PA13A_EIC_EXTINT13 0L
-#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13)
-#define PORT_PA13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA12C_SERCOM2_PAD0 12L /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */
-#define MUX_PA12C_SERCOM2_PAD0 2L
-#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0)
-#define PORT_PA12C_SERCOM2_PAD0 (1ul << 12)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA13C_SERCOM2_PAD1 13L /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */
-#define MUX_PA13C_SERCOM2_PAD1 2L
-#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1)
-#define PORT_PA13C_SERCOM2_PAD1 (1ul << 13)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA20D_SERCOM3_PAD2 20L /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */
-#define MUX_PA20D_SERCOM3_PAD2 3L
-#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2)
-#define PORT_PA20D_SERCOM3_PAD2 (1ul << 20)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA21D_SERCOM3_PAD3 21L /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */
-#define MUX_PA21D_SERCOM3_PAD3 3L
-#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3)
-#define PORT_PA21D_SERCOM3_PAD3 (1ul << 21)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for SERCOM4 peripheral ========== */
-#define PIN_PA12D_SERCOM4_PAD0 12L /**< \brief SERCOM4 signal: PAD0 on PA12 mux D */
-#define MUX_PA12D_SERCOM4_PAD0 3L
-#define PINMUX_PA12D_SERCOM4_PAD0 ((PIN_PA12D_SERCOM4_PAD0 << 16) | MUX_PA12D_SERCOM4_PAD0)
-#define PORT_PA12D_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PB08D_SERCOM4_PAD0 40L /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */
-#define MUX_PB08D_SERCOM4_PAD0 3L
-#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0)
-#define PORT_PB08D_SERCOM4_PAD0 (1ul << 8)
-#define PIN_PA13D_SERCOM4_PAD1 13L /**< \brief SERCOM4 signal: PAD1 on PA13 mux D */
-#define MUX_PA13D_SERCOM4_PAD1 3L
-#define PINMUX_PA13D_SERCOM4_PAD1 ((PIN_PA13D_SERCOM4_PAD1 << 16) | MUX_PA13D_SERCOM4_PAD1)
-#define PORT_PA13D_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PB09D_SERCOM4_PAD1 41L /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */
-#define MUX_PB09D_SERCOM4_PAD1 3L
-#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1)
-#define PORT_PB09D_SERCOM4_PAD1 (1ul << 9)
-#define PIN_PA14D_SERCOM4_PAD2 14L /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */
-#define MUX_PA14D_SERCOM4_PAD2 3L
-#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2)
-#define PORT_PA14D_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PB10D_SERCOM4_PAD2 42L /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */
-#define MUX_PB10D_SERCOM4_PAD2 3L
-#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2)
-#define PORT_PB10D_SERCOM4_PAD2 (1ul << 10)
-#define PIN_PA15D_SERCOM4_PAD3 15L /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */
-#define MUX_PA15D_SERCOM4_PAD3 3L
-#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3)
-#define PORT_PA15D_SERCOM4_PAD3 (1ul << 15)
-#define PIN_PB11D_SERCOM4_PAD3 43L /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */
-#define MUX_PB11D_SERCOM4_PAD3 3L
-#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3)
-#define PORT_PB11D_SERCOM4_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM5 peripheral ========== */
-#define PIN_PA22D_SERCOM5_PAD0 22L /**< \brief SERCOM5 signal: PAD0 on PA22 mux D */
-#define MUX_PA22D_SERCOM5_PAD0 3L
-#define PINMUX_PA22D_SERCOM5_PAD0 ((PIN_PA22D_SERCOM5_PAD0 << 16) | MUX_PA22D_SERCOM5_PAD0)
-#define PORT_PA22D_SERCOM5_PAD0 (1ul << 22)
-#define PIN_PB02D_SERCOM5_PAD0 34L /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */
-#define MUX_PB02D_SERCOM5_PAD0 3L
-#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0)
-#define PORT_PB02D_SERCOM5_PAD0 (1ul << 2)
-#define PIN_PA23D_SERCOM5_PAD1 23L /**< \brief SERCOM5 signal: PAD1 on PA23 mux D */
-#define MUX_PA23D_SERCOM5_PAD1 3L
-#define PINMUX_PA23D_SERCOM5_PAD1 ((PIN_PA23D_SERCOM5_PAD1 << 16) | MUX_PA23D_SERCOM5_PAD1)
-#define PORT_PA23D_SERCOM5_PAD1 (1ul << 23)
-#define PIN_PB03D_SERCOM5_PAD1 35L /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */
-#define MUX_PB03D_SERCOM5_PAD1 3L
-#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1)
-#define PORT_PB03D_SERCOM5_PAD1 (1ul << 3)
-#define PIN_PA24D_SERCOM5_PAD2 24L /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */
-#define MUX_PA24D_SERCOM5_PAD2 3L
-#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2)
-#define PORT_PA24D_SERCOM5_PAD2 (1ul << 24)
-#define PIN_PB22D_SERCOM5_PAD2 54L /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */
-#define MUX_PB22D_SERCOM5_PAD2 3L
-#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2)
-#define PORT_PB22D_SERCOM5_PAD2 (1ul << 22)
-#define PIN_PA20C_SERCOM5_PAD2 20L /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */
-#define MUX_PA20C_SERCOM5_PAD2 2L
-#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2)
-#define PORT_PA20C_SERCOM5_PAD2 (1ul << 20)
-#define PIN_PA25D_SERCOM5_PAD3 25L /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */
-#define MUX_PA25D_SERCOM5_PAD3 3L
-#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3)
-#define PORT_PA25D_SERCOM5_PAD3 (1ul << 25)
-#define PIN_PB23D_SERCOM5_PAD3 55L /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */
-#define MUX_PB23D_SERCOM5_PAD3 3L
-#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3)
-#define PORT_PB23D_SERCOM5_PAD3 (1ul << 23)
-#define PIN_PA21C_SERCOM5_PAD3 21L /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */
-#define MUX_PA21C_SERCOM5_PAD3 2L
-#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3)
-#define PORT_PA21C_SERCOM5_PAD3 (1ul << 21)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PB10F_TCC0_WO4 42L /**< \brief TCC0 signal: WO4 on PB10 mux F */
-#define MUX_PB10F_TCC0_WO4 5L
-#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4)
-#define PORT_PB10F_TCC0_WO4 (1ul << 10)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PB11F_TCC0_WO5 43L /**< \brief TCC0 signal: WO5 on PB11 mux F */
-#define MUX_PB11F_TCC0_WO5 5L
-#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5)
-#define PORT_PB11F_TCC0_WO5 (1ul << 11)
-#define PIN_PA12F_TCC0_WO6 12L /**< \brief TCC0 signal: WO6 on PA12 mux F */
-#define MUX_PA12F_TCC0_WO6 5L
-#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6)
-#define PORT_PA12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA20F_TCC0_WO6 20L /**< \brief TCC0 signal: WO6 on PA20 mux F */
-#define MUX_PA20F_TCC0_WO6 5L
-#define PINMUX_PA20F_TCC0_WO6 ((PIN_PA20F_TCC0_WO6 << 16) | MUX_PA20F_TCC0_WO6)
-#define PORT_PA20F_TCC0_WO6 (1ul << 20)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA13F_TCC0_WO7 13L /**< \brief TCC0 signal: WO7 on PA13 mux F */
-#define MUX_PA13F_TCC0_WO7 5L
-#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7)
-#define PORT_PA13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA21F_TCC0_WO7 21L /**< \brief TCC0 signal: WO7 on PA21 mux F */
-#define MUX_PA21F_TCC0_WO7 5L
-#define PINMUX_PA21F_TCC0_WO7 ((PIN_PA21F_TCC0_WO7 << 16) | MUX_PA21F_TCC0_WO7)
-#define PORT_PA21F_TCC0_WO7 (1ul << 21)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA12E_TCC2_WO0 12L /**< \brief TCC2 signal: WO0 on PA12 mux E */
-#define MUX_PA12E_TCC2_WO0 4L
-#define PINMUX_PA12E_TCC2_WO0 ((PIN_PA12E_TCC2_WO0 << 16) | MUX_PA12E_TCC2_WO0)
-#define PORT_PA12E_TCC2_WO0 (1ul << 12)
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA13E_TCC2_WO1 13L /**< \brief TCC2 signal: WO1 on PA13 mux E */
-#define MUX_PA13E_TCC2_WO1 4L
-#define PINMUX_PA13E_TCC2_WO1 ((PIN_PA13E_TCC2_WO1 << 16) | MUX_PA13E_TCC2_WO1)
-#define PORT_PA13E_TCC2_WO1 (1ul << 13)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PB08E_TC4_WO0 40L /**< \brief TC4 signal: WO0 on PB08 mux E */
-#define MUX_PB08E_TC4_WO0 4L
-#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0)
-#define PORT_PB08E_TC4_WO0 (1ul << 8)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-#define PIN_PB09E_TC4_WO1 41L /**< \brief TC4 signal: WO1 on PB09 mux E */
-#define MUX_PB09E_TC4_WO1 4L
-#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1)
-#define PORT_PB09E_TC4_WO1 (1ul << 9)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PB10E_TC5_WO0 42L /**< \brief TC5 signal: WO0 on PB10 mux E */
-#define MUX_PB10E_TC5_WO0 4L
-#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0)
-#define PORT_PB10E_TC5_WO0 (1ul << 10)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-#define PIN_PB11E_TC5_WO1 43L /**< \brief TC5 signal: WO1 on PB11 mux E */
-#define MUX_PB11E_TC5_WO1 4L
-#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1)
-#define PORT_PB11E_TC5_WO1 (1ul << 11)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PB08B_ADC_AIN2 40L /**< \brief ADC signal: AIN2 on PB08 mux B */
-#define MUX_PB08B_ADC_AIN2 1L
-#define PINMUX_PB08B_ADC_AIN2 ((PIN_PB08B_ADC_AIN2 << 16) | MUX_PB08B_ADC_AIN2)
-#define PORT_PB08B_ADC_AIN2 (1ul << 8)
-#define PIN_PB09B_ADC_AIN3 41L /**< \brief ADC signal: AIN3 on PB09 mux B */
-#define MUX_PB09B_ADC_AIN3 1L
-#define PINMUX_PB09B_ADC_AIN3 ((PIN_PB09B_ADC_AIN3 << 16) | MUX_PB09B_ADC_AIN3)
-#define PORT_PB09B_ADC_AIN3 (1ul << 9)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA12H_AC_CMP0 12L /**< \brief AC signal: CMP0 on PA12 mux H */
-#define MUX_PA12H_AC_CMP0 7L
-#define PINMUX_PA12H_AC_CMP0 ((PIN_PA12H_AC_CMP0 << 16) | MUX_PA12H_AC_CMP0)
-#define PORT_PA12H_AC_CMP0 (1ul << 12)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA13H_AC_CMP1 13L /**< \brief AC signal: CMP1 on PA13 mux H */
-#define MUX_PA13H_AC_CMP1 7L
-#define PINMUX_PA13H_AC_CMP1 ((PIN_PA13H_AC_CMP1 << 16) | MUX_PA13H_AC_CMP1)
-#define PORT_PA13H_AC_CMP1 (1ul << 13)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA21G_I2S_FS0 21L /**< \brief I2S signal: FS0 on PA21 mux G */
-#define MUX_PA21G_I2S_FS0 6L
-#define PINMUX_PA21G_I2S_FS0 ((PIN_PA21G_I2S_FS0 << 16) | MUX_PA21G_I2S_FS0)
-#define PORT_PA21G_I2S_FS0 (1ul << 21)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PB10G_I2S_MCK1 42L /**< \brief I2S signal: MCK1 on PB10 mux G */
-#define MUX_PB10G_I2S_MCK1 6L
-#define PINMUX_PB10G_I2S_MCK1 ((PIN_PB10G_I2S_MCK1 << 16) | MUX_PB10G_I2S_MCK1)
-#define PORT_PB10G_I2S_MCK1 (1ul << 10)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA20G_I2S_SCK0 20L /**< \brief I2S signal: SCK0 on PA20 mux G */
-#define MUX_PA20G_I2S_SCK0 6L
-#define PINMUX_PA20G_I2S_SCK0 ((PIN_PA20G_I2S_SCK0 << 16) | MUX_PA20G_I2S_SCK0)
-#define PORT_PA20G_I2S_SCK0 (1ul << 20)
-#define PIN_PB11G_I2S_SCK1 43L /**< \brief I2S signal: SCK1 on PB11 mux G */
-#define MUX_PB11G_I2S_SCK1 6L
-#define PINMUX_PB11G_I2S_SCK1 ((PIN_PB11G_I2S_SCK1 << 16) | MUX_PB11G_I2S_SCK1)
-#define PORT_PB11G_I2S_SCK1 (1ul << 11)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-
-#endif /* _SAMD21G18A_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g18au.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g18au.h
deleted file mode 100644
index d2692f2..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21g18au.h
+++ /dev/null
@@ -1,856 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21G18AU
- *
- * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
- /*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _SAMD21G18AU_PIO_
-#define _SAMD21G18AU_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA12 12 /**< \brief Pin Number for PA12 */
-#define PORT_PA12 (1ul << 12) /**< \brief PORT Mask for PA12 */
-#define PIN_PA13 13 /**< \brief Pin Number for PA13 */
-#define PORT_PA13 (1ul << 13) /**< \brief PORT Mask for PA13 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA20 20 /**< \brief Pin Number for PA20 */
-#define PORT_PA20 (1ul << 20) /**< \brief PORT Mask for PA20 */
-#define PIN_PA21 21 /**< \brief Pin Number for PA21 */
-#define PORT_PA21 (1ul << 21) /**< \brief PORT Mask for PA21 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB04 36 /**< \brief Pin Number for PB04 */
-#define PORT_PB04 (1ul << 4) /**< \brief PORT Mask for PB04 */
-#define PIN_PB08 40 /**< \brief Pin Number for PB08 */
-#define PORT_PB08 (1ul << 8) /**< \brief PORT Mask for PB08 */
-#define PIN_PB09 41 /**< \brief Pin Number for PB09 */
-#define PORT_PB09 (1ul << 9) /**< \brief PORT Mask for PB09 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA20H_GCLK_IO4 20L /**< \brief GCLK signal: IO4 on PA20 mux H */
-#define MUX_PA20H_GCLK_IO4 7L
-#define PINMUX_PA20H_GCLK_IO4 ((PIN_PA20H_GCLK_IO4 << 16) | MUX_PA20H_GCLK_IO4)
-#define PORT_PA20H_GCLK_IO4 (1ul << 20)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA21H_GCLK_IO5 21L /**< \brief GCLK signal: IO5 on PA21 mux H */
-#define MUX_PA21H_GCLK_IO5 7L
-#define PINMUX_PA21H_GCLK_IO5 ((PIN_PA21H_GCLK_IO5 << 16) | MUX_PA21H_GCLK_IO5)
-#define PORT_PA21H_GCLK_IO5 (1ul << 21)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA20A_EIC_EXTINT4 20L /**< \brief EIC signal: EXTINT4 on PA20 mux A */
-#define MUX_PA20A_EIC_EXTINT4 0L
-#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4)
-#define PORT_PA20A_EIC_EXTINT4 (1ul << 20)
-#define PIN_PB04A_EIC_EXTINT4 36L /**< \brief EIC signal: EXTINT4 on PB04 mux A */
-#define MUX_PB04A_EIC_EXTINT4 0L
-#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4)
-#define PORT_PB04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA21A_EIC_EXTINT5 21L /**< \brief EIC signal: EXTINT5 on PA21 mux A */
-#define MUX_PA21A_EIC_EXTINT5 0L
-#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5)
-#define PORT_PA21A_EIC_EXTINT5 (1ul << 21)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PB08A_EIC_EXTINT8 40L /**< \brief EIC signal: EXTINT8 on PB08 mux A */
-#define MUX_PB08A_EIC_EXTINT8 0L
-#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8)
-#define PORT_PB08A_EIC_EXTINT8 (1ul << 8)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PB09A_EIC_EXTINT9 41L /**< \brief EIC signal: EXTINT9 on PB09 mux A */
-#define MUX_PB09A_EIC_EXTINT9 0L
-#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9)
-#define PORT_PB09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PA12A_EIC_EXTINT12 12L /**< \brief EIC signal: EXTINT12 on PA12 mux A */
-#define MUX_PA12A_EIC_EXTINT12 0L
-#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12)
-#define PORT_PA12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA13A_EIC_EXTINT13 13L /**< \brief EIC signal: EXTINT13 on PA13 mux A */
-#define MUX_PA13A_EIC_EXTINT13 0L
-#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13)
-#define PORT_PA13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA12C_SERCOM2_PAD0 12L /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */
-#define MUX_PA12C_SERCOM2_PAD0 2L
-#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0)
-#define PORT_PA12C_SERCOM2_PAD0 (1ul << 12)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA13C_SERCOM2_PAD1 13L /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */
-#define MUX_PA13C_SERCOM2_PAD1 2L
-#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1)
-#define PORT_PA13C_SERCOM2_PAD1 (1ul << 13)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA20D_SERCOM3_PAD2 20L /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */
-#define MUX_PA20D_SERCOM3_PAD2 3L
-#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2)
-#define PORT_PA20D_SERCOM3_PAD2 (1ul << 20)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA21D_SERCOM3_PAD3 21L /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */
-#define MUX_PA21D_SERCOM3_PAD3 3L
-#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3)
-#define PORT_PA21D_SERCOM3_PAD3 (1ul << 21)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for SERCOM4 peripheral ========== */
-#define PIN_PA12D_SERCOM4_PAD0 12L /**< \brief SERCOM4 signal: PAD0 on PA12 mux D */
-#define MUX_PA12D_SERCOM4_PAD0 3L
-#define PINMUX_PA12D_SERCOM4_PAD0 ((PIN_PA12D_SERCOM4_PAD0 << 16) | MUX_PA12D_SERCOM4_PAD0)
-#define PORT_PA12D_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PB08D_SERCOM4_PAD0 40L /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */
-#define MUX_PB08D_SERCOM4_PAD0 3L
-#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0)
-#define PORT_PB08D_SERCOM4_PAD0 (1ul << 8)
-#define PIN_PA13D_SERCOM4_PAD1 13L /**< \brief SERCOM4 signal: PAD1 on PA13 mux D */
-#define MUX_PA13D_SERCOM4_PAD1 3L
-#define PINMUX_PA13D_SERCOM4_PAD1 ((PIN_PA13D_SERCOM4_PAD1 << 16) | MUX_PA13D_SERCOM4_PAD1)
-#define PORT_PA13D_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PB09D_SERCOM4_PAD1 41L /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */
-#define MUX_PB09D_SERCOM4_PAD1 3L
-#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1)
-#define PORT_PB09D_SERCOM4_PAD1 (1ul << 9)
-#define PIN_PA14D_SERCOM4_PAD2 14L /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */
-#define MUX_PA14D_SERCOM4_PAD2 3L
-#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2)
-#define PORT_PA14D_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PA15D_SERCOM4_PAD3 15L /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */
-#define MUX_PA15D_SERCOM4_PAD3 3L
-#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3)
-#define PORT_PA15D_SERCOM4_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM5 peripheral ========== */
-#define PIN_PA22D_SERCOM5_PAD0 22L /**< \brief SERCOM5 signal: PAD0 on PA22 mux D */
-#define MUX_PA22D_SERCOM5_PAD0 3L
-#define PINMUX_PA22D_SERCOM5_PAD0 ((PIN_PA22D_SERCOM5_PAD0 << 16) | MUX_PA22D_SERCOM5_PAD0)
-#define PORT_PA22D_SERCOM5_PAD0 (1ul << 22)
-#define PIN_PB02D_SERCOM5_PAD0 34L /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */
-#define MUX_PB02D_SERCOM5_PAD0 3L
-#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0)
-#define PORT_PB02D_SERCOM5_PAD0 (1ul << 2)
-#define PIN_PA23D_SERCOM5_PAD1 23L /**< \brief SERCOM5 signal: PAD1 on PA23 mux D */
-#define MUX_PA23D_SERCOM5_PAD1 3L
-#define PINMUX_PA23D_SERCOM5_PAD1 ((PIN_PA23D_SERCOM5_PAD1 << 16) | MUX_PA23D_SERCOM5_PAD1)
-#define PORT_PA23D_SERCOM5_PAD1 (1ul << 23)
-#define PIN_PB03D_SERCOM5_PAD1 35L /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */
-#define MUX_PB03D_SERCOM5_PAD1 3L
-#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1)
-#define PORT_PB03D_SERCOM5_PAD1 (1ul << 3)
-#define PIN_PA24D_SERCOM5_PAD2 24L /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */
-#define MUX_PA24D_SERCOM5_PAD2 3L
-#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2)
-#define PORT_PA24D_SERCOM5_PAD2 (1ul << 24)
-#define PIN_PA20C_SERCOM5_PAD2 20L /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */
-#define MUX_PA20C_SERCOM5_PAD2 2L
-#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2)
-#define PORT_PA20C_SERCOM5_PAD2 (1ul << 20)
-#define PIN_PA25D_SERCOM5_PAD3 25L /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */
-#define MUX_PA25D_SERCOM5_PAD3 3L
-#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3)
-#define PORT_PA25D_SERCOM5_PAD3 (1ul << 25)
-#define PIN_PA21C_SERCOM5_PAD3 21L /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */
-#define MUX_PA21C_SERCOM5_PAD3 2L
-#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3)
-#define PORT_PA21C_SERCOM5_PAD3 (1ul << 21)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PA12F_TCC0_WO6 12L /**< \brief TCC0 signal: WO6 on PA12 mux F */
-#define MUX_PA12F_TCC0_WO6 5L
-#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6)
-#define PORT_PA12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA20F_TCC0_WO6 20L /**< \brief TCC0 signal: WO6 on PA20 mux F */
-#define MUX_PA20F_TCC0_WO6 5L
-#define PINMUX_PA20F_TCC0_WO6 ((PIN_PA20F_TCC0_WO6 << 16) | MUX_PA20F_TCC0_WO6)
-#define PORT_PA20F_TCC0_WO6 (1ul << 20)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA13F_TCC0_WO7 13L /**< \brief TCC0 signal: WO7 on PA13 mux F */
-#define MUX_PA13F_TCC0_WO7 5L
-#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7)
-#define PORT_PA13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA21F_TCC0_WO7 21L /**< \brief TCC0 signal: WO7 on PA21 mux F */
-#define MUX_PA21F_TCC0_WO7 5L
-#define PINMUX_PA21F_TCC0_WO7 ((PIN_PA21F_TCC0_WO7 << 16) | MUX_PA21F_TCC0_WO7)
-#define PORT_PA21F_TCC0_WO7 (1ul << 21)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA12E_TCC2_WO0 12L /**< \brief TCC2 signal: WO0 on PA12 mux E */
-#define MUX_PA12E_TCC2_WO0 4L
-#define PINMUX_PA12E_TCC2_WO0 ((PIN_PA12E_TCC2_WO0 << 16) | MUX_PA12E_TCC2_WO0)
-#define PORT_PA12E_TCC2_WO0 (1ul << 12)
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA13E_TCC2_WO1 13L /**< \brief TCC2 signal: WO1 on PA13 mux E */
-#define MUX_PA13E_TCC2_WO1 4L
-#define PINMUX_PA13E_TCC2_WO1 ((PIN_PA13E_TCC2_WO1 << 16) | MUX_PA13E_TCC2_WO1)
-#define PORT_PA13E_TCC2_WO1 (1ul << 13)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PB08E_TC4_WO0 40L /**< \brief TC4 signal: WO0 on PB08 mux E */
-#define MUX_PB08E_TC4_WO0 4L
-#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0)
-#define PORT_PB08E_TC4_WO0 (1ul << 8)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-#define PIN_PB09E_TC4_WO1 41L /**< \brief TC4 signal: WO1 on PB09 mux E */
-#define MUX_PB09E_TC4_WO1 4L
-#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1)
-#define PORT_PB09E_TC4_WO1 (1ul << 9)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-/* ========== PORT definition for TC6 peripheral ========== */
-#define PIN_PB02E_TC6_WO0 34L /**< \brief TC6 signal: WO0 on PB02 mux E */
-#define MUX_PB02E_TC6_WO0 4L
-#define PINMUX_PB02E_TC6_WO0 ((PIN_PB02E_TC6_WO0 << 16) | MUX_PB02E_TC6_WO0)
-#define PORT_PB02E_TC6_WO0 (1ul << 2)
-#define PIN_PB03E_TC6_WO1 35L /**< \brief TC6 signal: WO1 on PB03 mux E */
-#define MUX_PB03E_TC6_WO1 4L
-#define PINMUX_PB03E_TC6_WO1 ((PIN_PB03E_TC6_WO1 << 16) | MUX_PB03E_TC6_WO1)
-#define PORT_PB03E_TC6_WO1 (1ul << 3)
-/* ========== PORT definition for TC7 peripheral ========== */
-#define PIN_PA20E_TC7_WO0 20L /**< \brief TC7 signal: WO0 on PA20 mux E */
-#define MUX_PA20E_TC7_WO0 4L
-#define PINMUX_PA20E_TC7_WO0 ((PIN_PA20E_TC7_WO0 << 16) | MUX_PA20E_TC7_WO0)
-#define PORT_PA20E_TC7_WO0 (1ul << 20)
-#define PIN_PA21E_TC7_WO1 21L /**< \brief TC7 signal: WO1 on PA21 mux E */
-#define MUX_PA21E_TC7_WO1 4L
-#define PINMUX_PA21E_TC7_WO1 ((PIN_PA21E_TC7_WO1 << 16) | MUX_PA21E_TC7_WO1)
-#define PORT_PA21E_TC7_WO1 (1ul << 21)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PB08B_ADC_AIN2 40L /**< \brief ADC signal: AIN2 on PB08 mux B */
-#define MUX_PB08B_ADC_AIN2 1L
-#define PINMUX_PB08B_ADC_AIN2 ((PIN_PB08B_ADC_AIN2 << 16) | MUX_PB08B_ADC_AIN2)
-#define PORT_PB08B_ADC_AIN2 (1ul << 8)
-#define PIN_PB09B_ADC_AIN3 41L /**< \brief ADC signal: AIN3 on PB09 mux B */
-#define MUX_PB09B_ADC_AIN3 1L
-#define PINMUX_PB09B_ADC_AIN3 ((PIN_PB09B_ADC_AIN3 << 16) | MUX_PB09B_ADC_AIN3)
-#define PORT_PB09B_ADC_AIN3 (1ul << 9)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PB04B_ADC_AIN12 36L /**< \brief ADC signal: AIN12 on PB04 mux B */
-#define MUX_PB04B_ADC_AIN12 1L
-#define PINMUX_PB04B_ADC_AIN12 ((PIN_PB04B_ADC_AIN12 << 16) | MUX_PB04B_ADC_AIN12)
-#define PORT_PB04B_ADC_AIN12 (1ul << 4)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA12H_AC_CMP0 12L /**< \brief AC signal: CMP0 on PA12 mux H */
-#define MUX_PA12H_AC_CMP0 7L
-#define PINMUX_PA12H_AC_CMP0 ((PIN_PA12H_AC_CMP0 << 16) | MUX_PA12H_AC_CMP0)
-#define PORT_PA12H_AC_CMP0 (1ul << 12)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA13H_AC_CMP1 13L /**< \brief AC signal: CMP1 on PA13 mux H */
-#define MUX_PA13H_AC_CMP1 7L
-#define PINMUX_PA13H_AC_CMP1 ((PIN_PA13H_AC_CMP1 << 16) | MUX_PA13H_AC_CMP1)
-#define PORT_PA13H_AC_CMP1 (1ul << 13)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA21G_I2S_FS0 21L /**< \brief I2S signal: FS0 on PA21 mux G */
-#define MUX_PA21G_I2S_FS0 6L
-#define PINMUX_PA21G_I2S_FS0 ((PIN_PA21G_I2S_FS0 << 16) | MUX_PA21G_I2S_FS0)
-#define PORT_PA21G_I2S_FS0 (1ul << 21)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA20G_I2S_SCK0 20L /**< \brief I2S signal: SCK0 on PA20 mux G */
-#define MUX_PA20G_I2S_SCK0 6L
-#define PINMUX_PA20G_I2S_SCK0 ((PIN_PA20G_I2S_SCK0 << 16) | MUX_PA20G_I2S_SCK0)
-#define PORT_PA20G_I2S_SCK0 (1ul << 20)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-
-#endif /* _SAMD21G18AU_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j15a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j15a.h
deleted file mode 100644
index c067dac..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j15a.h
+++ /dev/null
@@ -1,1182 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21J15A
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _SAMD21J15A_PIO_
-#define _SAMD21J15A_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA12 12 /**< \brief Pin Number for PA12 */
-#define PORT_PA12 (1ul << 12) /**< \brief PORT Mask for PA12 */
-#define PIN_PA13 13 /**< \brief Pin Number for PA13 */
-#define PORT_PA13 (1ul << 13) /**< \brief PORT Mask for PA13 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA20 20 /**< \brief Pin Number for PA20 */
-#define PORT_PA20 (1ul << 20) /**< \brief PORT Mask for PA20 */
-#define PIN_PA21 21 /**< \brief Pin Number for PA21 */
-#define PORT_PA21 (1ul << 21) /**< \brief PORT Mask for PA21 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB00 32 /**< \brief Pin Number for PB00 */
-#define PORT_PB00 (1ul << 0) /**< \brief PORT Mask for PB00 */
-#define PIN_PB01 33 /**< \brief Pin Number for PB01 */
-#define PORT_PB01 (1ul << 1) /**< \brief PORT Mask for PB01 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB04 36 /**< \brief Pin Number for PB04 */
-#define PORT_PB04 (1ul << 4) /**< \brief PORT Mask for PB04 */
-#define PIN_PB05 37 /**< \brief Pin Number for PB05 */
-#define PORT_PB05 (1ul << 5) /**< \brief PORT Mask for PB05 */
-#define PIN_PB06 38 /**< \brief Pin Number for PB06 */
-#define PORT_PB06 (1ul << 6) /**< \brief PORT Mask for PB06 */
-#define PIN_PB07 39 /**< \brief Pin Number for PB07 */
-#define PORT_PB07 (1ul << 7) /**< \brief PORT Mask for PB07 */
-#define PIN_PB08 40 /**< \brief Pin Number for PB08 */
-#define PORT_PB08 (1ul << 8) /**< \brief PORT Mask for PB08 */
-#define PIN_PB09 41 /**< \brief Pin Number for PB09 */
-#define PORT_PB09 (1ul << 9) /**< \brief PORT Mask for PB09 */
-#define PIN_PB10 42 /**< \brief Pin Number for PB10 */
-#define PORT_PB10 (1ul << 10) /**< \brief PORT Mask for PB10 */
-#define PIN_PB11 43 /**< \brief Pin Number for PB11 */
-#define PORT_PB11 (1ul << 11) /**< \brief PORT Mask for PB11 */
-#define PIN_PB12 44 /**< \brief Pin Number for PB12 */
-#define PORT_PB12 (1ul << 12) /**< \brief PORT Mask for PB12 */
-#define PIN_PB13 45 /**< \brief Pin Number for PB13 */
-#define PORT_PB13 (1ul << 13) /**< \brief PORT Mask for PB13 */
-#define PIN_PB14 46 /**< \brief Pin Number for PB14 */
-#define PORT_PB14 (1ul << 14) /**< \brief PORT Mask for PB14 */
-#define PIN_PB15 47 /**< \brief Pin Number for PB15 */
-#define PORT_PB15 (1ul << 15) /**< \brief PORT Mask for PB15 */
-#define PIN_PB16 48 /**< \brief Pin Number for PB16 */
-#define PORT_PB16 (1ul << 16) /**< \brief PORT Mask for PB16 */
-#define PIN_PB17 49 /**< \brief Pin Number for PB17 */
-#define PORT_PB17 (1ul << 17) /**< \brief PORT Mask for PB17 */
-#define PIN_PB22 54 /**< \brief Pin Number for PB22 */
-#define PORT_PB22 (1ul << 22) /**< \brief PORT Mask for PB22 */
-#define PIN_PB23 55 /**< \brief Pin Number for PB23 */
-#define PORT_PB23 (1ul << 23) /**< \brief PORT Mask for PB23 */
-#define PIN_PB30 62 /**< \brief Pin Number for PB30 */
-#define PORT_PB30 (1ul << 30) /**< \brief PORT Mask for PB30 */
-#define PIN_PB31 63 /**< \brief Pin Number for PB31 */
-#define PORT_PB31 (1ul << 31) /**< \brief PORT Mask for PB31 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PB14H_GCLK_IO0 46L /**< \brief GCLK signal: IO0 on PB14 mux H */
-#define MUX_PB14H_GCLK_IO0 7L
-#define PINMUX_PB14H_GCLK_IO0 ((PIN_PB14H_GCLK_IO0 << 16) | MUX_PB14H_GCLK_IO0)
-#define PORT_PB14H_GCLK_IO0 (1ul << 14)
-#define PIN_PB22H_GCLK_IO0 54L /**< \brief GCLK signal: IO0 on PB22 mux H */
-#define MUX_PB22H_GCLK_IO0 7L
-#define PINMUX_PB22H_GCLK_IO0 ((PIN_PB22H_GCLK_IO0 << 16) | MUX_PB22H_GCLK_IO0)
-#define PORT_PB22H_GCLK_IO0 (1ul << 22)
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PB15H_GCLK_IO1 47L /**< \brief GCLK signal: IO1 on PB15 mux H */
-#define MUX_PB15H_GCLK_IO1 7L
-#define PINMUX_PB15H_GCLK_IO1 ((PIN_PB15H_GCLK_IO1 << 16) | MUX_PB15H_GCLK_IO1)
-#define PORT_PB15H_GCLK_IO1 (1ul << 15)
-#define PIN_PB23H_GCLK_IO1 55L /**< \brief GCLK signal: IO1 on PB23 mux H */
-#define MUX_PB23H_GCLK_IO1 7L
-#define PINMUX_PB23H_GCLK_IO1 ((PIN_PB23H_GCLK_IO1 << 16) | MUX_PB23H_GCLK_IO1)
-#define PORT_PB23H_GCLK_IO1 (1ul << 23)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PB16H_GCLK_IO2 48L /**< \brief GCLK signal: IO2 on PB16 mux H */
-#define MUX_PB16H_GCLK_IO2 7L
-#define PINMUX_PB16H_GCLK_IO2 ((PIN_PB16H_GCLK_IO2 << 16) | MUX_PB16H_GCLK_IO2)
-#define PORT_PB16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PB17H_GCLK_IO3 49L /**< \brief GCLK signal: IO3 on PB17 mux H */
-#define MUX_PB17H_GCLK_IO3 7L
-#define PINMUX_PB17H_GCLK_IO3 ((PIN_PB17H_GCLK_IO3 << 16) | MUX_PB17H_GCLK_IO3)
-#define PORT_PB17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA20H_GCLK_IO4 20L /**< \brief GCLK signal: IO4 on PA20 mux H */
-#define MUX_PA20H_GCLK_IO4 7L
-#define PINMUX_PA20H_GCLK_IO4 ((PIN_PA20H_GCLK_IO4 << 16) | MUX_PA20H_GCLK_IO4)
-#define PORT_PA20H_GCLK_IO4 (1ul << 20)
-#define PIN_PB10H_GCLK_IO4 42L /**< \brief GCLK signal: IO4 on PB10 mux H */
-#define MUX_PB10H_GCLK_IO4 7L
-#define PINMUX_PB10H_GCLK_IO4 ((PIN_PB10H_GCLK_IO4 << 16) | MUX_PB10H_GCLK_IO4)
-#define PORT_PB10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA21H_GCLK_IO5 21L /**< \brief GCLK signal: IO5 on PA21 mux H */
-#define MUX_PA21H_GCLK_IO5 7L
-#define PINMUX_PA21H_GCLK_IO5 ((PIN_PA21H_GCLK_IO5 << 16) | MUX_PA21H_GCLK_IO5)
-#define PORT_PA21H_GCLK_IO5 (1ul << 21)
-#define PIN_PB11H_GCLK_IO5 43L /**< \brief GCLK signal: IO5 on PB11 mux H */
-#define MUX_PB11H_GCLK_IO5 7L
-#define PINMUX_PB11H_GCLK_IO5 ((PIN_PB11H_GCLK_IO5 << 16) | MUX_PB11H_GCLK_IO5)
-#define PORT_PB11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PB12H_GCLK_IO6 44L /**< \brief GCLK signal: IO6 on PB12 mux H */
-#define MUX_PB12H_GCLK_IO6 7L
-#define PINMUX_PB12H_GCLK_IO6 ((PIN_PB12H_GCLK_IO6 << 16) | MUX_PB12H_GCLK_IO6)
-#define PORT_PB12H_GCLK_IO6 (1ul << 12)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-#define PIN_PB13H_GCLK_IO7 45L /**< \brief GCLK signal: IO7 on PB13 mux H */
-#define MUX_PB13H_GCLK_IO7 7L
-#define PINMUX_PB13H_GCLK_IO7 ((PIN_PB13H_GCLK_IO7 << 16) | MUX_PB13H_GCLK_IO7)
-#define PORT_PB13H_GCLK_IO7 (1ul << 13)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PB00A_EIC_EXTINT0 32L /**< \brief EIC signal: EXTINT0 on PB00 mux A */
-#define MUX_PB00A_EIC_EXTINT0 0L
-#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0)
-#define PORT_PB00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PB16A_EIC_EXTINT0 48L /**< \brief EIC signal: EXTINT0 on PB16 mux A */
-#define MUX_PB16A_EIC_EXTINT0 0L
-#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0)
-#define PORT_PB16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PB01A_EIC_EXTINT1 33L /**< \brief EIC signal: EXTINT1 on PB01 mux A */
-#define MUX_PB01A_EIC_EXTINT1 0L
-#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1)
-#define PORT_PB01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PB17A_EIC_EXTINT1 49L /**< \brief EIC signal: EXTINT1 on PB17 mux A */
-#define MUX_PB17A_EIC_EXTINT1 0L
-#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1)
-#define PORT_PB17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA20A_EIC_EXTINT4 20L /**< \brief EIC signal: EXTINT4 on PA20 mux A */
-#define MUX_PA20A_EIC_EXTINT4 0L
-#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4)
-#define PORT_PA20A_EIC_EXTINT4 (1ul << 20)
-#define PIN_PB04A_EIC_EXTINT4 36L /**< \brief EIC signal: EXTINT4 on PB04 mux A */
-#define MUX_PB04A_EIC_EXTINT4 0L
-#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4)
-#define PORT_PB04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA21A_EIC_EXTINT5 21L /**< \brief EIC signal: EXTINT5 on PA21 mux A */
-#define MUX_PA21A_EIC_EXTINT5 0L
-#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5)
-#define PORT_PA21A_EIC_EXTINT5 (1ul << 21)
-#define PIN_PB05A_EIC_EXTINT5 37L /**< \brief EIC signal: EXTINT5 on PB05 mux A */
-#define MUX_PB05A_EIC_EXTINT5 0L
-#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5)
-#define PORT_PB05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PB06A_EIC_EXTINT6 38L /**< \brief EIC signal: EXTINT6 on PB06 mux A */
-#define MUX_PB06A_EIC_EXTINT6 0L
-#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6)
-#define PORT_PB06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PB22A_EIC_EXTINT6 54L /**< \brief EIC signal: EXTINT6 on PB22 mux A */
-#define MUX_PB22A_EIC_EXTINT6 0L
-#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6)
-#define PORT_PB22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PB07A_EIC_EXTINT7 39L /**< \brief EIC signal: EXTINT7 on PB07 mux A */
-#define MUX_PB07A_EIC_EXTINT7 0L
-#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7)
-#define PORT_PB07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PB23A_EIC_EXTINT7 55L /**< \brief EIC signal: EXTINT7 on PB23 mux A */
-#define MUX_PB23A_EIC_EXTINT7 0L
-#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7)
-#define PORT_PB23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PB08A_EIC_EXTINT8 40L /**< \brief EIC signal: EXTINT8 on PB08 mux A */
-#define MUX_PB08A_EIC_EXTINT8 0L
-#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8)
-#define PORT_PB08A_EIC_EXTINT8 (1ul << 8)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PB09A_EIC_EXTINT9 41L /**< \brief EIC signal: EXTINT9 on PB09 mux A */
-#define MUX_PB09A_EIC_EXTINT9 0L
-#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9)
-#define PORT_PB09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PB10A_EIC_EXTINT10 42L /**< \brief EIC signal: EXTINT10 on PB10 mux A */
-#define MUX_PB10A_EIC_EXTINT10 0L
-#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10)
-#define PORT_PB10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PB11A_EIC_EXTINT11 43L /**< \brief EIC signal: EXTINT11 on PB11 mux A */
-#define MUX_PB11A_EIC_EXTINT11 0L
-#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11)
-#define PORT_PB11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA12A_EIC_EXTINT12 12L /**< \brief EIC signal: EXTINT12 on PA12 mux A */
-#define MUX_PA12A_EIC_EXTINT12 0L
-#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12)
-#define PORT_PA12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PB12A_EIC_EXTINT12 44L /**< \brief EIC signal: EXTINT12 on PB12 mux A */
-#define MUX_PB12A_EIC_EXTINT12 0L
-#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12)
-#define PORT_PB12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA13A_EIC_EXTINT13 13L /**< \brief EIC signal: EXTINT13 on PA13 mux A */
-#define MUX_PA13A_EIC_EXTINT13 0L
-#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13)
-#define PORT_PA13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PB13A_EIC_EXTINT13 45L /**< \brief EIC signal: EXTINT13 on PB13 mux A */
-#define MUX_PB13A_EIC_EXTINT13 0L
-#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13)
-#define PORT_PB13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PB14A_EIC_EXTINT14 46L /**< \brief EIC signal: EXTINT14 on PB14 mux A */
-#define MUX_PB14A_EIC_EXTINT14 0L
-#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14)
-#define PORT_PB14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PB30A_EIC_EXTINT14 62L /**< \brief EIC signal: EXTINT14 on PB30 mux A */
-#define MUX_PB30A_EIC_EXTINT14 0L
-#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14)
-#define PORT_PB30A_EIC_EXTINT14 (1ul << 30)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PB15A_EIC_EXTINT15 47L /**< \brief EIC signal: EXTINT15 on PB15 mux A */
-#define MUX_PB15A_EIC_EXTINT15 0L
-#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15)
-#define PORT_PB15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PB31A_EIC_EXTINT15 63L /**< \brief EIC signal: EXTINT15 on PB31 mux A */
-#define MUX_PB31A_EIC_EXTINT15 0L
-#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15)
-#define PORT_PB31A_EIC_EXTINT15 (1ul << 31)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA12C_SERCOM2_PAD0 12L /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */
-#define MUX_PA12C_SERCOM2_PAD0 2L
-#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0)
-#define PORT_PA12C_SERCOM2_PAD0 (1ul << 12)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA13C_SERCOM2_PAD1 13L /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */
-#define MUX_PA13C_SERCOM2_PAD1 2L
-#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1)
-#define PORT_PA13C_SERCOM2_PAD1 (1ul << 13)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA20D_SERCOM3_PAD2 20L /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */
-#define MUX_PA20D_SERCOM3_PAD2 3L
-#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2)
-#define PORT_PA20D_SERCOM3_PAD2 (1ul << 20)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA21D_SERCOM3_PAD3 21L /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */
-#define MUX_PA21D_SERCOM3_PAD3 3L
-#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3)
-#define PORT_PA21D_SERCOM3_PAD3 (1ul << 21)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for SERCOM4 peripheral ========== */
-#define PIN_PA12D_SERCOM4_PAD0 12L /**< \brief SERCOM4 signal: PAD0 on PA12 mux D */
-#define MUX_PA12D_SERCOM4_PAD0 3L
-#define PINMUX_PA12D_SERCOM4_PAD0 ((PIN_PA12D_SERCOM4_PAD0 << 16) | MUX_PA12D_SERCOM4_PAD0)
-#define PORT_PA12D_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PB08D_SERCOM4_PAD0 40L /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */
-#define MUX_PB08D_SERCOM4_PAD0 3L
-#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0)
-#define PORT_PB08D_SERCOM4_PAD0 (1ul << 8)
-#define PIN_PB12C_SERCOM4_PAD0 44L /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */
-#define MUX_PB12C_SERCOM4_PAD0 2L
-#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0)
-#define PORT_PB12C_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PA13D_SERCOM4_PAD1 13L /**< \brief SERCOM4 signal: PAD1 on PA13 mux D */
-#define MUX_PA13D_SERCOM4_PAD1 3L
-#define PINMUX_PA13D_SERCOM4_PAD1 ((PIN_PA13D_SERCOM4_PAD1 << 16) | MUX_PA13D_SERCOM4_PAD1)
-#define PORT_PA13D_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PB09D_SERCOM4_PAD1 41L /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */
-#define MUX_PB09D_SERCOM4_PAD1 3L
-#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1)
-#define PORT_PB09D_SERCOM4_PAD1 (1ul << 9)
-#define PIN_PB13C_SERCOM4_PAD1 45L /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */
-#define MUX_PB13C_SERCOM4_PAD1 2L
-#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1)
-#define PORT_PB13C_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PA14D_SERCOM4_PAD2 14L /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */
-#define MUX_PA14D_SERCOM4_PAD2 3L
-#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2)
-#define PORT_PA14D_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PB10D_SERCOM4_PAD2 42L /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */
-#define MUX_PB10D_SERCOM4_PAD2 3L
-#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2)
-#define PORT_PB10D_SERCOM4_PAD2 (1ul << 10)
-#define PIN_PB14C_SERCOM4_PAD2 46L /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */
-#define MUX_PB14C_SERCOM4_PAD2 2L
-#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2)
-#define PORT_PB14C_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PA15D_SERCOM4_PAD3 15L /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */
-#define MUX_PA15D_SERCOM4_PAD3 3L
-#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3)
-#define PORT_PA15D_SERCOM4_PAD3 (1ul << 15)
-#define PIN_PB11D_SERCOM4_PAD3 43L /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */
-#define MUX_PB11D_SERCOM4_PAD3 3L
-#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3)
-#define PORT_PB11D_SERCOM4_PAD3 (1ul << 11)
-#define PIN_PB15C_SERCOM4_PAD3 47L /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */
-#define MUX_PB15C_SERCOM4_PAD3 2L
-#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3)
-#define PORT_PB15C_SERCOM4_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM5 peripheral ========== */
-#define PIN_PB16C_SERCOM5_PAD0 48L /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */
-#define MUX_PB16C_SERCOM5_PAD0 2L
-#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0)
-#define PORT_PB16C_SERCOM5_PAD0 (1ul << 16)
-#define PIN_PA22D_SERCOM5_PAD0 22L /**< \brief SERCOM5 signal: PAD0 on PA22 mux D */
-#define MUX_PA22D_SERCOM5_PAD0 3L
-#define PINMUX_PA22D_SERCOM5_PAD0 ((PIN_PA22D_SERCOM5_PAD0 << 16) | MUX_PA22D_SERCOM5_PAD0)
-#define PORT_PA22D_SERCOM5_PAD0 (1ul << 22)
-#define PIN_PB02D_SERCOM5_PAD0 34L /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */
-#define MUX_PB02D_SERCOM5_PAD0 3L
-#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0)
-#define PORT_PB02D_SERCOM5_PAD0 (1ul << 2)
-#define PIN_PB30D_SERCOM5_PAD0 62L /**< \brief SERCOM5 signal: PAD0 on PB30 mux D */
-#define MUX_PB30D_SERCOM5_PAD0 3L
-#define PINMUX_PB30D_SERCOM5_PAD0 ((PIN_PB30D_SERCOM5_PAD0 << 16) | MUX_PB30D_SERCOM5_PAD0)
-#define PORT_PB30D_SERCOM5_PAD0 (1ul << 30)
-#define PIN_PB17C_SERCOM5_PAD1 49L /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */
-#define MUX_PB17C_SERCOM5_PAD1 2L
-#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1)
-#define PORT_PB17C_SERCOM5_PAD1 (1ul << 17)
-#define PIN_PA23D_SERCOM5_PAD1 23L /**< \brief SERCOM5 signal: PAD1 on PA23 mux D */
-#define MUX_PA23D_SERCOM5_PAD1 3L
-#define PINMUX_PA23D_SERCOM5_PAD1 ((PIN_PA23D_SERCOM5_PAD1 << 16) | MUX_PA23D_SERCOM5_PAD1)
-#define PORT_PA23D_SERCOM5_PAD1 (1ul << 23)
-#define PIN_PB03D_SERCOM5_PAD1 35L /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */
-#define MUX_PB03D_SERCOM5_PAD1 3L
-#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1)
-#define PORT_PB03D_SERCOM5_PAD1 (1ul << 3)
-#define PIN_PB31D_SERCOM5_PAD1 63L /**< \brief SERCOM5 signal: PAD1 on PB31 mux D */
-#define MUX_PB31D_SERCOM5_PAD1 3L
-#define PINMUX_PB31D_SERCOM5_PAD1 ((PIN_PB31D_SERCOM5_PAD1 << 16) | MUX_PB31D_SERCOM5_PAD1)
-#define PORT_PB31D_SERCOM5_PAD1 (1ul << 31)
-#define PIN_PA24D_SERCOM5_PAD2 24L /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */
-#define MUX_PA24D_SERCOM5_PAD2 3L
-#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2)
-#define PORT_PA24D_SERCOM5_PAD2 (1ul << 24)
-#define PIN_PB00D_SERCOM5_PAD2 32L /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */
-#define MUX_PB00D_SERCOM5_PAD2 3L
-#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2)
-#define PORT_PB00D_SERCOM5_PAD2 (1ul << 0)
-#define PIN_PB22D_SERCOM5_PAD2 54L /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */
-#define MUX_PB22D_SERCOM5_PAD2 3L
-#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2)
-#define PORT_PB22D_SERCOM5_PAD2 (1ul << 22)
-#define PIN_PA20C_SERCOM5_PAD2 20L /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */
-#define MUX_PA20C_SERCOM5_PAD2 2L
-#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2)
-#define PORT_PA20C_SERCOM5_PAD2 (1ul << 20)
-#define PIN_PA25D_SERCOM5_PAD3 25L /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */
-#define MUX_PA25D_SERCOM5_PAD3 3L
-#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3)
-#define PORT_PA25D_SERCOM5_PAD3 (1ul << 25)
-#define PIN_PB01D_SERCOM5_PAD3 33L /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */
-#define MUX_PB01D_SERCOM5_PAD3 3L
-#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3)
-#define PORT_PB01D_SERCOM5_PAD3 (1ul << 1)
-#define PIN_PB23D_SERCOM5_PAD3 55L /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */
-#define MUX_PB23D_SERCOM5_PAD3 3L
-#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3)
-#define PORT_PB23D_SERCOM5_PAD3 (1ul << 23)
-#define PIN_PA21C_SERCOM5_PAD3 21L /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */
-#define MUX_PA21C_SERCOM5_PAD3 2L
-#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3)
-#define PORT_PA21C_SERCOM5_PAD3 (1ul << 21)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PB30E_TCC0_WO0 62L /**< \brief TCC0 signal: WO0 on PB30 mux E */
-#define MUX_PB30E_TCC0_WO0 4L
-#define PINMUX_PB30E_TCC0_WO0 ((PIN_PB30E_TCC0_WO0 << 16) | MUX_PB30E_TCC0_WO0)
-#define PORT_PB30E_TCC0_WO0 (1ul << 30)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PB31E_TCC0_WO1 63L /**< \brief TCC0 signal: WO1 on PB31 mux E */
-#define MUX_PB31E_TCC0_WO1 4L
-#define PINMUX_PB31E_TCC0_WO1 ((PIN_PB31E_TCC0_WO1 << 16) | MUX_PB31E_TCC0_WO1)
-#define PORT_PB31E_TCC0_WO1 (1ul << 31)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PB10F_TCC0_WO4 42L /**< \brief TCC0 signal: WO4 on PB10 mux F */
-#define MUX_PB10F_TCC0_WO4 5L
-#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4)
-#define PORT_PB10F_TCC0_WO4 (1ul << 10)
-#define PIN_PB16F_TCC0_WO4 48L /**< \brief TCC0 signal: WO4 on PB16 mux F */
-#define MUX_PB16F_TCC0_WO4 5L
-#define PINMUX_PB16F_TCC0_WO4 ((PIN_PB16F_TCC0_WO4 << 16) | MUX_PB16F_TCC0_WO4)
-#define PORT_PB16F_TCC0_WO4 (1ul << 16)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PB11F_TCC0_WO5 43L /**< \brief TCC0 signal: WO5 on PB11 mux F */
-#define MUX_PB11F_TCC0_WO5 5L
-#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5)
-#define PORT_PB11F_TCC0_WO5 (1ul << 11)
-#define PIN_PB17F_TCC0_WO5 49L /**< \brief TCC0 signal: WO5 on PB17 mux F */
-#define MUX_PB17F_TCC0_WO5 5L
-#define PINMUX_PB17F_TCC0_WO5 ((PIN_PB17F_TCC0_WO5 << 16) | MUX_PB17F_TCC0_WO5)
-#define PORT_PB17F_TCC0_WO5 (1ul << 17)
-#define PIN_PA12F_TCC0_WO6 12L /**< \brief TCC0 signal: WO6 on PA12 mux F */
-#define MUX_PA12F_TCC0_WO6 5L
-#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6)
-#define PORT_PA12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA20F_TCC0_WO6 20L /**< \brief TCC0 signal: WO6 on PA20 mux F */
-#define MUX_PA20F_TCC0_WO6 5L
-#define PINMUX_PA20F_TCC0_WO6 ((PIN_PA20F_TCC0_WO6 << 16) | MUX_PA20F_TCC0_WO6)
-#define PORT_PA20F_TCC0_WO6 (1ul << 20)
-#define PIN_PB12F_TCC0_WO6 44L /**< \brief TCC0 signal: WO6 on PB12 mux F */
-#define MUX_PB12F_TCC0_WO6 5L
-#define PINMUX_PB12F_TCC0_WO6 ((PIN_PB12F_TCC0_WO6 << 16) | MUX_PB12F_TCC0_WO6)
-#define PORT_PB12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA13F_TCC0_WO7 13L /**< \brief TCC0 signal: WO7 on PA13 mux F */
-#define MUX_PA13F_TCC0_WO7 5L
-#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7)
-#define PORT_PA13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA21F_TCC0_WO7 21L /**< \brief TCC0 signal: WO7 on PA21 mux F */
-#define MUX_PA21F_TCC0_WO7 5L
-#define PINMUX_PA21F_TCC0_WO7 ((PIN_PA21F_TCC0_WO7 << 16) | MUX_PA21F_TCC0_WO7)
-#define PORT_PA21F_TCC0_WO7 (1ul << 21)
-#define PIN_PB13F_TCC0_WO7 45L /**< \brief TCC0 signal: WO7 on PB13 mux F */
-#define MUX_PB13F_TCC0_WO7 5L
-#define PINMUX_PB13F_TCC0_WO7 ((PIN_PB13F_TCC0_WO7 << 16) | MUX_PB13F_TCC0_WO7)
-#define PORT_PB13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PB30F_TCC1_WO2 62L /**< \brief TCC1 signal: WO2 on PB30 mux F */
-#define MUX_PB30F_TCC1_WO2 5L
-#define PINMUX_PB30F_TCC1_WO2 ((PIN_PB30F_TCC1_WO2 << 16) | MUX_PB30F_TCC1_WO2)
-#define PORT_PB30F_TCC1_WO2 (1ul << 30)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-#define PIN_PB31F_TCC1_WO3 63L /**< \brief TCC1 signal: WO3 on PB31 mux F */
-#define MUX_PB31F_TCC1_WO3 5L
-#define PINMUX_PB31F_TCC1_WO3 ((PIN_PB31F_TCC1_WO3 << 16) | MUX_PB31F_TCC1_WO3)
-#define PORT_PB31F_TCC1_WO3 (1ul << 31)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA12E_TCC2_WO0 12L /**< \brief TCC2 signal: WO0 on PA12 mux E */
-#define MUX_PA12E_TCC2_WO0 4L
-#define PINMUX_PA12E_TCC2_WO0 ((PIN_PA12E_TCC2_WO0 << 16) | MUX_PA12E_TCC2_WO0)
-#define PORT_PA12E_TCC2_WO0 (1ul << 12)
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA13E_TCC2_WO1 13L /**< \brief TCC2 signal: WO1 on PA13 mux E */
-#define MUX_PA13E_TCC2_WO1 4L
-#define PINMUX_PA13E_TCC2_WO1 ((PIN_PA13E_TCC2_WO1 << 16) | MUX_PA13E_TCC2_WO1)
-#define PORT_PA13E_TCC2_WO1 (1ul << 13)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PB08E_TC4_WO0 40L /**< \brief TC4 signal: WO0 on PB08 mux E */
-#define MUX_PB08E_TC4_WO0 4L
-#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0)
-#define PORT_PB08E_TC4_WO0 (1ul << 8)
-#define PIN_PB12E_TC4_WO0 44L /**< \brief TC4 signal: WO0 on PB12 mux E */
-#define MUX_PB12E_TC4_WO0 4L
-#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0)
-#define PORT_PB12E_TC4_WO0 (1ul << 12)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-#define PIN_PB09E_TC4_WO1 41L /**< \brief TC4 signal: WO1 on PB09 mux E */
-#define MUX_PB09E_TC4_WO1 4L
-#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1)
-#define PORT_PB09E_TC4_WO1 (1ul << 9)
-#define PIN_PB13E_TC4_WO1 45L /**< \brief TC4 signal: WO1 on PB13 mux E */
-#define MUX_PB13E_TC4_WO1 4L
-#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1)
-#define PORT_PB13E_TC4_WO1 (1ul << 13)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PB10E_TC5_WO0 42L /**< \brief TC5 signal: WO0 on PB10 mux E */
-#define MUX_PB10E_TC5_WO0 4L
-#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0)
-#define PORT_PB10E_TC5_WO0 (1ul << 10)
-#define PIN_PB14E_TC5_WO0 46L /**< \brief TC5 signal: WO0 on PB14 mux E */
-#define MUX_PB14E_TC5_WO0 4L
-#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0)
-#define PORT_PB14E_TC5_WO0 (1ul << 14)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-#define PIN_PB11E_TC5_WO1 43L /**< \brief TC5 signal: WO1 on PB11 mux E */
-#define MUX_PB11E_TC5_WO1 4L
-#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1)
-#define PORT_PB11E_TC5_WO1 (1ul << 11)
-#define PIN_PB15E_TC5_WO1 47L /**< \brief TC5 signal: WO1 on PB15 mux E */
-#define MUX_PB15E_TC5_WO1 4L
-#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1)
-#define PORT_PB15E_TC5_WO1 (1ul << 15)
-/* ========== PORT definition for TC6 peripheral ========== */
-#define PIN_PB02E_TC6_WO0 34L /**< \brief TC6 signal: WO0 on PB02 mux E */
-#define MUX_PB02E_TC6_WO0 4L
-#define PINMUX_PB02E_TC6_WO0 ((PIN_PB02E_TC6_WO0 << 16) | MUX_PB02E_TC6_WO0)
-#define PORT_PB02E_TC6_WO0 (1ul << 2)
-#define PIN_PB16E_TC6_WO0 48L /**< \brief TC6 signal: WO0 on PB16 mux E */
-#define MUX_PB16E_TC6_WO0 4L
-#define PINMUX_PB16E_TC6_WO0 ((PIN_PB16E_TC6_WO0 << 16) | MUX_PB16E_TC6_WO0)
-#define PORT_PB16E_TC6_WO0 (1ul << 16)
-#define PIN_PB03E_TC6_WO1 35L /**< \brief TC6 signal: WO1 on PB03 mux E */
-#define MUX_PB03E_TC6_WO1 4L
-#define PINMUX_PB03E_TC6_WO1 ((PIN_PB03E_TC6_WO1 << 16) | MUX_PB03E_TC6_WO1)
-#define PORT_PB03E_TC6_WO1 (1ul << 3)
-#define PIN_PB17E_TC6_WO1 49L /**< \brief TC6 signal: WO1 on PB17 mux E */
-#define MUX_PB17E_TC6_WO1 4L
-#define PINMUX_PB17E_TC6_WO1 ((PIN_PB17E_TC6_WO1 << 16) | MUX_PB17E_TC6_WO1)
-#define PORT_PB17E_TC6_WO1 (1ul << 17)
-/* ========== PORT definition for TC7 peripheral ========== */
-#define PIN_PA20E_TC7_WO0 20L /**< \brief TC7 signal: WO0 on PA20 mux E */
-#define MUX_PA20E_TC7_WO0 4L
-#define PINMUX_PA20E_TC7_WO0 ((PIN_PA20E_TC7_WO0 << 16) | MUX_PA20E_TC7_WO0)
-#define PORT_PA20E_TC7_WO0 (1ul << 20)
-#define PIN_PB00E_TC7_WO0 32L /**< \brief TC7 signal: WO0 on PB00 mux E */
-#define MUX_PB00E_TC7_WO0 4L
-#define PINMUX_PB00E_TC7_WO0 ((PIN_PB00E_TC7_WO0 << 16) | MUX_PB00E_TC7_WO0)
-#define PORT_PB00E_TC7_WO0 (1ul << 0)
-#define PIN_PB22E_TC7_WO0 54L /**< \brief TC7 signal: WO0 on PB22 mux E */
-#define MUX_PB22E_TC7_WO0 4L
-#define PINMUX_PB22E_TC7_WO0 ((PIN_PB22E_TC7_WO0 << 16) | MUX_PB22E_TC7_WO0)
-#define PORT_PB22E_TC7_WO0 (1ul << 22)
-#define PIN_PA21E_TC7_WO1 21L /**< \brief TC7 signal: WO1 on PA21 mux E */
-#define MUX_PA21E_TC7_WO1 4L
-#define PINMUX_PA21E_TC7_WO1 ((PIN_PA21E_TC7_WO1 << 16) | MUX_PA21E_TC7_WO1)
-#define PORT_PA21E_TC7_WO1 (1ul << 21)
-#define PIN_PB01E_TC7_WO1 33L /**< \brief TC7 signal: WO1 on PB01 mux E */
-#define MUX_PB01E_TC7_WO1 4L
-#define PINMUX_PB01E_TC7_WO1 ((PIN_PB01E_TC7_WO1 << 16) | MUX_PB01E_TC7_WO1)
-#define PORT_PB01E_TC7_WO1 (1ul << 1)
-#define PIN_PB23E_TC7_WO1 55L /**< \brief TC7 signal: WO1 on PB23 mux E */
-#define MUX_PB23E_TC7_WO1 4L
-#define PINMUX_PB23E_TC7_WO1 ((PIN_PB23E_TC7_WO1 << 16) | MUX_PB23E_TC7_WO1)
-#define PORT_PB23E_TC7_WO1 (1ul << 23)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PB08B_ADC_AIN2 40L /**< \brief ADC signal: AIN2 on PB08 mux B */
-#define MUX_PB08B_ADC_AIN2 1L
-#define PINMUX_PB08B_ADC_AIN2 ((PIN_PB08B_ADC_AIN2 << 16) | MUX_PB08B_ADC_AIN2)
-#define PORT_PB08B_ADC_AIN2 (1ul << 8)
-#define PIN_PB09B_ADC_AIN3 41L /**< \brief ADC signal: AIN3 on PB09 mux B */
-#define MUX_PB09B_ADC_AIN3 1L
-#define PINMUX_PB09B_ADC_AIN3 ((PIN_PB09B_ADC_AIN3 << 16) | MUX_PB09B_ADC_AIN3)
-#define PORT_PB09B_ADC_AIN3 (1ul << 9)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB00B_ADC_AIN8 32L /**< \brief ADC signal: AIN8 on PB00 mux B */
-#define MUX_PB00B_ADC_AIN8 1L
-#define PINMUX_PB00B_ADC_AIN8 ((PIN_PB00B_ADC_AIN8 << 16) | MUX_PB00B_ADC_AIN8)
-#define PORT_PB00B_ADC_AIN8 (1ul << 0)
-#define PIN_PB01B_ADC_AIN9 33L /**< \brief ADC signal: AIN9 on PB01 mux B */
-#define MUX_PB01B_ADC_AIN9 1L
-#define PINMUX_PB01B_ADC_AIN9 ((PIN_PB01B_ADC_AIN9 << 16) | MUX_PB01B_ADC_AIN9)
-#define PORT_PB01B_ADC_AIN9 (1ul << 1)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PB04B_ADC_AIN12 36L /**< \brief ADC signal: AIN12 on PB04 mux B */
-#define MUX_PB04B_ADC_AIN12 1L
-#define PINMUX_PB04B_ADC_AIN12 ((PIN_PB04B_ADC_AIN12 << 16) | MUX_PB04B_ADC_AIN12)
-#define PORT_PB04B_ADC_AIN12 (1ul << 4)
-#define PIN_PB05B_ADC_AIN13 37L /**< \brief ADC signal: AIN13 on PB05 mux B */
-#define MUX_PB05B_ADC_AIN13 1L
-#define PINMUX_PB05B_ADC_AIN13 ((PIN_PB05B_ADC_AIN13 << 16) | MUX_PB05B_ADC_AIN13)
-#define PORT_PB05B_ADC_AIN13 (1ul << 5)
-#define PIN_PB06B_ADC_AIN14 38L /**< \brief ADC signal: AIN14 on PB06 mux B */
-#define MUX_PB06B_ADC_AIN14 1L
-#define PINMUX_PB06B_ADC_AIN14 ((PIN_PB06B_ADC_AIN14 << 16) | MUX_PB06B_ADC_AIN14)
-#define PORT_PB06B_ADC_AIN14 (1ul << 6)
-#define PIN_PB07B_ADC_AIN15 39L /**< \brief ADC signal: AIN15 on PB07 mux B */
-#define MUX_PB07B_ADC_AIN15 1L
-#define PINMUX_PB07B_ADC_AIN15 ((PIN_PB07B_ADC_AIN15 << 16) | MUX_PB07B_ADC_AIN15)
-#define PORT_PB07B_ADC_AIN15 (1ul << 7)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA12H_AC_CMP0 12L /**< \brief AC signal: CMP0 on PA12 mux H */
-#define MUX_PA12H_AC_CMP0 7L
-#define PINMUX_PA12H_AC_CMP0 ((PIN_PA12H_AC_CMP0 << 16) | MUX_PA12H_AC_CMP0)
-#define PORT_PA12H_AC_CMP0 (1ul << 12)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA13H_AC_CMP1 13L /**< \brief AC signal: CMP1 on PA13 mux H */
-#define MUX_PA13H_AC_CMP1 7L
-#define PINMUX_PA13H_AC_CMP1 ((PIN_PA13H_AC_CMP1 << 16) | MUX_PA13H_AC_CMP1)
-#define PORT_PA13H_AC_CMP1 (1ul << 13)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA21G_I2S_FS0 21L /**< \brief I2S signal: FS0 on PA21 mux G */
-#define MUX_PA21G_I2S_FS0 6L
-#define PINMUX_PA21G_I2S_FS0 ((PIN_PA21G_I2S_FS0 << 16) | MUX_PA21G_I2S_FS0)
-#define PORT_PA21G_I2S_FS0 (1ul << 21)
-#define PIN_PB12G_I2S_FS1 44L /**< \brief I2S signal: FS1 on PB12 mux G */
-#define MUX_PB12G_I2S_FS1 6L
-#define PINMUX_PB12G_I2S_FS1 ((PIN_PB12G_I2S_FS1 << 16) | MUX_PB12G_I2S_FS1)
-#define PORT_PB12G_I2S_FS1 (1ul << 12)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PB17G_I2S_MCK0 49L /**< \brief I2S signal: MCK0 on PB17 mux G */
-#define MUX_PB17G_I2S_MCK0 6L
-#define PINMUX_PB17G_I2S_MCK0 ((PIN_PB17G_I2S_MCK0 << 16) | MUX_PB17G_I2S_MCK0)
-#define PORT_PB17G_I2S_MCK0 (1ul << 17)
-#define PIN_PB10G_I2S_MCK1 42L /**< \brief I2S signal: MCK1 on PB10 mux G */
-#define MUX_PB10G_I2S_MCK1 6L
-#define PINMUX_PB10G_I2S_MCK1 ((PIN_PB10G_I2S_MCK1 << 16) | MUX_PB10G_I2S_MCK1)
-#define PORT_PB10G_I2S_MCK1 (1ul << 10)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA20G_I2S_SCK0 20L /**< \brief I2S signal: SCK0 on PA20 mux G */
-#define MUX_PA20G_I2S_SCK0 6L
-#define PINMUX_PA20G_I2S_SCK0 ((PIN_PA20G_I2S_SCK0 << 16) | MUX_PA20G_I2S_SCK0)
-#define PORT_PA20G_I2S_SCK0 (1ul << 20)
-#define PIN_PB11G_I2S_SCK1 43L /**< \brief I2S signal: SCK1 on PB11 mux G */
-#define MUX_PB11G_I2S_SCK1 6L
-#define PINMUX_PB11G_I2S_SCK1 ((PIN_PB11G_I2S_SCK1 << 16) | MUX_PB11G_I2S_SCK1)
-#define PORT_PB11G_I2S_SCK1 (1ul << 11)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-#define PIN_PB16G_I2S_SD1 48L /**< \brief I2S signal: SD1 on PB16 mux G */
-#define MUX_PB16G_I2S_SD1 6L
-#define PINMUX_PB16G_I2S_SD1 ((PIN_PB16G_I2S_SD1 << 16) | MUX_PB16G_I2S_SD1)
-#define PORT_PB16G_I2S_SD1 (1ul << 16)
-
-#endif /* _SAMD21J15A_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j15b.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j15b.h
deleted file mode 100644
index 40e56d3..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j15b.h
+++ /dev/null
@@ -1,1179 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21J15B
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21J15B_PIO_
-#define _SAMD21J15B_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA12 12 /**< \brief Pin Number for PA12 */
-#define PORT_PA12 (1ul << 12) /**< \brief PORT Mask for PA12 */
-#define PIN_PA13 13 /**< \brief Pin Number for PA13 */
-#define PORT_PA13 (1ul << 13) /**< \brief PORT Mask for PA13 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA20 20 /**< \brief Pin Number for PA20 */
-#define PORT_PA20 (1ul << 20) /**< \brief PORT Mask for PA20 */
-#define PIN_PA21 21 /**< \brief Pin Number for PA21 */
-#define PORT_PA21 (1ul << 21) /**< \brief PORT Mask for PA21 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB00 32 /**< \brief Pin Number for PB00 */
-#define PORT_PB00 (1ul << 0) /**< \brief PORT Mask for PB00 */
-#define PIN_PB01 33 /**< \brief Pin Number for PB01 */
-#define PORT_PB01 (1ul << 1) /**< \brief PORT Mask for PB01 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB04 36 /**< \brief Pin Number for PB04 */
-#define PORT_PB04 (1ul << 4) /**< \brief PORT Mask for PB04 */
-#define PIN_PB05 37 /**< \brief Pin Number for PB05 */
-#define PORT_PB05 (1ul << 5) /**< \brief PORT Mask for PB05 */
-#define PIN_PB06 38 /**< \brief Pin Number for PB06 */
-#define PORT_PB06 (1ul << 6) /**< \brief PORT Mask for PB06 */
-#define PIN_PB07 39 /**< \brief Pin Number for PB07 */
-#define PORT_PB07 (1ul << 7) /**< \brief PORT Mask for PB07 */
-#define PIN_PB08 40 /**< \brief Pin Number for PB08 */
-#define PORT_PB08 (1ul << 8) /**< \brief PORT Mask for PB08 */
-#define PIN_PB09 41 /**< \brief Pin Number for PB09 */
-#define PORT_PB09 (1ul << 9) /**< \brief PORT Mask for PB09 */
-#define PIN_PB10 42 /**< \brief Pin Number for PB10 */
-#define PORT_PB10 (1ul << 10) /**< \brief PORT Mask for PB10 */
-#define PIN_PB11 43 /**< \brief Pin Number for PB11 */
-#define PORT_PB11 (1ul << 11) /**< \brief PORT Mask for PB11 */
-#define PIN_PB12 44 /**< \brief Pin Number for PB12 */
-#define PORT_PB12 (1ul << 12) /**< \brief PORT Mask for PB12 */
-#define PIN_PB13 45 /**< \brief Pin Number for PB13 */
-#define PORT_PB13 (1ul << 13) /**< \brief PORT Mask for PB13 */
-#define PIN_PB14 46 /**< \brief Pin Number for PB14 */
-#define PORT_PB14 (1ul << 14) /**< \brief PORT Mask for PB14 */
-#define PIN_PB15 47 /**< \brief Pin Number for PB15 */
-#define PORT_PB15 (1ul << 15) /**< \brief PORT Mask for PB15 */
-#define PIN_PB16 48 /**< \brief Pin Number for PB16 */
-#define PORT_PB16 (1ul << 16) /**< \brief PORT Mask for PB16 */
-#define PIN_PB17 49 /**< \brief Pin Number for PB17 */
-#define PORT_PB17 (1ul << 17) /**< \brief PORT Mask for PB17 */
-#define PIN_PB22 54 /**< \brief Pin Number for PB22 */
-#define PORT_PB22 (1ul << 22) /**< \brief PORT Mask for PB22 */
-#define PIN_PB23 55 /**< \brief Pin Number for PB23 */
-#define PORT_PB23 (1ul << 23) /**< \brief PORT Mask for PB23 */
-#define PIN_PB30 62 /**< \brief Pin Number for PB30 */
-#define PORT_PB30 (1ul << 30) /**< \brief PORT Mask for PB30 */
-#define PIN_PB31 63 /**< \brief Pin Number for PB31 */
-#define PORT_PB31 (1ul << 31) /**< \brief PORT Mask for PB31 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PB14H_GCLK_IO0 46L /**< \brief GCLK signal: IO0 on PB14 mux H */
-#define MUX_PB14H_GCLK_IO0 7L
-#define PINMUX_PB14H_GCLK_IO0 ((PIN_PB14H_GCLK_IO0 << 16) | MUX_PB14H_GCLK_IO0)
-#define PORT_PB14H_GCLK_IO0 (1ul << 14)
-#define PIN_PB22H_GCLK_IO0 54L /**< \brief GCLK signal: IO0 on PB22 mux H */
-#define MUX_PB22H_GCLK_IO0 7L
-#define PINMUX_PB22H_GCLK_IO0 ((PIN_PB22H_GCLK_IO0 << 16) | MUX_PB22H_GCLK_IO0)
-#define PORT_PB22H_GCLK_IO0 (1ul << 22)
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PB15H_GCLK_IO1 47L /**< \brief GCLK signal: IO1 on PB15 mux H */
-#define MUX_PB15H_GCLK_IO1 7L
-#define PINMUX_PB15H_GCLK_IO1 ((PIN_PB15H_GCLK_IO1 << 16) | MUX_PB15H_GCLK_IO1)
-#define PORT_PB15H_GCLK_IO1 (1ul << 15)
-#define PIN_PB23H_GCLK_IO1 55L /**< \brief GCLK signal: IO1 on PB23 mux H */
-#define MUX_PB23H_GCLK_IO1 7L
-#define PINMUX_PB23H_GCLK_IO1 ((PIN_PB23H_GCLK_IO1 << 16) | MUX_PB23H_GCLK_IO1)
-#define PORT_PB23H_GCLK_IO1 (1ul << 23)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PB16H_GCLK_IO2 48L /**< \brief GCLK signal: IO2 on PB16 mux H */
-#define MUX_PB16H_GCLK_IO2 7L
-#define PINMUX_PB16H_GCLK_IO2 ((PIN_PB16H_GCLK_IO2 << 16) | MUX_PB16H_GCLK_IO2)
-#define PORT_PB16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PB17H_GCLK_IO3 49L /**< \brief GCLK signal: IO3 on PB17 mux H */
-#define MUX_PB17H_GCLK_IO3 7L
-#define PINMUX_PB17H_GCLK_IO3 ((PIN_PB17H_GCLK_IO3 << 16) | MUX_PB17H_GCLK_IO3)
-#define PORT_PB17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA20H_GCLK_IO4 20L /**< \brief GCLK signal: IO4 on PA20 mux H */
-#define MUX_PA20H_GCLK_IO4 7L
-#define PINMUX_PA20H_GCLK_IO4 ((PIN_PA20H_GCLK_IO4 << 16) | MUX_PA20H_GCLK_IO4)
-#define PORT_PA20H_GCLK_IO4 (1ul << 20)
-#define PIN_PB10H_GCLK_IO4 42L /**< \brief GCLK signal: IO4 on PB10 mux H */
-#define MUX_PB10H_GCLK_IO4 7L
-#define PINMUX_PB10H_GCLK_IO4 ((PIN_PB10H_GCLK_IO4 << 16) | MUX_PB10H_GCLK_IO4)
-#define PORT_PB10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA21H_GCLK_IO5 21L /**< \brief GCLK signal: IO5 on PA21 mux H */
-#define MUX_PA21H_GCLK_IO5 7L
-#define PINMUX_PA21H_GCLK_IO5 ((PIN_PA21H_GCLK_IO5 << 16) | MUX_PA21H_GCLK_IO5)
-#define PORT_PA21H_GCLK_IO5 (1ul << 21)
-#define PIN_PB11H_GCLK_IO5 43L /**< \brief GCLK signal: IO5 on PB11 mux H */
-#define MUX_PB11H_GCLK_IO5 7L
-#define PINMUX_PB11H_GCLK_IO5 ((PIN_PB11H_GCLK_IO5 << 16) | MUX_PB11H_GCLK_IO5)
-#define PORT_PB11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PB12H_GCLK_IO6 44L /**< \brief GCLK signal: IO6 on PB12 mux H */
-#define MUX_PB12H_GCLK_IO6 7L
-#define PINMUX_PB12H_GCLK_IO6 ((PIN_PB12H_GCLK_IO6 << 16) | MUX_PB12H_GCLK_IO6)
-#define PORT_PB12H_GCLK_IO6 (1ul << 12)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-#define PIN_PB13H_GCLK_IO7 45L /**< \brief GCLK signal: IO7 on PB13 mux H */
-#define MUX_PB13H_GCLK_IO7 7L
-#define PINMUX_PB13H_GCLK_IO7 ((PIN_PB13H_GCLK_IO7 << 16) | MUX_PB13H_GCLK_IO7)
-#define PORT_PB13H_GCLK_IO7 (1ul << 13)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PB00A_EIC_EXTINT0 32L /**< \brief EIC signal: EXTINT0 on PB00 mux A */
-#define MUX_PB00A_EIC_EXTINT0 0L
-#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0)
-#define PORT_PB00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PB16A_EIC_EXTINT0 48L /**< \brief EIC signal: EXTINT0 on PB16 mux A */
-#define MUX_PB16A_EIC_EXTINT0 0L
-#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0)
-#define PORT_PB16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PB01A_EIC_EXTINT1 33L /**< \brief EIC signal: EXTINT1 on PB01 mux A */
-#define MUX_PB01A_EIC_EXTINT1 0L
-#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1)
-#define PORT_PB01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PB17A_EIC_EXTINT1 49L /**< \brief EIC signal: EXTINT1 on PB17 mux A */
-#define MUX_PB17A_EIC_EXTINT1 0L
-#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1)
-#define PORT_PB17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA20A_EIC_EXTINT4 20L /**< \brief EIC signal: EXTINT4 on PA20 mux A */
-#define MUX_PA20A_EIC_EXTINT4 0L
-#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4)
-#define PORT_PA20A_EIC_EXTINT4 (1ul << 20)
-#define PIN_PB04A_EIC_EXTINT4 36L /**< \brief EIC signal: EXTINT4 on PB04 mux A */
-#define MUX_PB04A_EIC_EXTINT4 0L
-#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4)
-#define PORT_PB04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA21A_EIC_EXTINT5 21L /**< \brief EIC signal: EXTINT5 on PA21 mux A */
-#define MUX_PA21A_EIC_EXTINT5 0L
-#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5)
-#define PORT_PA21A_EIC_EXTINT5 (1ul << 21)
-#define PIN_PB05A_EIC_EXTINT5 37L /**< \brief EIC signal: EXTINT5 on PB05 mux A */
-#define MUX_PB05A_EIC_EXTINT5 0L
-#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5)
-#define PORT_PB05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PB06A_EIC_EXTINT6 38L /**< \brief EIC signal: EXTINT6 on PB06 mux A */
-#define MUX_PB06A_EIC_EXTINT6 0L
-#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6)
-#define PORT_PB06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PB22A_EIC_EXTINT6 54L /**< \brief EIC signal: EXTINT6 on PB22 mux A */
-#define MUX_PB22A_EIC_EXTINT6 0L
-#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6)
-#define PORT_PB22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PB07A_EIC_EXTINT7 39L /**< \brief EIC signal: EXTINT7 on PB07 mux A */
-#define MUX_PB07A_EIC_EXTINT7 0L
-#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7)
-#define PORT_PB07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PB23A_EIC_EXTINT7 55L /**< \brief EIC signal: EXTINT7 on PB23 mux A */
-#define MUX_PB23A_EIC_EXTINT7 0L
-#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7)
-#define PORT_PB23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PB08A_EIC_EXTINT8 40L /**< \brief EIC signal: EXTINT8 on PB08 mux A */
-#define MUX_PB08A_EIC_EXTINT8 0L
-#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8)
-#define PORT_PB08A_EIC_EXTINT8 (1ul << 8)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PB09A_EIC_EXTINT9 41L /**< \brief EIC signal: EXTINT9 on PB09 mux A */
-#define MUX_PB09A_EIC_EXTINT9 0L
-#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9)
-#define PORT_PB09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PB10A_EIC_EXTINT10 42L /**< \brief EIC signal: EXTINT10 on PB10 mux A */
-#define MUX_PB10A_EIC_EXTINT10 0L
-#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10)
-#define PORT_PB10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PB11A_EIC_EXTINT11 43L /**< \brief EIC signal: EXTINT11 on PB11 mux A */
-#define MUX_PB11A_EIC_EXTINT11 0L
-#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11)
-#define PORT_PB11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA12A_EIC_EXTINT12 12L /**< \brief EIC signal: EXTINT12 on PA12 mux A */
-#define MUX_PA12A_EIC_EXTINT12 0L
-#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12)
-#define PORT_PA12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PB12A_EIC_EXTINT12 44L /**< \brief EIC signal: EXTINT12 on PB12 mux A */
-#define MUX_PB12A_EIC_EXTINT12 0L
-#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12)
-#define PORT_PB12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA13A_EIC_EXTINT13 13L /**< \brief EIC signal: EXTINT13 on PA13 mux A */
-#define MUX_PA13A_EIC_EXTINT13 0L
-#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13)
-#define PORT_PA13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PB13A_EIC_EXTINT13 45L /**< \brief EIC signal: EXTINT13 on PB13 mux A */
-#define MUX_PB13A_EIC_EXTINT13 0L
-#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13)
-#define PORT_PB13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PB14A_EIC_EXTINT14 46L /**< \brief EIC signal: EXTINT14 on PB14 mux A */
-#define MUX_PB14A_EIC_EXTINT14 0L
-#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14)
-#define PORT_PB14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PB30A_EIC_EXTINT14 62L /**< \brief EIC signal: EXTINT14 on PB30 mux A */
-#define MUX_PB30A_EIC_EXTINT14 0L
-#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14)
-#define PORT_PB30A_EIC_EXTINT14 (1ul << 30)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PB15A_EIC_EXTINT15 47L /**< \brief EIC signal: EXTINT15 on PB15 mux A */
-#define MUX_PB15A_EIC_EXTINT15 0L
-#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15)
-#define PORT_PB15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PB31A_EIC_EXTINT15 63L /**< \brief EIC signal: EXTINT15 on PB31 mux A */
-#define MUX_PB31A_EIC_EXTINT15 0L
-#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15)
-#define PORT_PB31A_EIC_EXTINT15 (1ul << 31)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA12C_SERCOM2_PAD0 12L /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */
-#define MUX_PA12C_SERCOM2_PAD0 2L
-#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0)
-#define PORT_PA12C_SERCOM2_PAD0 (1ul << 12)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA13C_SERCOM2_PAD1 13L /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */
-#define MUX_PA13C_SERCOM2_PAD1 2L
-#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1)
-#define PORT_PA13C_SERCOM2_PAD1 (1ul << 13)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA20D_SERCOM3_PAD2 20L /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */
-#define MUX_PA20D_SERCOM3_PAD2 3L
-#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2)
-#define PORT_PA20D_SERCOM3_PAD2 (1ul << 20)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA21D_SERCOM3_PAD3 21L /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */
-#define MUX_PA21D_SERCOM3_PAD3 3L
-#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3)
-#define PORT_PA21D_SERCOM3_PAD3 (1ul << 21)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for SERCOM4 peripheral ========== */
-#define PIN_PA12D_SERCOM4_PAD0 12L /**< \brief SERCOM4 signal: PAD0 on PA12 mux D */
-#define MUX_PA12D_SERCOM4_PAD0 3L
-#define PINMUX_PA12D_SERCOM4_PAD0 ((PIN_PA12D_SERCOM4_PAD0 << 16) | MUX_PA12D_SERCOM4_PAD0)
-#define PORT_PA12D_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PB08D_SERCOM4_PAD0 40L /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */
-#define MUX_PB08D_SERCOM4_PAD0 3L
-#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0)
-#define PORT_PB08D_SERCOM4_PAD0 (1ul << 8)
-#define PIN_PB12C_SERCOM4_PAD0 44L /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */
-#define MUX_PB12C_SERCOM4_PAD0 2L
-#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0)
-#define PORT_PB12C_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PA13D_SERCOM4_PAD1 13L /**< \brief SERCOM4 signal: PAD1 on PA13 mux D */
-#define MUX_PA13D_SERCOM4_PAD1 3L
-#define PINMUX_PA13D_SERCOM4_PAD1 ((PIN_PA13D_SERCOM4_PAD1 << 16) | MUX_PA13D_SERCOM4_PAD1)
-#define PORT_PA13D_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PB09D_SERCOM4_PAD1 41L /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */
-#define MUX_PB09D_SERCOM4_PAD1 3L
-#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1)
-#define PORT_PB09D_SERCOM4_PAD1 (1ul << 9)
-#define PIN_PB13C_SERCOM4_PAD1 45L /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */
-#define MUX_PB13C_SERCOM4_PAD1 2L
-#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1)
-#define PORT_PB13C_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PA14D_SERCOM4_PAD2 14L /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */
-#define MUX_PA14D_SERCOM4_PAD2 3L
-#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2)
-#define PORT_PA14D_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PB10D_SERCOM4_PAD2 42L /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */
-#define MUX_PB10D_SERCOM4_PAD2 3L
-#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2)
-#define PORT_PB10D_SERCOM4_PAD2 (1ul << 10)
-#define PIN_PB14C_SERCOM4_PAD2 46L /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */
-#define MUX_PB14C_SERCOM4_PAD2 2L
-#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2)
-#define PORT_PB14C_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PA15D_SERCOM4_PAD3 15L /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */
-#define MUX_PA15D_SERCOM4_PAD3 3L
-#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3)
-#define PORT_PA15D_SERCOM4_PAD3 (1ul << 15)
-#define PIN_PB11D_SERCOM4_PAD3 43L /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */
-#define MUX_PB11D_SERCOM4_PAD3 3L
-#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3)
-#define PORT_PB11D_SERCOM4_PAD3 (1ul << 11)
-#define PIN_PB15C_SERCOM4_PAD3 47L /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */
-#define MUX_PB15C_SERCOM4_PAD3 2L
-#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3)
-#define PORT_PB15C_SERCOM4_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM5 peripheral ========== */
-#define PIN_PA22D_SERCOM5_PAD0 22L /**< \brief SERCOM5 signal: PAD0 on PA22 mux D */
-#define MUX_PA22D_SERCOM5_PAD0 3L
-#define PINMUX_PA22D_SERCOM5_PAD0 ((PIN_PA22D_SERCOM5_PAD0 << 16) | MUX_PA22D_SERCOM5_PAD0)
-#define PORT_PA22D_SERCOM5_PAD0 (1ul << 22)
-#define PIN_PB02D_SERCOM5_PAD0 34L /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */
-#define MUX_PB02D_SERCOM5_PAD0 3L
-#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0)
-#define PORT_PB02D_SERCOM5_PAD0 (1ul << 2)
-#define PIN_PB30D_SERCOM5_PAD0 62L /**< \brief SERCOM5 signal: PAD0 on PB30 mux D */
-#define MUX_PB30D_SERCOM5_PAD0 3L
-#define PINMUX_PB30D_SERCOM5_PAD0 ((PIN_PB30D_SERCOM5_PAD0 << 16) | MUX_PB30D_SERCOM5_PAD0)
-#define PORT_PB30D_SERCOM5_PAD0 (1ul << 30)
-#define PIN_PB16C_SERCOM5_PAD0 48L /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */
-#define MUX_PB16C_SERCOM5_PAD0 2L
-#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0)
-#define PORT_PB16C_SERCOM5_PAD0 (1ul << 16)
-#define PIN_PA23D_SERCOM5_PAD1 23L /**< \brief SERCOM5 signal: PAD1 on PA23 mux D */
-#define MUX_PA23D_SERCOM5_PAD1 3L
-#define PINMUX_PA23D_SERCOM5_PAD1 ((PIN_PA23D_SERCOM5_PAD1 << 16) | MUX_PA23D_SERCOM5_PAD1)
-#define PORT_PA23D_SERCOM5_PAD1 (1ul << 23)
-#define PIN_PB03D_SERCOM5_PAD1 35L /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */
-#define MUX_PB03D_SERCOM5_PAD1 3L
-#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1)
-#define PORT_PB03D_SERCOM5_PAD1 (1ul << 3)
-#define PIN_PB31D_SERCOM5_PAD1 63L /**< \brief SERCOM5 signal: PAD1 on PB31 mux D */
-#define MUX_PB31D_SERCOM5_PAD1 3L
-#define PINMUX_PB31D_SERCOM5_PAD1 ((PIN_PB31D_SERCOM5_PAD1 << 16) | MUX_PB31D_SERCOM5_PAD1)
-#define PORT_PB31D_SERCOM5_PAD1 (1ul << 31)
-#define PIN_PB17C_SERCOM5_PAD1 49L /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */
-#define MUX_PB17C_SERCOM5_PAD1 2L
-#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1)
-#define PORT_PB17C_SERCOM5_PAD1 (1ul << 17)
-#define PIN_PA24D_SERCOM5_PAD2 24L /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */
-#define MUX_PA24D_SERCOM5_PAD2 3L
-#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2)
-#define PORT_PA24D_SERCOM5_PAD2 (1ul << 24)
-#define PIN_PB00D_SERCOM5_PAD2 32L /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */
-#define MUX_PB00D_SERCOM5_PAD2 3L
-#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2)
-#define PORT_PB00D_SERCOM5_PAD2 (1ul << 0)
-#define PIN_PB22D_SERCOM5_PAD2 54L /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */
-#define MUX_PB22D_SERCOM5_PAD2 3L
-#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2)
-#define PORT_PB22D_SERCOM5_PAD2 (1ul << 22)
-#define PIN_PA20C_SERCOM5_PAD2 20L /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */
-#define MUX_PA20C_SERCOM5_PAD2 2L
-#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2)
-#define PORT_PA20C_SERCOM5_PAD2 (1ul << 20)
-#define PIN_PA25D_SERCOM5_PAD3 25L /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */
-#define MUX_PA25D_SERCOM5_PAD3 3L
-#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3)
-#define PORT_PA25D_SERCOM5_PAD3 (1ul << 25)
-#define PIN_PB01D_SERCOM5_PAD3 33L /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */
-#define MUX_PB01D_SERCOM5_PAD3 3L
-#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3)
-#define PORT_PB01D_SERCOM5_PAD3 (1ul << 1)
-#define PIN_PB23D_SERCOM5_PAD3 55L /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */
-#define MUX_PB23D_SERCOM5_PAD3 3L
-#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3)
-#define PORT_PB23D_SERCOM5_PAD3 (1ul << 23)
-#define PIN_PA21C_SERCOM5_PAD3 21L /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */
-#define MUX_PA21C_SERCOM5_PAD3 2L
-#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3)
-#define PORT_PA21C_SERCOM5_PAD3 (1ul << 21)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PB30E_TCC0_WO0 62L /**< \brief TCC0 signal: WO0 on PB30 mux E */
-#define MUX_PB30E_TCC0_WO0 4L
-#define PINMUX_PB30E_TCC0_WO0 ((PIN_PB30E_TCC0_WO0 << 16) | MUX_PB30E_TCC0_WO0)
-#define PORT_PB30E_TCC0_WO0 (1ul << 30)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PB31E_TCC0_WO1 63L /**< \brief TCC0 signal: WO1 on PB31 mux E */
-#define MUX_PB31E_TCC0_WO1 4L
-#define PINMUX_PB31E_TCC0_WO1 ((PIN_PB31E_TCC0_WO1 << 16) | MUX_PB31E_TCC0_WO1)
-#define PORT_PB31E_TCC0_WO1 (1ul << 31)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PB10F_TCC0_WO4 42L /**< \brief TCC0 signal: WO4 on PB10 mux F */
-#define MUX_PB10F_TCC0_WO4 5L
-#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4)
-#define PORT_PB10F_TCC0_WO4 (1ul << 10)
-#define PIN_PB16F_TCC0_WO4 48L /**< \brief TCC0 signal: WO4 on PB16 mux F */
-#define MUX_PB16F_TCC0_WO4 5L
-#define PINMUX_PB16F_TCC0_WO4 ((PIN_PB16F_TCC0_WO4 << 16) | MUX_PB16F_TCC0_WO4)
-#define PORT_PB16F_TCC0_WO4 (1ul << 16)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PB11F_TCC0_WO5 43L /**< \brief TCC0 signal: WO5 on PB11 mux F */
-#define MUX_PB11F_TCC0_WO5 5L
-#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5)
-#define PORT_PB11F_TCC0_WO5 (1ul << 11)
-#define PIN_PB17F_TCC0_WO5 49L /**< \brief TCC0 signal: WO5 on PB17 mux F */
-#define MUX_PB17F_TCC0_WO5 5L
-#define PINMUX_PB17F_TCC0_WO5 ((PIN_PB17F_TCC0_WO5 << 16) | MUX_PB17F_TCC0_WO5)
-#define PORT_PB17F_TCC0_WO5 (1ul << 17)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA12F_TCC0_WO6 12L /**< \brief TCC0 signal: WO6 on PA12 mux F */
-#define MUX_PA12F_TCC0_WO6 5L
-#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6)
-#define PORT_PA12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA20F_TCC0_WO6 20L /**< \brief TCC0 signal: WO6 on PA20 mux F */
-#define MUX_PA20F_TCC0_WO6 5L
-#define PINMUX_PA20F_TCC0_WO6 ((PIN_PA20F_TCC0_WO6 << 16) | MUX_PA20F_TCC0_WO6)
-#define PORT_PA20F_TCC0_WO6 (1ul << 20)
-#define PIN_PB12F_TCC0_WO6 44L /**< \brief TCC0 signal: WO6 on PB12 mux F */
-#define MUX_PB12F_TCC0_WO6 5L
-#define PINMUX_PB12F_TCC0_WO6 ((PIN_PB12F_TCC0_WO6 << 16) | MUX_PB12F_TCC0_WO6)
-#define PORT_PB12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA13F_TCC0_WO7 13L /**< \brief TCC0 signal: WO7 on PA13 mux F */
-#define MUX_PA13F_TCC0_WO7 5L
-#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7)
-#define PORT_PA13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA21F_TCC0_WO7 21L /**< \brief TCC0 signal: WO7 on PA21 mux F */
-#define MUX_PA21F_TCC0_WO7 5L
-#define PINMUX_PA21F_TCC0_WO7 ((PIN_PA21F_TCC0_WO7 << 16) | MUX_PA21F_TCC0_WO7)
-#define PORT_PA21F_TCC0_WO7 (1ul << 21)
-#define PIN_PB13F_TCC0_WO7 45L /**< \brief TCC0 signal: WO7 on PB13 mux F */
-#define MUX_PB13F_TCC0_WO7 5L
-#define PINMUX_PB13F_TCC0_WO7 ((PIN_PB13F_TCC0_WO7 << 16) | MUX_PB13F_TCC0_WO7)
-#define PORT_PB13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PB30F_TCC1_WO2 62L /**< \brief TCC1 signal: WO2 on PB30 mux F */
-#define MUX_PB30F_TCC1_WO2 5L
-#define PINMUX_PB30F_TCC1_WO2 ((PIN_PB30F_TCC1_WO2 << 16) | MUX_PB30F_TCC1_WO2)
-#define PORT_PB30F_TCC1_WO2 (1ul << 30)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-#define PIN_PB31F_TCC1_WO3 63L /**< \brief TCC1 signal: WO3 on PB31 mux F */
-#define MUX_PB31F_TCC1_WO3 5L
-#define PINMUX_PB31F_TCC1_WO3 ((PIN_PB31F_TCC1_WO3 << 16) | MUX_PB31F_TCC1_WO3)
-#define PORT_PB31F_TCC1_WO3 (1ul << 31)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA12E_TCC2_WO0 12L /**< \brief TCC2 signal: WO0 on PA12 mux E */
-#define MUX_PA12E_TCC2_WO0 4L
-#define PINMUX_PA12E_TCC2_WO0 ((PIN_PA12E_TCC2_WO0 << 16) | MUX_PA12E_TCC2_WO0)
-#define PORT_PA12E_TCC2_WO0 (1ul << 12)
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA13E_TCC2_WO1 13L /**< \brief TCC2 signal: WO1 on PA13 mux E */
-#define MUX_PA13E_TCC2_WO1 4L
-#define PINMUX_PA13E_TCC2_WO1 ((PIN_PA13E_TCC2_WO1 << 16) | MUX_PA13E_TCC2_WO1)
-#define PORT_PA13E_TCC2_WO1 (1ul << 13)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PB08E_TC4_WO0 40L /**< \brief TC4 signal: WO0 on PB08 mux E */
-#define MUX_PB08E_TC4_WO0 4L
-#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0)
-#define PORT_PB08E_TC4_WO0 (1ul << 8)
-#define PIN_PB12E_TC4_WO0 44L /**< \brief TC4 signal: WO0 on PB12 mux E */
-#define MUX_PB12E_TC4_WO0 4L
-#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0)
-#define PORT_PB12E_TC4_WO0 (1ul << 12)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-#define PIN_PB09E_TC4_WO1 41L /**< \brief TC4 signal: WO1 on PB09 mux E */
-#define MUX_PB09E_TC4_WO1 4L
-#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1)
-#define PORT_PB09E_TC4_WO1 (1ul << 9)
-#define PIN_PB13E_TC4_WO1 45L /**< \brief TC4 signal: WO1 on PB13 mux E */
-#define MUX_PB13E_TC4_WO1 4L
-#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1)
-#define PORT_PB13E_TC4_WO1 (1ul << 13)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PB10E_TC5_WO0 42L /**< \brief TC5 signal: WO0 on PB10 mux E */
-#define MUX_PB10E_TC5_WO0 4L
-#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0)
-#define PORT_PB10E_TC5_WO0 (1ul << 10)
-#define PIN_PB14E_TC5_WO0 46L /**< \brief TC5 signal: WO0 on PB14 mux E */
-#define MUX_PB14E_TC5_WO0 4L
-#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0)
-#define PORT_PB14E_TC5_WO0 (1ul << 14)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-#define PIN_PB11E_TC5_WO1 43L /**< \brief TC5 signal: WO1 on PB11 mux E */
-#define MUX_PB11E_TC5_WO1 4L
-#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1)
-#define PORT_PB11E_TC5_WO1 (1ul << 11)
-#define PIN_PB15E_TC5_WO1 47L /**< \brief TC5 signal: WO1 on PB15 mux E */
-#define MUX_PB15E_TC5_WO1 4L
-#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1)
-#define PORT_PB15E_TC5_WO1 (1ul << 15)
-/* ========== PORT definition for TC6 peripheral ========== */
-#define PIN_PB02E_TC6_WO0 34L /**< \brief TC6 signal: WO0 on PB02 mux E */
-#define MUX_PB02E_TC6_WO0 4L
-#define PINMUX_PB02E_TC6_WO0 ((PIN_PB02E_TC6_WO0 << 16) | MUX_PB02E_TC6_WO0)
-#define PORT_PB02E_TC6_WO0 (1ul << 2)
-#define PIN_PB16E_TC6_WO0 48L /**< \brief TC6 signal: WO0 on PB16 mux E */
-#define MUX_PB16E_TC6_WO0 4L
-#define PINMUX_PB16E_TC6_WO0 ((PIN_PB16E_TC6_WO0 << 16) | MUX_PB16E_TC6_WO0)
-#define PORT_PB16E_TC6_WO0 (1ul << 16)
-#define PIN_PB03E_TC6_WO1 35L /**< \brief TC6 signal: WO1 on PB03 mux E */
-#define MUX_PB03E_TC6_WO1 4L
-#define PINMUX_PB03E_TC6_WO1 ((PIN_PB03E_TC6_WO1 << 16) | MUX_PB03E_TC6_WO1)
-#define PORT_PB03E_TC6_WO1 (1ul << 3)
-#define PIN_PB17E_TC6_WO1 49L /**< \brief TC6 signal: WO1 on PB17 mux E */
-#define MUX_PB17E_TC6_WO1 4L
-#define PINMUX_PB17E_TC6_WO1 ((PIN_PB17E_TC6_WO1 << 16) | MUX_PB17E_TC6_WO1)
-#define PORT_PB17E_TC6_WO1 (1ul << 17)
-/* ========== PORT definition for TC7 peripheral ========== */
-#define PIN_PA20E_TC7_WO0 20L /**< \brief TC7 signal: WO0 on PA20 mux E */
-#define MUX_PA20E_TC7_WO0 4L
-#define PINMUX_PA20E_TC7_WO0 ((PIN_PA20E_TC7_WO0 << 16) | MUX_PA20E_TC7_WO0)
-#define PORT_PA20E_TC7_WO0 (1ul << 20)
-#define PIN_PB00E_TC7_WO0 32L /**< \brief TC7 signal: WO0 on PB00 mux E */
-#define MUX_PB00E_TC7_WO0 4L
-#define PINMUX_PB00E_TC7_WO0 ((PIN_PB00E_TC7_WO0 << 16) | MUX_PB00E_TC7_WO0)
-#define PORT_PB00E_TC7_WO0 (1ul << 0)
-#define PIN_PB22E_TC7_WO0 54L /**< \brief TC7 signal: WO0 on PB22 mux E */
-#define MUX_PB22E_TC7_WO0 4L
-#define PINMUX_PB22E_TC7_WO0 ((PIN_PB22E_TC7_WO0 << 16) | MUX_PB22E_TC7_WO0)
-#define PORT_PB22E_TC7_WO0 (1ul << 22)
-#define PIN_PA21E_TC7_WO1 21L /**< \brief TC7 signal: WO1 on PA21 mux E */
-#define MUX_PA21E_TC7_WO1 4L
-#define PINMUX_PA21E_TC7_WO1 ((PIN_PA21E_TC7_WO1 << 16) | MUX_PA21E_TC7_WO1)
-#define PORT_PA21E_TC7_WO1 (1ul << 21)
-#define PIN_PB01E_TC7_WO1 33L /**< \brief TC7 signal: WO1 on PB01 mux E */
-#define MUX_PB01E_TC7_WO1 4L
-#define PINMUX_PB01E_TC7_WO1 ((PIN_PB01E_TC7_WO1 << 16) | MUX_PB01E_TC7_WO1)
-#define PORT_PB01E_TC7_WO1 (1ul << 1)
-#define PIN_PB23E_TC7_WO1 55L /**< \brief TC7 signal: WO1 on PB23 mux E */
-#define MUX_PB23E_TC7_WO1 4L
-#define PINMUX_PB23E_TC7_WO1 ((PIN_PB23E_TC7_WO1 << 16) | MUX_PB23E_TC7_WO1)
-#define PORT_PB23E_TC7_WO1 (1ul << 23)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PB08B_ADC_AIN2 40L /**< \brief ADC signal: AIN2 on PB08 mux B */
-#define MUX_PB08B_ADC_AIN2 1L
-#define PINMUX_PB08B_ADC_AIN2 ((PIN_PB08B_ADC_AIN2 << 16) | MUX_PB08B_ADC_AIN2)
-#define PORT_PB08B_ADC_AIN2 (1ul << 8)
-#define PIN_PB09B_ADC_AIN3 41L /**< \brief ADC signal: AIN3 on PB09 mux B */
-#define MUX_PB09B_ADC_AIN3 1L
-#define PINMUX_PB09B_ADC_AIN3 ((PIN_PB09B_ADC_AIN3 << 16) | MUX_PB09B_ADC_AIN3)
-#define PORT_PB09B_ADC_AIN3 (1ul << 9)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB00B_ADC_AIN8 32L /**< \brief ADC signal: AIN8 on PB00 mux B */
-#define MUX_PB00B_ADC_AIN8 1L
-#define PINMUX_PB00B_ADC_AIN8 ((PIN_PB00B_ADC_AIN8 << 16) | MUX_PB00B_ADC_AIN8)
-#define PORT_PB00B_ADC_AIN8 (1ul << 0)
-#define PIN_PB01B_ADC_AIN9 33L /**< \brief ADC signal: AIN9 on PB01 mux B */
-#define MUX_PB01B_ADC_AIN9 1L
-#define PINMUX_PB01B_ADC_AIN9 ((PIN_PB01B_ADC_AIN9 << 16) | MUX_PB01B_ADC_AIN9)
-#define PORT_PB01B_ADC_AIN9 (1ul << 1)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PB04B_ADC_AIN12 36L /**< \brief ADC signal: AIN12 on PB04 mux B */
-#define MUX_PB04B_ADC_AIN12 1L
-#define PINMUX_PB04B_ADC_AIN12 ((PIN_PB04B_ADC_AIN12 << 16) | MUX_PB04B_ADC_AIN12)
-#define PORT_PB04B_ADC_AIN12 (1ul << 4)
-#define PIN_PB05B_ADC_AIN13 37L /**< \brief ADC signal: AIN13 on PB05 mux B */
-#define MUX_PB05B_ADC_AIN13 1L
-#define PINMUX_PB05B_ADC_AIN13 ((PIN_PB05B_ADC_AIN13 << 16) | MUX_PB05B_ADC_AIN13)
-#define PORT_PB05B_ADC_AIN13 (1ul << 5)
-#define PIN_PB06B_ADC_AIN14 38L /**< \brief ADC signal: AIN14 on PB06 mux B */
-#define MUX_PB06B_ADC_AIN14 1L
-#define PINMUX_PB06B_ADC_AIN14 ((PIN_PB06B_ADC_AIN14 << 16) | MUX_PB06B_ADC_AIN14)
-#define PORT_PB06B_ADC_AIN14 (1ul << 6)
-#define PIN_PB07B_ADC_AIN15 39L /**< \brief ADC signal: AIN15 on PB07 mux B */
-#define MUX_PB07B_ADC_AIN15 1L
-#define PINMUX_PB07B_ADC_AIN15 ((PIN_PB07B_ADC_AIN15 << 16) | MUX_PB07B_ADC_AIN15)
-#define PORT_PB07B_ADC_AIN15 (1ul << 7)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA12H_AC_CMP0 12L /**< \brief AC signal: CMP0 on PA12 mux H */
-#define MUX_PA12H_AC_CMP0 7L
-#define PINMUX_PA12H_AC_CMP0 ((PIN_PA12H_AC_CMP0 << 16) | MUX_PA12H_AC_CMP0)
-#define PORT_PA12H_AC_CMP0 (1ul << 12)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA13H_AC_CMP1 13L /**< \brief AC signal: CMP1 on PA13 mux H */
-#define MUX_PA13H_AC_CMP1 7L
-#define PINMUX_PA13H_AC_CMP1 ((PIN_PA13H_AC_CMP1 << 16) | MUX_PA13H_AC_CMP1)
-#define PORT_PA13H_AC_CMP1 (1ul << 13)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA21G_I2S_FS0 21L /**< \brief I2S signal: FS0 on PA21 mux G */
-#define MUX_PA21G_I2S_FS0 6L
-#define PINMUX_PA21G_I2S_FS0 ((PIN_PA21G_I2S_FS0 << 16) | MUX_PA21G_I2S_FS0)
-#define PORT_PA21G_I2S_FS0 (1ul << 21)
-#define PIN_PB12G_I2S_FS1 44L /**< \brief I2S signal: FS1 on PB12 mux G */
-#define MUX_PB12G_I2S_FS1 6L
-#define PINMUX_PB12G_I2S_FS1 ((PIN_PB12G_I2S_FS1 << 16) | MUX_PB12G_I2S_FS1)
-#define PORT_PB12G_I2S_FS1 (1ul << 12)
-#define PIN_PB17G_I2S_MCK0 49L /**< \brief I2S signal: MCK0 on PB17 mux G */
-#define MUX_PB17G_I2S_MCK0 6L
-#define PINMUX_PB17G_I2S_MCK0 ((PIN_PB17G_I2S_MCK0 << 16) | MUX_PB17G_I2S_MCK0)
-#define PORT_PB17G_I2S_MCK0 (1ul << 17)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PB10G_I2S_MCK1 42L /**< \brief I2S signal: MCK1 on PB10 mux G */
-#define MUX_PB10G_I2S_MCK1 6L
-#define PINMUX_PB10G_I2S_MCK1 ((PIN_PB10G_I2S_MCK1 << 16) | MUX_PB10G_I2S_MCK1)
-#define PORT_PB10G_I2S_MCK1 (1ul << 10)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA20G_I2S_SCK0 20L /**< \brief I2S signal: SCK0 on PA20 mux G */
-#define MUX_PA20G_I2S_SCK0 6L
-#define PINMUX_PA20G_I2S_SCK0 ((PIN_PA20G_I2S_SCK0 << 16) | MUX_PA20G_I2S_SCK0)
-#define PORT_PA20G_I2S_SCK0 (1ul << 20)
-#define PIN_PB11G_I2S_SCK1 43L /**< \brief I2S signal: SCK1 on PB11 mux G */
-#define MUX_PB11G_I2S_SCK1 6L
-#define PINMUX_PB11G_I2S_SCK1 ((PIN_PB11G_I2S_SCK1 << 16) | MUX_PB11G_I2S_SCK1)
-#define PORT_PB11G_I2S_SCK1 (1ul << 11)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-#define PIN_PB16G_I2S_SD1 48L /**< \brief I2S signal: SD1 on PB16 mux G */
-#define MUX_PB16G_I2S_SD1 6L
-#define PINMUX_PB16G_I2S_SD1 ((PIN_PB16G_I2S_SD1 << 16) | MUX_PB16G_I2S_SD1)
-#define PORT_PB16G_I2S_SD1 (1ul << 16)
-
-#endif /* _SAMD21J15B_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j16a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j16a.h
deleted file mode 100644
index 8a31bdf..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j16a.h
+++ /dev/null
@@ -1,1182 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21J16A
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _SAMD21J16A_PIO_
-#define _SAMD21J16A_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA12 12 /**< \brief Pin Number for PA12 */
-#define PORT_PA12 (1ul << 12) /**< \brief PORT Mask for PA12 */
-#define PIN_PA13 13 /**< \brief Pin Number for PA13 */
-#define PORT_PA13 (1ul << 13) /**< \brief PORT Mask for PA13 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA20 20 /**< \brief Pin Number for PA20 */
-#define PORT_PA20 (1ul << 20) /**< \brief PORT Mask for PA20 */
-#define PIN_PA21 21 /**< \brief Pin Number for PA21 */
-#define PORT_PA21 (1ul << 21) /**< \brief PORT Mask for PA21 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB00 32 /**< \brief Pin Number for PB00 */
-#define PORT_PB00 (1ul << 0) /**< \brief PORT Mask for PB00 */
-#define PIN_PB01 33 /**< \brief Pin Number for PB01 */
-#define PORT_PB01 (1ul << 1) /**< \brief PORT Mask for PB01 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB04 36 /**< \brief Pin Number for PB04 */
-#define PORT_PB04 (1ul << 4) /**< \brief PORT Mask for PB04 */
-#define PIN_PB05 37 /**< \brief Pin Number for PB05 */
-#define PORT_PB05 (1ul << 5) /**< \brief PORT Mask for PB05 */
-#define PIN_PB06 38 /**< \brief Pin Number for PB06 */
-#define PORT_PB06 (1ul << 6) /**< \brief PORT Mask for PB06 */
-#define PIN_PB07 39 /**< \brief Pin Number for PB07 */
-#define PORT_PB07 (1ul << 7) /**< \brief PORT Mask for PB07 */
-#define PIN_PB08 40 /**< \brief Pin Number for PB08 */
-#define PORT_PB08 (1ul << 8) /**< \brief PORT Mask for PB08 */
-#define PIN_PB09 41 /**< \brief Pin Number for PB09 */
-#define PORT_PB09 (1ul << 9) /**< \brief PORT Mask for PB09 */
-#define PIN_PB10 42 /**< \brief Pin Number for PB10 */
-#define PORT_PB10 (1ul << 10) /**< \brief PORT Mask for PB10 */
-#define PIN_PB11 43 /**< \brief Pin Number for PB11 */
-#define PORT_PB11 (1ul << 11) /**< \brief PORT Mask for PB11 */
-#define PIN_PB12 44 /**< \brief Pin Number for PB12 */
-#define PORT_PB12 (1ul << 12) /**< \brief PORT Mask for PB12 */
-#define PIN_PB13 45 /**< \brief Pin Number for PB13 */
-#define PORT_PB13 (1ul << 13) /**< \brief PORT Mask for PB13 */
-#define PIN_PB14 46 /**< \brief Pin Number for PB14 */
-#define PORT_PB14 (1ul << 14) /**< \brief PORT Mask for PB14 */
-#define PIN_PB15 47 /**< \brief Pin Number for PB15 */
-#define PORT_PB15 (1ul << 15) /**< \brief PORT Mask for PB15 */
-#define PIN_PB16 48 /**< \brief Pin Number for PB16 */
-#define PORT_PB16 (1ul << 16) /**< \brief PORT Mask for PB16 */
-#define PIN_PB17 49 /**< \brief Pin Number for PB17 */
-#define PORT_PB17 (1ul << 17) /**< \brief PORT Mask for PB17 */
-#define PIN_PB22 54 /**< \brief Pin Number for PB22 */
-#define PORT_PB22 (1ul << 22) /**< \brief PORT Mask for PB22 */
-#define PIN_PB23 55 /**< \brief Pin Number for PB23 */
-#define PORT_PB23 (1ul << 23) /**< \brief PORT Mask for PB23 */
-#define PIN_PB30 62 /**< \brief Pin Number for PB30 */
-#define PORT_PB30 (1ul << 30) /**< \brief PORT Mask for PB30 */
-#define PIN_PB31 63 /**< \brief Pin Number for PB31 */
-#define PORT_PB31 (1ul << 31) /**< \brief PORT Mask for PB31 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PB14H_GCLK_IO0 46L /**< \brief GCLK signal: IO0 on PB14 mux H */
-#define MUX_PB14H_GCLK_IO0 7L
-#define PINMUX_PB14H_GCLK_IO0 ((PIN_PB14H_GCLK_IO0 << 16) | MUX_PB14H_GCLK_IO0)
-#define PORT_PB14H_GCLK_IO0 (1ul << 14)
-#define PIN_PB22H_GCLK_IO0 54L /**< \brief GCLK signal: IO0 on PB22 mux H */
-#define MUX_PB22H_GCLK_IO0 7L
-#define PINMUX_PB22H_GCLK_IO0 ((PIN_PB22H_GCLK_IO0 << 16) | MUX_PB22H_GCLK_IO0)
-#define PORT_PB22H_GCLK_IO0 (1ul << 22)
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PB15H_GCLK_IO1 47L /**< \brief GCLK signal: IO1 on PB15 mux H */
-#define MUX_PB15H_GCLK_IO1 7L
-#define PINMUX_PB15H_GCLK_IO1 ((PIN_PB15H_GCLK_IO1 << 16) | MUX_PB15H_GCLK_IO1)
-#define PORT_PB15H_GCLK_IO1 (1ul << 15)
-#define PIN_PB23H_GCLK_IO1 55L /**< \brief GCLK signal: IO1 on PB23 mux H */
-#define MUX_PB23H_GCLK_IO1 7L
-#define PINMUX_PB23H_GCLK_IO1 ((PIN_PB23H_GCLK_IO1 << 16) | MUX_PB23H_GCLK_IO1)
-#define PORT_PB23H_GCLK_IO1 (1ul << 23)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PB16H_GCLK_IO2 48L /**< \brief GCLK signal: IO2 on PB16 mux H */
-#define MUX_PB16H_GCLK_IO2 7L
-#define PINMUX_PB16H_GCLK_IO2 ((PIN_PB16H_GCLK_IO2 << 16) | MUX_PB16H_GCLK_IO2)
-#define PORT_PB16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PB17H_GCLK_IO3 49L /**< \brief GCLK signal: IO3 on PB17 mux H */
-#define MUX_PB17H_GCLK_IO3 7L
-#define PINMUX_PB17H_GCLK_IO3 ((PIN_PB17H_GCLK_IO3 << 16) | MUX_PB17H_GCLK_IO3)
-#define PORT_PB17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA20H_GCLK_IO4 20L /**< \brief GCLK signal: IO4 on PA20 mux H */
-#define MUX_PA20H_GCLK_IO4 7L
-#define PINMUX_PA20H_GCLK_IO4 ((PIN_PA20H_GCLK_IO4 << 16) | MUX_PA20H_GCLK_IO4)
-#define PORT_PA20H_GCLK_IO4 (1ul << 20)
-#define PIN_PB10H_GCLK_IO4 42L /**< \brief GCLK signal: IO4 on PB10 mux H */
-#define MUX_PB10H_GCLK_IO4 7L
-#define PINMUX_PB10H_GCLK_IO4 ((PIN_PB10H_GCLK_IO4 << 16) | MUX_PB10H_GCLK_IO4)
-#define PORT_PB10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA21H_GCLK_IO5 21L /**< \brief GCLK signal: IO5 on PA21 mux H */
-#define MUX_PA21H_GCLK_IO5 7L
-#define PINMUX_PA21H_GCLK_IO5 ((PIN_PA21H_GCLK_IO5 << 16) | MUX_PA21H_GCLK_IO5)
-#define PORT_PA21H_GCLK_IO5 (1ul << 21)
-#define PIN_PB11H_GCLK_IO5 43L /**< \brief GCLK signal: IO5 on PB11 mux H */
-#define MUX_PB11H_GCLK_IO5 7L
-#define PINMUX_PB11H_GCLK_IO5 ((PIN_PB11H_GCLK_IO5 << 16) | MUX_PB11H_GCLK_IO5)
-#define PORT_PB11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PB12H_GCLK_IO6 44L /**< \brief GCLK signal: IO6 on PB12 mux H */
-#define MUX_PB12H_GCLK_IO6 7L
-#define PINMUX_PB12H_GCLK_IO6 ((PIN_PB12H_GCLK_IO6 << 16) | MUX_PB12H_GCLK_IO6)
-#define PORT_PB12H_GCLK_IO6 (1ul << 12)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-#define PIN_PB13H_GCLK_IO7 45L /**< \brief GCLK signal: IO7 on PB13 mux H */
-#define MUX_PB13H_GCLK_IO7 7L
-#define PINMUX_PB13H_GCLK_IO7 ((PIN_PB13H_GCLK_IO7 << 16) | MUX_PB13H_GCLK_IO7)
-#define PORT_PB13H_GCLK_IO7 (1ul << 13)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PB00A_EIC_EXTINT0 32L /**< \brief EIC signal: EXTINT0 on PB00 mux A */
-#define MUX_PB00A_EIC_EXTINT0 0L
-#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0)
-#define PORT_PB00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PB16A_EIC_EXTINT0 48L /**< \brief EIC signal: EXTINT0 on PB16 mux A */
-#define MUX_PB16A_EIC_EXTINT0 0L
-#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0)
-#define PORT_PB16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PB01A_EIC_EXTINT1 33L /**< \brief EIC signal: EXTINT1 on PB01 mux A */
-#define MUX_PB01A_EIC_EXTINT1 0L
-#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1)
-#define PORT_PB01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PB17A_EIC_EXTINT1 49L /**< \brief EIC signal: EXTINT1 on PB17 mux A */
-#define MUX_PB17A_EIC_EXTINT1 0L
-#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1)
-#define PORT_PB17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA20A_EIC_EXTINT4 20L /**< \brief EIC signal: EXTINT4 on PA20 mux A */
-#define MUX_PA20A_EIC_EXTINT4 0L
-#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4)
-#define PORT_PA20A_EIC_EXTINT4 (1ul << 20)
-#define PIN_PB04A_EIC_EXTINT4 36L /**< \brief EIC signal: EXTINT4 on PB04 mux A */
-#define MUX_PB04A_EIC_EXTINT4 0L
-#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4)
-#define PORT_PB04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA21A_EIC_EXTINT5 21L /**< \brief EIC signal: EXTINT5 on PA21 mux A */
-#define MUX_PA21A_EIC_EXTINT5 0L
-#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5)
-#define PORT_PA21A_EIC_EXTINT5 (1ul << 21)
-#define PIN_PB05A_EIC_EXTINT5 37L /**< \brief EIC signal: EXTINT5 on PB05 mux A */
-#define MUX_PB05A_EIC_EXTINT5 0L
-#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5)
-#define PORT_PB05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PB06A_EIC_EXTINT6 38L /**< \brief EIC signal: EXTINT6 on PB06 mux A */
-#define MUX_PB06A_EIC_EXTINT6 0L
-#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6)
-#define PORT_PB06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PB22A_EIC_EXTINT6 54L /**< \brief EIC signal: EXTINT6 on PB22 mux A */
-#define MUX_PB22A_EIC_EXTINT6 0L
-#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6)
-#define PORT_PB22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PB07A_EIC_EXTINT7 39L /**< \brief EIC signal: EXTINT7 on PB07 mux A */
-#define MUX_PB07A_EIC_EXTINT7 0L
-#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7)
-#define PORT_PB07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PB23A_EIC_EXTINT7 55L /**< \brief EIC signal: EXTINT7 on PB23 mux A */
-#define MUX_PB23A_EIC_EXTINT7 0L
-#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7)
-#define PORT_PB23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PB08A_EIC_EXTINT8 40L /**< \brief EIC signal: EXTINT8 on PB08 mux A */
-#define MUX_PB08A_EIC_EXTINT8 0L
-#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8)
-#define PORT_PB08A_EIC_EXTINT8 (1ul << 8)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PB09A_EIC_EXTINT9 41L /**< \brief EIC signal: EXTINT9 on PB09 mux A */
-#define MUX_PB09A_EIC_EXTINT9 0L
-#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9)
-#define PORT_PB09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PB10A_EIC_EXTINT10 42L /**< \brief EIC signal: EXTINT10 on PB10 mux A */
-#define MUX_PB10A_EIC_EXTINT10 0L
-#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10)
-#define PORT_PB10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PB11A_EIC_EXTINT11 43L /**< \brief EIC signal: EXTINT11 on PB11 mux A */
-#define MUX_PB11A_EIC_EXTINT11 0L
-#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11)
-#define PORT_PB11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA12A_EIC_EXTINT12 12L /**< \brief EIC signal: EXTINT12 on PA12 mux A */
-#define MUX_PA12A_EIC_EXTINT12 0L
-#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12)
-#define PORT_PA12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PB12A_EIC_EXTINT12 44L /**< \brief EIC signal: EXTINT12 on PB12 mux A */
-#define MUX_PB12A_EIC_EXTINT12 0L
-#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12)
-#define PORT_PB12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA13A_EIC_EXTINT13 13L /**< \brief EIC signal: EXTINT13 on PA13 mux A */
-#define MUX_PA13A_EIC_EXTINT13 0L
-#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13)
-#define PORT_PA13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PB13A_EIC_EXTINT13 45L /**< \brief EIC signal: EXTINT13 on PB13 mux A */
-#define MUX_PB13A_EIC_EXTINT13 0L
-#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13)
-#define PORT_PB13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PB14A_EIC_EXTINT14 46L /**< \brief EIC signal: EXTINT14 on PB14 mux A */
-#define MUX_PB14A_EIC_EXTINT14 0L
-#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14)
-#define PORT_PB14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PB30A_EIC_EXTINT14 62L /**< \brief EIC signal: EXTINT14 on PB30 mux A */
-#define MUX_PB30A_EIC_EXTINT14 0L
-#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14)
-#define PORT_PB30A_EIC_EXTINT14 (1ul << 30)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PB15A_EIC_EXTINT15 47L /**< \brief EIC signal: EXTINT15 on PB15 mux A */
-#define MUX_PB15A_EIC_EXTINT15 0L
-#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15)
-#define PORT_PB15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PB31A_EIC_EXTINT15 63L /**< \brief EIC signal: EXTINT15 on PB31 mux A */
-#define MUX_PB31A_EIC_EXTINT15 0L
-#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15)
-#define PORT_PB31A_EIC_EXTINT15 (1ul << 31)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA12C_SERCOM2_PAD0 12L /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */
-#define MUX_PA12C_SERCOM2_PAD0 2L
-#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0)
-#define PORT_PA12C_SERCOM2_PAD0 (1ul << 12)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA13C_SERCOM2_PAD1 13L /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */
-#define MUX_PA13C_SERCOM2_PAD1 2L
-#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1)
-#define PORT_PA13C_SERCOM2_PAD1 (1ul << 13)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA20D_SERCOM3_PAD2 20L /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */
-#define MUX_PA20D_SERCOM3_PAD2 3L
-#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2)
-#define PORT_PA20D_SERCOM3_PAD2 (1ul << 20)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA21D_SERCOM3_PAD3 21L /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */
-#define MUX_PA21D_SERCOM3_PAD3 3L
-#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3)
-#define PORT_PA21D_SERCOM3_PAD3 (1ul << 21)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for SERCOM4 peripheral ========== */
-#define PIN_PA12D_SERCOM4_PAD0 12L /**< \brief SERCOM4 signal: PAD0 on PA12 mux D */
-#define MUX_PA12D_SERCOM4_PAD0 3L
-#define PINMUX_PA12D_SERCOM4_PAD0 ((PIN_PA12D_SERCOM4_PAD0 << 16) | MUX_PA12D_SERCOM4_PAD0)
-#define PORT_PA12D_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PB08D_SERCOM4_PAD0 40L /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */
-#define MUX_PB08D_SERCOM4_PAD0 3L
-#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0)
-#define PORT_PB08D_SERCOM4_PAD0 (1ul << 8)
-#define PIN_PB12C_SERCOM4_PAD0 44L /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */
-#define MUX_PB12C_SERCOM4_PAD0 2L
-#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0)
-#define PORT_PB12C_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PA13D_SERCOM4_PAD1 13L /**< \brief SERCOM4 signal: PAD1 on PA13 mux D */
-#define MUX_PA13D_SERCOM4_PAD1 3L
-#define PINMUX_PA13D_SERCOM4_PAD1 ((PIN_PA13D_SERCOM4_PAD1 << 16) | MUX_PA13D_SERCOM4_PAD1)
-#define PORT_PA13D_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PB09D_SERCOM4_PAD1 41L /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */
-#define MUX_PB09D_SERCOM4_PAD1 3L
-#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1)
-#define PORT_PB09D_SERCOM4_PAD1 (1ul << 9)
-#define PIN_PB13C_SERCOM4_PAD1 45L /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */
-#define MUX_PB13C_SERCOM4_PAD1 2L
-#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1)
-#define PORT_PB13C_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PA14D_SERCOM4_PAD2 14L /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */
-#define MUX_PA14D_SERCOM4_PAD2 3L
-#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2)
-#define PORT_PA14D_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PB10D_SERCOM4_PAD2 42L /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */
-#define MUX_PB10D_SERCOM4_PAD2 3L
-#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2)
-#define PORT_PB10D_SERCOM4_PAD2 (1ul << 10)
-#define PIN_PB14C_SERCOM4_PAD2 46L /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */
-#define MUX_PB14C_SERCOM4_PAD2 2L
-#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2)
-#define PORT_PB14C_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PA15D_SERCOM4_PAD3 15L /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */
-#define MUX_PA15D_SERCOM4_PAD3 3L
-#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3)
-#define PORT_PA15D_SERCOM4_PAD3 (1ul << 15)
-#define PIN_PB11D_SERCOM4_PAD3 43L /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */
-#define MUX_PB11D_SERCOM4_PAD3 3L
-#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3)
-#define PORT_PB11D_SERCOM4_PAD3 (1ul << 11)
-#define PIN_PB15C_SERCOM4_PAD3 47L /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */
-#define MUX_PB15C_SERCOM4_PAD3 2L
-#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3)
-#define PORT_PB15C_SERCOM4_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM5 peripheral ========== */
-#define PIN_PB16C_SERCOM5_PAD0 48L /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */
-#define MUX_PB16C_SERCOM5_PAD0 2L
-#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0)
-#define PORT_PB16C_SERCOM5_PAD0 (1ul << 16)
-#define PIN_PA22D_SERCOM5_PAD0 22L /**< \brief SERCOM5 signal: PAD0 on PA22 mux D */
-#define MUX_PA22D_SERCOM5_PAD0 3L
-#define PINMUX_PA22D_SERCOM5_PAD0 ((PIN_PA22D_SERCOM5_PAD0 << 16) | MUX_PA22D_SERCOM5_PAD0)
-#define PORT_PA22D_SERCOM5_PAD0 (1ul << 22)
-#define PIN_PB02D_SERCOM5_PAD0 34L /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */
-#define MUX_PB02D_SERCOM5_PAD0 3L
-#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0)
-#define PORT_PB02D_SERCOM5_PAD0 (1ul << 2)
-#define PIN_PB30D_SERCOM5_PAD0 62L /**< \brief SERCOM5 signal: PAD0 on PB30 mux D */
-#define MUX_PB30D_SERCOM5_PAD0 3L
-#define PINMUX_PB30D_SERCOM5_PAD0 ((PIN_PB30D_SERCOM5_PAD0 << 16) | MUX_PB30D_SERCOM5_PAD0)
-#define PORT_PB30D_SERCOM5_PAD0 (1ul << 30)
-#define PIN_PB17C_SERCOM5_PAD1 49L /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */
-#define MUX_PB17C_SERCOM5_PAD1 2L
-#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1)
-#define PORT_PB17C_SERCOM5_PAD1 (1ul << 17)
-#define PIN_PA23D_SERCOM5_PAD1 23L /**< \brief SERCOM5 signal: PAD1 on PA23 mux D */
-#define MUX_PA23D_SERCOM5_PAD1 3L
-#define PINMUX_PA23D_SERCOM5_PAD1 ((PIN_PA23D_SERCOM5_PAD1 << 16) | MUX_PA23D_SERCOM5_PAD1)
-#define PORT_PA23D_SERCOM5_PAD1 (1ul << 23)
-#define PIN_PB03D_SERCOM5_PAD1 35L /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */
-#define MUX_PB03D_SERCOM5_PAD1 3L
-#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1)
-#define PORT_PB03D_SERCOM5_PAD1 (1ul << 3)
-#define PIN_PB31D_SERCOM5_PAD1 63L /**< \brief SERCOM5 signal: PAD1 on PB31 mux D */
-#define MUX_PB31D_SERCOM5_PAD1 3L
-#define PINMUX_PB31D_SERCOM5_PAD1 ((PIN_PB31D_SERCOM5_PAD1 << 16) | MUX_PB31D_SERCOM5_PAD1)
-#define PORT_PB31D_SERCOM5_PAD1 (1ul << 31)
-#define PIN_PA24D_SERCOM5_PAD2 24L /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */
-#define MUX_PA24D_SERCOM5_PAD2 3L
-#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2)
-#define PORT_PA24D_SERCOM5_PAD2 (1ul << 24)
-#define PIN_PB00D_SERCOM5_PAD2 32L /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */
-#define MUX_PB00D_SERCOM5_PAD2 3L
-#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2)
-#define PORT_PB00D_SERCOM5_PAD2 (1ul << 0)
-#define PIN_PB22D_SERCOM5_PAD2 54L /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */
-#define MUX_PB22D_SERCOM5_PAD2 3L
-#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2)
-#define PORT_PB22D_SERCOM5_PAD2 (1ul << 22)
-#define PIN_PA20C_SERCOM5_PAD2 20L /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */
-#define MUX_PA20C_SERCOM5_PAD2 2L
-#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2)
-#define PORT_PA20C_SERCOM5_PAD2 (1ul << 20)
-#define PIN_PA25D_SERCOM5_PAD3 25L /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */
-#define MUX_PA25D_SERCOM5_PAD3 3L
-#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3)
-#define PORT_PA25D_SERCOM5_PAD3 (1ul << 25)
-#define PIN_PB01D_SERCOM5_PAD3 33L /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */
-#define MUX_PB01D_SERCOM5_PAD3 3L
-#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3)
-#define PORT_PB01D_SERCOM5_PAD3 (1ul << 1)
-#define PIN_PB23D_SERCOM5_PAD3 55L /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */
-#define MUX_PB23D_SERCOM5_PAD3 3L
-#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3)
-#define PORT_PB23D_SERCOM5_PAD3 (1ul << 23)
-#define PIN_PA21C_SERCOM5_PAD3 21L /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */
-#define MUX_PA21C_SERCOM5_PAD3 2L
-#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3)
-#define PORT_PA21C_SERCOM5_PAD3 (1ul << 21)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PB30E_TCC0_WO0 62L /**< \brief TCC0 signal: WO0 on PB30 mux E */
-#define MUX_PB30E_TCC0_WO0 4L
-#define PINMUX_PB30E_TCC0_WO0 ((PIN_PB30E_TCC0_WO0 << 16) | MUX_PB30E_TCC0_WO0)
-#define PORT_PB30E_TCC0_WO0 (1ul << 30)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PB31E_TCC0_WO1 63L /**< \brief TCC0 signal: WO1 on PB31 mux E */
-#define MUX_PB31E_TCC0_WO1 4L
-#define PINMUX_PB31E_TCC0_WO1 ((PIN_PB31E_TCC0_WO1 << 16) | MUX_PB31E_TCC0_WO1)
-#define PORT_PB31E_TCC0_WO1 (1ul << 31)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PB10F_TCC0_WO4 42L /**< \brief TCC0 signal: WO4 on PB10 mux F */
-#define MUX_PB10F_TCC0_WO4 5L
-#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4)
-#define PORT_PB10F_TCC0_WO4 (1ul << 10)
-#define PIN_PB16F_TCC0_WO4 48L /**< \brief TCC0 signal: WO4 on PB16 mux F */
-#define MUX_PB16F_TCC0_WO4 5L
-#define PINMUX_PB16F_TCC0_WO4 ((PIN_PB16F_TCC0_WO4 << 16) | MUX_PB16F_TCC0_WO4)
-#define PORT_PB16F_TCC0_WO4 (1ul << 16)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PB11F_TCC0_WO5 43L /**< \brief TCC0 signal: WO5 on PB11 mux F */
-#define MUX_PB11F_TCC0_WO5 5L
-#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5)
-#define PORT_PB11F_TCC0_WO5 (1ul << 11)
-#define PIN_PB17F_TCC0_WO5 49L /**< \brief TCC0 signal: WO5 on PB17 mux F */
-#define MUX_PB17F_TCC0_WO5 5L
-#define PINMUX_PB17F_TCC0_WO5 ((PIN_PB17F_TCC0_WO5 << 16) | MUX_PB17F_TCC0_WO5)
-#define PORT_PB17F_TCC0_WO5 (1ul << 17)
-#define PIN_PA12F_TCC0_WO6 12L /**< \brief TCC0 signal: WO6 on PA12 mux F */
-#define MUX_PA12F_TCC0_WO6 5L
-#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6)
-#define PORT_PA12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA20F_TCC0_WO6 20L /**< \brief TCC0 signal: WO6 on PA20 mux F */
-#define MUX_PA20F_TCC0_WO6 5L
-#define PINMUX_PA20F_TCC0_WO6 ((PIN_PA20F_TCC0_WO6 << 16) | MUX_PA20F_TCC0_WO6)
-#define PORT_PA20F_TCC0_WO6 (1ul << 20)
-#define PIN_PB12F_TCC0_WO6 44L /**< \brief TCC0 signal: WO6 on PB12 mux F */
-#define MUX_PB12F_TCC0_WO6 5L
-#define PINMUX_PB12F_TCC0_WO6 ((PIN_PB12F_TCC0_WO6 << 16) | MUX_PB12F_TCC0_WO6)
-#define PORT_PB12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA13F_TCC0_WO7 13L /**< \brief TCC0 signal: WO7 on PA13 mux F */
-#define MUX_PA13F_TCC0_WO7 5L
-#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7)
-#define PORT_PA13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA21F_TCC0_WO7 21L /**< \brief TCC0 signal: WO7 on PA21 mux F */
-#define MUX_PA21F_TCC0_WO7 5L
-#define PINMUX_PA21F_TCC0_WO7 ((PIN_PA21F_TCC0_WO7 << 16) | MUX_PA21F_TCC0_WO7)
-#define PORT_PA21F_TCC0_WO7 (1ul << 21)
-#define PIN_PB13F_TCC0_WO7 45L /**< \brief TCC0 signal: WO7 on PB13 mux F */
-#define MUX_PB13F_TCC0_WO7 5L
-#define PINMUX_PB13F_TCC0_WO7 ((PIN_PB13F_TCC0_WO7 << 16) | MUX_PB13F_TCC0_WO7)
-#define PORT_PB13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PB30F_TCC1_WO2 62L /**< \brief TCC1 signal: WO2 on PB30 mux F */
-#define MUX_PB30F_TCC1_WO2 5L
-#define PINMUX_PB30F_TCC1_WO2 ((PIN_PB30F_TCC1_WO2 << 16) | MUX_PB30F_TCC1_WO2)
-#define PORT_PB30F_TCC1_WO2 (1ul << 30)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-#define PIN_PB31F_TCC1_WO3 63L /**< \brief TCC1 signal: WO3 on PB31 mux F */
-#define MUX_PB31F_TCC1_WO3 5L
-#define PINMUX_PB31F_TCC1_WO3 ((PIN_PB31F_TCC1_WO3 << 16) | MUX_PB31F_TCC1_WO3)
-#define PORT_PB31F_TCC1_WO3 (1ul << 31)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA12E_TCC2_WO0 12L /**< \brief TCC2 signal: WO0 on PA12 mux E */
-#define MUX_PA12E_TCC2_WO0 4L
-#define PINMUX_PA12E_TCC2_WO0 ((PIN_PA12E_TCC2_WO0 << 16) | MUX_PA12E_TCC2_WO0)
-#define PORT_PA12E_TCC2_WO0 (1ul << 12)
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA13E_TCC2_WO1 13L /**< \brief TCC2 signal: WO1 on PA13 mux E */
-#define MUX_PA13E_TCC2_WO1 4L
-#define PINMUX_PA13E_TCC2_WO1 ((PIN_PA13E_TCC2_WO1 << 16) | MUX_PA13E_TCC2_WO1)
-#define PORT_PA13E_TCC2_WO1 (1ul << 13)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PB08E_TC4_WO0 40L /**< \brief TC4 signal: WO0 on PB08 mux E */
-#define MUX_PB08E_TC4_WO0 4L
-#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0)
-#define PORT_PB08E_TC4_WO0 (1ul << 8)
-#define PIN_PB12E_TC4_WO0 44L /**< \brief TC4 signal: WO0 on PB12 mux E */
-#define MUX_PB12E_TC4_WO0 4L
-#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0)
-#define PORT_PB12E_TC4_WO0 (1ul << 12)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-#define PIN_PB09E_TC4_WO1 41L /**< \brief TC4 signal: WO1 on PB09 mux E */
-#define MUX_PB09E_TC4_WO1 4L
-#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1)
-#define PORT_PB09E_TC4_WO1 (1ul << 9)
-#define PIN_PB13E_TC4_WO1 45L /**< \brief TC4 signal: WO1 on PB13 mux E */
-#define MUX_PB13E_TC4_WO1 4L
-#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1)
-#define PORT_PB13E_TC4_WO1 (1ul << 13)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PB10E_TC5_WO0 42L /**< \brief TC5 signal: WO0 on PB10 mux E */
-#define MUX_PB10E_TC5_WO0 4L
-#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0)
-#define PORT_PB10E_TC5_WO0 (1ul << 10)
-#define PIN_PB14E_TC5_WO0 46L /**< \brief TC5 signal: WO0 on PB14 mux E */
-#define MUX_PB14E_TC5_WO0 4L
-#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0)
-#define PORT_PB14E_TC5_WO0 (1ul << 14)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-#define PIN_PB11E_TC5_WO1 43L /**< \brief TC5 signal: WO1 on PB11 mux E */
-#define MUX_PB11E_TC5_WO1 4L
-#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1)
-#define PORT_PB11E_TC5_WO1 (1ul << 11)
-#define PIN_PB15E_TC5_WO1 47L /**< \brief TC5 signal: WO1 on PB15 mux E */
-#define MUX_PB15E_TC5_WO1 4L
-#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1)
-#define PORT_PB15E_TC5_WO1 (1ul << 15)
-/* ========== PORT definition for TC6 peripheral ========== */
-#define PIN_PB02E_TC6_WO0 34L /**< \brief TC6 signal: WO0 on PB02 mux E */
-#define MUX_PB02E_TC6_WO0 4L
-#define PINMUX_PB02E_TC6_WO0 ((PIN_PB02E_TC6_WO0 << 16) | MUX_PB02E_TC6_WO0)
-#define PORT_PB02E_TC6_WO0 (1ul << 2)
-#define PIN_PB16E_TC6_WO0 48L /**< \brief TC6 signal: WO0 on PB16 mux E */
-#define MUX_PB16E_TC6_WO0 4L
-#define PINMUX_PB16E_TC6_WO0 ((PIN_PB16E_TC6_WO0 << 16) | MUX_PB16E_TC6_WO0)
-#define PORT_PB16E_TC6_WO0 (1ul << 16)
-#define PIN_PB03E_TC6_WO1 35L /**< \brief TC6 signal: WO1 on PB03 mux E */
-#define MUX_PB03E_TC6_WO1 4L
-#define PINMUX_PB03E_TC6_WO1 ((PIN_PB03E_TC6_WO1 << 16) | MUX_PB03E_TC6_WO1)
-#define PORT_PB03E_TC6_WO1 (1ul << 3)
-#define PIN_PB17E_TC6_WO1 49L /**< \brief TC6 signal: WO1 on PB17 mux E */
-#define MUX_PB17E_TC6_WO1 4L
-#define PINMUX_PB17E_TC6_WO1 ((PIN_PB17E_TC6_WO1 << 16) | MUX_PB17E_TC6_WO1)
-#define PORT_PB17E_TC6_WO1 (1ul << 17)
-/* ========== PORT definition for TC7 peripheral ========== */
-#define PIN_PA20E_TC7_WO0 20L /**< \brief TC7 signal: WO0 on PA20 mux E */
-#define MUX_PA20E_TC7_WO0 4L
-#define PINMUX_PA20E_TC7_WO0 ((PIN_PA20E_TC7_WO0 << 16) | MUX_PA20E_TC7_WO0)
-#define PORT_PA20E_TC7_WO0 (1ul << 20)
-#define PIN_PB00E_TC7_WO0 32L /**< \brief TC7 signal: WO0 on PB00 mux E */
-#define MUX_PB00E_TC7_WO0 4L
-#define PINMUX_PB00E_TC7_WO0 ((PIN_PB00E_TC7_WO0 << 16) | MUX_PB00E_TC7_WO0)
-#define PORT_PB00E_TC7_WO0 (1ul << 0)
-#define PIN_PB22E_TC7_WO0 54L /**< \brief TC7 signal: WO0 on PB22 mux E */
-#define MUX_PB22E_TC7_WO0 4L
-#define PINMUX_PB22E_TC7_WO0 ((PIN_PB22E_TC7_WO0 << 16) | MUX_PB22E_TC7_WO0)
-#define PORT_PB22E_TC7_WO0 (1ul << 22)
-#define PIN_PA21E_TC7_WO1 21L /**< \brief TC7 signal: WO1 on PA21 mux E */
-#define MUX_PA21E_TC7_WO1 4L
-#define PINMUX_PA21E_TC7_WO1 ((PIN_PA21E_TC7_WO1 << 16) | MUX_PA21E_TC7_WO1)
-#define PORT_PA21E_TC7_WO1 (1ul << 21)
-#define PIN_PB01E_TC7_WO1 33L /**< \brief TC7 signal: WO1 on PB01 mux E */
-#define MUX_PB01E_TC7_WO1 4L
-#define PINMUX_PB01E_TC7_WO1 ((PIN_PB01E_TC7_WO1 << 16) | MUX_PB01E_TC7_WO1)
-#define PORT_PB01E_TC7_WO1 (1ul << 1)
-#define PIN_PB23E_TC7_WO1 55L /**< \brief TC7 signal: WO1 on PB23 mux E */
-#define MUX_PB23E_TC7_WO1 4L
-#define PINMUX_PB23E_TC7_WO1 ((PIN_PB23E_TC7_WO1 << 16) | MUX_PB23E_TC7_WO1)
-#define PORT_PB23E_TC7_WO1 (1ul << 23)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PB08B_ADC_AIN2 40L /**< \brief ADC signal: AIN2 on PB08 mux B */
-#define MUX_PB08B_ADC_AIN2 1L
-#define PINMUX_PB08B_ADC_AIN2 ((PIN_PB08B_ADC_AIN2 << 16) | MUX_PB08B_ADC_AIN2)
-#define PORT_PB08B_ADC_AIN2 (1ul << 8)
-#define PIN_PB09B_ADC_AIN3 41L /**< \brief ADC signal: AIN3 on PB09 mux B */
-#define MUX_PB09B_ADC_AIN3 1L
-#define PINMUX_PB09B_ADC_AIN3 ((PIN_PB09B_ADC_AIN3 << 16) | MUX_PB09B_ADC_AIN3)
-#define PORT_PB09B_ADC_AIN3 (1ul << 9)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB00B_ADC_AIN8 32L /**< \brief ADC signal: AIN8 on PB00 mux B */
-#define MUX_PB00B_ADC_AIN8 1L
-#define PINMUX_PB00B_ADC_AIN8 ((PIN_PB00B_ADC_AIN8 << 16) | MUX_PB00B_ADC_AIN8)
-#define PORT_PB00B_ADC_AIN8 (1ul << 0)
-#define PIN_PB01B_ADC_AIN9 33L /**< \brief ADC signal: AIN9 on PB01 mux B */
-#define MUX_PB01B_ADC_AIN9 1L
-#define PINMUX_PB01B_ADC_AIN9 ((PIN_PB01B_ADC_AIN9 << 16) | MUX_PB01B_ADC_AIN9)
-#define PORT_PB01B_ADC_AIN9 (1ul << 1)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PB04B_ADC_AIN12 36L /**< \brief ADC signal: AIN12 on PB04 mux B */
-#define MUX_PB04B_ADC_AIN12 1L
-#define PINMUX_PB04B_ADC_AIN12 ((PIN_PB04B_ADC_AIN12 << 16) | MUX_PB04B_ADC_AIN12)
-#define PORT_PB04B_ADC_AIN12 (1ul << 4)
-#define PIN_PB05B_ADC_AIN13 37L /**< \brief ADC signal: AIN13 on PB05 mux B */
-#define MUX_PB05B_ADC_AIN13 1L
-#define PINMUX_PB05B_ADC_AIN13 ((PIN_PB05B_ADC_AIN13 << 16) | MUX_PB05B_ADC_AIN13)
-#define PORT_PB05B_ADC_AIN13 (1ul << 5)
-#define PIN_PB06B_ADC_AIN14 38L /**< \brief ADC signal: AIN14 on PB06 mux B */
-#define MUX_PB06B_ADC_AIN14 1L
-#define PINMUX_PB06B_ADC_AIN14 ((PIN_PB06B_ADC_AIN14 << 16) | MUX_PB06B_ADC_AIN14)
-#define PORT_PB06B_ADC_AIN14 (1ul << 6)
-#define PIN_PB07B_ADC_AIN15 39L /**< \brief ADC signal: AIN15 on PB07 mux B */
-#define MUX_PB07B_ADC_AIN15 1L
-#define PINMUX_PB07B_ADC_AIN15 ((PIN_PB07B_ADC_AIN15 << 16) | MUX_PB07B_ADC_AIN15)
-#define PORT_PB07B_ADC_AIN15 (1ul << 7)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA12H_AC_CMP0 12L /**< \brief AC signal: CMP0 on PA12 mux H */
-#define MUX_PA12H_AC_CMP0 7L
-#define PINMUX_PA12H_AC_CMP0 ((PIN_PA12H_AC_CMP0 << 16) | MUX_PA12H_AC_CMP0)
-#define PORT_PA12H_AC_CMP0 (1ul << 12)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA13H_AC_CMP1 13L /**< \brief AC signal: CMP1 on PA13 mux H */
-#define MUX_PA13H_AC_CMP1 7L
-#define PINMUX_PA13H_AC_CMP1 ((PIN_PA13H_AC_CMP1 << 16) | MUX_PA13H_AC_CMP1)
-#define PORT_PA13H_AC_CMP1 (1ul << 13)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA21G_I2S_FS0 21L /**< \brief I2S signal: FS0 on PA21 mux G */
-#define MUX_PA21G_I2S_FS0 6L
-#define PINMUX_PA21G_I2S_FS0 ((PIN_PA21G_I2S_FS0 << 16) | MUX_PA21G_I2S_FS0)
-#define PORT_PA21G_I2S_FS0 (1ul << 21)
-#define PIN_PB12G_I2S_FS1 44L /**< \brief I2S signal: FS1 on PB12 mux G */
-#define MUX_PB12G_I2S_FS1 6L
-#define PINMUX_PB12G_I2S_FS1 ((PIN_PB12G_I2S_FS1 << 16) | MUX_PB12G_I2S_FS1)
-#define PORT_PB12G_I2S_FS1 (1ul << 12)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PB17G_I2S_MCK0 49L /**< \brief I2S signal: MCK0 on PB17 mux G */
-#define MUX_PB17G_I2S_MCK0 6L
-#define PINMUX_PB17G_I2S_MCK0 ((PIN_PB17G_I2S_MCK0 << 16) | MUX_PB17G_I2S_MCK0)
-#define PORT_PB17G_I2S_MCK0 (1ul << 17)
-#define PIN_PB10G_I2S_MCK1 42L /**< \brief I2S signal: MCK1 on PB10 mux G */
-#define MUX_PB10G_I2S_MCK1 6L
-#define PINMUX_PB10G_I2S_MCK1 ((PIN_PB10G_I2S_MCK1 << 16) | MUX_PB10G_I2S_MCK1)
-#define PORT_PB10G_I2S_MCK1 (1ul << 10)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA20G_I2S_SCK0 20L /**< \brief I2S signal: SCK0 on PA20 mux G */
-#define MUX_PA20G_I2S_SCK0 6L
-#define PINMUX_PA20G_I2S_SCK0 ((PIN_PA20G_I2S_SCK0 << 16) | MUX_PA20G_I2S_SCK0)
-#define PORT_PA20G_I2S_SCK0 (1ul << 20)
-#define PIN_PB11G_I2S_SCK1 43L /**< \brief I2S signal: SCK1 on PB11 mux G */
-#define MUX_PB11G_I2S_SCK1 6L
-#define PINMUX_PB11G_I2S_SCK1 ((PIN_PB11G_I2S_SCK1 << 16) | MUX_PB11G_I2S_SCK1)
-#define PORT_PB11G_I2S_SCK1 (1ul << 11)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-#define PIN_PB16G_I2S_SD1 48L /**< \brief I2S signal: SD1 on PB16 mux G */
-#define MUX_PB16G_I2S_SD1 6L
-#define PINMUX_PB16G_I2S_SD1 ((PIN_PB16G_I2S_SD1 << 16) | MUX_PB16G_I2S_SD1)
-#define PORT_PB16G_I2S_SD1 (1ul << 16)
-
-#endif /* _SAMD21J16A_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j16b.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j16b.h
deleted file mode 100644
index ce6cbf8..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j16b.h
+++ /dev/null
@@ -1,1179 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21J16B
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21J16B_PIO_
-#define _SAMD21J16B_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA12 12 /**< \brief Pin Number for PA12 */
-#define PORT_PA12 (1ul << 12) /**< \brief PORT Mask for PA12 */
-#define PIN_PA13 13 /**< \brief Pin Number for PA13 */
-#define PORT_PA13 (1ul << 13) /**< \brief PORT Mask for PA13 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA20 20 /**< \brief Pin Number for PA20 */
-#define PORT_PA20 (1ul << 20) /**< \brief PORT Mask for PA20 */
-#define PIN_PA21 21 /**< \brief Pin Number for PA21 */
-#define PORT_PA21 (1ul << 21) /**< \brief PORT Mask for PA21 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB00 32 /**< \brief Pin Number for PB00 */
-#define PORT_PB00 (1ul << 0) /**< \brief PORT Mask for PB00 */
-#define PIN_PB01 33 /**< \brief Pin Number for PB01 */
-#define PORT_PB01 (1ul << 1) /**< \brief PORT Mask for PB01 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB04 36 /**< \brief Pin Number for PB04 */
-#define PORT_PB04 (1ul << 4) /**< \brief PORT Mask for PB04 */
-#define PIN_PB05 37 /**< \brief Pin Number for PB05 */
-#define PORT_PB05 (1ul << 5) /**< \brief PORT Mask for PB05 */
-#define PIN_PB06 38 /**< \brief Pin Number for PB06 */
-#define PORT_PB06 (1ul << 6) /**< \brief PORT Mask for PB06 */
-#define PIN_PB07 39 /**< \brief Pin Number for PB07 */
-#define PORT_PB07 (1ul << 7) /**< \brief PORT Mask for PB07 */
-#define PIN_PB08 40 /**< \brief Pin Number for PB08 */
-#define PORT_PB08 (1ul << 8) /**< \brief PORT Mask for PB08 */
-#define PIN_PB09 41 /**< \brief Pin Number for PB09 */
-#define PORT_PB09 (1ul << 9) /**< \brief PORT Mask for PB09 */
-#define PIN_PB10 42 /**< \brief Pin Number for PB10 */
-#define PORT_PB10 (1ul << 10) /**< \brief PORT Mask for PB10 */
-#define PIN_PB11 43 /**< \brief Pin Number for PB11 */
-#define PORT_PB11 (1ul << 11) /**< \brief PORT Mask for PB11 */
-#define PIN_PB12 44 /**< \brief Pin Number for PB12 */
-#define PORT_PB12 (1ul << 12) /**< \brief PORT Mask for PB12 */
-#define PIN_PB13 45 /**< \brief Pin Number for PB13 */
-#define PORT_PB13 (1ul << 13) /**< \brief PORT Mask for PB13 */
-#define PIN_PB14 46 /**< \brief Pin Number for PB14 */
-#define PORT_PB14 (1ul << 14) /**< \brief PORT Mask for PB14 */
-#define PIN_PB15 47 /**< \brief Pin Number for PB15 */
-#define PORT_PB15 (1ul << 15) /**< \brief PORT Mask for PB15 */
-#define PIN_PB16 48 /**< \brief Pin Number for PB16 */
-#define PORT_PB16 (1ul << 16) /**< \brief PORT Mask for PB16 */
-#define PIN_PB17 49 /**< \brief Pin Number for PB17 */
-#define PORT_PB17 (1ul << 17) /**< \brief PORT Mask for PB17 */
-#define PIN_PB22 54 /**< \brief Pin Number for PB22 */
-#define PORT_PB22 (1ul << 22) /**< \brief PORT Mask for PB22 */
-#define PIN_PB23 55 /**< \brief Pin Number for PB23 */
-#define PORT_PB23 (1ul << 23) /**< \brief PORT Mask for PB23 */
-#define PIN_PB30 62 /**< \brief Pin Number for PB30 */
-#define PORT_PB30 (1ul << 30) /**< \brief PORT Mask for PB30 */
-#define PIN_PB31 63 /**< \brief Pin Number for PB31 */
-#define PORT_PB31 (1ul << 31) /**< \brief PORT Mask for PB31 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PB14H_GCLK_IO0 46L /**< \brief GCLK signal: IO0 on PB14 mux H */
-#define MUX_PB14H_GCLK_IO0 7L
-#define PINMUX_PB14H_GCLK_IO0 ((PIN_PB14H_GCLK_IO0 << 16) | MUX_PB14H_GCLK_IO0)
-#define PORT_PB14H_GCLK_IO0 (1ul << 14)
-#define PIN_PB22H_GCLK_IO0 54L /**< \brief GCLK signal: IO0 on PB22 mux H */
-#define MUX_PB22H_GCLK_IO0 7L
-#define PINMUX_PB22H_GCLK_IO0 ((PIN_PB22H_GCLK_IO0 << 16) | MUX_PB22H_GCLK_IO0)
-#define PORT_PB22H_GCLK_IO0 (1ul << 22)
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PB15H_GCLK_IO1 47L /**< \brief GCLK signal: IO1 on PB15 mux H */
-#define MUX_PB15H_GCLK_IO1 7L
-#define PINMUX_PB15H_GCLK_IO1 ((PIN_PB15H_GCLK_IO1 << 16) | MUX_PB15H_GCLK_IO1)
-#define PORT_PB15H_GCLK_IO1 (1ul << 15)
-#define PIN_PB23H_GCLK_IO1 55L /**< \brief GCLK signal: IO1 on PB23 mux H */
-#define MUX_PB23H_GCLK_IO1 7L
-#define PINMUX_PB23H_GCLK_IO1 ((PIN_PB23H_GCLK_IO1 << 16) | MUX_PB23H_GCLK_IO1)
-#define PORT_PB23H_GCLK_IO1 (1ul << 23)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PB16H_GCLK_IO2 48L /**< \brief GCLK signal: IO2 on PB16 mux H */
-#define MUX_PB16H_GCLK_IO2 7L
-#define PINMUX_PB16H_GCLK_IO2 ((PIN_PB16H_GCLK_IO2 << 16) | MUX_PB16H_GCLK_IO2)
-#define PORT_PB16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PB17H_GCLK_IO3 49L /**< \brief GCLK signal: IO3 on PB17 mux H */
-#define MUX_PB17H_GCLK_IO3 7L
-#define PINMUX_PB17H_GCLK_IO3 ((PIN_PB17H_GCLK_IO3 << 16) | MUX_PB17H_GCLK_IO3)
-#define PORT_PB17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA20H_GCLK_IO4 20L /**< \brief GCLK signal: IO4 on PA20 mux H */
-#define MUX_PA20H_GCLK_IO4 7L
-#define PINMUX_PA20H_GCLK_IO4 ((PIN_PA20H_GCLK_IO4 << 16) | MUX_PA20H_GCLK_IO4)
-#define PORT_PA20H_GCLK_IO4 (1ul << 20)
-#define PIN_PB10H_GCLK_IO4 42L /**< \brief GCLK signal: IO4 on PB10 mux H */
-#define MUX_PB10H_GCLK_IO4 7L
-#define PINMUX_PB10H_GCLK_IO4 ((PIN_PB10H_GCLK_IO4 << 16) | MUX_PB10H_GCLK_IO4)
-#define PORT_PB10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA21H_GCLK_IO5 21L /**< \brief GCLK signal: IO5 on PA21 mux H */
-#define MUX_PA21H_GCLK_IO5 7L
-#define PINMUX_PA21H_GCLK_IO5 ((PIN_PA21H_GCLK_IO5 << 16) | MUX_PA21H_GCLK_IO5)
-#define PORT_PA21H_GCLK_IO5 (1ul << 21)
-#define PIN_PB11H_GCLK_IO5 43L /**< \brief GCLK signal: IO5 on PB11 mux H */
-#define MUX_PB11H_GCLK_IO5 7L
-#define PINMUX_PB11H_GCLK_IO5 ((PIN_PB11H_GCLK_IO5 << 16) | MUX_PB11H_GCLK_IO5)
-#define PORT_PB11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PB12H_GCLK_IO6 44L /**< \brief GCLK signal: IO6 on PB12 mux H */
-#define MUX_PB12H_GCLK_IO6 7L
-#define PINMUX_PB12H_GCLK_IO6 ((PIN_PB12H_GCLK_IO6 << 16) | MUX_PB12H_GCLK_IO6)
-#define PORT_PB12H_GCLK_IO6 (1ul << 12)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-#define PIN_PB13H_GCLK_IO7 45L /**< \brief GCLK signal: IO7 on PB13 mux H */
-#define MUX_PB13H_GCLK_IO7 7L
-#define PINMUX_PB13H_GCLK_IO7 ((PIN_PB13H_GCLK_IO7 << 16) | MUX_PB13H_GCLK_IO7)
-#define PORT_PB13H_GCLK_IO7 (1ul << 13)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PB00A_EIC_EXTINT0 32L /**< \brief EIC signal: EXTINT0 on PB00 mux A */
-#define MUX_PB00A_EIC_EXTINT0 0L
-#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0)
-#define PORT_PB00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PB16A_EIC_EXTINT0 48L /**< \brief EIC signal: EXTINT0 on PB16 mux A */
-#define MUX_PB16A_EIC_EXTINT0 0L
-#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0)
-#define PORT_PB16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PB01A_EIC_EXTINT1 33L /**< \brief EIC signal: EXTINT1 on PB01 mux A */
-#define MUX_PB01A_EIC_EXTINT1 0L
-#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1)
-#define PORT_PB01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PB17A_EIC_EXTINT1 49L /**< \brief EIC signal: EXTINT1 on PB17 mux A */
-#define MUX_PB17A_EIC_EXTINT1 0L
-#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1)
-#define PORT_PB17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA20A_EIC_EXTINT4 20L /**< \brief EIC signal: EXTINT4 on PA20 mux A */
-#define MUX_PA20A_EIC_EXTINT4 0L
-#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4)
-#define PORT_PA20A_EIC_EXTINT4 (1ul << 20)
-#define PIN_PB04A_EIC_EXTINT4 36L /**< \brief EIC signal: EXTINT4 on PB04 mux A */
-#define MUX_PB04A_EIC_EXTINT4 0L
-#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4)
-#define PORT_PB04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA21A_EIC_EXTINT5 21L /**< \brief EIC signal: EXTINT5 on PA21 mux A */
-#define MUX_PA21A_EIC_EXTINT5 0L
-#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5)
-#define PORT_PA21A_EIC_EXTINT5 (1ul << 21)
-#define PIN_PB05A_EIC_EXTINT5 37L /**< \brief EIC signal: EXTINT5 on PB05 mux A */
-#define MUX_PB05A_EIC_EXTINT5 0L
-#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5)
-#define PORT_PB05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PB06A_EIC_EXTINT6 38L /**< \brief EIC signal: EXTINT6 on PB06 mux A */
-#define MUX_PB06A_EIC_EXTINT6 0L
-#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6)
-#define PORT_PB06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PB22A_EIC_EXTINT6 54L /**< \brief EIC signal: EXTINT6 on PB22 mux A */
-#define MUX_PB22A_EIC_EXTINT6 0L
-#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6)
-#define PORT_PB22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PB07A_EIC_EXTINT7 39L /**< \brief EIC signal: EXTINT7 on PB07 mux A */
-#define MUX_PB07A_EIC_EXTINT7 0L
-#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7)
-#define PORT_PB07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PB23A_EIC_EXTINT7 55L /**< \brief EIC signal: EXTINT7 on PB23 mux A */
-#define MUX_PB23A_EIC_EXTINT7 0L
-#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7)
-#define PORT_PB23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PB08A_EIC_EXTINT8 40L /**< \brief EIC signal: EXTINT8 on PB08 mux A */
-#define MUX_PB08A_EIC_EXTINT8 0L
-#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8)
-#define PORT_PB08A_EIC_EXTINT8 (1ul << 8)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PB09A_EIC_EXTINT9 41L /**< \brief EIC signal: EXTINT9 on PB09 mux A */
-#define MUX_PB09A_EIC_EXTINT9 0L
-#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9)
-#define PORT_PB09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PB10A_EIC_EXTINT10 42L /**< \brief EIC signal: EXTINT10 on PB10 mux A */
-#define MUX_PB10A_EIC_EXTINT10 0L
-#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10)
-#define PORT_PB10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PB11A_EIC_EXTINT11 43L /**< \brief EIC signal: EXTINT11 on PB11 mux A */
-#define MUX_PB11A_EIC_EXTINT11 0L
-#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11)
-#define PORT_PB11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA12A_EIC_EXTINT12 12L /**< \brief EIC signal: EXTINT12 on PA12 mux A */
-#define MUX_PA12A_EIC_EXTINT12 0L
-#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12)
-#define PORT_PA12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PB12A_EIC_EXTINT12 44L /**< \brief EIC signal: EXTINT12 on PB12 mux A */
-#define MUX_PB12A_EIC_EXTINT12 0L
-#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12)
-#define PORT_PB12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA13A_EIC_EXTINT13 13L /**< \brief EIC signal: EXTINT13 on PA13 mux A */
-#define MUX_PA13A_EIC_EXTINT13 0L
-#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13)
-#define PORT_PA13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PB13A_EIC_EXTINT13 45L /**< \brief EIC signal: EXTINT13 on PB13 mux A */
-#define MUX_PB13A_EIC_EXTINT13 0L
-#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13)
-#define PORT_PB13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PB14A_EIC_EXTINT14 46L /**< \brief EIC signal: EXTINT14 on PB14 mux A */
-#define MUX_PB14A_EIC_EXTINT14 0L
-#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14)
-#define PORT_PB14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PB30A_EIC_EXTINT14 62L /**< \brief EIC signal: EXTINT14 on PB30 mux A */
-#define MUX_PB30A_EIC_EXTINT14 0L
-#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14)
-#define PORT_PB30A_EIC_EXTINT14 (1ul << 30)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PB15A_EIC_EXTINT15 47L /**< \brief EIC signal: EXTINT15 on PB15 mux A */
-#define MUX_PB15A_EIC_EXTINT15 0L
-#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15)
-#define PORT_PB15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PB31A_EIC_EXTINT15 63L /**< \brief EIC signal: EXTINT15 on PB31 mux A */
-#define MUX_PB31A_EIC_EXTINT15 0L
-#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15)
-#define PORT_PB31A_EIC_EXTINT15 (1ul << 31)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA12C_SERCOM2_PAD0 12L /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */
-#define MUX_PA12C_SERCOM2_PAD0 2L
-#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0)
-#define PORT_PA12C_SERCOM2_PAD0 (1ul << 12)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA13C_SERCOM2_PAD1 13L /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */
-#define MUX_PA13C_SERCOM2_PAD1 2L
-#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1)
-#define PORT_PA13C_SERCOM2_PAD1 (1ul << 13)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA20D_SERCOM3_PAD2 20L /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */
-#define MUX_PA20D_SERCOM3_PAD2 3L
-#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2)
-#define PORT_PA20D_SERCOM3_PAD2 (1ul << 20)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA21D_SERCOM3_PAD3 21L /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */
-#define MUX_PA21D_SERCOM3_PAD3 3L
-#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3)
-#define PORT_PA21D_SERCOM3_PAD3 (1ul << 21)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for SERCOM4 peripheral ========== */
-#define PIN_PA12D_SERCOM4_PAD0 12L /**< \brief SERCOM4 signal: PAD0 on PA12 mux D */
-#define MUX_PA12D_SERCOM4_PAD0 3L
-#define PINMUX_PA12D_SERCOM4_PAD0 ((PIN_PA12D_SERCOM4_PAD0 << 16) | MUX_PA12D_SERCOM4_PAD0)
-#define PORT_PA12D_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PB08D_SERCOM4_PAD0 40L /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */
-#define MUX_PB08D_SERCOM4_PAD0 3L
-#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0)
-#define PORT_PB08D_SERCOM4_PAD0 (1ul << 8)
-#define PIN_PB12C_SERCOM4_PAD0 44L /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */
-#define MUX_PB12C_SERCOM4_PAD0 2L
-#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0)
-#define PORT_PB12C_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PA13D_SERCOM4_PAD1 13L /**< \brief SERCOM4 signal: PAD1 on PA13 mux D */
-#define MUX_PA13D_SERCOM4_PAD1 3L
-#define PINMUX_PA13D_SERCOM4_PAD1 ((PIN_PA13D_SERCOM4_PAD1 << 16) | MUX_PA13D_SERCOM4_PAD1)
-#define PORT_PA13D_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PB09D_SERCOM4_PAD1 41L /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */
-#define MUX_PB09D_SERCOM4_PAD1 3L
-#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1)
-#define PORT_PB09D_SERCOM4_PAD1 (1ul << 9)
-#define PIN_PB13C_SERCOM4_PAD1 45L /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */
-#define MUX_PB13C_SERCOM4_PAD1 2L
-#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1)
-#define PORT_PB13C_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PA14D_SERCOM4_PAD2 14L /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */
-#define MUX_PA14D_SERCOM4_PAD2 3L
-#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2)
-#define PORT_PA14D_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PB10D_SERCOM4_PAD2 42L /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */
-#define MUX_PB10D_SERCOM4_PAD2 3L
-#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2)
-#define PORT_PB10D_SERCOM4_PAD2 (1ul << 10)
-#define PIN_PB14C_SERCOM4_PAD2 46L /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */
-#define MUX_PB14C_SERCOM4_PAD2 2L
-#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2)
-#define PORT_PB14C_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PA15D_SERCOM4_PAD3 15L /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */
-#define MUX_PA15D_SERCOM4_PAD3 3L
-#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3)
-#define PORT_PA15D_SERCOM4_PAD3 (1ul << 15)
-#define PIN_PB11D_SERCOM4_PAD3 43L /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */
-#define MUX_PB11D_SERCOM4_PAD3 3L
-#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3)
-#define PORT_PB11D_SERCOM4_PAD3 (1ul << 11)
-#define PIN_PB15C_SERCOM4_PAD3 47L /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */
-#define MUX_PB15C_SERCOM4_PAD3 2L
-#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3)
-#define PORT_PB15C_SERCOM4_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM5 peripheral ========== */
-#define PIN_PA22D_SERCOM5_PAD0 22L /**< \brief SERCOM5 signal: PAD0 on PA22 mux D */
-#define MUX_PA22D_SERCOM5_PAD0 3L
-#define PINMUX_PA22D_SERCOM5_PAD0 ((PIN_PA22D_SERCOM5_PAD0 << 16) | MUX_PA22D_SERCOM5_PAD0)
-#define PORT_PA22D_SERCOM5_PAD0 (1ul << 22)
-#define PIN_PB02D_SERCOM5_PAD0 34L /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */
-#define MUX_PB02D_SERCOM5_PAD0 3L
-#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0)
-#define PORT_PB02D_SERCOM5_PAD0 (1ul << 2)
-#define PIN_PB30D_SERCOM5_PAD0 62L /**< \brief SERCOM5 signal: PAD0 on PB30 mux D */
-#define MUX_PB30D_SERCOM5_PAD0 3L
-#define PINMUX_PB30D_SERCOM5_PAD0 ((PIN_PB30D_SERCOM5_PAD0 << 16) | MUX_PB30D_SERCOM5_PAD0)
-#define PORT_PB30D_SERCOM5_PAD0 (1ul << 30)
-#define PIN_PB16C_SERCOM5_PAD0 48L /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */
-#define MUX_PB16C_SERCOM5_PAD0 2L
-#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0)
-#define PORT_PB16C_SERCOM5_PAD0 (1ul << 16)
-#define PIN_PA23D_SERCOM5_PAD1 23L /**< \brief SERCOM5 signal: PAD1 on PA23 mux D */
-#define MUX_PA23D_SERCOM5_PAD1 3L
-#define PINMUX_PA23D_SERCOM5_PAD1 ((PIN_PA23D_SERCOM5_PAD1 << 16) | MUX_PA23D_SERCOM5_PAD1)
-#define PORT_PA23D_SERCOM5_PAD1 (1ul << 23)
-#define PIN_PB03D_SERCOM5_PAD1 35L /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */
-#define MUX_PB03D_SERCOM5_PAD1 3L
-#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1)
-#define PORT_PB03D_SERCOM5_PAD1 (1ul << 3)
-#define PIN_PB31D_SERCOM5_PAD1 63L /**< \brief SERCOM5 signal: PAD1 on PB31 mux D */
-#define MUX_PB31D_SERCOM5_PAD1 3L
-#define PINMUX_PB31D_SERCOM5_PAD1 ((PIN_PB31D_SERCOM5_PAD1 << 16) | MUX_PB31D_SERCOM5_PAD1)
-#define PORT_PB31D_SERCOM5_PAD1 (1ul << 31)
-#define PIN_PB17C_SERCOM5_PAD1 49L /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */
-#define MUX_PB17C_SERCOM5_PAD1 2L
-#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1)
-#define PORT_PB17C_SERCOM5_PAD1 (1ul << 17)
-#define PIN_PA24D_SERCOM5_PAD2 24L /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */
-#define MUX_PA24D_SERCOM5_PAD2 3L
-#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2)
-#define PORT_PA24D_SERCOM5_PAD2 (1ul << 24)
-#define PIN_PB00D_SERCOM5_PAD2 32L /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */
-#define MUX_PB00D_SERCOM5_PAD2 3L
-#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2)
-#define PORT_PB00D_SERCOM5_PAD2 (1ul << 0)
-#define PIN_PB22D_SERCOM5_PAD2 54L /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */
-#define MUX_PB22D_SERCOM5_PAD2 3L
-#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2)
-#define PORT_PB22D_SERCOM5_PAD2 (1ul << 22)
-#define PIN_PA20C_SERCOM5_PAD2 20L /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */
-#define MUX_PA20C_SERCOM5_PAD2 2L
-#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2)
-#define PORT_PA20C_SERCOM5_PAD2 (1ul << 20)
-#define PIN_PA25D_SERCOM5_PAD3 25L /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */
-#define MUX_PA25D_SERCOM5_PAD3 3L
-#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3)
-#define PORT_PA25D_SERCOM5_PAD3 (1ul << 25)
-#define PIN_PB01D_SERCOM5_PAD3 33L /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */
-#define MUX_PB01D_SERCOM5_PAD3 3L
-#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3)
-#define PORT_PB01D_SERCOM5_PAD3 (1ul << 1)
-#define PIN_PB23D_SERCOM5_PAD3 55L /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */
-#define MUX_PB23D_SERCOM5_PAD3 3L
-#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3)
-#define PORT_PB23D_SERCOM5_PAD3 (1ul << 23)
-#define PIN_PA21C_SERCOM5_PAD3 21L /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */
-#define MUX_PA21C_SERCOM5_PAD3 2L
-#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3)
-#define PORT_PA21C_SERCOM5_PAD3 (1ul << 21)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PB30E_TCC0_WO0 62L /**< \brief TCC0 signal: WO0 on PB30 mux E */
-#define MUX_PB30E_TCC0_WO0 4L
-#define PINMUX_PB30E_TCC0_WO0 ((PIN_PB30E_TCC0_WO0 << 16) | MUX_PB30E_TCC0_WO0)
-#define PORT_PB30E_TCC0_WO0 (1ul << 30)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PB31E_TCC0_WO1 63L /**< \brief TCC0 signal: WO1 on PB31 mux E */
-#define MUX_PB31E_TCC0_WO1 4L
-#define PINMUX_PB31E_TCC0_WO1 ((PIN_PB31E_TCC0_WO1 << 16) | MUX_PB31E_TCC0_WO1)
-#define PORT_PB31E_TCC0_WO1 (1ul << 31)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PB10F_TCC0_WO4 42L /**< \brief TCC0 signal: WO4 on PB10 mux F */
-#define MUX_PB10F_TCC0_WO4 5L
-#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4)
-#define PORT_PB10F_TCC0_WO4 (1ul << 10)
-#define PIN_PB16F_TCC0_WO4 48L /**< \brief TCC0 signal: WO4 on PB16 mux F */
-#define MUX_PB16F_TCC0_WO4 5L
-#define PINMUX_PB16F_TCC0_WO4 ((PIN_PB16F_TCC0_WO4 << 16) | MUX_PB16F_TCC0_WO4)
-#define PORT_PB16F_TCC0_WO4 (1ul << 16)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PB11F_TCC0_WO5 43L /**< \brief TCC0 signal: WO5 on PB11 mux F */
-#define MUX_PB11F_TCC0_WO5 5L
-#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5)
-#define PORT_PB11F_TCC0_WO5 (1ul << 11)
-#define PIN_PB17F_TCC0_WO5 49L /**< \brief TCC0 signal: WO5 on PB17 mux F */
-#define MUX_PB17F_TCC0_WO5 5L
-#define PINMUX_PB17F_TCC0_WO5 ((PIN_PB17F_TCC0_WO5 << 16) | MUX_PB17F_TCC0_WO5)
-#define PORT_PB17F_TCC0_WO5 (1ul << 17)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA12F_TCC0_WO6 12L /**< \brief TCC0 signal: WO6 on PA12 mux F */
-#define MUX_PA12F_TCC0_WO6 5L
-#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6)
-#define PORT_PA12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA20F_TCC0_WO6 20L /**< \brief TCC0 signal: WO6 on PA20 mux F */
-#define MUX_PA20F_TCC0_WO6 5L
-#define PINMUX_PA20F_TCC0_WO6 ((PIN_PA20F_TCC0_WO6 << 16) | MUX_PA20F_TCC0_WO6)
-#define PORT_PA20F_TCC0_WO6 (1ul << 20)
-#define PIN_PB12F_TCC0_WO6 44L /**< \brief TCC0 signal: WO6 on PB12 mux F */
-#define MUX_PB12F_TCC0_WO6 5L
-#define PINMUX_PB12F_TCC0_WO6 ((PIN_PB12F_TCC0_WO6 << 16) | MUX_PB12F_TCC0_WO6)
-#define PORT_PB12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA13F_TCC0_WO7 13L /**< \brief TCC0 signal: WO7 on PA13 mux F */
-#define MUX_PA13F_TCC0_WO7 5L
-#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7)
-#define PORT_PA13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA21F_TCC0_WO7 21L /**< \brief TCC0 signal: WO7 on PA21 mux F */
-#define MUX_PA21F_TCC0_WO7 5L
-#define PINMUX_PA21F_TCC0_WO7 ((PIN_PA21F_TCC0_WO7 << 16) | MUX_PA21F_TCC0_WO7)
-#define PORT_PA21F_TCC0_WO7 (1ul << 21)
-#define PIN_PB13F_TCC0_WO7 45L /**< \brief TCC0 signal: WO7 on PB13 mux F */
-#define MUX_PB13F_TCC0_WO7 5L
-#define PINMUX_PB13F_TCC0_WO7 ((PIN_PB13F_TCC0_WO7 << 16) | MUX_PB13F_TCC0_WO7)
-#define PORT_PB13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PB30F_TCC1_WO2 62L /**< \brief TCC1 signal: WO2 on PB30 mux F */
-#define MUX_PB30F_TCC1_WO2 5L
-#define PINMUX_PB30F_TCC1_WO2 ((PIN_PB30F_TCC1_WO2 << 16) | MUX_PB30F_TCC1_WO2)
-#define PORT_PB30F_TCC1_WO2 (1ul << 30)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-#define PIN_PB31F_TCC1_WO3 63L /**< \brief TCC1 signal: WO3 on PB31 mux F */
-#define MUX_PB31F_TCC1_WO3 5L
-#define PINMUX_PB31F_TCC1_WO3 ((PIN_PB31F_TCC1_WO3 << 16) | MUX_PB31F_TCC1_WO3)
-#define PORT_PB31F_TCC1_WO3 (1ul << 31)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA12E_TCC2_WO0 12L /**< \brief TCC2 signal: WO0 on PA12 mux E */
-#define MUX_PA12E_TCC2_WO0 4L
-#define PINMUX_PA12E_TCC2_WO0 ((PIN_PA12E_TCC2_WO0 << 16) | MUX_PA12E_TCC2_WO0)
-#define PORT_PA12E_TCC2_WO0 (1ul << 12)
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA13E_TCC2_WO1 13L /**< \brief TCC2 signal: WO1 on PA13 mux E */
-#define MUX_PA13E_TCC2_WO1 4L
-#define PINMUX_PA13E_TCC2_WO1 ((PIN_PA13E_TCC2_WO1 << 16) | MUX_PA13E_TCC2_WO1)
-#define PORT_PA13E_TCC2_WO1 (1ul << 13)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PB08E_TC4_WO0 40L /**< \brief TC4 signal: WO0 on PB08 mux E */
-#define MUX_PB08E_TC4_WO0 4L
-#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0)
-#define PORT_PB08E_TC4_WO0 (1ul << 8)
-#define PIN_PB12E_TC4_WO0 44L /**< \brief TC4 signal: WO0 on PB12 mux E */
-#define MUX_PB12E_TC4_WO0 4L
-#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0)
-#define PORT_PB12E_TC4_WO0 (1ul << 12)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-#define PIN_PB09E_TC4_WO1 41L /**< \brief TC4 signal: WO1 on PB09 mux E */
-#define MUX_PB09E_TC4_WO1 4L
-#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1)
-#define PORT_PB09E_TC4_WO1 (1ul << 9)
-#define PIN_PB13E_TC4_WO1 45L /**< \brief TC4 signal: WO1 on PB13 mux E */
-#define MUX_PB13E_TC4_WO1 4L
-#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1)
-#define PORT_PB13E_TC4_WO1 (1ul << 13)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PB10E_TC5_WO0 42L /**< \brief TC5 signal: WO0 on PB10 mux E */
-#define MUX_PB10E_TC5_WO0 4L
-#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0)
-#define PORT_PB10E_TC5_WO0 (1ul << 10)
-#define PIN_PB14E_TC5_WO0 46L /**< \brief TC5 signal: WO0 on PB14 mux E */
-#define MUX_PB14E_TC5_WO0 4L
-#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0)
-#define PORT_PB14E_TC5_WO0 (1ul << 14)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-#define PIN_PB11E_TC5_WO1 43L /**< \brief TC5 signal: WO1 on PB11 mux E */
-#define MUX_PB11E_TC5_WO1 4L
-#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1)
-#define PORT_PB11E_TC5_WO1 (1ul << 11)
-#define PIN_PB15E_TC5_WO1 47L /**< \brief TC5 signal: WO1 on PB15 mux E */
-#define MUX_PB15E_TC5_WO1 4L
-#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1)
-#define PORT_PB15E_TC5_WO1 (1ul << 15)
-/* ========== PORT definition for TC6 peripheral ========== */
-#define PIN_PB02E_TC6_WO0 34L /**< \brief TC6 signal: WO0 on PB02 mux E */
-#define MUX_PB02E_TC6_WO0 4L
-#define PINMUX_PB02E_TC6_WO0 ((PIN_PB02E_TC6_WO0 << 16) | MUX_PB02E_TC6_WO0)
-#define PORT_PB02E_TC6_WO0 (1ul << 2)
-#define PIN_PB16E_TC6_WO0 48L /**< \brief TC6 signal: WO0 on PB16 mux E */
-#define MUX_PB16E_TC6_WO0 4L
-#define PINMUX_PB16E_TC6_WO0 ((PIN_PB16E_TC6_WO0 << 16) | MUX_PB16E_TC6_WO0)
-#define PORT_PB16E_TC6_WO0 (1ul << 16)
-#define PIN_PB03E_TC6_WO1 35L /**< \brief TC6 signal: WO1 on PB03 mux E */
-#define MUX_PB03E_TC6_WO1 4L
-#define PINMUX_PB03E_TC6_WO1 ((PIN_PB03E_TC6_WO1 << 16) | MUX_PB03E_TC6_WO1)
-#define PORT_PB03E_TC6_WO1 (1ul << 3)
-#define PIN_PB17E_TC6_WO1 49L /**< \brief TC6 signal: WO1 on PB17 mux E */
-#define MUX_PB17E_TC6_WO1 4L
-#define PINMUX_PB17E_TC6_WO1 ((PIN_PB17E_TC6_WO1 << 16) | MUX_PB17E_TC6_WO1)
-#define PORT_PB17E_TC6_WO1 (1ul << 17)
-/* ========== PORT definition for TC7 peripheral ========== */
-#define PIN_PA20E_TC7_WO0 20L /**< \brief TC7 signal: WO0 on PA20 mux E */
-#define MUX_PA20E_TC7_WO0 4L
-#define PINMUX_PA20E_TC7_WO0 ((PIN_PA20E_TC7_WO0 << 16) | MUX_PA20E_TC7_WO0)
-#define PORT_PA20E_TC7_WO0 (1ul << 20)
-#define PIN_PB00E_TC7_WO0 32L /**< \brief TC7 signal: WO0 on PB00 mux E */
-#define MUX_PB00E_TC7_WO0 4L
-#define PINMUX_PB00E_TC7_WO0 ((PIN_PB00E_TC7_WO0 << 16) | MUX_PB00E_TC7_WO0)
-#define PORT_PB00E_TC7_WO0 (1ul << 0)
-#define PIN_PB22E_TC7_WO0 54L /**< \brief TC7 signal: WO0 on PB22 mux E */
-#define MUX_PB22E_TC7_WO0 4L
-#define PINMUX_PB22E_TC7_WO0 ((PIN_PB22E_TC7_WO0 << 16) | MUX_PB22E_TC7_WO0)
-#define PORT_PB22E_TC7_WO0 (1ul << 22)
-#define PIN_PA21E_TC7_WO1 21L /**< \brief TC7 signal: WO1 on PA21 mux E */
-#define MUX_PA21E_TC7_WO1 4L
-#define PINMUX_PA21E_TC7_WO1 ((PIN_PA21E_TC7_WO1 << 16) | MUX_PA21E_TC7_WO1)
-#define PORT_PA21E_TC7_WO1 (1ul << 21)
-#define PIN_PB01E_TC7_WO1 33L /**< \brief TC7 signal: WO1 on PB01 mux E */
-#define MUX_PB01E_TC7_WO1 4L
-#define PINMUX_PB01E_TC7_WO1 ((PIN_PB01E_TC7_WO1 << 16) | MUX_PB01E_TC7_WO1)
-#define PORT_PB01E_TC7_WO1 (1ul << 1)
-#define PIN_PB23E_TC7_WO1 55L /**< \brief TC7 signal: WO1 on PB23 mux E */
-#define MUX_PB23E_TC7_WO1 4L
-#define PINMUX_PB23E_TC7_WO1 ((PIN_PB23E_TC7_WO1 << 16) | MUX_PB23E_TC7_WO1)
-#define PORT_PB23E_TC7_WO1 (1ul << 23)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PB08B_ADC_AIN2 40L /**< \brief ADC signal: AIN2 on PB08 mux B */
-#define MUX_PB08B_ADC_AIN2 1L
-#define PINMUX_PB08B_ADC_AIN2 ((PIN_PB08B_ADC_AIN2 << 16) | MUX_PB08B_ADC_AIN2)
-#define PORT_PB08B_ADC_AIN2 (1ul << 8)
-#define PIN_PB09B_ADC_AIN3 41L /**< \brief ADC signal: AIN3 on PB09 mux B */
-#define MUX_PB09B_ADC_AIN3 1L
-#define PINMUX_PB09B_ADC_AIN3 ((PIN_PB09B_ADC_AIN3 << 16) | MUX_PB09B_ADC_AIN3)
-#define PORT_PB09B_ADC_AIN3 (1ul << 9)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB00B_ADC_AIN8 32L /**< \brief ADC signal: AIN8 on PB00 mux B */
-#define MUX_PB00B_ADC_AIN8 1L
-#define PINMUX_PB00B_ADC_AIN8 ((PIN_PB00B_ADC_AIN8 << 16) | MUX_PB00B_ADC_AIN8)
-#define PORT_PB00B_ADC_AIN8 (1ul << 0)
-#define PIN_PB01B_ADC_AIN9 33L /**< \brief ADC signal: AIN9 on PB01 mux B */
-#define MUX_PB01B_ADC_AIN9 1L
-#define PINMUX_PB01B_ADC_AIN9 ((PIN_PB01B_ADC_AIN9 << 16) | MUX_PB01B_ADC_AIN9)
-#define PORT_PB01B_ADC_AIN9 (1ul << 1)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PB04B_ADC_AIN12 36L /**< \brief ADC signal: AIN12 on PB04 mux B */
-#define MUX_PB04B_ADC_AIN12 1L
-#define PINMUX_PB04B_ADC_AIN12 ((PIN_PB04B_ADC_AIN12 << 16) | MUX_PB04B_ADC_AIN12)
-#define PORT_PB04B_ADC_AIN12 (1ul << 4)
-#define PIN_PB05B_ADC_AIN13 37L /**< \brief ADC signal: AIN13 on PB05 mux B */
-#define MUX_PB05B_ADC_AIN13 1L
-#define PINMUX_PB05B_ADC_AIN13 ((PIN_PB05B_ADC_AIN13 << 16) | MUX_PB05B_ADC_AIN13)
-#define PORT_PB05B_ADC_AIN13 (1ul << 5)
-#define PIN_PB06B_ADC_AIN14 38L /**< \brief ADC signal: AIN14 on PB06 mux B */
-#define MUX_PB06B_ADC_AIN14 1L
-#define PINMUX_PB06B_ADC_AIN14 ((PIN_PB06B_ADC_AIN14 << 16) | MUX_PB06B_ADC_AIN14)
-#define PORT_PB06B_ADC_AIN14 (1ul << 6)
-#define PIN_PB07B_ADC_AIN15 39L /**< \brief ADC signal: AIN15 on PB07 mux B */
-#define MUX_PB07B_ADC_AIN15 1L
-#define PINMUX_PB07B_ADC_AIN15 ((PIN_PB07B_ADC_AIN15 << 16) | MUX_PB07B_ADC_AIN15)
-#define PORT_PB07B_ADC_AIN15 (1ul << 7)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA12H_AC_CMP0 12L /**< \brief AC signal: CMP0 on PA12 mux H */
-#define MUX_PA12H_AC_CMP0 7L
-#define PINMUX_PA12H_AC_CMP0 ((PIN_PA12H_AC_CMP0 << 16) | MUX_PA12H_AC_CMP0)
-#define PORT_PA12H_AC_CMP0 (1ul << 12)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA13H_AC_CMP1 13L /**< \brief AC signal: CMP1 on PA13 mux H */
-#define MUX_PA13H_AC_CMP1 7L
-#define PINMUX_PA13H_AC_CMP1 ((PIN_PA13H_AC_CMP1 << 16) | MUX_PA13H_AC_CMP1)
-#define PORT_PA13H_AC_CMP1 (1ul << 13)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA21G_I2S_FS0 21L /**< \brief I2S signal: FS0 on PA21 mux G */
-#define MUX_PA21G_I2S_FS0 6L
-#define PINMUX_PA21G_I2S_FS0 ((PIN_PA21G_I2S_FS0 << 16) | MUX_PA21G_I2S_FS0)
-#define PORT_PA21G_I2S_FS0 (1ul << 21)
-#define PIN_PB12G_I2S_FS1 44L /**< \brief I2S signal: FS1 on PB12 mux G */
-#define MUX_PB12G_I2S_FS1 6L
-#define PINMUX_PB12G_I2S_FS1 ((PIN_PB12G_I2S_FS1 << 16) | MUX_PB12G_I2S_FS1)
-#define PORT_PB12G_I2S_FS1 (1ul << 12)
-#define PIN_PB17G_I2S_MCK0 49L /**< \brief I2S signal: MCK0 on PB17 mux G */
-#define MUX_PB17G_I2S_MCK0 6L
-#define PINMUX_PB17G_I2S_MCK0 ((PIN_PB17G_I2S_MCK0 << 16) | MUX_PB17G_I2S_MCK0)
-#define PORT_PB17G_I2S_MCK0 (1ul << 17)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PB10G_I2S_MCK1 42L /**< \brief I2S signal: MCK1 on PB10 mux G */
-#define MUX_PB10G_I2S_MCK1 6L
-#define PINMUX_PB10G_I2S_MCK1 ((PIN_PB10G_I2S_MCK1 << 16) | MUX_PB10G_I2S_MCK1)
-#define PORT_PB10G_I2S_MCK1 (1ul << 10)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA20G_I2S_SCK0 20L /**< \brief I2S signal: SCK0 on PA20 mux G */
-#define MUX_PA20G_I2S_SCK0 6L
-#define PINMUX_PA20G_I2S_SCK0 ((PIN_PA20G_I2S_SCK0 << 16) | MUX_PA20G_I2S_SCK0)
-#define PORT_PA20G_I2S_SCK0 (1ul << 20)
-#define PIN_PB11G_I2S_SCK1 43L /**< \brief I2S signal: SCK1 on PB11 mux G */
-#define MUX_PB11G_I2S_SCK1 6L
-#define PINMUX_PB11G_I2S_SCK1 ((PIN_PB11G_I2S_SCK1 << 16) | MUX_PB11G_I2S_SCK1)
-#define PORT_PB11G_I2S_SCK1 (1ul << 11)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-#define PIN_PB16G_I2S_SD1 48L /**< \brief I2S signal: SD1 on PB16 mux G */
-#define MUX_PB16G_I2S_SD1 6L
-#define PINMUX_PB16G_I2S_SD1 ((PIN_PB16G_I2S_SD1 << 16) | MUX_PB16G_I2S_SD1)
-#define PORT_PB16G_I2S_SD1 (1ul << 16)
-
-#endif /* _SAMD21J16B_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j17a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j17a.h
deleted file mode 100644
index 6ce8855..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j17a.h
+++ /dev/null
@@ -1,1182 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21J17A
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _SAMD21J17A_PIO_
-#define _SAMD21J17A_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA12 12 /**< \brief Pin Number for PA12 */
-#define PORT_PA12 (1ul << 12) /**< \brief PORT Mask for PA12 */
-#define PIN_PA13 13 /**< \brief Pin Number for PA13 */
-#define PORT_PA13 (1ul << 13) /**< \brief PORT Mask for PA13 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA20 20 /**< \brief Pin Number for PA20 */
-#define PORT_PA20 (1ul << 20) /**< \brief PORT Mask for PA20 */
-#define PIN_PA21 21 /**< \brief Pin Number for PA21 */
-#define PORT_PA21 (1ul << 21) /**< \brief PORT Mask for PA21 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB00 32 /**< \brief Pin Number for PB00 */
-#define PORT_PB00 (1ul << 0) /**< \brief PORT Mask for PB00 */
-#define PIN_PB01 33 /**< \brief Pin Number for PB01 */
-#define PORT_PB01 (1ul << 1) /**< \brief PORT Mask for PB01 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB04 36 /**< \brief Pin Number for PB04 */
-#define PORT_PB04 (1ul << 4) /**< \brief PORT Mask for PB04 */
-#define PIN_PB05 37 /**< \brief Pin Number for PB05 */
-#define PORT_PB05 (1ul << 5) /**< \brief PORT Mask for PB05 */
-#define PIN_PB06 38 /**< \brief Pin Number for PB06 */
-#define PORT_PB06 (1ul << 6) /**< \brief PORT Mask for PB06 */
-#define PIN_PB07 39 /**< \brief Pin Number for PB07 */
-#define PORT_PB07 (1ul << 7) /**< \brief PORT Mask for PB07 */
-#define PIN_PB08 40 /**< \brief Pin Number for PB08 */
-#define PORT_PB08 (1ul << 8) /**< \brief PORT Mask for PB08 */
-#define PIN_PB09 41 /**< \brief Pin Number for PB09 */
-#define PORT_PB09 (1ul << 9) /**< \brief PORT Mask for PB09 */
-#define PIN_PB10 42 /**< \brief Pin Number for PB10 */
-#define PORT_PB10 (1ul << 10) /**< \brief PORT Mask for PB10 */
-#define PIN_PB11 43 /**< \brief Pin Number for PB11 */
-#define PORT_PB11 (1ul << 11) /**< \brief PORT Mask for PB11 */
-#define PIN_PB12 44 /**< \brief Pin Number for PB12 */
-#define PORT_PB12 (1ul << 12) /**< \brief PORT Mask for PB12 */
-#define PIN_PB13 45 /**< \brief Pin Number for PB13 */
-#define PORT_PB13 (1ul << 13) /**< \brief PORT Mask for PB13 */
-#define PIN_PB14 46 /**< \brief Pin Number for PB14 */
-#define PORT_PB14 (1ul << 14) /**< \brief PORT Mask for PB14 */
-#define PIN_PB15 47 /**< \brief Pin Number for PB15 */
-#define PORT_PB15 (1ul << 15) /**< \brief PORT Mask for PB15 */
-#define PIN_PB16 48 /**< \brief Pin Number for PB16 */
-#define PORT_PB16 (1ul << 16) /**< \brief PORT Mask for PB16 */
-#define PIN_PB17 49 /**< \brief Pin Number for PB17 */
-#define PORT_PB17 (1ul << 17) /**< \brief PORT Mask for PB17 */
-#define PIN_PB22 54 /**< \brief Pin Number for PB22 */
-#define PORT_PB22 (1ul << 22) /**< \brief PORT Mask for PB22 */
-#define PIN_PB23 55 /**< \brief Pin Number for PB23 */
-#define PORT_PB23 (1ul << 23) /**< \brief PORT Mask for PB23 */
-#define PIN_PB30 62 /**< \brief Pin Number for PB30 */
-#define PORT_PB30 (1ul << 30) /**< \brief PORT Mask for PB30 */
-#define PIN_PB31 63 /**< \brief Pin Number for PB31 */
-#define PORT_PB31 (1ul << 31) /**< \brief PORT Mask for PB31 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PB14H_GCLK_IO0 46L /**< \brief GCLK signal: IO0 on PB14 mux H */
-#define MUX_PB14H_GCLK_IO0 7L
-#define PINMUX_PB14H_GCLK_IO0 ((PIN_PB14H_GCLK_IO0 << 16) | MUX_PB14H_GCLK_IO0)
-#define PORT_PB14H_GCLK_IO0 (1ul << 14)
-#define PIN_PB22H_GCLK_IO0 54L /**< \brief GCLK signal: IO0 on PB22 mux H */
-#define MUX_PB22H_GCLK_IO0 7L
-#define PINMUX_PB22H_GCLK_IO0 ((PIN_PB22H_GCLK_IO0 << 16) | MUX_PB22H_GCLK_IO0)
-#define PORT_PB22H_GCLK_IO0 (1ul << 22)
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PB15H_GCLK_IO1 47L /**< \brief GCLK signal: IO1 on PB15 mux H */
-#define MUX_PB15H_GCLK_IO1 7L
-#define PINMUX_PB15H_GCLK_IO1 ((PIN_PB15H_GCLK_IO1 << 16) | MUX_PB15H_GCLK_IO1)
-#define PORT_PB15H_GCLK_IO1 (1ul << 15)
-#define PIN_PB23H_GCLK_IO1 55L /**< \brief GCLK signal: IO1 on PB23 mux H */
-#define MUX_PB23H_GCLK_IO1 7L
-#define PINMUX_PB23H_GCLK_IO1 ((PIN_PB23H_GCLK_IO1 << 16) | MUX_PB23H_GCLK_IO1)
-#define PORT_PB23H_GCLK_IO1 (1ul << 23)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PB16H_GCLK_IO2 48L /**< \brief GCLK signal: IO2 on PB16 mux H */
-#define MUX_PB16H_GCLK_IO2 7L
-#define PINMUX_PB16H_GCLK_IO2 ((PIN_PB16H_GCLK_IO2 << 16) | MUX_PB16H_GCLK_IO2)
-#define PORT_PB16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PB17H_GCLK_IO3 49L /**< \brief GCLK signal: IO3 on PB17 mux H */
-#define MUX_PB17H_GCLK_IO3 7L
-#define PINMUX_PB17H_GCLK_IO3 ((PIN_PB17H_GCLK_IO3 << 16) | MUX_PB17H_GCLK_IO3)
-#define PORT_PB17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA20H_GCLK_IO4 20L /**< \brief GCLK signal: IO4 on PA20 mux H */
-#define MUX_PA20H_GCLK_IO4 7L
-#define PINMUX_PA20H_GCLK_IO4 ((PIN_PA20H_GCLK_IO4 << 16) | MUX_PA20H_GCLK_IO4)
-#define PORT_PA20H_GCLK_IO4 (1ul << 20)
-#define PIN_PB10H_GCLK_IO4 42L /**< \brief GCLK signal: IO4 on PB10 mux H */
-#define MUX_PB10H_GCLK_IO4 7L
-#define PINMUX_PB10H_GCLK_IO4 ((PIN_PB10H_GCLK_IO4 << 16) | MUX_PB10H_GCLK_IO4)
-#define PORT_PB10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA21H_GCLK_IO5 21L /**< \brief GCLK signal: IO5 on PA21 mux H */
-#define MUX_PA21H_GCLK_IO5 7L
-#define PINMUX_PA21H_GCLK_IO5 ((PIN_PA21H_GCLK_IO5 << 16) | MUX_PA21H_GCLK_IO5)
-#define PORT_PA21H_GCLK_IO5 (1ul << 21)
-#define PIN_PB11H_GCLK_IO5 43L /**< \brief GCLK signal: IO5 on PB11 mux H */
-#define MUX_PB11H_GCLK_IO5 7L
-#define PINMUX_PB11H_GCLK_IO5 ((PIN_PB11H_GCLK_IO5 << 16) | MUX_PB11H_GCLK_IO5)
-#define PORT_PB11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PB12H_GCLK_IO6 44L /**< \brief GCLK signal: IO6 on PB12 mux H */
-#define MUX_PB12H_GCLK_IO6 7L
-#define PINMUX_PB12H_GCLK_IO6 ((PIN_PB12H_GCLK_IO6 << 16) | MUX_PB12H_GCLK_IO6)
-#define PORT_PB12H_GCLK_IO6 (1ul << 12)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-#define PIN_PB13H_GCLK_IO7 45L /**< \brief GCLK signal: IO7 on PB13 mux H */
-#define MUX_PB13H_GCLK_IO7 7L
-#define PINMUX_PB13H_GCLK_IO7 ((PIN_PB13H_GCLK_IO7 << 16) | MUX_PB13H_GCLK_IO7)
-#define PORT_PB13H_GCLK_IO7 (1ul << 13)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PB00A_EIC_EXTINT0 32L /**< \brief EIC signal: EXTINT0 on PB00 mux A */
-#define MUX_PB00A_EIC_EXTINT0 0L
-#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0)
-#define PORT_PB00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PB16A_EIC_EXTINT0 48L /**< \brief EIC signal: EXTINT0 on PB16 mux A */
-#define MUX_PB16A_EIC_EXTINT0 0L
-#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0)
-#define PORT_PB16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PB01A_EIC_EXTINT1 33L /**< \brief EIC signal: EXTINT1 on PB01 mux A */
-#define MUX_PB01A_EIC_EXTINT1 0L
-#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1)
-#define PORT_PB01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PB17A_EIC_EXTINT1 49L /**< \brief EIC signal: EXTINT1 on PB17 mux A */
-#define MUX_PB17A_EIC_EXTINT1 0L
-#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1)
-#define PORT_PB17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA20A_EIC_EXTINT4 20L /**< \brief EIC signal: EXTINT4 on PA20 mux A */
-#define MUX_PA20A_EIC_EXTINT4 0L
-#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4)
-#define PORT_PA20A_EIC_EXTINT4 (1ul << 20)
-#define PIN_PB04A_EIC_EXTINT4 36L /**< \brief EIC signal: EXTINT4 on PB04 mux A */
-#define MUX_PB04A_EIC_EXTINT4 0L
-#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4)
-#define PORT_PB04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA21A_EIC_EXTINT5 21L /**< \brief EIC signal: EXTINT5 on PA21 mux A */
-#define MUX_PA21A_EIC_EXTINT5 0L
-#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5)
-#define PORT_PA21A_EIC_EXTINT5 (1ul << 21)
-#define PIN_PB05A_EIC_EXTINT5 37L /**< \brief EIC signal: EXTINT5 on PB05 mux A */
-#define MUX_PB05A_EIC_EXTINT5 0L
-#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5)
-#define PORT_PB05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PB06A_EIC_EXTINT6 38L /**< \brief EIC signal: EXTINT6 on PB06 mux A */
-#define MUX_PB06A_EIC_EXTINT6 0L
-#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6)
-#define PORT_PB06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PB22A_EIC_EXTINT6 54L /**< \brief EIC signal: EXTINT6 on PB22 mux A */
-#define MUX_PB22A_EIC_EXTINT6 0L
-#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6)
-#define PORT_PB22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PB07A_EIC_EXTINT7 39L /**< \brief EIC signal: EXTINT7 on PB07 mux A */
-#define MUX_PB07A_EIC_EXTINT7 0L
-#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7)
-#define PORT_PB07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PB23A_EIC_EXTINT7 55L /**< \brief EIC signal: EXTINT7 on PB23 mux A */
-#define MUX_PB23A_EIC_EXTINT7 0L
-#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7)
-#define PORT_PB23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PB08A_EIC_EXTINT8 40L /**< \brief EIC signal: EXTINT8 on PB08 mux A */
-#define MUX_PB08A_EIC_EXTINT8 0L
-#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8)
-#define PORT_PB08A_EIC_EXTINT8 (1ul << 8)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PB09A_EIC_EXTINT9 41L /**< \brief EIC signal: EXTINT9 on PB09 mux A */
-#define MUX_PB09A_EIC_EXTINT9 0L
-#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9)
-#define PORT_PB09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PB10A_EIC_EXTINT10 42L /**< \brief EIC signal: EXTINT10 on PB10 mux A */
-#define MUX_PB10A_EIC_EXTINT10 0L
-#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10)
-#define PORT_PB10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PB11A_EIC_EXTINT11 43L /**< \brief EIC signal: EXTINT11 on PB11 mux A */
-#define MUX_PB11A_EIC_EXTINT11 0L
-#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11)
-#define PORT_PB11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA12A_EIC_EXTINT12 12L /**< \brief EIC signal: EXTINT12 on PA12 mux A */
-#define MUX_PA12A_EIC_EXTINT12 0L
-#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12)
-#define PORT_PA12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PB12A_EIC_EXTINT12 44L /**< \brief EIC signal: EXTINT12 on PB12 mux A */
-#define MUX_PB12A_EIC_EXTINT12 0L
-#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12)
-#define PORT_PB12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA13A_EIC_EXTINT13 13L /**< \brief EIC signal: EXTINT13 on PA13 mux A */
-#define MUX_PA13A_EIC_EXTINT13 0L
-#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13)
-#define PORT_PA13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PB13A_EIC_EXTINT13 45L /**< \brief EIC signal: EXTINT13 on PB13 mux A */
-#define MUX_PB13A_EIC_EXTINT13 0L
-#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13)
-#define PORT_PB13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PB14A_EIC_EXTINT14 46L /**< \brief EIC signal: EXTINT14 on PB14 mux A */
-#define MUX_PB14A_EIC_EXTINT14 0L
-#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14)
-#define PORT_PB14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PB30A_EIC_EXTINT14 62L /**< \brief EIC signal: EXTINT14 on PB30 mux A */
-#define MUX_PB30A_EIC_EXTINT14 0L
-#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14)
-#define PORT_PB30A_EIC_EXTINT14 (1ul << 30)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PB15A_EIC_EXTINT15 47L /**< \brief EIC signal: EXTINT15 on PB15 mux A */
-#define MUX_PB15A_EIC_EXTINT15 0L
-#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15)
-#define PORT_PB15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PB31A_EIC_EXTINT15 63L /**< \brief EIC signal: EXTINT15 on PB31 mux A */
-#define MUX_PB31A_EIC_EXTINT15 0L
-#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15)
-#define PORT_PB31A_EIC_EXTINT15 (1ul << 31)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA12C_SERCOM2_PAD0 12L /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */
-#define MUX_PA12C_SERCOM2_PAD0 2L
-#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0)
-#define PORT_PA12C_SERCOM2_PAD0 (1ul << 12)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA13C_SERCOM2_PAD1 13L /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */
-#define MUX_PA13C_SERCOM2_PAD1 2L
-#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1)
-#define PORT_PA13C_SERCOM2_PAD1 (1ul << 13)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA20D_SERCOM3_PAD2 20L /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */
-#define MUX_PA20D_SERCOM3_PAD2 3L
-#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2)
-#define PORT_PA20D_SERCOM3_PAD2 (1ul << 20)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA21D_SERCOM3_PAD3 21L /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */
-#define MUX_PA21D_SERCOM3_PAD3 3L
-#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3)
-#define PORT_PA21D_SERCOM3_PAD3 (1ul << 21)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for SERCOM4 peripheral ========== */
-#define PIN_PA12D_SERCOM4_PAD0 12L /**< \brief SERCOM4 signal: PAD0 on PA12 mux D */
-#define MUX_PA12D_SERCOM4_PAD0 3L
-#define PINMUX_PA12D_SERCOM4_PAD0 ((PIN_PA12D_SERCOM4_PAD0 << 16) | MUX_PA12D_SERCOM4_PAD0)
-#define PORT_PA12D_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PB08D_SERCOM4_PAD0 40L /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */
-#define MUX_PB08D_SERCOM4_PAD0 3L
-#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0)
-#define PORT_PB08D_SERCOM4_PAD0 (1ul << 8)
-#define PIN_PB12C_SERCOM4_PAD0 44L /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */
-#define MUX_PB12C_SERCOM4_PAD0 2L
-#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0)
-#define PORT_PB12C_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PA13D_SERCOM4_PAD1 13L /**< \brief SERCOM4 signal: PAD1 on PA13 mux D */
-#define MUX_PA13D_SERCOM4_PAD1 3L
-#define PINMUX_PA13D_SERCOM4_PAD1 ((PIN_PA13D_SERCOM4_PAD1 << 16) | MUX_PA13D_SERCOM4_PAD1)
-#define PORT_PA13D_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PB09D_SERCOM4_PAD1 41L /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */
-#define MUX_PB09D_SERCOM4_PAD1 3L
-#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1)
-#define PORT_PB09D_SERCOM4_PAD1 (1ul << 9)
-#define PIN_PB13C_SERCOM4_PAD1 45L /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */
-#define MUX_PB13C_SERCOM4_PAD1 2L
-#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1)
-#define PORT_PB13C_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PA14D_SERCOM4_PAD2 14L /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */
-#define MUX_PA14D_SERCOM4_PAD2 3L
-#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2)
-#define PORT_PA14D_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PB10D_SERCOM4_PAD2 42L /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */
-#define MUX_PB10D_SERCOM4_PAD2 3L
-#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2)
-#define PORT_PB10D_SERCOM4_PAD2 (1ul << 10)
-#define PIN_PB14C_SERCOM4_PAD2 46L /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */
-#define MUX_PB14C_SERCOM4_PAD2 2L
-#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2)
-#define PORT_PB14C_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PA15D_SERCOM4_PAD3 15L /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */
-#define MUX_PA15D_SERCOM4_PAD3 3L
-#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3)
-#define PORT_PA15D_SERCOM4_PAD3 (1ul << 15)
-#define PIN_PB11D_SERCOM4_PAD3 43L /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */
-#define MUX_PB11D_SERCOM4_PAD3 3L
-#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3)
-#define PORT_PB11D_SERCOM4_PAD3 (1ul << 11)
-#define PIN_PB15C_SERCOM4_PAD3 47L /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */
-#define MUX_PB15C_SERCOM4_PAD3 2L
-#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3)
-#define PORT_PB15C_SERCOM4_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM5 peripheral ========== */
-#define PIN_PB16C_SERCOM5_PAD0 48L /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */
-#define MUX_PB16C_SERCOM5_PAD0 2L
-#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0)
-#define PORT_PB16C_SERCOM5_PAD0 (1ul << 16)
-#define PIN_PA22D_SERCOM5_PAD0 22L /**< \brief SERCOM5 signal: PAD0 on PA22 mux D */
-#define MUX_PA22D_SERCOM5_PAD0 3L
-#define PINMUX_PA22D_SERCOM5_PAD0 ((PIN_PA22D_SERCOM5_PAD0 << 16) | MUX_PA22D_SERCOM5_PAD0)
-#define PORT_PA22D_SERCOM5_PAD0 (1ul << 22)
-#define PIN_PB02D_SERCOM5_PAD0 34L /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */
-#define MUX_PB02D_SERCOM5_PAD0 3L
-#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0)
-#define PORT_PB02D_SERCOM5_PAD0 (1ul << 2)
-#define PIN_PB30D_SERCOM5_PAD0 62L /**< \brief SERCOM5 signal: PAD0 on PB30 mux D */
-#define MUX_PB30D_SERCOM5_PAD0 3L
-#define PINMUX_PB30D_SERCOM5_PAD0 ((PIN_PB30D_SERCOM5_PAD0 << 16) | MUX_PB30D_SERCOM5_PAD0)
-#define PORT_PB30D_SERCOM5_PAD0 (1ul << 30)
-#define PIN_PB17C_SERCOM5_PAD1 49L /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */
-#define MUX_PB17C_SERCOM5_PAD1 2L
-#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1)
-#define PORT_PB17C_SERCOM5_PAD1 (1ul << 17)
-#define PIN_PA23D_SERCOM5_PAD1 23L /**< \brief SERCOM5 signal: PAD1 on PA23 mux D */
-#define MUX_PA23D_SERCOM5_PAD1 3L
-#define PINMUX_PA23D_SERCOM5_PAD1 ((PIN_PA23D_SERCOM5_PAD1 << 16) | MUX_PA23D_SERCOM5_PAD1)
-#define PORT_PA23D_SERCOM5_PAD1 (1ul << 23)
-#define PIN_PB03D_SERCOM5_PAD1 35L /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */
-#define MUX_PB03D_SERCOM5_PAD1 3L
-#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1)
-#define PORT_PB03D_SERCOM5_PAD1 (1ul << 3)
-#define PIN_PB31D_SERCOM5_PAD1 63L /**< \brief SERCOM5 signal: PAD1 on PB31 mux D */
-#define MUX_PB31D_SERCOM5_PAD1 3L
-#define PINMUX_PB31D_SERCOM5_PAD1 ((PIN_PB31D_SERCOM5_PAD1 << 16) | MUX_PB31D_SERCOM5_PAD1)
-#define PORT_PB31D_SERCOM5_PAD1 (1ul << 31)
-#define PIN_PA24D_SERCOM5_PAD2 24L /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */
-#define MUX_PA24D_SERCOM5_PAD2 3L
-#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2)
-#define PORT_PA24D_SERCOM5_PAD2 (1ul << 24)
-#define PIN_PB00D_SERCOM5_PAD2 32L /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */
-#define MUX_PB00D_SERCOM5_PAD2 3L
-#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2)
-#define PORT_PB00D_SERCOM5_PAD2 (1ul << 0)
-#define PIN_PB22D_SERCOM5_PAD2 54L /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */
-#define MUX_PB22D_SERCOM5_PAD2 3L
-#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2)
-#define PORT_PB22D_SERCOM5_PAD2 (1ul << 22)
-#define PIN_PA20C_SERCOM5_PAD2 20L /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */
-#define MUX_PA20C_SERCOM5_PAD2 2L
-#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2)
-#define PORT_PA20C_SERCOM5_PAD2 (1ul << 20)
-#define PIN_PA25D_SERCOM5_PAD3 25L /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */
-#define MUX_PA25D_SERCOM5_PAD3 3L
-#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3)
-#define PORT_PA25D_SERCOM5_PAD3 (1ul << 25)
-#define PIN_PB01D_SERCOM5_PAD3 33L /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */
-#define MUX_PB01D_SERCOM5_PAD3 3L
-#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3)
-#define PORT_PB01D_SERCOM5_PAD3 (1ul << 1)
-#define PIN_PB23D_SERCOM5_PAD3 55L /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */
-#define MUX_PB23D_SERCOM5_PAD3 3L
-#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3)
-#define PORT_PB23D_SERCOM5_PAD3 (1ul << 23)
-#define PIN_PA21C_SERCOM5_PAD3 21L /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */
-#define MUX_PA21C_SERCOM5_PAD3 2L
-#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3)
-#define PORT_PA21C_SERCOM5_PAD3 (1ul << 21)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PB30E_TCC0_WO0 62L /**< \brief TCC0 signal: WO0 on PB30 mux E */
-#define MUX_PB30E_TCC0_WO0 4L
-#define PINMUX_PB30E_TCC0_WO0 ((PIN_PB30E_TCC0_WO0 << 16) | MUX_PB30E_TCC0_WO0)
-#define PORT_PB30E_TCC0_WO0 (1ul << 30)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PB31E_TCC0_WO1 63L /**< \brief TCC0 signal: WO1 on PB31 mux E */
-#define MUX_PB31E_TCC0_WO1 4L
-#define PINMUX_PB31E_TCC0_WO1 ((PIN_PB31E_TCC0_WO1 << 16) | MUX_PB31E_TCC0_WO1)
-#define PORT_PB31E_TCC0_WO1 (1ul << 31)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PB10F_TCC0_WO4 42L /**< \brief TCC0 signal: WO4 on PB10 mux F */
-#define MUX_PB10F_TCC0_WO4 5L
-#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4)
-#define PORT_PB10F_TCC0_WO4 (1ul << 10)
-#define PIN_PB16F_TCC0_WO4 48L /**< \brief TCC0 signal: WO4 on PB16 mux F */
-#define MUX_PB16F_TCC0_WO4 5L
-#define PINMUX_PB16F_TCC0_WO4 ((PIN_PB16F_TCC0_WO4 << 16) | MUX_PB16F_TCC0_WO4)
-#define PORT_PB16F_TCC0_WO4 (1ul << 16)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PB11F_TCC0_WO5 43L /**< \brief TCC0 signal: WO5 on PB11 mux F */
-#define MUX_PB11F_TCC0_WO5 5L
-#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5)
-#define PORT_PB11F_TCC0_WO5 (1ul << 11)
-#define PIN_PB17F_TCC0_WO5 49L /**< \brief TCC0 signal: WO5 on PB17 mux F */
-#define MUX_PB17F_TCC0_WO5 5L
-#define PINMUX_PB17F_TCC0_WO5 ((PIN_PB17F_TCC0_WO5 << 16) | MUX_PB17F_TCC0_WO5)
-#define PORT_PB17F_TCC0_WO5 (1ul << 17)
-#define PIN_PA12F_TCC0_WO6 12L /**< \brief TCC0 signal: WO6 on PA12 mux F */
-#define MUX_PA12F_TCC0_WO6 5L
-#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6)
-#define PORT_PA12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA20F_TCC0_WO6 20L /**< \brief TCC0 signal: WO6 on PA20 mux F */
-#define MUX_PA20F_TCC0_WO6 5L
-#define PINMUX_PA20F_TCC0_WO6 ((PIN_PA20F_TCC0_WO6 << 16) | MUX_PA20F_TCC0_WO6)
-#define PORT_PA20F_TCC0_WO6 (1ul << 20)
-#define PIN_PB12F_TCC0_WO6 44L /**< \brief TCC0 signal: WO6 on PB12 mux F */
-#define MUX_PB12F_TCC0_WO6 5L
-#define PINMUX_PB12F_TCC0_WO6 ((PIN_PB12F_TCC0_WO6 << 16) | MUX_PB12F_TCC0_WO6)
-#define PORT_PB12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA13F_TCC0_WO7 13L /**< \brief TCC0 signal: WO7 on PA13 mux F */
-#define MUX_PA13F_TCC0_WO7 5L
-#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7)
-#define PORT_PA13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA21F_TCC0_WO7 21L /**< \brief TCC0 signal: WO7 on PA21 mux F */
-#define MUX_PA21F_TCC0_WO7 5L
-#define PINMUX_PA21F_TCC0_WO7 ((PIN_PA21F_TCC0_WO7 << 16) | MUX_PA21F_TCC0_WO7)
-#define PORT_PA21F_TCC0_WO7 (1ul << 21)
-#define PIN_PB13F_TCC0_WO7 45L /**< \brief TCC0 signal: WO7 on PB13 mux F */
-#define MUX_PB13F_TCC0_WO7 5L
-#define PINMUX_PB13F_TCC0_WO7 ((PIN_PB13F_TCC0_WO7 << 16) | MUX_PB13F_TCC0_WO7)
-#define PORT_PB13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PB30F_TCC1_WO2 62L /**< \brief TCC1 signal: WO2 on PB30 mux F */
-#define MUX_PB30F_TCC1_WO2 5L
-#define PINMUX_PB30F_TCC1_WO2 ((PIN_PB30F_TCC1_WO2 << 16) | MUX_PB30F_TCC1_WO2)
-#define PORT_PB30F_TCC1_WO2 (1ul << 30)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-#define PIN_PB31F_TCC1_WO3 63L /**< \brief TCC1 signal: WO3 on PB31 mux F */
-#define MUX_PB31F_TCC1_WO3 5L
-#define PINMUX_PB31F_TCC1_WO3 ((PIN_PB31F_TCC1_WO3 << 16) | MUX_PB31F_TCC1_WO3)
-#define PORT_PB31F_TCC1_WO3 (1ul << 31)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA12E_TCC2_WO0 12L /**< \brief TCC2 signal: WO0 on PA12 mux E */
-#define MUX_PA12E_TCC2_WO0 4L
-#define PINMUX_PA12E_TCC2_WO0 ((PIN_PA12E_TCC2_WO0 << 16) | MUX_PA12E_TCC2_WO0)
-#define PORT_PA12E_TCC2_WO0 (1ul << 12)
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA13E_TCC2_WO1 13L /**< \brief TCC2 signal: WO1 on PA13 mux E */
-#define MUX_PA13E_TCC2_WO1 4L
-#define PINMUX_PA13E_TCC2_WO1 ((PIN_PA13E_TCC2_WO1 << 16) | MUX_PA13E_TCC2_WO1)
-#define PORT_PA13E_TCC2_WO1 (1ul << 13)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PB08E_TC4_WO0 40L /**< \brief TC4 signal: WO0 on PB08 mux E */
-#define MUX_PB08E_TC4_WO0 4L
-#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0)
-#define PORT_PB08E_TC4_WO0 (1ul << 8)
-#define PIN_PB12E_TC4_WO0 44L /**< \brief TC4 signal: WO0 on PB12 mux E */
-#define MUX_PB12E_TC4_WO0 4L
-#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0)
-#define PORT_PB12E_TC4_WO0 (1ul << 12)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-#define PIN_PB09E_TC4_WO1 41L /**< \brief TC4 signal: WO1 on PB09 mux E */
-#define MUX_PB09E_TC4_WO1 4L
-#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1)
-#define PORT_PB09E_TC4_WO1 (1ul << 9)
-#define PIN_PB13E_TC4_WO1 45L /**< \brief TC4 signal: WO1 on PB13 mux E */
-#define MUX_PB13E_TC4_WO1 4L
-#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1)
-#define PORT_PB13E_TC4_WO1 (1ul << 13)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PB10E_TC5_WO0 42L /**< \brief TC5 signal: WO0 on PB10 mux E */
-#define MUX_PB10E_TC5_WO0 4L
-#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0)
-#define PORT_PB10E_TC5_WO0 (1ul << 10)
-#define PIN_PB14E_TC5_WO0 46L /**< \brief TC5 signal: WO0 on PB14 mux E */
-#define MUX_PB14E_TC5_WO0 4L
-#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0)
-#define PORT_PB14E_TC5_WO0 (1ul << 14)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-#define PIN_PB11E_TC5_WO1 43L /**< \brief TC5 signal: WO1 on PB11 mux E */
-#define MUX_PB11E_TC5_WO1 4L
-#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1)
-#define PORT_PB11E_TC5_WO1 (1ul << 11)
-#define PIN_PB15E_TC5_WO1 47L /**< \brief TC5 signal: WO1 on PB15 mux E */
-#define MUX_PB15E_TC5_WO1 4L
-#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1)
-#define PORT_PB15E_TC5_WO1 (1ul << 15)
-/* ========== PORT definition for TC6 peripheral ========== */
-#define PIN_PB02E_TC6_WO0 34L /**< \brief TC6 signal: WO0 on PB02 mux E */
-#define MUX_PB02E_TC6_WO0 4L
-#define PINMUX_PB02E_TC6_WO0 ((PIN_PB02E_TC6_WO0 << 16) | MUX_PB02E_TC6_WO0)
-#define PORT_PB02E_TC6_WO0 (1ul << 2)
-#define PIN_PB16E_TC6_WO0 48L /**< \brief TC6 signal: WO0 on PB16 mux E */
-#define MUX_PB16E_TC6_WO0 4L
-#define PINMUX_PB16E_TC6_WO0 ((PIN_PB16E_TC6_WO0 << 16) | MUX_PB16E_TC6_WO0)
-#define PORT_PB16E_TC6_WO0 (1ul << 16)
-#define PIN_PB03E_TC6_WO1 35L /**< \brief TC6 signal: WO1 on PB03 mux E */
-#define MUX_PB03E_TC6_WO1 4L
-#define PINMUX_PB03E_TC6_WO1 ((PIN_PB03E_TC6_WO1 << 16) | MUX_PB03E_TC6_WO1)
-#define PORT_PB03E_TC6_WO1 (1ul << 3)
-#define PIN_PB17E_TC6_WO1 49L /**< \brief TC6 signal: WO1 on PB17 mux E */
-#define MUX_PB17E_TC6_WO1 4L
-#define PINMUX_PB17E_TC6_WO1 ((PIN_PB17E_TC6_WO1 << 16) | MUX_PB17E_TC6_WO1)
-#define PORT_PB17E_TC6_WO1 (1ul << 17)
-/* ========== PORT definition for TC7 peripheral ========== */
-#define PIN_PA20E_TC7_WO0 20L /**< \brief TC7 signal: WO0 on PA20 mux E */
-#define MUX_PA20E_TC7_WO0 4L
-#define PINMUX_PA20E_TC7_WO0 ((PIN_PA20E_TC7_WO0 << 16) | MUX_PA20E_TC7_WO0)
-#define PORT_PA20E_TC7_WO0 (1ul << 20)
-#define PIN_PB00E_TC7_WO0 32L /**< \brief TC7 signal: WO0 on PB00 mux E */
-#define MUX_PB00E_TC7_WO0 4L
-#define PINMUX_PB00E_TC7_WO0 ((PIN_PB00E_TC7_WO0 << 16) | MUX_PB00E_TC7_WO0)
-#define PORT_PB00E_TC7_WO0 (1ul << 0)
-#define PIN_PB22E_TC7_WO0 54L /**< \brief TC7 signal: WO0 on PB22 mux E */
-#define MUX_PB22E_TC7_WO0 4L
-#define PINMUX_PB22E_TC7_WO0 ((PIN_PB22E_TC7_WO0 << 16) | MUX_PB22E_TC7_WO0)
-#define PORT_PB22E_TC7_WO0 (1ul << 22)
-#define PIN_PA21E_TC7_WO1 21L /**< \brief TC7 signal: WO1 on PA21 mux E */
-#define MUX_PA21E_TC7_WO1 4L
-#define PINMUX_PA21E_TC7_WO1 ((PIN_PA21E_TC7_WO1 << 16) | MUX_PA21E_TC7_WO1)
-#define PORT_PA21E_TC7_WO1 (1ul << 21)
-#define PIN_PB01E_TC7_WO1 33L /**< \brief TC7 signal: WO1 on PB01 mux E */
-#define MUX_PB01E_TC7_WO1 4L
-#define PINMUX_PB01E_TC7_WO1 ((PIN_PB01E_TC7_WO1 << 16) | MUX_PB01E_TC7_WO1)
-#define PORT_PB01E_TC7_WO1 (1ul << 1)
-#define PIN_PB23E_TC7_WO1 55L /**< \brief TC7 signal: WO1 on PB23 mux E */
-#define MUX_PB23E_TC7_WO1 4L
-#define PINMUX_PB23E_TC7_WO1 ((PIN_PB23E_TC7_WO1 << 16) | MUX_PB23E_TC7_WO1)
-#define PORT_PB23E_TC7_WO1 (1ul << 23)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PB08B_ADC_AIN2 40L /**< \brief ADC signal: AIN2 on PB08 mux B */
-#define MUX_PB08B_ADC_AIN2 1L
-#define PINMUX_PB08B_ADC_AIN2 ((PIN_PB08B_ADC_AIN2 << 16) | MUX_PB08B_ADC_AIN2)
-#define PORT_PB08B_ADC_AIN2 (1ul << 8)
-#define PIN_PB09B_ADC_AIN3 41L /**< \brief ADC signal: AIN3 on PB09 mux B */
-#define MUX_PB09B_ADC_AIN3 1L
-#define PINMUX_PB09B_ADC_AIN3 ((PIN_PB09B_ADC_AIN3 << 16) | MUX_PB09B_ADC_AIN3)
-#define PORT_PB09B_ADC_AIN3 (1ul << 9)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB00B_ADC_AIN8 32L /**< \brief ADC signal: AIN8 on PB00 mux B */
-#define MUX_PB00B_ADC_AIN8 1L
-#define PINMUX_PB00B_ADC_AIN8 ((PIN_PB00B_ADC_AIN8 << 16) | MUX_PB00B_ADC_AIN8)
-#define PORT_PB00B_ADC_AIN8 (1ul << 0)
-#define PIN_PB01B_ADC_AIN9 33L /**< \brief ADC signal: AIN9 on PB01 mux B */
-#define MUX_PB01B_ADC_AIN9 1L
-#define PINMUX_PB01B_ADC_AIN9 ((PIN_PB01B_ADC_AIN9 << 16) | MUX_PB01B_ADC_AIN9)
-#define PORT_PB01B_ADC_AIN9 (1ul << 1)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PB04B_ADC_AIN12 36L /**< \brief ADC signal: AIN12 on PB04 mux B */
-#define MUX_PB04B_ADC_AIN12 1L
-#define PINMUX_PB04B_ADC_AIN12 ((PIN_PB04B_ADC_AIN12 << 16) | MUX_PB04B_ADC_AIN12)
-#define PORT_PB04B_ADC_AIN12 (1ul << 4)
-#define PIN_PB05B_ADC_AIN13 37L /**< \brief ADC signal: AIN13 on PB05 mux B */
-#define MUX_PB05B_ADC_AIN13 1L
-#define PINMUX_PB05B_ADC_AIN13 ((PIN_PB05B_ADC_AIN13 << 16) | MUX_PB05B_ADC_AIN13)
-#define PORT_PB05B_ADC_AIN13 (1ul << 5)
-#define PIN_PB06B_ADC_AIN14 38L /**< \brief ADC signal: AIN14 on PB06 mux B */
-#define MUX_PB06B_ADC_AIN14 1L
-#define PINMUX_PB06B_ADC_AIN14 ((PIN_PB06B_ADC_AIN14 << 16) | MUX_PB06B_ADC_AIN14)
-#define PORT_PB06B_ADC_AIN14 (1ul << 6)
-#define PIN_PB07B_ADC_AIN15 39L /**< \brief ADC signal: AIN15 on PB07 mux B */
-#define MUX_PB07B_ADC_AIN15 1L
-#define PINMUX_PB07B_ADC_AIN15 ((PIN_PB07B_ADC_AIN15 << 16) | MUX_PB07B_ADC_AIN15)
-#define PORT_PB07B_ADC_AIN15 (1ul << 7)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA12H_AC_CMP0 12L /**< \brief AC signal: CMP0 on PA12 mux H */
-#define MUX_PA12H_AC_CMP0 7L
-#define PINMUX_PA12H_AC_CMP0 ((PIN_PA12H_AC_CMP0 << 16) | MUX_PA12H_AC_CMP0)
-#define PORT_PA12H_AC_CMP0 (1ul << 12)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA13H_AC_CMP1 13L /**< \brief AC signal: CMP1 on PA13 mux H */
-#define MUX_PA13H_AC_CMP1 7L
-#define PINMUX_PA13H_AC_CMP1 ((PIN_PA13H_AC_CMP1 << 16) | MUX_PA13H_AC_CMP1)
-#define PORT_PA13H_AC_CMP1 (1ul << 13)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA21G_I2S_FS0 21L /**< \brief I2S signal: FS0 on PA21 mux G */
-#define MUX_PA21G_I2S_FS0 6L
-#define PINMUX_PA21G_I2S_FS0 ((PIN_PA21G_I2S_FS0 << 16) | MUX_PA21G_I2S_FS0)
-#define PORT_PA21G_I2S_FS0 (1ul << 21)
-#define PIN_PB12G_I2S_FS1 44L /**< \brief I2S signal: FS1 on PB12 mux G */
-#define MUX_PB12G_I2S_FS1 6L
-#define PINMUX_PB12G_I2S_FS1 ((PIN_PB12G_I2S_FS1 << 16) | MUX_PB12G_I2S_FS1)
-#define PORT_PB12G_I2S_FS1 (1ul << 12)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PB17G_I2S_MCK0 49L /**< \brief I2S signal: MCK0 on PB17 mux G */
-#define MUX_PB17G_I2S_MCK0 6L
-#define PINMUX_PB17G_I2S_MCK0 ((PIN_PB17G_I2S_MCK0 << 16) | MUX_PB17G_I2S_MCK0)
-#define PORT_PB17G_I2S_MCK0 (1ul << 17)
-#define PIN_PB10G_I2S_MCK1 42L /**< \brief I2S signal: MCK1 on PB10 mux G */
-#define MUX_PB10G_I2S_MCK1 6L
-#define PINMUX_PB10G_I2S_MCK1 ((PIN_PB10G_I2S_MCK1 << 16) | MUX_PB10G_I2S_MCK1)
-#define PORT_PB10G_I2S_MCK1 (1ul << 10)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA20G_I2S_SCK0 20L /**< \brief I2S signal: SCK0 on PA20 mux G */
-#define MUX_PA20G_I2S_SCK0 6L
-#define PINMUX_PA20G_I2S_SCK0 ((PIN_PA20G_I2S_SCK0 << 16) | MUX_PA20G_I2S_SCK0)
-#define PORT_PA20G_I2S_SCK0 (1ul << 20)
-#define PIN_PB11G_I2S_SCK1 43L /**< \brief I2S signal: SCK1 on PB11 mux G */
-#define MUX_PB11G_I2S_SCK1 6L
-#define PINMUX_PB11G_I2S_SCK1 ((PIN_PB11G_I2S_SCK1 << 16) | MUX_PB11G_I2S_SCK1)
-#define PORT_PB11G_I2S_SCK1 (1ul << 11)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-#define PIN_PB16G_I2S_SD1 48L /**< \brief I2S signal: SD1 on PB16 mux G */
-#define MUX_PB16G_I2S_SD1 6L
-#define PINMUX_PB16G_I2S_SD1 ((PIN_PB16G_I2S_SD1 << 16) | MUX_PB16G_I2S_SD1)
-#define PORT_PB16G_I2S_SD1 (1ul << 16)
-
-#endif /* _SAMD21J17A_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j17d.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j17d.h
deleted file mode 100644
index 51393ef..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j17d.h
+++ /dev/null
@@ -1,1297 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21J17D
- *
- * Copyright (c) 2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _SAMD21J17D_PIO_
-#define _SAMD21J17D_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA12 12 /**< \brief Pin Number for PA12 */
-#define PORT_PA12 (1ul << 12) /**< \brief PORT Mask for PA12 */
-#define PIN_PA13 13 /**< \brief Pin Number for PA13 */
-#define PORT_PA13 (1ul << 13) /**< \brief PORT Mask for PA13 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA20 20 /**< \brief Pin Number for PA20 */
-#define PORT_PA20 (1ul << 20) /**< \brief PORT Mask for PA20 */
-#define PIN_PA21 21 /**< \brief Pin Number for PA21 */
-#define PORT_PA21 (1ul << 21) /**< \brief PORT Mask for PA21 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB00 32 /**< \brief Pin Number for PB00 */
-#define PORT_PB00 (1ul << 0) /**< \brief PORT Mask for PB00 */
-#define PIN_PB01 33 /**< \brief Pin Number for PB01 */
-#define PORT_PB01 (1ul << 1) /**< \brief PORT Mask for PB01 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB04 36 /**< \brief Pin Number for PB04 */
-#define PORT_PB04 (1ul << 4) /**< \brief PORT Mask for PB04 */
-#define PIN_PB05 37 /**< \brief Pin Number for PB05 */
-#define PORT_PB05 (1ul << 5) /**< \brief PORT Mask for PB05 */
-#define PIN_PB06 38 /**< \brief Pin Number for PB06 */
-#define PORT_PB06 (1ul << 6) /**< \brief PORT Mask for PB06 */
-#define PIN_PB07 39 /**< \brief Pin Number for PB07 */
-#define PORT_PB07 (1ul << 7) /**< \brief PORT Mask for PB07 */
-#define PIN_PB08 40 /**< \brief Pin Number for PB08 */
-#define PORT_PB08 (1ul << 8) /**< \brief PORT Mask for PB08 */
-#define PIN_PB09 41 /**< \brief Pin Number for PB09 */
-#define PORT_PB09 (1ul << 9) /**< \brief PORT Mask for PB09 */
-#define PIN_PB10 42 /**< \brief Pin Number for PB10 */
-#define PORT_PB10 (1ul << 10) /**< \brief PORT Mask for PB10 */
-#define PIN_PB11 43 /**< \brief Pin Number for PB11 */
-#define PORT_PB11 (1ul << 11) /**< \brief PORT Mask for PB11 */
-#define PIN_PB12 44 /**< \brief Pin Number for PB12 */
-#define PORT_PB12 (1ul << 12) /**< \brief PORT Mask for PB12 */
-#define PIN_PB13 45 /**< \brief Pin Number for PB13 */
-#define PORT_PB13 (1ul << 13) /**< \brief PORT Mask for PB13 */
-#define PIN_PB14 46 /**< \brief Pin Number for PB14 */
-#define PORT_PB14 (1ul << 14) /**< \brief PORT Mask for PB14 */
-#define PIN_PB15 47 /**< \brief Pin Number for PB15 */
-#define PORT_PB15 (1ul << 15) /**< \brief PORT Mask for PB15 */
-#define PIN_PB16 48 /**< \brief Pin Number for PB16 */
-#define PORT_PB16 (1ul << 16) /**< \brief PORT Mask for PB16 */
-#define PIN_PB17 49 /**< \brief Pin Number for PB17 */
-#define PORT_PB17 (1ul << 17) /**< \brief PORT Mask for PB17 */
-#define PIN_PB22 54 /**< \brief Pin Number for PB22 */
-#define PORT_PB22 (1ul << 22) /**< \brief PORT Mask for PB22 */
-#define PIN_PB23 55 /**< \brief Pin Number for PB23 */
-#define PORT_PB23 (1ul << 23) /**< \brief PORT Mask for PB23 */
-#define PIN_PB30 62 /**< \brief Pin Number for PB30 */
-#define PORT_PB30 (1ul << 30) /**< \brief PORT Mask for PB30 */
-#define PIN_PB31 63 /**< \brief Pin Number for PB31 */
-#define PORT_PB31 (1ul << 31) /**< \brief PORT Mask for PB31 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PB14H_GCLK_IO0 46L /**< \brief GCLK signal: IO0 on PB14 mux H */
-#define MUX_PB14H_GCLK_IO0 7L
-#define PINMUX_PB14H_GCLK_IO0 ((PIN_PB14H_GCLK_IO0 << 16) | MUX_PB14H_GCLK_IO0)
-#define PORT_PB14H_GCLK_IO0 (1ul << 14)
-#define PIN_PB22H_GCLK_IO0 54L /**< \brief GCLK signal: IO0 on PB22 mux H */
-#define MUX_PB22H_GCLK_IO0 7L
-#define PINMUX_PB22H_GCLK_IO0 ((PIN_PB22H_GCLK_IO0 << 16) | MUX_PB22H_GCLK_IO0)
-#define PORT_PB22H_GCLK_IO0 (1ul << 22)
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PB15H_GCLK_IO1 47L /**< \brief GCLK signal: IO1 on PB15 mux H */
-#define MUX_PB15H_GCLK_IO1 7L
-#define PINMUX_PB15H_GCLK_IO1 ((PIN_PB15H_GCLK_IO1 << 16) | MUX_PB15H_GCLK_IO1)
-#define PORT_PB15H_GCLK_IO1 (1ul << 15)
-#define PIN_PB23H_GCLK_IO1 55L /**< \brief GCLK signal: IO1 on PB23 mux H */
-#define MUX_PB23H_GCLK_IO1 7L
-#define PINMUX_PB23H_GCLK_IO1 ((PIN_PB23H_GCLK_IO1 << 16) | MUX_PB23H_GCLK_IO1)
-#define PORT_PB23H_GCLK_IO1 (1ul << 23)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PB16H_GCLK_IO2 48L /**< \brief GCLK signal: IO2 on PB16 mux H */
-#define MUX_PB16H_GCLK_IO2 7L
-#define PINMUX_PB16H_GCLK_IO2 ((PIN_PB16H_GCLK_IO2 << 16) | MUX_PB16H_GCLK_IO2)
-#define PORT_PB16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PB17H_GCLK_IO3 49L /**< \brief GCLK signal: IO3 on PB17 mux H */
-#define MUX_PB17H_GCLK_IO3 7L
-#define PINMUX_PB17H_GCLK_IO3 ((PIN_PB17H_GCLK_IO3 << 16) | MUX_PB17H_GCLK_IO3)
-#define PORT_PB17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA20H_GCLK_IO4 20L /**< \brief GCLK signal: IO4 on PA20 mux H */
-#define MUX_PA20H_GCLK_IO4 7L
-#define PINMUX_PA20H_GCLK_IO4 ((PIN_PA20H_GCLK_IO4 << 16) | MUX_PA20H_GCLK_IO4)
-#define PORT_PA20H_GCLK_IO4 (1ul << 20)
-#define PIN_PB10H_GCLK_IO4 42L /**< \brief GCLK signal: IO4 on PB10 mux H */
-#define MUX_PB10H_GCLK_IO4 7L
-#define PINMUX_PB10H_GCLK_IO4 ((PIN_PB10H_GCLK_IO4 << 16) | MUX_PB10H_GCLK_IO4)
-#define PORT_PB10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA21H_GCLK_IO5 21L /**< \brief GCLK signal: IO5 on PA21 mux H */
-#define MUX_PA21H_GCLK_IO5 7L
-#define PINMUX_PA21H_GCLK_IO5 ((PIN_PA21H_GCLK_IO5 << 16) | MUX_PA21H_GCLK_IO5)
-#define PORT_PA21H_GCLK_IO5 (1ul << 21)
-#define PIN_PB11H_GCLK_IO5 43L /**< \brief GCLK signal: IO5 on PB11 mux H */
-#define MUX_PB11H_GCLK_IO5 7L
-#define PINMUX_PB11H_GCLK_IO5 ((PIN_PB11H_GCLK_IO5 << 16) | MUX_PB11H_GCLK_IO5)
-#define PORT_PB11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PB12H_GCLK_IO6 44L /**< \brief GCLK signal: IO6 on PB12 mux H */
-#define MUX_PB12H_GCLK_IO6 7L
-#define PINMUX_PB12H_GCLK_IO6 ((PIN_PB12H_GCLK_IO6 << 16) | MUX_PB12H_GCLK_IO6)
-#define PORT_PB12H_GCLK_IO6 (1ul << 12)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-#define PIN_PB13H_GCLK_IO7 45L /**< \brief GCLK signal: IO7 on PB13 mux H */
-#define MUX_PB13H_GCLK_IO7 7L
-#define PINMUX_PB13H_GCLK_IO7 ((PIN_PB13H_GCLK_IO7 << 16) | MUX_PB13H_GCLK_IO7)
-#define PORT_PB13H_GCLK_IO7 (1ul << 13)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA16A_EIC_EXTINT_NUM 0L /**< \brief EIC signal: PIN_PA16 External Interrupt Line */
-#define PIN_PB00A_EIC_EXTINT0 32L /**< \brief EIC signal: EXTINT0 on PB00 mux A */
-#define MUX_PB00A_EIC_EXTINT0 0L
-#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0)
-#define PORT_PB00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PB00A_EIC_EXTINT_NUM 0L /**< \brief EIC signal: PIN_PB00 External Interrupt Line */
-#define PIN_PB16A_EIC_EXTINT0 48L /**< \brief EIC signal: EXTINT0 on PB16 mux A */
-#define MUX_PB16A_EIC_EXTINT0 0L
-#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0)
-#define PORT_PB16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PB16A_EIC_EXTINT_NUM 0L /**< \brief EIC signal: PIN_PB16 External Interrupt Line */
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA00A_EIC_EXTINT_NUM 0L /**< \brief EIC signal: PIN_PA00 External Interrupt Line */
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA17A_EIC_EXTINT_NUM 1L /**< \brief EIC signal: PIN_PA17 External Interrupt Line */
-#define PIN_PB01A_EIC_EXTINT1 33L /**< \brief EIC signal: EXTINT1 on PB01 mux A */
-#define MUX_PB01A_EIC_EXTINT1 0L
-#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1)
-#define PORT_PB01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PB01A_EIC_EXTINT_NUM 1L /**< \brief EIC signal: PIN_PB01 External Interrupt Line */
-#define PIN_PB17A_EIC_EXTINT1 49L /**< \brief EIC signal: EXTINT1 on PB17 mux A */
-#define MUX_PB17A_EIC_EXTINT1 0L
-#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1)
-#define PORT_PB17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PB17A_EIC_EXTINT_NUM 1L /**< \brief EIC signal: PIN_PB17 External Interrupt Line */
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA01A_EIC_EXTINT_NUM 1L /**< \brief EIC signal: PIN_PA01 External Interrupt Line */
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA18A_EIC_EXTINT_NUM 2L /**< \brief EIC signal: PIN_PA18 External Interrupt Line */
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA02A_EIC_EXTINT_NUM 2L /**< \brief EIC signal: PIN_PA02 External Interrupt Line */
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PB02A_EIC_EXTINT_NUM 2L /**< \brief EIC signal: PIN_PB02 External Interrupt Line */
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA03A_EIC_EXTINT_NUM 3L /**< \brief EIC signal: PIN_PA03 External Interrupt Line */
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PA19A_EIC_EXTINT_NUM 3L /**< \brief EIC signal: PIN_PA19 External Interrupt Line */
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PB03A_EIC_EXTINT_NUM 3L /**< \brief EIC signal: PIN_PB03 External Interrupt Line */
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA04A_EIC_EXTINT_NUM 4L /**< \brief EIC signal: PIN_PA04 External Interrupt Line */
-#define PIN_PA20A_EIC_EXTINT4 20L /**< \brief EIC signal: EXTINT4 on PA20 mux A */
-#define MUX_PA20A_EIC_EXTINT4 0L
-#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4)
-#define PORT_PA20A_EIC_EXTINT4 (1ul << 20)
-#define PIN_PA20A_EIC_EXTINT_NUM 4L /**< \brief EIC signal: PIN_PA20 External Interrupt Line */
-#define PIN_PB04A_EIC_EXTINT4 36L /**< \brief EIC signal: EXTINT4 on PB04 mux A */
-#define MUX_PB04A_EIC_EXTINT4 0L
-#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4)
-#define PORT_PB04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PB04A_EIC_EXTINT_NUM 4L /**< \brief EIC signal: PIN_PB04 External Interrupt Line */
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA05A_EIC_EXTINT_NUM 5L /**< \brief EIC signal: PIN_PA05 External Interrupt Line */
-#define PIN_PA21A_EIC_EXTINT5 21L /**< \brief EIC signal: EXTINT5 on PA21 mux A */
-#define MUX_PA21A_EIC_EXTINT5 0L
-#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5)
-#define PORT_PA21A_EIC_EXTINT5 (1ul << 21)
-#define PIN_PA21A_EIC_EXTINT_NUM 5L /**< \brief EIC signal: PIN_PA21 External Interrupt Line */
-#define PIN_PB05A_EIC_EXTINT5 37L /**< \brief EIC signal: EXTINT5 on PB05 mux A */
-#define MUX_PB05A_EIC_EXTINT5 0L
-#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5)
-#define PORT_PB05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PB05A_EIC_EXTINT_NUM 5L /**< \brief EIC signal: PIN_PB05 External Interrupt Line */
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA06A_EIC_EXTINT_NUM 6L /**< \brief EIC signal: PIN_PA06 External Interrupt Line */
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA22A_EIC_EXTINT_NUM 6L /**< \brief EIC signal: PIN_PA22 External Interrupt Line */
-#define PIN_PB06A_EIC_EXTINT6 38L /**< \brief EIC signal: EXTINT6 on PB06 mux A */
-#define MUX_PB06A_EIC_EXTINT6 0L
-#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6)
-#define PORT_PB06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PB06A_EIC_EXTINT_NUM 6L /**< \brief EIC signal: PIN_PB06 External Interrupt Line */
-#define PIN_PB22A_EIC_EXTINT6 54L /**< \brief EIC signal: EXTINT6 on PB22 mux A */
-#define MUX_PB22A_EIC_EXTINT6 0L
-#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6)
-#define PORT_PB22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PB22A_EIC_EXTINT_NUM 6L /**< \brief EIC signal: PIN_PB22 External Interrupt Line */
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA07A_EIC_EXTINT_NUM 7L /**< \brief EIC signal: PIN_PA07 External Interrupt Line */
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA23A_EIC_EXTINT_NUM 7L /**< \brief EIC signal: PIN_PA23 External Interrupt Line */
-#define PIN_PB07A_EIC_EXTINT7 39L /**< \brief EIC signal: EXTINT7 on PB07 mux A */
-#define MUX_PB07A_EIC_EXTINT7 0L
-#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7)
-#define PORT_PB07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PB07A_EIC_EXTINT_NUM 7L /**< \brief EIC signal: PIN_PB07 External Interrupt Line */
-#define PIN_PB23A_EIC_EXTINT7 55L /**< \brief EIC signal: EXTINT7 on PB23 mux A */
-#define MUX_PB23A_EIC_EXTINT7 0L
-#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7)
-#define PORT_PB23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PB23A_EIC_EXTINT_NUM 7L /**< \brief EIC signal: PIN_PB23 External Interrupt Line */
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PA28A_EIC_EXTINT_NUM 8L /**< \brief EIC signal: PIN_PA28 External Interrupt Line */
-#define PIN_PB08A_EIC_EXTINT8 40L /**< \brief EIC signal: EXTINT8 on PB08 mux A */
-#define MUX_PB08A_EIC_EXTINT8 0L
-#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8)
-#define PORT_PB08A_EIC_EXTINT8 (1ul << 8)
-#define PIN_PB08A_EIC_EXTINT_NUM 8L /**< \brief EIC signal: PIN_PB08 External Interrupt Line */
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA09A_EIC_EXTINT_NUM 9L /**< \brief EIC signal: PIN_PA09 External Interrupt Line */
-#define PIN_PB09A_EIC_EXTINT9 41L /**< \brief EIC signal: EXTINT9 on PB09 mux A */
-#define MUX_PB09A_EIC_EXTINT9 0L
-#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9)
-#define PORT_PB09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PB09A_EIC_EXTINT_NUM 9L /**< \brief EIC signal: PIN_PB09 External Interrupt Line */
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA10A_EIC_EXTINT_NUM 10L /**< \brief EIC signal: PIN_PA10 External Interrupt Line */
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PA30A_EIC_EXTINT_NUM 10L /**< \brief EIC signal: PIN_PA30 External Interrupt Line */
-#define PIN_PB10A_EIC_EXTINT10 42L /**< \brief EIC signal: EXTINT10 on PB10 mux A */
-#define MUX_PB10A_EIC_EXTINT10 0L
-#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10)
-#define PORT_PB10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PB10A_EIC_EXTINT_NUM 10L /**< \brief EIC signal: PIN_PB10 External Interrupt Line */
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA11A_EIC_EXTINT_NUM 11L /**< \brief EIC signal: PIN_PA11 External Interrupt Line */
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PA31A_EIC_EXTINT_NUM 11L /**< \brief EIC signal: PIN_PA31 External Interrupt Line */
-#define PIN_PB11A_EIC_EXTINT11 43L /**< \brief EIC signal: EXTINT11 on PB11 mux A */
-#define MUX_PB11A_EIC_EXTINT11 0L
-#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11)
-#define PORT_PB11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PB11A_EIC_EXTINT_NUM 11L /**< \brief EIC signal: PIN_PB11 External Interrupt Line */
-#define PIN_PA12A_EIC_EXTINT12 12L /**< \brief EIC signal: EXTINT12 on PA12 mux A */
-#define MUX_PA12A_EIC_EXTINT12 0L
-#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12)
-#define PORT_PA12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA12A_EIC_EXTINT_NUM 12L /**< \brief EIC signal: PIN_PA12 External Interrupt Line */
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PA24A_EIC_EXTINT_NUM 12L /**< \brief EIC signal: PIN_PA24 External Interrupt Line */
-#define PIN_PB12A_EIC_EXTINT12 44L /**< \brief EIC signal: EXTINT12 on PB12 mux A */
-#define MUX_PB12A_EIC_EXTINT12 0L
-#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12)
-#define PORT_PB12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PB12A_EIC_EXTINT_NUM 12L /**< \brief EIC signal: PIN_PB12 External Interrupt Line */
-#define PIN_PA13A_EIC_EXTINT13 13L /**< \brief EIC signal: EXTINT13 on PA13 mux A */
-#define MUX_PA13A_EIC_EXTINT13 0L
-#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13)
-#define PORT_PA13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PA13A_EIC_EXTINT_NUM 13L /**< \brief EIC signal: PIN_PA13 External Interrupt Line */
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PA25A_EIC_EXTINT_NUM 13L /**< \brief EIC signal: PIN_PA25 External Interrupt Line */
-#define PIN_PB13A_EIC_EXTINT13 45L /**< \brief EIC signal: EXTINT13 on PB13 mux A */
-#define MUX_PB13A_EIC_EXTINT13 0L
-#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13)
-#define PORT_PB13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PB13A_EIC_EXTINT_NUM 13L /**< \brief EIC signal: PIN_PB13 External Interrupt Line */
-#define PIN_PB14A_EIC_EXTINT14 46L /**< \brief EIC signal: EXTINT14 on PB14 mux A */
-#define MUX_PB14A_EIC_EXTINT14 0L
-#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14)
-#define PORT_PB14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PB14A_EIC_EXTINT_NUM 14L /**< \brief EIC signal: PIN_PB14 External Interrupt Line */
-#define PIN_PB30A_EIC_EXTINT14 62L /**< \brief EIC signal: EXTINT14 on PB30 mux A */
-#define MUX_PB30A_EIC_EXTINT14 0L
-#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14)
-#define PORT_PB30A_EIC_EXTINT14 (1ul << 30)
-#define PIN_PB30A_EIC_EXTINT_NUM 14L /**< \brief EIC signal: PIN_PB30 External Interrupt Line */
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA14A_EIC_EXTINT_NUM 14L /**< \brief EIC signal: PIN_PA14 External Interrupt Line */
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA15A_EIC_EXTINT_NUM 15L /**< \brief EIC signal: PIN_PA15 External Interrupt Line */
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PA27A_EIC_EXTINT_NUM 15L /**< \brief EIC signal: PIN_PA27 External Interrupt Line */
-#define PIN_PB15A_EIC_EXTINT15 47L /**< \brief EIC signal: EXTINT15 on PB15 mux A */
-#define MUX_PB15A_EIC_EXTINT15 0L
-#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15)
-#define PORT_PB15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PB15A_EIC_EXTINT_NUM 15L /**< \brief EIC signal: PIN_PB15 External Interrupt Line */
-#define PIN_PB31A_EIC_EXTINT15 63L /**< \brief EIC signal: EXTINT15 on PB31 mux A */
-#define MUX_PB31A_EIC_EXTINT15 0L
-#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15)
-#define PORT_PB31A_EIC_EXTINT15 (1ul << 31)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA12C_SERCOM2_PAD0 12L /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */
-#define MUX_PA12C_SERCOM2_PAD0 2L
-#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0)
-#define PORT_PA12C_SERCOM2_PAD0 (1ul << 12)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA13C_SERCOM2_PAD1 13L /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */
-#define MUX_PA13C_SERCOM2_PAD1 2L
-#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1)
-#define PORT_PA13C_SERCOM2_PAD1 (1ul << 13)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA20D_SERCOM3_PAD2 20L /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */
-#define MUX_PA20D_SERCOM3_PAD2 3L
-#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2)
-#define PORT_PA20D_SERCOM3_PAD2 (1ul << 20)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA21D_SERCOM3_PAD3 21L /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */
-#define MUX_PA21D_SERCOM3_PAD3 3L
-#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3)
-#define PORT_PA21D_SERCOM3_PAD3 (1ul << 21)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for SERCOM4 peripheral ========== */
-#define PIN_PA12D_SERCOM4_PAD0 12L /**< \brief SERCOM4 signal: PAD0 on PA12 mux D */
-#define MUX_PA12D_SERCOM4_PAD0 3L
-#define PINMUX_PA12D_SERCOM4_PAD0 ((PIN_PA12D_SERCOM4_PAD0 << 16) | MUX_PA12D_SERCOM4_PAD0)
-#define PORT_PA12D_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PB08D_SERCOM4_PAD0 40L /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */
-#define MUX_PB08D_SERCOM4_PAD0 3L
-#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0)
-#define PORT_PB08D_SERCOM4_PAD0 (1ul << 8)
-#define PIN_PB12C_SERCOM4_PAD0 44L /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */
-#define MUX_PB12C_SERCOM4_PAD0 2L
-#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0)
-#define PORT_PB12C_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PA13D_SERCOM4_PAD1 13L /**< \brief SERCOM4 signal: PAD1 on PA13 mux D */
-#define MUX_PA13D_SERCOM4_PAD1 3L
-#define PINMUX_PA13D_SERCOM4_PAD1 ((PIN_PA13D_SERCOM4_PAD1 << 16) | MUX_PA13D_SERCOM4_PAD1)
-#define PORT_PA13D_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PB09D_SERCOM4_PAD1 41L /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */
-#define MUX_PB09D_SERCOM4_PAD1 3L
-#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1)
-#define PORT_PB09D_SERCOM4_PAD1 (1ul << 9)
-#define PIN_PB13C_SERCOM4_PAD1 45L /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */
-#define MUX_PB13C_SERCOM4_PAD1 2L
-#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1)
-#define PORT_PB13C_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PA14D_SERCOM4_PAD2 14L /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */
-#define MUX_PA14D_SERCOM4_PAD2 3L
-#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2)
-#define PORT_PA14D_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PB10D_SERCOM4_PAD2 42L /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */
-#define MUX_PB10D_SERCOM4_PAD2 3L
-#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2)
-#define PORT_PB10D_SERCOM4_PAD2 (1ul << 10)
-#define PIN_PB14C_SERCOM4_PAD2 46L /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */
-#define MUX_PB14C_SERCOM4_PAD2 2L
-#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2)
-#define PORT_PB14C_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PA15D_SERCOM4_PAD3 15L /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */
-#define MUX_PA15D_SERCOM4_PAD3 3L
-#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3)
-#define PORT_PA15D_SERCOM4_PAD3 (1ul << 15)
-#define PIN_PB11D_SERCOM4_PAD3 43L /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */
-#define MUX_PB11D_SERCOM4_PAD3 3L
-#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3)
-#define PORT_PB11D_SERCOM4_PAD3 (1ul << 11)
-#define PIN_PB15C_SERCOM4_PAD3 47L /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */
-#define MUX_PB15C_SERCOM4_PAD3 2L
-#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3)
-#define PORT_PB15C_SERCOM4_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM5 peripheral ========== */
-#define PIN_PB16C_SERCOM5_PAD0 48L /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */
-#define MUX_PB16C_SERCOM5_PAD0 2L
-#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0)
-#define PORT_PB16C_SERCOM5_PAD0 (1ul << 16)
-#define PIN_PA22D_SERCOM5_PAD0 22L /**< \brief SERCOM5 signal: PAD0 on PA22 mux D */
-#define MUX_PA22D_SERCOM5_PAD0 3L
-#define PINMUX_PA22D_SERCOM5_PAD0 ((PIN_PA22D_SERCOM5_PAD0 << 16) | MUX_PA22D_SERCOM5_PAD0)
-#define PORT_PA22D_SERCOM5_PAD0 (1ul << 22)
-#define PIN_PB02D_SERCOM5_PAD0 34L /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */
-#define MUX_PB02D_SERCOM5_PAD0 3L
-#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0)
-#define PORT_PB02D_SERCOM5_PAD0 (1ul << 2)
-#define PIN_PB30D_SERCOM5_PAD0 62L /**< \brief SERCOM5 signal: PAD0 on PB30 mux D */
-#define MUX_PB30D_SERCOM5_PAD0 3L
-#define PINMUX_PB30D_SERCOM5_PAD0 ((PIN_PB30D_SERCOM5_PAD0 << 16) | MUX_PB30D_SERCOM5_PAD0)
-#define PORT_PB30D_SERCOM5_PAD0 (1ul << 30)
-#define PIN_PB17C_SERCOM5_PAD1 49L /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */
-#define MUX_PB17C_SERCOM5_PAD1 2L
-#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1)
-#define PORT_PB17C_SERCOM5_PAD1 (1ul << 17)
-#define PIN_PA23D_SERCOM5_PAD1 23L /**< \brief SERCOM5 signal: PAD1 on PA23 mux D */
-#define MUX_PA23D_SERCOM5_PAD1 3L
-#define PINMUX_PA23D_SERCOM5_PAD1 ((PIN_PA23D_SERCOM5_PAD1 << 16) | MUX_PA23D_SERCOM5_PAD1)
-#define PORT_PA23D_SERCOM5_PAD1 (1ul << 23)
-#define PIN_PB03D_SERCOM5_PAD1 35L /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */
-#define MUX_PB03D_SERCOM5_PAD1 3L
-#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1)
-#define PORT_PB03D_SERCOM5_PAD1 (1ul << 3)
-#define PIN_PB31D_SERCOM5_PAD1 63L /**< \brief SERCOM5 signal: PAD1 on PB31 mux D */
-#define MUX_PB31D_SERCOM5_PAD1 3L
-#define PINMUX_PB31D_SERCOM5_PAD1 ((PIN_PB31D_SERCOM5_PAD1 << 16) | MUX_PB31D_SERCOM5_PAD1)
-#define PORT_PB31D_SERCOM5_PAD1 (1ul << 31)
-#define PIN_PA24D_SERCOM5_PAD2 24L /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */
-#define MUX_PA24D_SERCOM5_PAD2 3L
-#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2)
-#define PORT_PA24D_SERCOM5_PAD2 (1ul << 24)
-#define PIN_PB00D_SERCOM5_PAD2 32L /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */
-#define MUX_PB00D_SERCOM5_PAD2 3L
-#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2)
-#define PORT_PB00D_SERCOM5_PAD2 (1ul << 0)
-#define PIN_PB22D_SERCOM5_PAD2 54L /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */
-#define MUX_PB22D_SERCOM5_PAD2 3L
-#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2)
-#define PORT_PB22D_SERCOM5_PAD2 (1ul << 22)
-#define PIN_PA20C_SERCOM5_PAD2 20L /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */
-#define MUX_PA20C_SERCOM5_PAD2 2L
-#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2)
-#define PORT_PA20C_SERCOM5_PAD2 (1ul << 20)
-#define PIN_PA25D_SERCOM5_PAD3 25L /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */
-#define MUX_PA25D_SERCOM5_PAD3 3L
-#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3)
-#define PORT_PA25D_SERCOM5_PAD3 (1ul << 25)
-#define PIN_PB01D_SERCOM5_PAD3 33L /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */
-#define MUX_PB01D_SERCOM5_PAD3 3L
-#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3)
-#define PORT_PB01D_SERCOM5_PAD3 (1ul << 1)
-#define PIN_PB23D_SERCOM5_PAD3 55L /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */
-#define MUX_PB23D_SERCOM5_PAD3 3L
-#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3)
-#define PORT_PB23D_SERCOM5_PAD3 (1ul << 23)
-#define PIN_PA21C_SERCOM5_PAD3 21L /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */
-#define MUX_PA21C_SERCOM5_PAD3 2L
-#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3)
-#define PORT_PA21C_SERCOM5_PAD3 (1ul << 21)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PB30E_TCC0_WO0 62L /**< \brief TCC0 signal: WO0 on PB30 mux E */
-#define MUX_PB30E_TCC0_WO0 4L
-#define PINMUX_PB30E_TCC0_WO0 ((PIN_PB30E_TCC0_WO0 << 16) | MUX_PB30E_TCC0_WO0)
-#define PORT_PB30E_TCC0_WO0 (1ul << 30)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PB31E_TCC0_WO1 63L /**< \brief TCC0 signal: WO1 on PB31 mux E */
-#define MUX_PB31E_TCC0_WO1 4L
-#define PINMUX_PB31E_TCC0_WO1 ((PIN_PB31E_TCC0_WO1 << 16) | MUX_PB31E_TCC0_WO1)
-#define PORT_PB31E_TCC0_WO1 (1ul << 31)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PB10F_TCC0_WO4 42L /**< \brief TCC0 signal: WO4 on PB10 mux F */
-#define MUX_PB10F_TCC0_WO4 5L
-#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4)
-#define PORT_PB10F_TCC0_WO4 (1ul << 10)
-#define PIN_PB16F_TCC0_WO4 48L /**< \brief TCC0 signal: WO4 on PB16 mux F */
-#define MUX_PB16F_TCC0_WO4 5L
-#define PINMUX_PB16F_TCC0_WO4 ((PIN_PB16F_TCC0_WO4 << 16) | MUX_PB16F_TCC0_WO4)
-#define PORT_PB16F_TCC0_WO4 (1ul << 16)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PB11F_TCC0_WO5 43L /**< \brief TCC0 signal: WO5 on PB11 mux F */
-#define MUX_PB11F_TCC0_WO5 5L
-#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5)
-#define PORT_PB11F_TCC0_WO5 (1ul << 11)
-#define PIN_PB17F_TCC0_WO5 49L /**< \brief TCC0 signal: WO5 on PB17 mux F */
-#define MUX_PB17F_TCC0_WO5 5L
-#define PINMUX_PB17F_TCC0_WO5 ((PIN_PB17F_TCC0_WO5 << 16) | MUX_PB17F_TCC0_WO5)
-#define PORT_PB17F_TCC0_WO5 (1ul << 17)
-#define PIN_PA12F_TCC0_WO6 12L /**< \brief TCC0 signal: WO6 on PA12 mux F */
-#define MUX_PA12F_TCC0_WO6 5L
-#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6)
-#define PORT_PA12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA20F_TCC0_WO6 20L /**< \brief TCC0 signal: WO6 on PA20 mux F */
-#define MUX_PA20F_TCC0_WO6 5L
-#define PINMUX_PA20F_TCC0_WO6 ((PIN_PA20F_TCC0_WO6 << 16) | MUX_PA20F_TCC0_WO6)
-#define PORT_PA20F_TCC0_WO6 (1ul << 20)
-#define PIN_PB12F_TCC0_WO6 44L /**< \brief TCC0 signal: WO6 on PB12 mux F */
-#define MUX_PB12F_TCC0_WO6 5L
-#define PINMUX_PB12F_TCC0_WO6 ((PIN_PB12F_TCC0_WO6 << 16) | MUX_PB12F_TCC0_WO6)
-#define PORT_PB12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA13F_TCC0_WO7 13L /**< \brief TCC0 signal: WO7 on PA13 mux F */
-#define MUX_PA13F_TCC0_WO7 5L
-#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7)
-#define PORT_PA13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA21F_TCC0_WO7 21L /**< \brief TCC0 signal: WO7 on PA21 mux F */
-#define MUX_PA21F_TCC0_WO7 5L
-#define PINMUX_PA21F_TCC0_WO7 ((PIN_PA21F_TCC0_WO7 << 16) | MUX_PA21F_TCC0_WO7)
-#define PORT_PA21F_TCC0_WO7 (1ul << 21)
-#define PIN_PB13F_TCC0_WO7 45L /**< \brief TCC0 signal: WO7 on PB13 mux F */
-#define MUX_PB13F_TCC0_WO7 5L
-#define PINMUX_PB13F_TCC0_WO7 ((PIN_PB13F_TCC0_WO7 << 16) | MUX_PB13F_TCC0_WO7)
-#define PORT_PB13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PB30F_TCC1_WO2 62L /**< \brief TCC1 signal: WO2 on PB30 mux F */
-#define MUX_PB30F_TCC1_WO2 5L
-#define PINMUX_PB30F_TCC1_WO2 ((PIN_PB30F_TCC1_WO2 << 16) | MUX_PB30F_TCC1_WO2)
-#define PORT_PB30F_TCC1_WO2 (1ul << 30)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-#define PIN_PB31F_TCC1_WO3 63L /**< \brief TCC1 signal: WO3 on PB31 mux F */
-#define MUX_PB31F_TCC1_WO3 5L
-#define PINMUX_PB31F_TCC1_WO3 ((PIN_PB31F_TCC1_WO3 << 16) | MUX_PB31F_TCC1_WO3)
-#define PORT_PB31F_TCC1_WO3 (1ul << 31)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA12E_TCC2_WO0 12L /**< \brief TCC2 signal: WO0 on PA12 mux E */
-#define MUX_PA12E_TCC2_WO0 4L
-#define PINMUX_PA12E_TCC2_WO0 ((PIN_PA12E_TCC2_WO0 << 16) | MUX_PA12E_TCC2_WO0)
-#define PORT_PA12E_TCC2_WO0 (1ul << 12)
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA13E_TCC2_WO1 13L /**< \brief TCC2 signal: WO1 on PA13 mux E */
-#define MUX_PA13E_TCC2_WO1 4L
-#define PINMUX_PA13E_TCC2_WO1 ((PIN_PA13E_TCC2_WO1 << 16) | MUX_PA13E_TCC2_WO1)
-#define PORT_PA13E_TCC2_WO1 (1ul << 13)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PB08E_TC4_WO0 40L /**< \brief TC4 signal: WO0 on PB08 mux E */
-#define MUX_PB08E_TC4_WO0 4L
-#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0)
-#define PORT_PB08E_TC4_WO0 (1ul << 8)
-#define PIN_PB12E_TC4_WO0 44L /**< \brief TC4 signal: WO0 on PB12 mux E */
-#define MUX_PB12E_TC4_WO0 4L
-#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0)
-#define PORT_PB12E_TC4_WO0 (1ul << 12)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-#define PIN_PB09E_TC4_WO1 41L /**< \brief TC4 signal: WO1 on PB09 mux E */
-#define MUX_PB09E_TC4_WO1 4L
-#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1)
-#define PORT_PB09E_TC4_WO1 (1ul << 9)
-#define PIN_PB13E_TC4_WO1 45L /**< \brief TC4 signal: WO1 on PB13 mux E */
-#define MUX_PB13E_TC4_WO1 4L
-#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1)
-#define PORT_PB13E_TC4_WO1 (1ul << 13)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PB10E_TC5_WO0 42L /**< \brief TC5 signal: WO0 on PB10 mux E */
-#define MUX_PB10E_TC5_WO0 4L
-#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0)
-#define PORT_PB10E_TC5_WO0 (1ul << 10)
-#define PIN_PB14E_TC5_WO0 46L /**< \brief TC5 signal: WO0 on PB14 mux E */
-#define MUX_PB14E_TC5_WO0 4L
-#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0)
-#define PORT_PB14E_TC5_WO0 (1ul << 14)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-#define PIN_PB11E_TC5_WO1 43L /**< \brief TC5 signal: WO1 on PB11 mux E */
-#define MUX_PB11E_TC5_WO1 4L
-#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1)
-#define PORT_PB11E_TC5_WO1 (1ul << 11)
-#define PIN_PB15E_TC5_WO1 47L /**< \brief TC5 signal: WO1 on PB15 mux E */
-#define MUX_PB15E_TC5_WO1 4L
-#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1)
-#define PORT_PB15E_TC5_WO1 (1ul << 15)
-/* ========== PORT definition for TC6 peripheral ========== */
-#define PIN_PB02E_TC6_WO0 34L /**< \brief TC6 signal: WO0 on PB02 mux E */
-#define MUX_PB02E_TC6_WO0 4L
-#define PINMUX_PB02E_TC6_WO0 ((PIN_PB02E_TC6_WO0 << 16) | MUX_PB02E_TC6_WO0)
-#define PORT_PB02E_TC6_WO0 (1ul << 2)
-#define PIN_PB16E_TC6_WO0 48L /**< \brief TC6 signal: WO0 on PB16 mux E */
-#define MUX_PB16E_TC6_WO0 4L
-#define PINMUX_PB16E_TC6_WO0 ((PIN_PB16E_TC6_WO0 << 16) | MUX_PB16E_TC6_WO0)
-#define PORT_PB16E_TC6_WO0 (1ul << 16)
-#define PIN_PB03E_TC6_WO1 35L /**< \brief TC6 signal: WO1 on PB03 mux E */
-#define MUX_PB03E_TC6_WO1 4L
-#define PINMUX_PB03E_TC6_WO1 ((PIN_PB03E_TC6_WO1 << 16) | MUX_PB03E_TC6_WO1)
-#define PORT_PB03E_TC6_WO1 (1ul << 3)
-#define PIN_PB17E_TC6_WO1 49L /**< \brief TC6 signal: WO1 on PB17 mux E */
-#define MUX_PB17E_TC6_WO1 4L
-#define PINMUX_PB17E_TC6_WO1 ((PIN_PB17E_TC6_WO1 << 16) | MUX_PB17E_TC6_WO1)
-#define PORT_PB17E_TC6_WO1 (1ul << 17)
-/* ========== PORT definition for TC7 peripheral ========== */
-#define PIN_PA20E_TC7_WO0 20L /**< \brief TC7 signal: WO0 on PA20 mux E */
-#define MUX_PA20E_TC7_WO0 4L
-#define PINMUX_PA20E_TC7_WO0 ((PIN_PA20E_TC7_WO0 << 16) | MUX_PA20E_TC7_WO0)
-#define PORT_PA20E_TC7_WO0 (1ul << 20)
-#define PIN_PB00E_TC7_WO0 32L /**< \brief TC7 signal: WO0 on PB00 mux E */
-#define MUX_PB00E_TC7_WO0 4L
-#define PINMUX_PB00E_TC7_WO0 ((PIN_PB00E_TC7_WO0 << 16) | MUX_PB00E_TC7_WO0)
-#define PORT_PB00E_TC7_WO0 (1ul << 0)
-#define PIN_PB22E_TC7_WO0 54L /**< \brief TC7 signal: WO0 on PB22 mux E */
-#define MUX_PB22E_TC7_WO0 4L
-#define PINMUX_PB22E_TC7_WO0 ((PIN_PB22E_TC7_WO0 << 16) | MUX_PB22E_TC7_WO0)
-#define PORT_PB22E_TC7_WO0 (1ul << 22)
-#define PIN_PA21E_TC7_WO1 21L /**< \brief TC7 signal: WO1 on PA21 mux E */
-#define MUX_PA21E_TC7_WO1 4L
-#define PINMUX_PA21E_TC7_WO1 ((PIN_PA21E_TC7_WO1 << 16) | MUX_PA21E_TC7_WO1)
-#define PORT_PA21E_TC7_WO1 (1ul << 21)
-#define PIN_PB01E_TC7_WO1 33L /**< \brief TC7 signal: WO1 on PB01 mux E */
-#define MUX_PB01E_TC7_WO1 4L
-#define PINMUX_PB01E_TC7_WO1 ((PIN_PB01E_TC7_WO1 << 16) | MUX_PB01E_TC7_WO1)
-#define PORT_PB01E_TC7_WO1 (1ul << 1)
-#define PIN_PB23E_TC7_WO1 55L /**< \brief TC7 signal: WO1 on PB23 mux E */
-#define MUX_PB23E_TC7_WO1 4L
-#define PINMUX_PB23E_TC7_WO1 ((PIN_PB23E_TC7_WO1 << 16) | MUX_PB23E_TC7_WO1)
-#define PORT_PB23E_TC7_WO1 (1ul << 23)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PB08B_ADC_AIN2 40L /**< \brief ADC signal: AIN2 on PB08 mux B */
-#define MUX_PB08B_ADC_AIN2 1L
-#define PINMUX_PB08B_ADC_AIN2 ((PIN_PB08B_ADC_AIN2 << 16) | MUX_PB08B_ADC_AIN2)
-#define PORT_PB08B_ADC_AIN2 (1ul << 8)
-#define PIN_PB09B_ADC_AIN3 41L /**< \brief ADC signal: AIN3 on PB09 mux B */
-#define MUX_PB09B_ADC_AIN3 1L
-#define PINMUX_PB09B_ADC_AIN3 ((PIN_PB09B_ADC_AIN3 << 16) | MUX_PB09B_ADC_AIN3)
-#define PORT_PB09B_ADC_AIN3 (1ul << 9)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB00B_ADC_AIN8 32L /**< \brief ADC signal: AIN8 on PB00 mux B */
-#define MUX_PB00B_ADC_AIN8 1L
-#define PINMUX_PB00B_ADC_AIN8 ((PIN_PB00B_ADC_AIN8 << 16) | MUX_PB00B_ADC_AIN8)
-#define PORT_PB00B_ADC_AIN8 (1ul << 0)
-#define PIN_PB01B_ADC_AIN9 33L /**< \brief ADC signal: AIN9 on PB01 mux B */
-#define MUX_PB01B_ADC_AIN9 1L
-#define PINMUX_PB01B_ADC_AIN9 ((PIN_PB01B_ADC_AIN9 << 16) | MUX_PB01B_ADC_AIN9)
-#define PORT_PB01B_ADC_AIN9 (1ul << 1)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PB04B_ADC_AIN12 36L /**< \brief ADC signal: AIN12 on PB04 mux B */
-#define MUX_PB04B_ADC_AIN12 1L
-#define PINMUX_PB04B_ADC_AIN12 ((PIN_PB04B_ADC_AIN12 << 16) | MUX_PB04B_ADC_AIN12)
-#define PORT_PB04B_ADC_AIN12 (1ul << 4)
-#define PIN_PB05B_ADC_AIN13 37L /**< \brief ADC signal: AIN13 on PB05 mux B */
-#define MUX_PB05B_ADC_AIN13 1L
-#define PINMUX_PB05B_ADC_AIN13 ((PIN_PB05B_ADC_AIN13 << 16) | MUX_PB05B_ADC_AIN13)
-#define PORT_PB05B_ADC_AIN13 (1ul << 5)
-#define PIN_PB06B_ADC_AIN14 38L /**< \brief ADC signal: AIN14 on PB06 mux B */
-#define MUX_PB06B_ADC_AIN14 1L
-#define PINMUX_PB06B_ADC_AIN14 ((PIN_PB06B_ADC_AIN14 << 16) | MUX_PB06B_ADC_AIN14)
-#define PORT_PB06B_ADC_AIN14 (1ul << 6)
-#define PIN_PB07B_ADC_AIN15 39L /**< \brief ADC signal: AIN15 on PB07 mux B */
-#define MUX_PB07B_ADC_AIN15 1L
-#define PINMUX_PB07B_ADC_AIN15 ((PIN_PB07B_ADC_AIN15 << 16) | MUX_PB07B_ADC_AIN15)
-#define PORT_PB07B_ADC_AIN15 (1ul << 7)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA12H_AC_CMP0 12L /**< \brief AC signal: CMP0 on PA12 mux H */
-#define MUX_PA12H_AC_CMP0 7L
-#define PINMUX_PA12H_AC_CMP0 ((PIN_PA12H_AC_CMP0 << 16) | MUX_PA12H_AC_CMP0)
-#define PORT_PA12H_AC_CMP0 (1ul << 12)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA13H_AC_CMP1 13L /**< \brief AC signal: CMP1 on PA13 mux H */
-#define MUX_PA13H_AC_CMP1 7L
-#define PINMUX_PA13H_AC_CMP1 ((PIN_PA13H_AC_CMP1 << 16) | MUX_PA13H_AC_CMP1)
-#define PORT_PA13H_AC_CMP1 (1ul << 13)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA21G_I2S_FS0 21L /**< \brief I2S signal: FS0 on PA21 mux G */
-#define MUX_PA21G_I2S_FS0 6L
-#define PINMUX_PA21G_I2S_FS0 ((PIN_PA21G_I2S_FS0 << 16) | MUX_PA21G_I2S_FS0)
-#define PORT_PA21G_I2S_FS0 (1ul << 21)
-#define PIN_PB12G_I2S_FS1 44L /**< \brief I2S signal: FS1 on PB12 mux G */
-#define MUX_PB12G_I2S_FS1 6L
-#define PINMUX_PB12G_I2S_FS1 ((PIN_PB12G_I2S_FS1 << 16) | MUX_PB12G_I2S_FS1)
-#define PORT_PB12G_I2S_FS1 (1ul << 12)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PB17G_I2S_MCK0 49L /**< \brief I2S signal: MCK0 on PB17 mux G */
-#define MUX_PB17G_I2S_MCK0 6L
-#define PINMUX_PB17G_I2S_MCK0 ((PIN_PB17G_I2S_MCK0 << 16) | MUX_PB17G_I2S_MCK0)
-#define PORT_PB17G_I2S_MCK0 (1ul << 17)
-#define PIN_PB10G_I2S_MCK1 42L /**< \brief I2S signal: MCK1 on PB10 mux G */
-#define MUX_PB10G_I2S_MCK1 6L
-#define PINMUX_PB10G_I2S_MCK1 ((PIN_PB10G_I2S_MCK1 << 16) | MUX_PB10G_I2S_MCK1)
-#define PORT_PB10G_I2S_MCK1 (1ul << 10)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA20G_I2S_SCK0 20L /**< \brief I2S signal: SCK0 on PA20 mux G */
-#define MUX_PA20G_I2S_SCK0 6L
-#define PINMUX_PA20G_I2S_SCK0 ((PIN_PA20G_I2S_SCK0 << 16) | MUX_PA20G_I2S_SCK0)
-#define PORT_PA20G_I2S_SCK0 (1ul << 20)
-#define PIN_PB11G_I2S_SCK1 43L /**< \brief I2S signal: SCK1 on PB11 mux G */
-#define MUX_PB11G_I2S_SCK1 6L
-#define PINMUX_PB11G_I2S_SCK1 ((PIN_PB11G_I2S_SCK1 << 16) | MUX_PB11G_I2S_SCK1)
-#define PORT_PB11G_I2S_SCK1 (1ul << 11)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-#define PIN_PB16G_I2S_SD1 48L /**< \brief I2S signal: SD1 on PB16 mux G */
-#define MUX_PB16G_I2S_SD1 6L
-#define PINMUX_PB16G_I2S_SD1 ((PIN_PB16G_I2S_SD1 << 16) | MUX_PB16G_I2S_SD1)
-#define PORT_PB16G_I2S_SD1 (1ul << 16)
-/* ========== PORT definition for TCC3 peripheral ========== */
-#define PIN_PA02F_TCC3_WO0 2L /**< \brief TCC3 signal: WO0 on PA02 mux F */
-#define MUX_PA02F_TCC3_WO0 5L
-#define PINMUX_PA02F_TCC3_WO0 ((PIN_PA02F_TCC3_WO0 << 16) | MUX_PA02F_TCC3_WO0)
-#define PORT_PA02F_TCC3_WO0 (1ul << 2)
-#define PIN_PB22F_TCC3_WO0 54L /**< \brief TCC3 signal: WO0 on PB22 mux F */
-#define MUX_PB22F_TCC3_WO0 5L
-#define PINMUX_PB22F_TCC3_WO0 ((PIN_PB22F_TCC3_WO0 << 16) | MUX_PB22F_TCC3_WO0)
-#define PORT_PB22F_TCC3_WO0 (1ul << 22)
-#define PIN_PA03F_TCC3_WO1 3L /**< \brief TCC3 signal: WO1 on PA03 mux F */
-#define MUX_PA03F_TCC3_WO1 5L
-#define PINMUX_PA03F_TCC3_WO1 ((PIN_PA03F_TCC3_WO1 << 16) | MUX_PA03F_TCC3_WO1)
-#define PORT_PA03F_TCC3_WO1 (1ul << 3)
-#define PIN_PB23F_TCC3_WO1 55L /**< \brief TCC3 signal: WO1 on PB23 mux F */
-#define MUX_PB23F_TCC3_WO1 5L
-#define PINMUX_PB23F_TCC3_WO1 ((PIN_PB23F_TCC3_WO1 << 16) | MUX_PB23F_TCC3_WO1)
-#define PORT_PB23F_TCC3_WO1 (1ul << 23)
-#define PIN_PA04F_TCC3_WO2 4L /**< \brief TCC3 signal: WO2 on PA04 mux F */
-#define MUX_PA04F_TCC3_WO2 5L
-#define PINMUX_PA04F_TCC3_WO2 ((PIN_PA04F_TCC3_WO2 << 16) | MUX_PA04F_TCC3_WO2)
-#define PORT_PA04F_TCC3_WO2 (1ul << 4)
-#define PIN_PB02F_TCC3_WO2 34L /**< \brief TCC3 signal: WO2 on PB02 mux F */
-#define MUX_PB02F_TCC3_WO2 5L
-#define PINMUX_PB02F_TCC3_WO2 ((PIN_PB02F_TCC3_WO2 << 16) | MUX_PB02F_TCC3_WO2)
-#define PORT_PB02F_TCC3_WO2 (1ul << 2)
-#define PIN_PA05F_TCC3_WO3 5L /**< \brief TCC3 signal: WO3 on PA05 mux F */
-#define MUX_PA05F_TCC3_WO3 5L
-#define PINMUX_PA05F_TCC3_WO3 ((PIN_PA05F_TCC3_WO3 << 16) | MUX_PA05F_TCC3_WO3)
-#define PORT_PA05F_TCC3_WO3 (1ul << 5)
-#define PIN_PB03F_TCC3_WO3 35L /**< \brief TCC3 signal: WO3 on PB03 mux F */
-#define MUX_PB03F_TCC3_WO3 5L
-#define PINMUX_PB03F_TCC3_WO3 ((PIN_PB03F_TCC3_WO3 << 16) | MUX_PB03F_TCC3_WO3)
-#define PORT_PB03F_TCC3_WO3 (1ul << 3)
-#define PIN_PA06F_TCC3_WO4 6L /**< \brief TCC3 signal: WO4 on PA06 mux F */
-#define MUX_PA06F_TCC3_WO4 5L
-#define PINMUX_PA06F_TCC3_WO4 ((PIN_PA06F_TCC3_WO4 << 16) | MUX_PA06F_TCC3_WO4)
-#define PORT_PA06F_TCC3_WO4 (1ul << 6)
-#define PIN_PA30F_TCC3_WO4 30L /**< \brief TCC3 signal: WO4 on PA30 mux F */
-#define MUX_PA30F_TCC3_WO4 5L
-#define PINMUX_PA30F_TCC3_WO4 ((PIN_PA30F_TCC3_WO4 << 16) | MUX_PA30F_TCC3_WO4)
-#define PORT_PA30F_TCC3_WO4 (1ul << 30)
-#define PIN_PA07F_TCC3_WO5 7L /**< \brief TCC3 signal: WO5 on PA07 mux F */
-#define MUX_PA07F_TCC3_WO5 5L
-#define PINMUX_PA07F_TCC3_WO5 ((PIN_PA07F_TCC3_WO5 << 16) | MUX_PA07F_TCC3_WO5)
-#define PORT_PA07F_TCC3_WO5 (1ul << 7)
-#define PIN_PA31F_TCC3_WO5 31L /**< \brief TCC3 signal: WO5 on PA31 mux F */
-#define MUX_PA31F_TCC3_WO5 5L
-#define PINMUX_PA31F_TCC3_WO5 ((PIN_PA31F_TCC3_WO5 << 16) | MUX_PA31F_TCC3_WO5)
-#define PORT_PA31F_TCC3_WO5 (1ul << 31)
-#define PIN_PA27F_TCC3_WO6 27L /**< \brief TCC3 signal: WO6 on PA27 mux F */
-#define MUX_PA27F_TCC3_WO6 5L
-#define PINMUX_PA27F_TCC3_WO6 ((PIN_PA27F_TCC3_WO6 << 16) | MUX_PA27F_TCC3_WO6)
-#define PORT_PA27F_TCC3_WO6 (1ul << 27)
-#define PIN_PB08F_TCC3_WO6 40L /**< \brief TCC3 signal: WO6 on PB08 mux F */
-#define MUX_PB08F_TCC3_WO6 5L
-#define PINMUX_PB08F_TCC3_WO6 ((PIN_PB08F_TCC3_WO6 << 16) | MUX_PB08F_TCC3_WO6)
-#define PORT_PB08F_TCC3_WO6 (1ul << 8)
-#define PIN_PA28F_TCC3_WO7 28L /**< \brief TCC3 signal: WO7 on PA28 mux F */
-#define MUX_PA28F_TCC3_WO7 5L
-#define PINMUX_PA28F_TCC3_WO7 ((PIN_PA28F_TCC3_WO7 << 16) | MUX_PA28F_TCC3_WO7)
-#define PORT_PA28F_TCC3_WO7 (1ul << 28)
-#define PIN_PB09F_TCC3_WO7 41L /**< \brief TCC3 signal: WO7 on PB09 mux F */
-#define MUX_PB09F_TCC3_WO7 5L
-#define PINMUX_PB09F_TCC3_WO7 ((PIN_PB09F_TCC3_WO7 << 16) | MUX_PB09F_TCC3_WO7)
-#define PORT_PB09F_TCC3_WO7 (1ul << 9)
-
-#endif /* _SAMD21J17D_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j18a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j18a.h
deleted file mode 100644
index b1ac18f..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/pio/samd21j18a.h
+++ /dev/null
@@ -1,1182 +0,0 @@
-/**
- * \file
- *
- * \brief Peripheral I/O description for SAMD21J18A
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _SAMD21J18A_PIO_
-#define _SAMD21J18A_PIO_
-
-#define PIN_PA00 0 /**< \brief Pin Number for PA00 */
-#define PORT_PA00 (1ul << 0) /**< \brief PORT Mask for PA00 */
-#define PIN_PA01 1 /**< \brief Pin Number for PA01 */
-#define PORT_PA01 (1ul << 1) /**< \brief PORT Mask for PA01 */
-#define PIN_PA02 2 /**< \brief Pin Number for PA02 */
-#define PORT_PA02 (1ul << 2) /**< \brief PORT Mask for PA02 */
-#define PIN_PA03 3 /**< \brief Pin Number for PA03 */
-#define PORT_PA03 (1ul << 3) /**< \brief PORT Mask for PA03 */
-#define PIN_PA04 4 /**< \brief Pin Number for PA04 */
-#define PORT_PA04 (1ul << 4) /**< \brief PORT Mask for PA04 */
-#define PIN_PA05 5 /**< \brief Pin Number for PA05 */
-#define PORT_PA05 (1ul << 5) /**< \brief PORT Mask for PA05 */
-#define PIN_PA06 6 /**< \brief Pin Number for PA06 */
-#define PORT_PA06 (1ul << 6) /**< \brief PORT Mask for PA06 */
-#define PIN_PA07 7 /**< \brief Pin Number for PA07 */
-#define PORT_PA07 (1ul << 7) /**< \brief PORT Mask for PA07 */
-#define PIN_PA08 8 /**< \brief Pin Number for PA08 */
-#define PORT_PA08 (1ul << 8) /**< \brief PORT Mask for PA08 */
-#define PIN_PA09 9 /**< \brief Pin Number for PA09 */
-#define PORT_PA09 (1ul << 9) /**< \brief PORT Mask for PA09 */
-#define PIN_PA10 10 /**< \brief Pin Number for PA10 */
-#define PORT_PA10 (1ul << 10) /**< \brief PORT Mask for PA10 */
-#define PIN_PA11 11 /**< \brief Pin Number for PA11 */
-#define PORT_PA11 (1ul << 11) /**< \brief PORT Mask for PA11 */
-#define PIN_PA12 12 /**< \brief Pin Number for PA12 */
-#define PORT_PA12 (1ul << 12) /**< \brief PORT Mask for PA12 */
-#define PIN_PA13 13 /**< \brief Pin Number for PA13 */
-#define PORT_PA13 (1ul << 13) /**< \brief PORT Mask for PA13 */
-#define PIN_PA14 14 /**< \brief Pin Number for PA14 */
-#define PORT_PA14 (1ul << 14) /**< \brief PORT Mask for PA14 */
-#define PIN_PA15 15 /**< \brief Pin Number for PA15 */
-#define PORT_PA15 (1ul << 15) /**< \brief PORT Mask for PA15 */
-#define PIN_PA16 16 /**< \brief Pin Number for PA16 */
-#define PORT_PA16 (1ul << 16) /**< \brief PORT Mask for PA16 */
-#define PIN_PA17 17 /**< \brief Pin Number for PA17 */
-#define PORT_PA17 (1ul << 17) /**< \brief PORT Mask for PA17 */
-#define PIN_PA18 18 /**< \brief Pin Number for PA18 */
-#define PORT_PA18 (1ul << 18) /**< \brief PORT Mask for PA18 */
-#define PIN_PA19 19 /**< \brief Pin Number for PA19 */
-#define PORT_PA19 (1ul << 19) /**< \brief PORT Mask for PA19 */
-#define PIN_PA20 20 /**< \brief Pin Number for PA20 */
-#define PORT_PA20 (1ul << 20) /**< \brief PORT Mask for PA20 */
-#define PIN_PA21 21 /**< \brief Pin Number for PA21 */
-#define PORT_PA21 (1ul << 21) /**< \brief PORT Mask for PA21 */
-#define PIN_PA22 22 /**< \brief Pin Number for PA22 */
-#define PORT_PA22 (1ul << 22) /**< \brief PORT Mask for PA22 */
-#define PIN_PA23 23 /**< \brief Pin Number for PA23 */
-#define PORT_PA23 (1ul << 23) /**< \brief PORT Mask for PA23 */
-#define PIN_PA24 24 /**< \brief Pin Number for PA24 */
-#define PORT_PA24 (1ul << 24) /**< \brief PORT Mask for PA24 */
-#define PIN_PA25 25 /**< \brief Pin Number for PA25 */
-#define PORT_PA25 (1ul << 25) /**< \brief PORT Mask for PA25 */
-#define PIN_PA27 27 /**< \brief Pin Number for PA27 */
-#define PORT_PA27 (1ul << 27) /**< \brief PORT Mask for PA27 */
-#define PIN_PA28 28 /**< \brief Pin Number for PA28 */
-#define PORT_PA28 (1ul << 28) /**< \brief PORT Mask for PA28 */
-#define PIN_PA30 30 /**< \brief Pin Number for PA30 */
-#define PORT_PA30 (1ul << 30) /**< \brief PORT Mask for PA30 */
-#define PIN_PA31 31 /**< \brief Pin Number for PA31 */
-#define PORT_PA31 (1ul << 31) /**< \brief PORT Mask for PA31 */
-#define PIN_PB00 32 /**< \brief Pin Number for PB00 */
-#define PORT_PB00 (1ul << 0) /**< \brief PORT Mask for PB00 */
-#define PIN_PB01 33 /**< \brief Pin Number for PB01 */
-#define PORT_PB01 (1ul << 1) /**< \brief PORT Mask for PB01 */
-#define PIN_PB02 34 /**< \brief Pin Number for PB02 */
-#define PORT_PB02 (1ul << 2) /**< \brief PORT Mask for PB02 */
-#define PIN_PB03 35 /**< \brief Pin Number for PB03 */
-#define PORT_PB03 (1ul << 3) /**< \brief PORT Mask for PB03 */
-#define PIN_PB04 36 /**< \brief Pin Number for PB04 */
-#define PORT_PB04 (1ul << 4) /**< \brief PORT Mask for PB04 */
-#define PIN_PB05 37 /**< \brief Pin Number for PB05 */
-#define PORT_PB05 (1ul << 5) /**< \brief PORT Mask for PB05 */
-#define PIN_PB06 38 /**< \brief Pin Number for PB06 */
-#define PORT_PB06 (1ul << 6) /**< \brief PORT Mask for PB06 */
-#define PIN_PB07 39 /**< \brief Pin Number for PB07 */
-#define PORT_PB07 (1ul << 7) /**< \brief PORT Mask for PB07 */
-#define PIN_PB08 40 /**< \brief Pin Number for PB08 */
-#define PORT_PB08 (1ul << 8) /**< \brief PORT Mask for PB08 */
-#define PIN_PB09 41 /**< \brief Pin Number for PB09 */
-#define PORT_PB09 (1ul << 9) /**< \brief PORT Mask for PB09 */
-#define PIN_PB10 42 /**< \brief Pin Number for PB10 */
-#define PORT_PB10 (1ul << 10) /**< \brief PORT Mask for PB10 */
-#define PIN_PB11 43 /**< \brief Pin Number for PB11 */
-#define PORT_PB11 (1ul << 11) /**< \brief PORT Mask for PB11 */
-#define PIN_PB12 44 /**< \brief Pin Number for PB12 */
-#define PORT_PB12 (1ul << 12) /**< \brief PORT Mask for PB12 */
-#define PIN_PB13 45 /**< \brief Pin Number for PB13 */
-#define PORT_PB13 (1ul << 13) /**< \brief PORT Mask for PB13 */
-#define PIN_PB14 46 /**< \brief Pin Number for PB14 */
-#define PORT_PB14 (1ul << 14) /**< \brief PORT Mask for PB14 */
-#define PIN_PB15 47 /**< \brief Pin Number for PB15 */
-#define PORT_PB15 (1ul << 15) /**< \brief PORT Mask for PB15 */
-#define PIN_PB16 48 /**< \brief Pin Number for PB16 */
-#define PORT_PB16 (1ul << 16) /**< \brief PORT Mask for PB16 */
-#define PIN_PB17 49 /**< \brief Pin Number for PB17 */
-#define PORT_PB17 (1ul << 17) /**< \brief PORT Mask for PB17 */
-#define PIN_PB22 54 /**< \brief Pin Number for PB22 */
-#define PORT_PB22 (1ul << 22) /**< \brief PORT Mask for PB22 */
-#define PIN_PB23 55 /**< \brief Pin Number for PB23 */
-#define PORT_PB23 (1ul << 23) /**< \brief PORT Mask for PB23 */
-#define PIN_PB30 62 /**< \brief Pin Number for PB30 */
-#define PORT_PB30 (1ul << 30) /**< \brief PORT Mask for PB30 */
-#define PIN_PB31 63 /**< \brief Pin Number for PB31 */
-#define PORT_PB31 (1ul << 31) /**< \brief PORT Mask for PB31 */
-/* ========== PORT definition for GCLK peripheral ========== */
-#define PIN_PB14H_GCLK_IO0 46L /**< \brief GCLK signal: IO0 on PB14 mux H */
-#define MUX_PB14H_GCLK_IO0 7L
-#define PINMUX_PB14H_GCLK_IO0 ((PIN_PB14H_GCLK_IO0 << 16) | MUX_PB14H_GCLK_IO0)
-#define PORT_PB14H_GCLK_IO0 (1ul << 14)
-#define PIN_PB22H_GCLK_IO0 54L /**< \brief GCLK signal: IO0 on PB22 mux H */
-#define MUX_PB22H_GCLK_IO0 7L
-#define PINMUX_PB22H_GCLK_IO0 ((PIN_PB22H_GCLK_IO0 << 16) | MUX_PB22H_GCLK_IO0)
-#define PORT_PB22H_GCLK_IO0 (1ul << 22)
-#define PIN_PA14H_GCLK_IO0 14L /**< \brief GCLK signal: IO0 on PA14 mux H */
-#define MUX_PA14H_GCLK_IO0 7L
-#define PINMUX_PA14H_GCLK_IO0 ((PIN_PA14H_GCLK_IO0 << 16) | MUX_PA14H_GCLK_IO0)
-#define PORT_PA14H_GCLK_IO0 (1ul << 14)
-#define PIN_PA27H_GCLK_IO0 27L /**< \brief GCLK signal: IO0 on PA27 mux H */
-#define MUX_PA27H_GCLK_IO0 7L
-#define PINMUX_PA27H_GCLK_IO0 ((PIN_PA27H_GCLK_IO0 << 16) | MUX_PA27H_GCLK_IO0)
-#define PORT_PA27H_GCLK_IO0 (1ul << 27)
-#define PIN_PA28H_GCLK_IO0 28L /**< \brief GCLK signal: IO0 on PA28 mux H */
-#define MUX_PA28H_GCLK_IO0 7L
-#define PINMUX_PA28H_GCLK_IO0 ((PIN_PA28H_GCLK_IO0 << 16) | MUX_PA28H_GCLK_IO0)
-#define PORT_PA28H_GCLK_IO0 (1ul << 28)
-#define PIN_PA30H_GCLK_IO0 30L /**< \brief GCLK signal: IO0 on PA30 mux H */
-#define MUX_PA30H_GCLK_IO0 7L
-#define PINMUX_PA30H_GCLK_IO0 ((PIN_PA30H_GCLK_IO0 << 16) | MUX_PA30H_GCLK_IO0)
-#define PORT_PA30H_GCLK_IO0 (1ul << 30)
-#define PIN_PB15H_GCLK_IO1 47L /**< \brief GCLK signal: IO1 on PB15 mux H */
-#define MUX_PB15H_GCLK_IO1 7L
-#define PINMUX_PB15H_GCLK_IO1 ((PIN_PB15H_GCLK_IO1 << 16) | MUX_PB15H_GCLK_IO1)
-#define PORT_PB15H_GCLK_IO1 (1ul << 15)
-#define PIN_PB23H_GCLK_IO1 55L /**< \brief GCLK signal: IO1 on PB23 mux H */
-#define MUX_PB23H_GCLK_IO1 7L
-#define PINMUX_PB23H_GCLK_IO1 ((PIN_PB23H_GCLK_IO1 << 16) | MUX_PB23H_GCLK_IO1)
-#define PORT_PB23H_GCLK_IO1 (1ul << 23)
-#define PIN_PA15H_GCLK_IO1 15L /**< \brief GCLK signal: IO1 on PA15 mux H */
-#define MUX_PA15H_GCLK_IO1 7L
-#define PINMUX_PA15H_GCLK_IO1 ((PIN_PA15H_GCLK_IO1 << 16) | MUX_PA15H_GCLK_IO1)
-#define PORT_PA15H_GCLK_IO1 (1ul << 15)
-#define PIN_PB16H_GCLK_IO2 48L /**< \brief GCLK signal: IO2 on PB16 mux H */
-#define MUX_PB16H_GCLK_IO2 7L
-#define PINMUX_PB16H_GCLK_IO2 ((PIN_PB16H_GCLK_IO2 << 16) | MUX_PB16H_GCLK_IO2)
-#define PORT_PB16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA16H_GCLK_IO2 16L /**< \brief GCLK signal: IO2 on PA16 mux H */
-#define MUX_PA16H_GCLK_IO2 7L
-#define PINMUX_PA16H_GCLK_IO2 ((PIN_PA16H_GCLK_IO2 << 16) | MUX_PA16H_GCLK_IO2)
-#define PORT_PA16H_GCLK_IO2 (1ul << 16)
-#define PIN_PA17H_GCLK_IO3 17L /**< \brief GCLK signal: IO3 on PA17 mux H */
-#define MUX_PA17H_GCLK_IO3 7L
-#define PINMUX_PA17H_GCLK_IO3 ((PIN_PA17H_GCLK_IO3 << 16) | MUX_PA17H_GCLK_IO3)
-#define PORT_PA17H_GCLK_IO3 (1ul << 17)
-#define PIN_PB17H_GCLK_IO3 49L /**< \brief GCLK signal: IO3 on PB17 mux H */
-#define MUX_PB17H_GCLK_IO3 7L
-#define PINMUX_PB17H_GCLK_IO3 ((PIN_PB17H_GCLK_IO3 << 16) | MUX_PB17H_GCLK_IO3)
-#define PORT_PB17H_GCLK_IO3 (1ul << 17)
-#define PIN_PA10H_GCLK_IO4 10L /**< \brief GCLK signal: IO4 on PA10 mux H */
-#define MUX_PA10H_GCLK_IO4 7L
-#define PINMUX_PA10H_GCLK_IO4 ((PIN_PA10H_GCLK_IO4 << 16) | MUX_PA10H_GCLK_IO4)
-#define PORT_PA10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA20H_GCLK_IO4 20L /**< \brief GCLK signal: IO4 on PA20 mux H */
-#define MUX_PA20H_GCLK_IO4 7L
-#define PINMUX_PA20H_GCLK_IO4 ((PIN_PA20H_GCLK_IO4 << 16) | MUX_PA20H_GCLK_IO4)
-#define PORT_PA20H_GCLK_IO4 (1ul << 20)
-#define PIN_PB10H_GCLK_IO4 42L /**< \brief GCLK signal: IO4 on PB10 mux H */
-#define MUX_PB10H_GCLK_IO4 7L
-#define PINMUX_PB10H_GCLK_IO4 ((PIN_PB10H_GCLK_IO4 << 16) | MUX_PB10H_GCLK_IO4)
-#define PORT_PB10H_GCLK_IO4 (1ul << 10)
-#define PIN_PA11H_GCLK_IO5 11L /**< \brief GCLK signal: IO5 on PA11 mux H */
-#define MUX_PA11H_GCLK_IO5 7L
-#define PINMUX_PA11H_GCLK_IO5 ((PIN_PA11H_GCLK_IO5 << 16) | MUX_PA11H_GCLK_IO5)
-#define PORT_PA11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA21H_GCLK_IO5 21L /**< \brief GCLK signal: IO5 on PA21 mux H */
-#define MUX_PA21H_GCLK_IO5 7L
-#define PINMUX_PA21H_GCLK_IO5 ((PIN_PA21H_GCLK_IO5 << 16) | MUX_PA21H_GCLK_IO5)
-#define PORT_PA21H_GCLK_IO5 (1ul << 21)
-#define PIN_PB11H_GCLK_IO5 43L /**< \brief GCLK signal: IO5 on PB11 mux H */
-#define MUX_PB11H_GCLK_IO5 7L
-#define PINMUX_PB11H_GCLK_IO5 ((PIN_PB11H_GCLK_IO5 << 16) | MUX_PB11H_GCLK_IO5)
-#define PORT_PB11H_GCLK_IO5 (1ul << 11)
-#define PIN_PA22H_GCLK_IO6 22L /**< \brief GCLK signal: IO6 on PA22 mux H */
-#define MUX_PA22H_GCLK_IO6 7L
-#define PINMUX_PA22H_GCLK_IO6 ((PIN_PA22H_GCLK_IO6 << 16) | MUX_PA22H_GCLK_IO6)
-#define PORT_PA22H_GCLK_IO6 (1ul << 22)
-#define PIN_PB12H_GCLK_IO6 44L /**< \brief GCLK signal: IO6 on PB12 mux H */
-#define MUX_PB12H_GCLK_IO6 7L
-#define PINMUX_PB12H_GCLK_IO6 ((PIN_PB12H_GCLK_IO6 << 16) | MUX_PB12H_GCLK_IO6)
-#define PORT_PB12H_GCLK_IO6 (1ul << 12)
-#define PIN_PA23H_GCLK_IO7 23L /**< \brief GCLK signal: IO7 on PA23 mux H */
-#define MUX_PA23H_GCLK_IO7 7L
-#define PINMUX_PA23H_GCLK_IO7 ((PIN_PA23H_GCLK_IO7 << 16) | MUX_PA23H_GCLK_IO7)
-#define PORT_PA23H_GCLK_IO7 (1ul << 23)
-#define PIN_PB13H_GCLK_IO7 45L /**< \brief GCLK signal: IO7 on PB13 mux H */
-#define MUX_PB13H_GCLK_IO7 7L
-#define PINMUX_PB13H_GCLK_IO7 ((PIN_PB13H_GCLK_IO7 << 16) | MUX_PB13H_GCLK_IO7)
-#define PORT_PB13H_GCLK_IO7 (1ul << 13)
-/* ========== PORT definition for EIC peripheral ========== */
-#define PIN_PA16A_EIC_EXTINT0 16L /**< \brief EIC signal: EXTINT0 on PA16 mux A */
-#define MUX_PA16A_EIC_EXTINT0 0L
-#define PINMUX_PA16A_EIC_EXTINT0 ((PIN_PA16A_EIC_EXTINT0 << 16) | MUX_PA16A_EIC_EXTINT0)
-#define PORT_PA16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PB00A_EIC_EXTINT0 32L /**< \brief EIC signal: EXTINT0 on PB00 mux A */
-#define MUX_PB00A_EIC_EXTINT0 0L
-#define PINMUX_PB00A_EIC_EXTINT0 ((PIN_PB00A_EIC_EXTINT0 << 16) | MUX_PB00A_EIC_EXTINT0)
-#define PORT_PB00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PB16A_EIC_EXTINT0 48L /**< \brief EIC signal: EXTINT0 on PB16 mux A */
-#define MUX_PB16A_EIC_EXTINT0 0L
-#define PINMUX_PB16A_EIC_EXTINT0 ((PIN_PB16A_EIC_EXTINT0 << 16) | MUX_PB16A_EIC_EXTINT0)
-#define PORT_PB16A_EIC_EXTINT0 (1ul << 16)
-#define PIN_PA00A_EIC_EXTINT0 0L /**< \brief EIC signal: EXTINT0 on PA00 mux A */
-#define MUX_PA00A_EIC_EXTINT0 0L
-#define PINMUX_PA00A_EIC_EXTINT0 ((PIN_PA00A_EIC_EXTINT0 << 16) | MUX_PA00A_EIC_EXTINT0)
-#define PORT_PA00A_EIC_EXTINT0 (1ul << 0)
-#define PIN_PA17A_EIC_EXTINT1 17L /**< \brief EIC signal: EXTINT1 on PA17 mux A */
-#define MUX_PA17A_EIC_EXTINT1 0L
-#define PINMUX_PA17A_EIC_EXTINT1 ((PIN_PA17A_EIC_EXTINT1 << 16) | MUX_PA17A_EIC_EXTINT1)
-#define PORT_PA17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PB01A_EIC_EXTINT1 33L /**< \brief EIC signal: EXTINT1 on PB01 mux A */
-#define MUX_PB01A_EIC_EXTINT1 0L
-#define PINMUX_PB01A_EIC_EXTINT1 ((PIN_PB01A_EIC_EXTINT1 << 16) | MUX_PB01A_EIC_EXTINT1)
-#define PORT_PB01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PB17A_EIC_EXTINT1 49L /**< \brief EIC signal: EXTINT1 on PB17 mux A */
-#define MUX_PB17A_EIC_EXTINT1 0L
-#define PINMUX_PB17A_EIC_EXTINT1 ((PIN_PB17A_EIC_EXTINT1 << 16) | MUX_PB17A_EIC_EXTINT1)
-#define PORT_PB17A_EIC_EXTINT1 (1ul << 17)
-#define PIN_PA01A_EIC_EXTINT1 1L /**< \brief EIC signal: EXTINT1 on PA01 mux A */
-#define MUX_PA01A_EIC_EXTINT1 0L
-#define PINMUX_PA01A_EIC_EXTINT1 ((PIN_PA01A_EIC_EXTINT1 << 16) | MUX_PA01A_EIC_EXTINT1)
-#define PORT_PA01A_EIC_EXTINT1 (1ul << 1)
-#define PIN_PA18A_EIC_EXTINT2 18L /**< \brief EIC signal: EXTINT2 on PA18 mux A */
-#define MUX_PA18A_EIC_EXTINT2 0L
-#define PINMUX_PA18A_EIC_EXTINT2 ((PIN_PA18A_EIC_EXTINT2 << 16) | MUX_PA18A_EIC_EXTINT2)
-#define PORT_PA18A_EIC_EXTINT2 (1ul << 18)
-#define PIN_PA02A_EIC_EXTINT2 2L /**< \brief EIC signal: EXTINT2 on PA02 mux A */
-#define MUX_PA02A_EIC_EXTINT2 0L
-#define PINMUX_PA02A_EIC_EXTINT2 ((PIN_PA02A_EIC_EXTINT2 << 16) | MUX_PA02A_EIC_EXTINT2)
-#define PORT_PA02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PB02A_EIC_EXTINT2 34L /**< \brief EIC signal: EXTINT2 on PB02 mux A */
-#define MUX_PB02A_EIC_EXTINT2 0L
-#define PINMUX_PB02A_EIC_EXTINT2 ((PIN_PB02A_EIC_EXTINT2 << 16) | MUX_PB02A_EIC_EXTINT2)
-#define PORT_PB02A_EIC_EXTINT2 (1ul << 2)
-#define PIN_PA03A_EIC_EXTINT3 3L /**< \brief EIC signal: EXTINT3 on PA03 mux A */
-#define MUX_PA03A_EIC_EXTINT3 0L
-#define PINMUX_PA03A_EIC_EXTINT3 ((PIN_PA03A_EIC_EXTINT3 << 16) | MUX_PA03A_EIC_EXTINT3)
-#define PORT_PA03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA19A_EIC_EXTINT3 19L /**< \brief EIC signal: EXTINT3 on PA19 mux A */
-#define MUX_PA19A_EIC_EXTINT3 0L
-#define PINMUX_PA19A_EIC_EXTINT3 ((PIN_PA19A_EIC_EXTINT3 << 16) | MUX_PA19A_EIC_EXTINT3)
-#define PORT_PA19A_EIC_EXTINT3 (1ul << 19)
-#define PIN_PB03A_EIC_EXTINT3 35L /**< \brief EIC signal: EXTINT3 on PB03 mux A */
-#define MUX_PB03A_EIC_EXTINT3 0L
-#define PINMUX_PB03A_EIC_EXTINT3 ((PIN_PB03A_EIC_EXTINT3 << 16) | MUX_PB03A_EIC_EXTINT3)
-#define PORT_PB03A_EIC_EXTINT3 (1ul << 3)
-#define PIN_PA04A_EIC_EXTINT4 4L /**< \brief EIC signal: EXTINT4 on PA04 mux A */
-#define MUX_PA04A_EIC_EXTINT4 0L
-#define PINMUX_PA04A_EIC_EXTINT4 ((PIN_PA04A_EIC_EXTINT4 << 16) | MUX_PA04A_EIC_EXTINT4)
-#define PORT_PA04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA20A_EIC_EXTINT4 20L /**< \brief EIC signal: EXTINT4 on PA20 mux A */
-#define MUX_PA20A_EIC_EXTINT4 0L
-#define PINMUX_PA20A_EIC_EXTINT4 ((PIN_PA20A_EIC_EXTINT4 << 16) | MUX_PA20A_EIC_EXTINT4)
-#define PORT_PA20A_EIC_EXTINT4 (1ul << 20)
-#define PIN_PB04A_EIC_EXTINT4 36L /**< \brief EIC signal: EXTINT4 on PB04 mux A */
-#define MUX_PB04A_EIC_EXTINT4 0L
-#define PINMUX_PB04A_EIC_EXTINT4 ((PIN_PB04A_EIC_EXTINT4 << 16) | MUX_PB04A_EIC_EXTINT4)
-#define PORT_PB04A_EIC_EXTINT4 (1ul << 4)
-#define PIN_PA05A_EIC_EXTINT5 5L /**< \brief EIC signal: EXTINT5 on PA05 mux A */
-#define MUX_PA05A_EIC_EXTINT5 0L
-#define PINMUX_PA05A_EIC_EXTINT5 ((PIN_PA05A_EIC_EXTINT5 << 16) | MUX_PA05A_EIC_EXTINT5)
-#define PORT_PA05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA21A_EIC_EXTINT5 21L /**< \brief EIC signal: EXTINT5 on PA21 mux A */
-#define MUX_PA21A_EIC_EXTINT5 0L
-#define PINMUX_PA21A_EIC_EXTINT5 ((PIN_PA21A_EIC_EXTINT5 << 16) | MUX_PA21A_EIC_EXTINT5)
-#define PORT_PA21A_EIC_EXTINT5 (1ul << 21)
-#define PIN_PB05A_EIC_EXTINT5 37L /**< \brief EIC signal: EXTINT5 on PB05 mux A */
-#define MUX_PB05A_EIC_EXTINT5 0L
-#define PINMUX_PB05A_EIC_EXTINT5 ((PIN_PB05A_EIC_EXTINT5 << 16) | MUX_PB05A_EIC_EXTINT5)
-#define PORT_PB05A_EIC_EXTINT5 (1ul << 5)
-#define PIN_PA06A_EIC_EXTINT6 6L /**< \brief EIC signal: EXTINT6 on PA06 mux A */
-#define MUX_PA06A_EIC_EXTINT6 0L
-#define PINMUX_PA06A_EIC_EXTINT6 ((PIN_PA06A_EIC_EXTINT6 << 16) | MUX_PA06A_EIC_EXTINT6)
-#define PORT_PA06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PA22A_EIC_EXTINT6 22L /**< \brief EIC signal: EXTINT6 on PA22 mux A */
-#define MUX_PA22A_EIC_EXTINT6 0L
-#define PINMUX_PA22A_EIC_EXTINT6 ((PIN_PA22A_EIC_EXTINT6 << 16) | MUX_PA22A_EIC_EXTINT6)
-#define PORT_PA22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PB06A_EIC_EXTINT6 38L /**< \brief EIC signal: EXTINT6 on PB06 mux A */
-#define MUX_PB06A_EIC_EXTINT6 0L
-#define PINMUX_PB06A_EIC_EXTINT6 ((PIN_PB06A_EIC_EXTINT6 << 16) | MUX_PB06A_EIC_EXTINT6)
-#define PORT_PB06A_EIC_EXTINT6 (1ul << 6)
-#define PIN_PB22A_EIC_EXTINT6 54L /**< \brief EIC signal: EXTINT6 on PB22 mux A */
-#define MUX_PB22A_EIC_EXTINT6 0L
-#define PINMUX_PB22A_EIC_EXTINT6 ((PIN_PB22A_EIC_EXTINT6 << 16) | MUX_PB22A_EIC_EXTINT6)
-#define PORT_PB22A_EIC_EXTINT6 (1ul << 22)
-#define PIN_PA07A_EIC_EXTINT7 7L /**< \brief EIC signal: EXTINT7 on PA07 mux A */
-#define MUX_PA07A_EIC_EXTINT7 0L
-#define PINMUX_PA07A_EIC_EXTINT7 ((PIN_PA07A_EIC_EXTINT7 << 16) | MUX_PA07A_EIC_EXTINT7)
-#define PORT_PA07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PA23A_EIC_EXTINT7 23L /**< \brief EIC signal: EXTINT7 on PA23 mux A */
-#define MUX_PA23A_EIC_EXTINT7 0L
-#define PINMUX_PA23A_EIC_EXTINT7 ((PIN_PA23A_EIC_EXTINT7 << 16) | MUX_PA23A_EIC_EXTINT7)
-#define PORT_PA23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PB07A_EIC_EXTINT7 39L /**< \brief EIC signal: EXTINT7 on PB07 mux A */
-#define MUX_PB07A_EIC_EXTINT7 0L
-#define PINMUX_PB07A_EIC_EXTINT7 ((PIN_PB07A_EIC_EXTINT7 << 16) | MUX_PB07A_EIC_EXTINT7)
-#define PORT_PB07A_EIC_EXTINT7 (1ul << 7)
-#define PIN_PB23A_EIC_EXTINT7 55L /**< \brief EIC signal: EXTINT7 on PB23 mux A */
-#define MUX_PB23A_EIC_EXTINT7 0L
-#define PINMUX_PB23A_EIC_EXTINT7 ((PIN_PB23A_EIC_EXTINT7 << 16) | MUX_PB23A_EIC_EXTINT7)
-#define PORT_PB23A_EIC_EXTINT7 (1ul << 23)
-#define PIN_PA28A_EIC_EXTINT8 28L /**< \brief EIC signal: EXTINT8 on PA28 mux A */
-#define MUX_PA28A_EIC_EXTINT8 0L
-#define PINMUX_PA28A_EIC_EXTINT8 ((PIN_PA28A_EIC_EXTINT8 << 16) | MUX_PA28A_EIC_EXTINT8)
-#define PORT_PA28A_EIC_EXTINT8 (1ul << 28)
-#define PIN_PB08A_EIC_EXTINT8 40L /**< \brief EIC signal: EXTINT8 on PB08 mux A */
-#define MUX_PB08A_EIC_EXTINT8 0L
-#define PINMUX_PB08A_EIC_EXTINT8 ((PIN_PB08A_EIC_EXTINT8 << 16) | MUX_PB08A_EIC_EXTINT8)
-#define PORT_PB08A_EIC_EXTINT8 (1ul << 8)
-#define PIN_PA09A_EIC_EXTINT9 9L /**< \brief EIC signal: EXTINT9 on PA09 mux A */
-#define MUX_PA09A_EIC_EXTINT9 0L
-#define PINMUX_PA09A_EIC_EXTINT9 ((PIN_PA09A_EIC_EXTINT9 << 16) | MUX_PA09A_EIC_EXTINT9)
-#define PORT_PA09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PB09A_EIC_EXTINT9 41L /**< \brief EIC signal: EXTINT9 on PB09 mux A */
-#define MUX_PB09A_EIC_EXTINT9 0L
-#define PINMUX_PB09A_EIC_EXTINT9 ((PIN_PB09A_EIC_EXTINT9 << 16) | MUX_PB09A_EIC_EXTINT9)
-#define PORT_PB09A_EIC_EXTINT9 (1ul << 9)
-#define PIN_PA10A_EIC_EXTINT10 10L /**< \brief EIC signal: EXTINT10 on PA10 mux A */
-#define MUX_PA10A_EIC_EXTINT10 0L
-#define PINMUX_PA10A_EIC_EXTINT10 ((PIN_PA10A_EIC_EXTINT10 << 16) | MUX_PA10A_EIC_EXTINT10)
-#define PORT_PA10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA30A_EIC_EXTINT10 30L /**< \brief EIC signal: EXTINT10 on PA30 mux A */
-#define MUX_PA30A_EIC_EXTINT10 0L
-#define PINMUX_PA30A_EIC_EXTINT10 ((PIN_PA30A_EIC_EXTINT10 << 16) | MUX_PA30A_EIC_EXTINT10)
-#define PORT_PA30A_EIC_EXTINT10 (1ul << 30)
-#define PIN_PB10A_EIC_EXTINT10 42L /**< \brief EIC signal: EXTINT10 on PB10 mux A */
-#define MUX_PB10A_EIC_EXTINT10 0L
-#define PINMUX_PB10A_EIC_EXTINT10 ((PIN_PB10A_EIC_EXTINT10 << 16) | MUX_PB10A_EIC_EXTINT10)
-#define PORT_PB10A_EIC_EXTINT10 (1ul << 10)
-#define PIN_PA11A_EIC_EXTINT11 11L /**< \brief EIC signal: EXTINT11 on PA11 mux A */
-#define MUX_PA11A_EIC_EXTINT11 0L
-#define PINMUX_PA11A_EIC_EXTINT11 ((PIN_PA11A_EIC_EXTINT11 << 16) | MUX_PA11A_EIC_EXTINT11)
-#define PORT_PA11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA31A_EIC_EXTINT11 31L /**< \brief EIC signal: EXTINT11 on PA31 mux A */
-#define MUX_PA31A_EIC_EXTINT11 0L
-#define PINMUX_PA31A_EIC_EXTINT11 ((PIN_PA31A_EIC_EXTINT11 << 16) | MUX_PA31A_EIC_EXTINT11)
-#define PORT_PA31A_EIC_EXTINT11 (1ul << 31)
-#define PIN_PB11A_EIC_EXTINT11 43L /**< \brief EIC signal: EXTINT11 on PB11 mux A */
-#define MUX_PB11A_EIC_EXTINT11 0L
-#define PINMUX_PB11A_EIC_EXTINT11 ((PIN_PB11A_EIC_EXTINT11 << 16) | MUX_PB11A_EIC_EXTINT11)
-#define PORT_PB11A_EIC_EXTINT11 (1ul << 11)
-#define PIN_PA12A_EIC_EXTINT12 12L /**< \brief EIC signal: EXTINT12 on PA12 mux A */
-#define MUX_PA12A_EIC_EXTINT12 0L
-#define PINMUX_PA12A_EIC_EXTINT12 ((PIN_PA12A_EIC_EXTINT12 << 16) | MUX_PA12A_EIC_EXTINT12)
-#define PORT_PA12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA24A_EIC_EXTINT12 24L /**< \brief EIC signal: EXTINT12 on PA24 mux A */
-#define MUX_PA24A_EIC_EXTINT12 0L
-#define PINMUX_PA24A_EIC_EXTINT12 ((PIN_PA24A_EIC_EXTINT12 << 16) | MUX_PA24A_EIC_EXTINT12)
-#define PORT_PA24A_EIC_EXTINT12 (1ul << 24)
-#define PIN_PB12A_EIC_EXTINT12 44L /**< \brief EIC signal: EXTINT12 on PB12 mux A */
-#define MUX_PB12A_EIC_EXTINT12 0L
-#define PINMUX_PB12A_EIC_EXTINT12 ((PIN_PB12A_EIC_EXTINT12 << 16) | MUX_PB12A_EIC_EXTINT12)
-#define PORT_PB12A_EIC_EXTINT12 (1ul << 12)
-#define PIN_PA13A_EIC_EXTINT13 13L /**< \brief EIC signal: EXTINT13 on PA13 mux A */
-#define MUX_PA13A_EIC_EXTINT13 0L
-#define PINMUX_PA13A_EIC_EXTINT13 ((PIN_PA13A_EIC_EXTINT13 << 16) | MUX_PA13A_EIC_EXTINT13)
-#define PORT_PA13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PA25A_EIC_EXTINT13 25L /**< \brief EIC signal: EXTINT13 on PA25 mux A */
-#define MUX_PA25A_EIC_EXTINT13 0L
-#define PINMUX_PA25A_EIC_EXTINT13 ((PIN_PA25A_EIC_EXTINT13 << 16) | MUX_PA25A_EIC_EXTINT13)
-#define PORT_PA25A_EIC_EXTINT13 (1ul << 25)
-#define PIN_PB13A_EIC_EXTINT13 45L /**< \brief EIC signal: EXTINT13 on PB13 mux A */
-#define MUX_PB13A_EIC_EXTINT13 0L
-#define PINMUX_PB13A_EIC_EXTINT13 ((PIN_PB13A_EIC_EXTINT13 << 16) | MUX_PB13A_EIC_EXTINT13)
-#define PORT_PB13A_EIC_EXTINT13 (1ul << 13)
-#define PIN_PB14A_EIC_EXTINT14 46L /**< \brief EIC signal: EXTINT14 on PB14 mux A */
-#define MUX_PB14A_EIC_EXTINT14 0L
-#define PINMUX_PB14A_EIC_EXTINT14 ((PIN_PB14A_EIC_EXTINT14 << 16) | MUX_PB14A_EIC_EXTINT14)
-#define PORT_PB14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PB30A_EIC_EXTINT14 62L /**< \brief EIC signal: EXTINT14 on PB30 mux A */
-#define MUX_PB30A_EIC_EXTINT14 0L
-#define PINMUX_PB30A_EIC_EXTINT14 ((PIN_PB30A_EIC_EXTINT14 << 16) | MUX_PB30A_EIC_EXTINT14)
-#define PORT_PB30A_EIC_EXTINT14 (1ul << 30)
-#define PIN_PA14A_EIC_EXTINT14 14L /**< \brief EIC signal: EXTINT14 on PA14 mux A */
-#define MUX_PA14A_EIC_EXTINT14 0L
-#define PINMUX_PA14A_EIC_EXTINT14 ((PIN_PA14A_EIC_EXTINT14 << 16) | MUX_PA14A_EIC_EXTINT14)
-#define PORT_PA14A_EIC_EXTINT14 (1ul << 14)
-#define PIN_PA15A_EIC_EXTINT15 15L /**< \brief EIC signal: EXTINT15 on PA15 mux A */
-#define MUX_PA15A_EIC_EXTINT15 0L
-#define PINMUX_PA15A_EIC_EXTINT15 ((PIN_PA15A_EIC_EXTINT15 << 16) | MUX_PA15A_EIC_EXTINT15)
-#define PORT_PA15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PA27A_EIC_EXTINT15 27L /**< \brief EIC signal: EXTINT15 on PA27 mux A */
-#define MUX_PA27A_EIC_EXTINT15 0L
-#define PINMUX_PA27A_EIC_EXTINT15 ((PIN_PA27A_EIC_EXTINT15 << 16) | MUX_PA27A_EIC_EXTINT15)
-#define PORT_PA27A_EIC_EXTINT15 (1ul << 27)
-#define PIN_PB15A_EIC_EXTINT15 47L /**< \brief EIC signal: EXTINT15 on PB15 mux A */
-#define MUX_PB15A_EIC_EXTINT15 0L
-#define PINMUX_PB15A_EIC_EXTINT15 ((PIN_PB15A_EIC_EXTINT15 << 16) | MUX_PB15A_EIC_EXTINT15)
-#define PORT_PB15A_EIC_EXTINT15 (1ul << 15)
-#define PIN_PB31A_EIC_EXTINT15 63L /**< \brief EIC signal: EXTINT15 on PB31 mux A */
-#define MUX_PB31A_EIC_EXTINT15 0L
-#define PINMUX_PB31A_EIC_EXTINT15 ((PIN_PB31A_EIC_EXTINT15 << 16) | MUX_PB31A_EIC_EXTINT15)
-#define PORT_PB31A_EIC_EXTINT15 (1ul << 31)
-#define PIN_PA08A_EIC_NMI 8L /**< \brief EIC signal: NMI on PA08 mux A */
-#define MUX_PA08A_EIC_NMI 0L
-#define PINMUX_PA08A_EIC_NMI ((PIN_PA08A_EIC_NMI << 16) | MUX_PA08A_EIC_NMI)
-#define PORT_PA08A_EIC_NMI (1ul << 8)
-/* ========== PORT definition for USB peripheral ========== */
-#define PIN_PA24G_USB_DM 24L /**< \brief USB signal: DM on PA24 mux G */
-#define MUX_PA24G_USB_DM 6L
-#define PINMUX_PA24G_USB_DM ((PIN_PA24G_USB_DM << 16) | MUX_PA24G_USB_DM)
-#define PORT_PA24G_USB_DM (1ul << 24)
-#define PIN_PA25G_USB_DP 25L /**< \brief USB signal: DP on PA25 mux G */
-#define MUX_PA25G_USB_DP 6L
-#define PINMUX_PA25G_USB_DP ((PIN_PA25G_USB_DP << 16) | MUX_PA25G_USB_DP)
-#define PORT_PA25G_USB_DP (1ul << 25)
-#define PIN_PA23G_USB_SOF_1KHZ 23L /**< \brief USB signal: SOF_1KHZ on PA23 mux G */
-#define MUX_PA23G_USB_SOF_1KHZ 6L
-#define PINMUX_PA23G_USB_SOF_1KHZ ((PIN_PA23G_USB_SOF_1KHZ << 16) | MUX_PA23G_USB_SOF_1KHZ)
-#define PORT_PA23G_USB_SOF_1KHZ (1ul << 23)
-/* ========== PORT definition for SERCOM0 peripheral ========== */
-#define PIN_PA04D_SERCOM0_PAD0 4L /**< \brief SERCOM0 signal: PAD0 on PA04 mux D */
-#define MUX_PA04D_SERCOM0_PAD0 3L
-#define PINMUX_PA04D_SERCOM0_PAD0 ((PIN_PA04D_SERCOM0_PAD0 << 16) | MUX_PA04D_SERCOM0_PAD0)
-#define PORT_PA04D_SERCOM0_PAD0 (1ul << 4)
-#define PIN_PA08C_SERCOM0_PAD0 8L /**< \brief SERCOM0 signal: PAD0 on PA08 mux C */
-#define MUX_PA08C_SERCOM0_PAD0 2L
-#define PINMUX_PA08C_SERCOM0_PAD0 ((PIN_PA08C_SERCOM0_PAD0 << 16) | MUX_PA08C_SERCOM0_PAD0)
-#define PORT_PA08C_SERCOM0_PAD0 (1ul << 8)
-#define PIN_PA05D_SERCOM0_PAD1 5L /**< \brief SERCOM0 signal: PAD1 on PA05 mux D */
-#define MUX_PA05D_SERCOM0_PAD1 3L
-#define PINMUX_PA05D_SERCOM0_PAD1 ((PIN_PA05D_SERCOM0_PAD1 << 16) | MUX_PA05D_SERCOM0_PAD1)
-#define PORT_PA05D_SERCOM0_PAD1 (1ul << 5)
-#define PIN_PA09C_SERCOM0_PAD1 9L /**< \brief SERCOM0 signal: PAD1 on PA09 mux C */
-#define MUX_PA09C_SERCOM0_PAD1 2L
-#define PINMUX_PA09C_SERCOM0_PAD1 ((PIN_PA09C_SERCOM0_PAD1 << 16) | MUX_PA09C_SERCOM0_PAD1)
-#define PORT_PA09C_SERCOM0_PAD1 (1ul << 9)
-#define PIN_PA06D_SERCOM0_PAD2 6L /**< \brief SERCOM0 signal: PAD2 on PA06 mux D */
-#define MUX_PA06D_SERCOM0_PAD2 3L
-#define PINMUX_PA06D_SERCOM0_PAD2 ((PIN_PA06D_SERCOM0_PAD2 << 16) | MUX_PA06D_SERCOM0_PAD2)
-#define PORT_PA06D_SERCOM0_PAD2 (1ul << 6)
-#define PIN_PA10C_SERCOM0_PAD2 10L /**< \brief SERCOM0 signal: PAD2 on PA10 mux C */
-#define MUX_PA10C_SERCOM0_PAD2 2L
-#define PINMUX_PA10C_SERCOM0_PAD2 ((PIN_PA10C_SERCOM0_PAD2 << 16) | MUX_PA10C_SERCOM0_PAD2)
-#define PORT_PA10C_SERCOM0_PAD2 (1ul << 10)
-#define PIN_PA07D_SERCOM0_PAD3 7L /**< \brief SERCOM0 signal: PAD3 on PA07 mux D */
-#define MUX_PA07D_SERCOM0_PAD3 3L
-#define PINMUX_PA07D_SERCOM0_PAD3 ((PIN_PA07D_SERCOM0_PAD3 << 16) | MUX_PA07D_SERCOM0_PAD3)
-#define PORT_PA07D_SERCOM0_PAD3 (1ul << 7)
-#define PIN_PA11C_SERCOM0_PAD3 11L /**< \brief SERCOM0 signal: PAD3 on PA11 mux C */
-#define MUX_PA11C_SERCOM0_PAD3 2L
-#define PINMUX_PA11C_SERCOM0_PAD3 ((PIN_PA11C_SERCOM0_PAD3 << 16) | MUX_PA11C_SERCOM0_PAD3)
-#define PORT_PA11C_SERCOM0_PAD3 (1ul << 11)
-/* ========== PORT definition for SERCOM1 peripheral ========== */
-#define PIN_PA16C_SERCOM1_PAD0 16L /**< \brief SERCOM1 signal: PAD0 on PA16 mux C */
-#define MUX_PA16C_SERCOM1_PAD0 2L
-#define PINMUX_PA16C_SERCOM1_PAD0 ((PIN_PA16C_SERCOM1_PAD0 << 16) | MUX_PA16C_SERCOM1_PAD0)
-#define PORT_PA16C_SERCOM1_PAD0 (1ul << 16)
-#define PIN_PA00D_SERCOM1_PAD0 0L /**< \brief SERCOM1 signal: PAD0 on PA00 mux D */
-#define MUX_PA00D_SERCOM1_PAD0 3L
-#define PINMUX_PA00D_SERCOM1_PAD0 ((PIN_PA00D_SERCOM1_PAD0 << 16) | MUX_PA00D_SERCOM1_PAD0)
-#define PORT_PA00D_SERCOM1_PAD0 (1ul << 0)
-#define PIN_PA17C_SERCOM1_PAD1 17L /**< \brief SERCOM1 signal: PAD1 on PA17 mux C */
-#define MUX_PA17C_SERCOM1_PAD1 2L
-#define PINMUX_PA17C_SERCOM1_PAD1 ((PIN_PA17C_SERCOM1_PAD1 << 16) | MUX_PA17C_SERCOM1_PAD1)
-#define PORT_PA17C_SERCOM1_PAD1 (1ul << 17)
-#define PIN_PA01D_SERCOM1_PAD1 1L /**< \brief SERCOM1 signal: PAD1 on PA01 mux D */
-#define MUX_PA01D_SERCOM1_PAD1 3L
-#define PINMUX_PA01D_SERCOM1_PAD1 ((PIN_PA01D_SERCOM1_PAD1 << 16) | MUX_PA01D_SERCOM1_PAD1)
-#define PORT_PA01D_SERCOM1_PAD1 (1ul << 1)
-#define PIN_PA30D_SERCOM1_PAD2 30L /**< \brief SERCOM1 signal: PAD2 on PA30 mux D */
-#define MUX_PA30D_SERCOM1_PAD2 3L
-#define PINMUX_PA30D_SERCOM1_PAD2 ((PIN_PA30D_SERCOM1_PAD2 << 16) | MUX_PA30D_SERCOM1_PAD2)
-#define PORT_PA30D_SERCOM1_PAD2 (1ul << 30)
-#define PIN_PA18C_SERCOM1_PAD2 18L /**< \brief SERCOM1 signal: PAD2 on PA18 mux C */
-#define MUX_PA18C_SERCOM1_PAD2 2L
-#define PINMUX_PA18C_SERCOM1_PAD2 ((PIN_PA18C_SERCOM1_PAD2 << 16) | MUX_PA18C_SERCOM1_PAD2)
-#define PORT_PA18C_SERCOM1_PAD2 (1ul << 18)
-#define PIN_PA31D_SERCOM1_PAD3 31L /**< \brief SERCOM1 signal: PAD3 on PA31 mux D */
-#define MUX_PA31D_SERCOM1_PAD3 3L
-#define PINMUX_PA31D_SERCOM1_PAD3 ((PIN_PA31D_SERCOM1_PAD3 << 16) | MUX_PA31D_SERCOM1_PAD3)
-#define PORT_PA31D_SERCOM1_PAD3 (1ul << 31)
-#define PIN_PA19C_SERCOM1_PAD3 19L /**< \brief SERCOM1 signal: PAD3 on PA19 mux C */
-#define MUX_PA19C_SERCOM1_PAD3 2L
-#define PINMUX_PA19C_SERCOM1_PAD3 ((PIN_PA19C_SERCOM1_PAD3 << 16) | MUX_PA19C_SERCOM1_PAD3)
-#define PORT_PA19C_SERCOM1_PAD3 (1ul << 19)
-/* ========== PORT definition for SERCOM2 peripheral ========== */
-#define PIN_PA08D_SERCOM2_PAD0 8L /**< \brief SERCOM2 signal: PAD0 on PA08 mux D */
-#define MUX_PA08D_SERCOM2_PAD0 3L
-#define PINMUX_PA08D_SERCOM2_PAD0 ((PIN_PA08D_SERCOM2_PAD0 << 16) | MUX_PA08D_SERCOM2_PAD0)
-#define PORT_PA08D_SERCOM2_PAD0 (1ul << 8)
-#define PIN_PA12C_SERCOM2_PAD0 12L /**< \brief SERCOM2 signal: PAD0 on PA12 mux C */
-#define MUX_PA12C_SERCOM2_PAD0 2L
-#define PINMUX_PA12C_SERCOM2_PAD0 ((PIN_PA12C_SERCOM2_PAD0 << 16) | MUX_PA12C_SERCOM2_PAD0)
-#define PORT_PA12C_SERCOM2_PAD0 (1ul << 12)
-#define PIN_PA09D_SERCOM2_PAD1 9L /**< \brief SERCOM2 signal: PAD1 on PA09 mux D */
-#define MUX_PA09D_SERCOM2_PAD1 3L
-#define PINMUX_PA09D_SERCOM2_PAD1 ((PIN_PA09D_SERCOM2_PAD1 << 16) | MUX_PA09D_SERCOM2_PAD1)
-#define PORT_PA09D_SERCOM2_PAD1 (1ul << 9)
-#define PIN_PA13C_SERCOM2_PAD1 13L /**< \brief SERCOM2 signal: PAD1 on PA13 mux C */
-#define MUX_PA13C_SERCOM2_PAD1 2L
-#define PINMUX_PA13C_SERCOM2_PAD1 ((PIN_PA13C_SERCOM2_PAD1 << 16) | MUX_PA13C_SERCOM2_PAD1)
-#define PORT_PA13C_SERCOM2_PAD1 (1ul << 13)
-#define PIN_PA10D_SERCOM2_PAD2 10L /**< \brief SERCOM2 signal: PAD2 on PA10 mux D */
-#define MUX_PA10D_SERCOM2_PAD2 3L
-#define PINMUX_PA10D_SERCOM2_PAD2 ((PIN_PA10D_SERCOM2_PAD2 << 16) | MUX_PA10D_SERCOM2_PAD2)
-#define PORT_PA10D_SERCOM2_PAD2 (1ul << 10)
-#define PIN_PA14C_SERCOM2_PAD2 14L /**< \brief SERCOM2 signal: PAD2 on PA14 mux C */
-#define MUX_PA14C_SERCOM2_PAD2 2L
-#define PINMUX_PA14C_SERCOM2_PAD2 ((PIN_PA14C_SERCOM2_PAD2 << 16) | MUX_PA14C_SERCOM2_PAD2)
-#define PORT_PA14C_SERCOM2_PAD2 (1ul << 14)
-#define PIN_PA11D_SERCOM2_PAD3 11L /**< \brief SERCOM2 signal: PAD3 on PA11 mux D */
-#define MUX_PA11D_SERCOM2_PAD3 3L
-#define PINMUX_PA11D_SERCOM2_PAD3 ((PIN_PA11D_SERCOM2_PAD3 << 16) | MUX_PA11D_SERCOM2_PAD3)
-#define PORT_PA11D_SERCOM2_PAD3 (1ul << 11)
-#define PIN_PA15C_SERCOM2_PAD3 15L /**< \brief SERCOM2 signal: PAD3 on PA15 mux C */
-#define MUX_PA15C_SERCOM2_PAD3 2L
-#define PINMUX_PA15C_SERCOM2_PAD3 ((PIN_PA15C_SERCOM2_PAD3 << 16) | MUX_PA15C_SERCOM2_PAD3)
-#define PORT_PA15C_SERCOM2_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM3 peripheral ========== */
-#define PIN_PA16D_SERCOM3_PAD0 16L /**< \brief SERCOM3 signal: PAD0 on PA16 mux D */
-#define MUX_PA16D_SERCOM3_PAD0 3L
-#define PINMUX_PA16D_SERCOM3_PAD0 ((PIN_PA16D_SERCOM3_PAD0 << 16) | MUX_PA16D_SERCOM3_PAD0)
-#define PORT_PA16D_SERCOM3_PAD0 (1ul << 16)
-#define PIN_PA22C_SERCOM3_PAD0 22L /**< \brief SERCOM3 signal: PAD0 on PA22 mux C */
-#define MUX_PA22C_SERCOM3_PAD0 2L
-#define PINMUX_PA22C_SERCOM3_PAD0 ((PIN_PA22C_SERCOM3_PAD0 << 16) | MUX_PA22C_SERCOM3_PAD0)
-#define PORT_PA22C_SERCOM3_PAD0 (1ul << 22)
-#define PIN_PA17D_SERCOM3_PAD1 17L /**< \brief SERCOM3 signal: PAD1 on PA17 mux D */
-#define MUX_PA17D_SERCOM3_PAD1 3L
-#define PINMUX_PA17D_SERCOM3_PAD1 ((PIN_PA17D_SERCOM3_PAD1 << 16) | MUX_PA17D_SERCOM3_PAD1)
-#define PORT_PA17D_SERCOM3_PAD1 (1ul << 17)
-#define PIN_PA23C_SERCOM3_PAD1 23L /**< \brief SERCOM3 signal: PAD1 on PA23 mux C */
-#define MUX_PA23C_SERCOM3_PAD1 2L
-#define PINMUX_PA23C_SERCOM3_PAD1 ((PIN_PA23C_SERCOM3_PAD1 << 16) | MUX_PA23C_SERCOM3_PAD1)
-#define PORT_PA23C_SERCOM3_PAD1 (1ul << 23)
-#define PIN_PA18D_SERCOM3_PAD2 18L /**< \brief SERCOM3 signal: PAD2 on PA18 mux D */
-#define MUX_PA18D_SERCOM3_PAD2 3L
-#define PINMUX_PA18D_SERCOM3_PAD2 ((PIN_PA18D_SERCOM3_PAD2 << 16) | MUX_PA18D_SERCOM3_PAD2)
-#define PORT_PA18D_SERCOM3_PAD2 (1ul << 18)
-#define PIN_PA20D_SERCOM3_PAD2 20L /**< \brief SERCOM3 signal: PAD2 on PA20 mux D */
-#define MUX_PA20D_SERCOM3_PAD2 3L
-#define PINMUX_PA20D_SERCOM3_PAD2 ((PIN_PA20D_SERCOM3_PAD2 << 16) | MUX_PA20D_SERCOM3_PAD2)
-#define PORT_PA20D_SERCOM3_PAD2 (1ul << 20)
-#define PIN_PA24C_SERCOM3_PAD2 24L /**< \brief SERCOM3 signal: PAD2 on PA24 mux C */
-#define MUX_PA24C_SERCOM3_PAD2 2L
-#define PINMUX_PA24C_SERCOM3_PAD2 ((PIN_PA24C_SERCOM3_PAD2 << 16) | MUX_PA24C_SERCOM3_PAD2)
-#define PORT_PA24C_SERCOM3_PAD2 (1ul << 24)
-#define PIN_PA19D_SERCOM3_PAD3 19L /**< \brief SERCOM3 signal: PAD3 on PA19 mux D */
-#define MUX_PA19D_SERCOM3_PAD3 3L
-#define PINMUX_PA19D_SERCOM3_PAD3 ((PIN_PA19D_SERCOM3_PAD3 << 16) | MUX_PA19D_SERCOM3_PAD3)
-#define PORT_PA19D_SERCOM3_PAD3 (1ul << 19)
-#define PIN_PA21D_SERCOM3_PAD3 21L /**< \brief SERCOM3 signal: PAD3 on PA21 mux D */
-#define MUX_PA21D_SERCOM3_PAD3 3L
-#define PINMUX_PA21D_SERCOM3_PAD3 ((PIN_PA21D_SERCOM3_PAD3 << 16) | MUX_PA21D_SERCOM3_PAD3)
-#define PORT_PA21D_SERCOM3_PAD3 (1ul << 21)
-#define PIN_PA25C_SERCOM3_PAD3 25L /**< \brief SERCOM3 signal: PAD3 on PA25 mux C */
-#define MUX_PA25C_SERCOM3_PAD3 2L
-#define PINMUX_PA25C_SERCOM3_PAD3 ((PIN_PA25C_SERCOM3_PAD3 << 16) | MUX_PA25C_SERCOM3_PAD3)
-#define PORT_PA25C_SERCOM3_PAD3 (1ul << 25)
-/* ========== PORT definition for SERCOM4 peripheral ========== */
-#define PIN_PA12D_SERCOM4_PAD0 12L /**< \brief SERCOM4 signal: PAD0 on PA12 mux D */
-#define MUX_PA12D_SERCOM4_PAD0 3L
-#define PINMUX_PA12D_SERCOM4_PAD0 ((PIN_PA12D_SERCOM4_PAD0 << 16) | MUX_PA12D_SERCOM4_PAD0)
-#define PORT_PA12D_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PB08D_SERCOM4_PAD0 40L /**< \brief SERCOM4 signal: PAD0 on PB08 mux D */
-#define MUX_PB08D_SERCOM4_PAD0 3L
-#define PINMUX_PB08D_SERCOM4_PAD0 ((PIN_PB08D_SERCOM4_PAD0 << 16) | MUX_PB08D_SERCOM4_PAD0)
-#define PORT_PB08D_SERCOM4_PAD0 (1ul << 8)
-#define PIN_PB12C_SERCOM4_PAD0 44L /**< \brief SERCOM4 signal: PAD0 on PB12 mux C */
-#define MUX_PB12C_SERCOM4_PAD0 2L
-#define PINMUX_PB12C_SERCOM4_PAD0 ((PIN_PB12C_SERCOM4_PAD0 << 16) | MUX_PB12C_SERCOM4_PAD0)
-#define PORT_PB12C_SERCOM4_PAD0 (1ul << 12)
-#define PIN_PA13D_SERCOM4_PAD1 13L /**< \brief SERCOM4 signal: PAD1 on PA13 mux D */
-#define MUX_PA13D_SERCOM4_PAD1 3L
-#define PINMUX_PA13D_SERCOM4_PAD1 ((PIN_PA13D_SERCOM4_PAD1 << 16) | MUX_PA13D_SERCOM4_PAD1)
-#define PORT_PA13D_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PB09D_SERCOM4_PAD1 41L /**< \brief SERCOM4 signal: PAD1 on PB09 mux D */
-#define MUX_PB09D_SERCOM4_PAD1 3L
-#define PINMUX_PB09D_SERCOM4_PAD1 ((PIN_PB09D_SERCOM4_PAD1 << 16) | MUX_PB09D_SERCOM4_PAD1)
-#define PORT_PB09D_SERCOM4_PAD1 (1ul << 9)
-#define PIN_PB13C_SERCOM4_PAD1 45L /**< \brief SERCOM4 signal: PAD1 on PB13 mux C */
-#define MUX_PB13C_SERCOM4_PAD1 2L
-#define PINMUX_PB13C_SERCOM4_PAD1 ((PIN_PB13C_SERCOM4_PAD1 << 16) | MUX_PB13C_SERCOM4_PAD1)
-#define PORT_PB13C_SERCOM4_PAD1 (1ul << 13)
-#define PIN_PA14D_SERCOM4_PAD2 14L /**< \brief SERCOM4 signal: PAD2 on PA14 mux D */
-#define MUX_PA14D_SERCOM4_PAD2 3L
-#define PINMUX_PA14D_SERCOM4_PAD2 ((PIN_PA14D_SERCOM4_PAD2 << 16) | MUX_PA14D_SERCOM4_PAD2)
-#define PORT_PA14D_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PB10D_SERCOM4_PAD2 42L /**< \brief SERCOM4 signal: PAD2 on PB10 mux D */
-#define MUX_PB10D_SERCOM4_PAD2 3L
-#define PINMUX_PB10D_SERCOM4_PAD2 ((PIN_PB10D_SERCOM4_PAD2 << 16) | MUX_PB10D_SERCOM4_PAD2)
-#define PORT_PB10D_SERCOM4_PAD2 (1ul << 10)
-#define PIN_PB14C_SERCOM4_PAD2 46L /**< \brief SERCOM4 signal: PAD2 on PB14 mux C */
-#define MUX_PB14C_SERCOM4_PAD2 2L
-#define PINMUX_PB14C_SERCOM4_PAD2 ((PIN_PB14C_SERCOM4_PAD2 << 16) | MUX_PB14C_SERCOM4_PAD2)
-#define PORT_PB14C_SERCOM4_PAD2 (1ul << 14)
-#define PIN_PA15D_SERCOM4_PAD3 15L /**< \brief SERCOM4 signal: PAD3 on PA15 mux D */
-#define MUX_PA15D_SERCOM4_PAD3 3L
-#define PINMUX_PA15D_SERCOM4_PAD3 ((PIN_PA15D_SERCOM4_PAD3 << 16) | MUX_PA15D_SERCOM4_PAD3)
-#define PORT_PA15D_SERCOM4_PAD3 (1ul << 15)
-#define PIN_PB11D_SERCOM4_PAD3 43L /**< \brief SERCOM4 signal: PAD3 on PB11 mux D */
-#define MUX_PB11D_SERCOM4_PAD3 3L
-#define PINMUX_PB11D_SERCOM4_PAD3 ((PIN_PB11D_SERCOM4_PAD3 << 16) | MUX_PB11D_SERCOM4_PAD3)
-#define PORT_PB11D_SERCOM4_PAD3 (1ul << 11)
-#define PIN_PB15C_SERCOM4_PAD3 47L /**< \brief SERCOM4 signal: PAD3 on PB15 mux C */
-#define MUX_PB15C_SERCOM4_PAD3 2L
-#define PINMUX_PB15C_SERCOM4_PAD3 ((PIN_PB15C_SERCOM4_PAD3 << 16) | MUX_PB15C_SERCOM4_PAD3)
-#define PORT_PB15C_SERCOM4_PAD3 (1ul << 15)
-/* ========== PORT definition for SERCOM5 peripheral ========== */
-#define PIN_PB16C_SERCOM5_PAD0 48L /**< \brief SERCOM5 signal: PAD0 on PB16 mux C */
-#define MUX_PB16C_SERCOM5_PAD0 2L
-#define PINMUX_PB16C_SERCOM5_PAD0 ((PIN_PB16C_SERCOM5_PAD0 << 16) | MUX_PB16C_SERCOM5_PAD0)
-#define PORT_PB16C_SERCOM5_PAD0 (1ul << 16)
-#define PIN_PA22D_SERCOM5_PAD0 22L /**< \brief SERCOM5 signal: PAD0 on PA22 mux D */
-#define MUX_PA22D_SERCOM5_PAD0 3L
-#define PINMUX_PA22D_SERCOM5_PAD0 ((PIN_PA22D_SERCOM5_PAD0 << 16) | MUX_PA22D_SERCOM5_PAD0)
-#define PORT_PA22D_SERCOM5_PAD0 (1ul << 22)
-#define PIN_PB02D_SERCOM5_PAD0 34L /**< \brief SERCOM5 signal: PAD0 on PB02 mux D */
-#define MUX_PB02D_SERCOM5_PAD0 3L
-#define PINMUX_PB02D_SERCOM5_PAD0 ((PIN_PB02D_SERCOM5_PAD0 << 16) | MUX_PB02D_SERCOM5_PAD0)
-#define PORT_PB02D_SERCOM5_PAD0 (1ul << 2)
-#define PIN_PB30D_SERCOM5_PAD0 62L /**< \brief SERCOM5 signal: PAD0 on PB30 mux D */
-#define MUX_PB30D_SERCOM5_PAD0 3L
-#define PINMUX_PB30D_SERCOM5_PAD0 ((PIN_PB30D_SERCOM5_PAD0 << 16) | MUX_PB30D_SERCOM5_PAD0)
-#define PORT_PB30D_SERCOM5_PAD0 (1ul << 30)
-#define PIN_PB17C_SERCOM5_PAD1 49L /**< \brief SERCOM5 signal: PAD1 on PB17 mux C */
-#define MUX_PB17C_SERCOM5_PAD1 2L
-#define PINMUX_PB17C_SERCOM5_PAD1 ((PIN_PB17C_SERCOM5_PAD1 << 16) | MUX_PB17C_SERCOM5_PAD1)
-#define PORT_PB17C_SERCOM5_PAD1 (1ul << 17)
-#define PIN_PA23D_SERCOM5_PAD1 23L /**< \brief SERCOM5 signal: PAD1 on PA23 mux D */
-#define MUX_PA23D_SERCOM5_PAD1 3L
-#define PINMUX_PA23D_SERCOM5_PAD1 ((PIN_PA23D_SERCOM5_PAD1 << 16) | MUX_PA23D_SERCOM5_PAD1)
-#define PORT_PA23D_SERCOM5_PAD1 (1ul << 23)
-#define PIN_PB03D_SERCOM5_PAD1 35L /**< \brief SERCOM5 signal: PAD1 on PB03 mux D */
-#define MUX_PB03D_SERCOM5_PAD1 3L
-#define PINMUX_PB03D_SERCOM5_PAD1 ((PIN_PB03D_SERCOM5_PAD1 << 16) | MUX_PB03D_SERCOM5_PAD1)
-#define PORT_PB03D_SERCOM5_PAD1 (1ul << 3)
-#define PIN_PB31D_SERCOM5_PAD1 63L /**< \brief SERCOM5 signal: PAD1 on PB31 mux D */
-#define MUX_PB31D_SERCOM5_PAD1 3L
-#define PINMUX_PB31D_SERCOM5_PAD1 ((PIN_PB31D_SERCOM5_PAD1 << 16) | MUX_PB31D_SERCOM5_PAD1)
-#define PORT_PB31D_SERCOM5_PAD1 (1ul << 31)
-#define PIN_PA24D_SERCOM5_PAD2 24L /**< \brief SERCOM5 signal: PAD2 on PA24 mux D */
-#define MUX_PA24D_SERCOM5_PAD2 3L
-#define PINMUX_PA24D_SERCOM5_PAD2 ((PIN_PA24D_SERCOM5_PAD2 << 16) | MUX_PA24D_SERCOM5_PAD2)
-#define PORT_PA24D_SERCOM5_PAD2 (1ul << 24)
-#define PIN_PB00D_SERCOM5_PAD2 32L /**< \brief SERCOM5 signal: PAD2 on PB00 mux D */
-#define MUX_PB00D_SERCOM5_PAD2 3L
-#define PINMUX_PB00D_SERCOM5_PAD2 ((PIN_PB00D_SERCOM5_PAD2 << 16) | MUX_PB00D_SERCOM5_PAD2)
-#define PORT_PB00D_SERCOM5_PAD2 (1ul << 0)
-#define PIN_PB22D_SERCOM5_PAD2 54L /**< \brief SERCOM5 signal: PAD2 on PB22 mux D */
-#define MUX_PB22D_SERCOM5_PAD2 3L
-#define PINMUX_PB22D_SERCOM5_PAD2 ((PIN_PB22D_SERCOM5_PAD2 << 16) | MUX_PB22D_SERCOM5_PAD2)
-#define PORT_PB22D_SERCOM5_PAD2 (1ul << 22)
-#define PIN_PA20C_SERCOM5_PAD2 20L /**< \brief SERCOM5 signal: PAD2 on PA20 mux C */
-#define MUX_PA20C_SERCOM5_PAD2 2L
-#define PINMUX_PA20C_SERCOM5_PAD2 ((PIN_PA20C_SERCOM5_PAD2 << 16) | MUX_PA20C_SERCOM5_PAD2)
-#define PORT_PA20C_SERCOM5_PAD2 (1ul << 20)
-#define PIN_PA25D_SERCOM5_PAD3 25L /**< \brief SERCOM5 signal: PAD3 on PA25 mux D */
-#define MUX_PA25D_SERCOM5_PAD3 3L
-#define PINMUX_PA25D_SERCOM5_PAD3 ((PIN_PA25D_SERCOM5_PAD3 << 16) | MUX_PA25D_SERCOM5_PAD3)
-#define PORT_PA25D_SERCOM5_PAD3 (1ul << 25)
-#define PIN_PB01D_SERCOM5_PAD3 33L /**< \brief SERCOM5 signal: PAD3 on PB01 mux D */
-#define MUX_PB01D_SERCOM5_PAD3 3L
-#define PINMUX_PB01D_SERCOM5_PAD3 ((PIN_PB01D_SERCOM5_PAD3 << 16) | MUX_PB01D_SERCOM5_PAD3)
-#define PORT_PB01D_SERCOM5_PAD3 (1ul << 1)
-#define PIN_PB23D_SERCOM5_PAD3 55L /**< \brief SERCOM5 signal: PAD3 on PB23 mux D */
-#define MUX_PB23D_SERCOM5_PAD3 3L
-#define PINMUX_PB23D_SERCOM5_PAD3 ((PIN_PB23D_SERCOM5_PAD3 << 16) | MUX_PB23D_SERCOM5_PAD3)
-#define PORT_PB23D_SERCOM5_PAD3 (1ul << 23)
-#define PIN_PA21C_SERCOM5_PAD3 21L /**< \brief SERCOM5 signal: PAD3 on PA21 mux C */
-#define MUX_PA21C_SERCOM5_PAD3 2L
-#define PINMUX_PA21C_SERCOM5_PAD3 ((PIN_PA21C_SERCOM5_PAD3 << 16) | MUX_PA21C_SERCOM5_PAD3)
-#define PORT_PA21C_SERCOM5_PAD3 (1ul << 21)
-/* ========== PORT definition for TCC0 peripheral ========== */
-#define PIN_PA04E_TCC0_WO0 4L /**< \brief TCC0 signal: WO0 on PA04 mux E */
-#define MUX_PA04E_TCC0_WO0 4L
-#define PINMUX_PA04E_TCC0_WO0 ((PIN_PA04E_TCC0_WO0 << 16) | MUX_PA04E_TCC0_WO0)
-#define PORT_PA04E_TCC0_WO0 (1ul << 4)
-#define PIN_PA08E_TCC0_WO0 8L /**< \brief TCC0 signal: WO0 on PA08 mux E */
-#define MUX_PA08E_TCC0_WO0 4L
-#define PINMUX_PA08E_TCC0_WO0 ((PIN_PA08E_TCC0_WO0 << 16) | MUX_PA08E_TCC0_WO0)
-#define PORT_PA08E_TCC0_WO0 (1ul << 8)
-#define PIN_PB30E_TCC0_WO0 62L /**< \brief TCC0 signal: WO0 on PB30 mux E */
-#define MUX_PB30E_TCC0_WO0 4L
-#define PINMUX_PB30E_TCC0_WO0 ((PIN_PB30E_TCC0_WO0 << 16) | MUX_PB30E_TCC0_WO0)
-#define PORT_PB30E_TCC0_WO0 (1ul << 30)
-#define PIN_PA05E_TCC0_WO1 5L /**< \brief TCC0 signal: WO1 on PA05 mux E */
-#define MUX_PA05E_TCC0_WO1 4L
-#define PINMUX_PA05E_TCC0_WO1 ((PIN_PA05E_TCC0_WO1 << 16) | MUX_PA05E_TCC0_WO1)
-#define PORT_PA05E_TCC0_WO1 (1ul << 5)
-#define PIN_PA09E_TCC0_WO1 9L /**< \brief TCC0 signal: WO1 on PA09 mux E */
-#define MUX_PA09E_TCC0_WO1 4L
-#define PINMUX_PA09E_TCC0_WO1 ((PIN_PA09E_TCC0_WO1 << 16) | MUX_PA09E_TCC0_WO1)
-#define PORT_PA09E_TCC0_WO1 (1ul << 9)
-#define PIN_PB31E_TCC0_WO1 63L /**< \brief TCC0 signal: WO1 on PB31 mux E */
-#define MUX_PB31E_TCC0_WO1 4L
-#define PINMUX_PB31E_TCC0_WO1 ((PIN_PB31E_TCC0_WO1 << 16) | MUX_PB31E_TCC0_WO1)
-#define PORT_PB31E_TCC0_WO1 (1ul << 31)
-#define PIN_PA10F_TCC0_WO2 10L /**< \brief TCC0 signal: WO2 on PA10 mux F */
-#define MUX_PA10F_TCC0_WO2 5L
-#define PINMUX_PA10F_TCC0_WO2 ((PIN_PA10F_TCC0_WO2 << 16) | MUX_PA10F_TCC0_WO2)
-#define PORT_PA10F_TCC0_WO2 (1ul << 10)
-#define PIN_PA18F_TCC0_WO2 18L /**< \brief TCC0 signal: WO2 on PA18 mux F */
-#define MUX_PA18F_TCC0_WO2 5L
-#define PINMUX_PA18F_TCC0_WO2 ((PIN_PA18F_TCC0_WO2 << 16) | MUX_PA18F_TCC0_WO2)
-#define PORT_PA18F_TCC0_WO2 (1ul << 18)
-#define PIN_PA11F_TCC0_WO3 11L /**< \brief TCC0 signal: WO3 on PA11 mux F */
-#define MUX_PA11F_TCC0_WO3 5L
-#define PINMUX_PA11F_TCC0_WO3 ((PIN_PA11F_TCC0_WO3 << 16) | MUX_PA11F_TCC0_WO3)
-#define PORT_PA11F_TCC0_WO3 (1ul << 11)
-#define PIN_PA19F_TCC0_WO3 19L /**< \brief TCC0 signal: WO3 on PA19 mux F */
-#define MUX_PA19F_TCC0_WO3 5L
-#define PINMUX_PA19F_TCC0_WO3 ((PIN_PA19F_TCC0_WO3 << 16) | MUX_PA19F_TCC0_WO3)
-#define PORT_PA19F_TCC0_WO3 (1ul << 19)
-#define PIN_PA14F_TCC0_WO4 14L /**< \brief TCC0 signal: WO4 on PA14 mux F */
-#define MUX_PA14F_TCC0_WO4 5L
-#define PINMUX_PA14F_TCC0_WO4 ((PIN_PA14F_TCC0_WO4 << 16) | MUX_PA14F_TCC0_WO4)
-#define PORT_PA14F_TCC0_WO4 (1ul << 14)
-#define PIN_PA22F_TCC0_WO4 22L /**< \brief TCC0 signal: WO4 on PA22 mux F */
-#define MUX_PA22F_TCC0_WO4 5L
-#define PINMUX_PA22F_TCC0_WO4 ((PIN_PA22F_TCC0_WO4 << 16) | MUX_PA22F_TCC0_WO4)
-#define PORT_PA22F_TCC0_WO4 (1ul << 22)
-#define PIN_PB10F_TCC0_WO4 42L /**< \brief TCC0 signal: WO4 on PB10 mux F */
-#define MUX_PB10F_TCC0_WO4 5L
-#define PINMUX_PB10F_TCC0_WO4 ((PIN_PB10F_TCC0_WO4 << 16) | MUX_PB10F_TCC0_WO4)
-#define PORT_PB10F_TCC0_WO4 (1ul << 10)
-#define PIN_PB16F_TCC0_WO4 48L /**< \brief TCC0 signal: WO4 on PB16 mux F */
-#define MUX_PB16F_TCC0_WO4 5L
-#define PINMUX_PB16F_TCC0_WO4 ((PIN_PB16F_TCC0_WO4 << 16) | MUX_PB16F_TCC0_WO4)
-#define PORT_PB16F_TCC0_WO4 (1ul << 16)
-#define PIN_PA15F_TCC0_WO5 15L /**< \brief TCC0 signal: WO5 on PA15 mux F */
-#define MUX_PA15F_TCC0_WO5 5L
-#define PINMUX_PA15F_TCC0_WO5 ((PIN_PA15F_TCC0_WO5 << 16) | MUX_PA15F_TCC0_WO5)
-#define PORT_PA15F_TCC0_WO5 (1ul << 15)
-#define PIN_PA23F_TCC0_WO5 23L /**< \brief TCC0 signal: WO5 on PA23 mux F */
-#define MUX_PA23F_TCC0_WO5 5L
-#define PINMUX_PA23F_TCC0_WO5 ((PIN_PA23F_TCC0_WO5 << 16) | MUX_PA23F_TCC0_WO5)
-#define PORT_PA23F_TCC0_WO5 (1ul << 23)
-#define PIN_PB11F_TCC0_WO5 43L /**< \brief TCC0 signal: WO5 on PB11 mux F */
-#define MUX_PB11F_TCC0_WO5 5L
-#define PINMUX_PB11F_TCC0_WO5 ((PIN_PB11F_TCC0_WO5 << 16) | MUX_PB11F_TCC0_WO5)
-#define PORT_PB11F_TCC0_WO5 (1ul << 11)
-#define PIN_PB17F_TCC0_WO5 49L /**< \brief TCC0 signal: WO5 on PB17 mux F */
-#define MUX_PB17F_TCC0_WO5 5L
-#define PINMUX_PB17F_TCC0_WO5 ((PIN_PB17F_TCC0_WO5 << 16) | MUX_PB17F_TCC0_WO5)
-#define PORT_PB17F_TCC0_WO5 (1ul << 17)
-#define PIN_PA12F_TCC0_WO6 12L /**< \brief TCC0 signal: WO6 on PA12 mux F */
-#define MUX_PA12F_TCC0_WO6 5L
-#define PINMUX_PA12F_TCC0_WO6 ((PIN_PA12F_TCC0_WO6 << 16) | MUX_PA12F_TCC0_WO6)
-#define PORT_PA12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA20F_TCC0_WO6 20L /**< \brief TCC0 signal: WO6 on PA20 mux F */
-#define MUX_PA20F_TCC0_WO6 5L
-#define PINMUX_PA20F_TCC0_WO6 ((PIN_PA20F_TCC0_WO6 << 16) | MUX_PA20F_TCC0_WO6)
-#define PORT_PA20F_TCC0_WO6 (1ul << 20)
-#define PIN_PB12F_TCC0_WO6 44L /**< \brief TCC0 signal: WO6 on PB12 mux F */
-#define MUX_PB12F_TCC0_WO6 5L
-#define PINMUX_PB12F_TCC0_WO6 ((PIN_PB12F_TCC0_WO6 << 16) | MUX_PB12F_TCC0_WO6)
-#define PORT_PB12F_TCC0_WO6 (1ul << 12)
-#define PIN_PA16F_TCC0_WO6 16L /**< \brief TCC0 signal: WO6 on PA16 mux F */
-#define MUX_PA16F_TCC0_WO6 5L
-#define PINMUX_PA16F_TCC0_WO6 ((PIN_PA16F_TCC0_WO6 << 16) | MUX_PA16F_TCC0_WO6)
-#define PORT_PA16F_TCC0_WO6 (1ul << 16)
-#define PIN_PA13F_TCC0_WO7 13L /**< \brief TCC0 signal: WO7 on PA13 mux F */
-#define MUX_PA13F_TCC0_WO7 5L
-#define PINMUX_PA13F_TCC0_WO7 ((PIN_PA13F_TCC0_WO7 << 16) | MUX_PA13F_TCC0_WO7)
-#define PORT_PA13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA21F_TCC0_WO7 21L /**< \brief TCC0 signal: WO7 on PA21 mux F */
-#define MUX_PA21F_TCC0_WO7 5L
-#define PINMUX_PA21F_TCC0_WO7 ((PIN_PA21F_TCC0_WO7 << 16) | MUX_PA21F_TCC0_WO7)
-#define PORT_PA21F_TCC0_WO7 (1ul << 21)
-#define PIN_PB13F_TCC0_WO7 45L /**< \brief TCC0 signal: WO7 on PB13 mux F */
-#define MUX_PB13F_TCC0_WO7 5L
-#define PINMUX_PB13F_TCC0_WO7 ((PIN_PB13F_TCC0_WO7 << 16) | MUX_PB13F_TCC0_WO7)
-#define PORT_PB13F_TCC0_WO7 (1ul << 13)
-#define PIN_PA17F_TCC0_WO7 17L /**< \brief TCC0 signal: WO7 on PA17 mux F */
-#define MUX_PA17F_TCC0_WO7 5L
-#define PINMUX_PA17F_TCC0_WO7 ((PIN_PA17F_TCC0_WO7 << 16) | MUX_PA17F_TCC0_WO7)
-#define PORT_PA17F_TCC0_WO7 (1ul << 17)
-/* ========== PORT definition for TCC1 peripheral ========== */
-#define PIN_PA06E_TCC1_WO0 6L /**< \brief TCC1 signal: WO0 on PA06 mux E */
-#define MUX_PA06E_TCC1_WO0 4L
-#define PINMUX_PA06E_TCC1_WO0 ((PIN_PA06E_TCC1_WO0 << 16) | MUX_PA06E_TCC1_WO0)
-#define PORT_PA06E_TCC1_WO0 (1ul << 6)
-#define PIN_PA10E_TCC1_WO0 10L /**< \brief TCC1 signal: WO0 on PA10 mux E */
-#define MUX_PA10E_TCC1_WO0 4L
-#define PINMUX_PA10E_TCC1_WO0 ((PIN_PA10E_TCC1_WO0 << 16) | MUX_PA10E_TCC1_WO0)
-#define PORT_PA10E_TCC1_WO0 (1ul << 10)
-#define PIN_PA30E_TCC1_WO0 30L /**< \brief TCC1 signal: WO0 on PA30 mux E */
-#define MUX_PA30E_TCC1_WO0 4L
-#define PINMUX_PA30E_TCC1_WO0 ((PIN_PA30E_TCC1_WO0 << 16) | MUX_PA30E_TCC1_WO0)
-#define PORT_PA30E_TCC1_WO0 (1ul << 30)
-#define PIN_PA07E_TCC1_WO1 7L /**< \brief TCC1 signal: WO1 on PA07 mux E */
-#define MUX_PA07E_TCC1_WO1 4L
-#define PINMUX_PA07E_TCC1_WO1 ((PIN_PA07E_TCC1_WO1 << 16) | MUX_PA07E_TCC1_WO1)
-#define PORT_PA07E_TCC1_WO1 (1ul << 7)
-#define PIN_PA11E_TCC1_WO1 11L /**< \brief TCC1 signal: WO1 on PA11 mux E */
-#define MUX_PA11E_TCC1_WO1 4L
-#define PINMUX_PA11E_TCC1_WO1 ((PIN_PA11E_TCC1_WO1 << 16) | MUX_PA11E_TCC1_WO1)
-#define PORT_PA11E_TCC1_WO1 (1ul << 11)
-#define PIN_PA31E_TCC1_WO1 31L /**< \brief TCC1 signal: WO1 on PA31 mux E */
-#define MUX_PA31E_TCC1_WO1 4L
-#define PINMUX_PA31E_TCC1_WO1 ((PIN_PA31E_TCC1_WO1 << 16) | MUX_PA31E_TCC1_WO1)
-#define PORT_PA31E_TCC1_WO1 (1ul << 31)
-#define PIN_PA08F_TCC1_WO2 8L /**< \brief TCC1 signal: WO2 on PA08 mux F */
-#define MUX_PA08F_TCC1_WO2 5L
-#define PINMUX_PA08F_TCC1_WO2 ((PIN_PA08F_TCC1_WO2 << 16) | MUX_PA08F_TCC1_WO2)
-#define PORT_PA08F_TCC1_WO2 (1ul << 8)
-#define PIN_PA24F_TCC1_WO2 24L /**< \brief TCC1 signal: WO2 on PA24 mux F */
-#define MUX_PA24F_TCC1_WO2 5L
-#define PINMUX_PA24F_TCC1_WO2 ((PIN_PA24F_TCC1_WO2 << 16) | MUX_PA24F_TCC1_WO2)
-#define PORT_PA24F_TCC1_WO2 (1ul << 24)
-#define PIN_PB30F_TCC1_WO2 62L /**< \brief TCC1 signal: WO2 on PB30 mux F */
-#define MUX_PB30F_TCC1_WO2 5L
-#define PINMUX_PB30F_TCC1_WO2 ((PIN_PB30F_TCC1_WO2 << 16) | MUX_PB30F_TCC1_WO2)
-#define PORT_PB30F_TCC1_WO2 (1ul << 30)
-#define PIN_PA09F_TCC1_WO3 9L /**< \brief TCC1 signal: WO3 on PA09 mux F */
-#define MUX_PA09F_TCC1_WO3 5L
-#define PINMUX_PA09F_TCC1_WO3 ((PIN_PA09F_TCC1_WO3 << 16) | MUX_PA09F_TCC1_WO3)
-#define PORT_PA09F_TCC1_WO3 (1ul << 9)
-#define PIN_PA25F_TCC1_WO3 25L /**< \brief TCC1 signal: WO3 on PA25 mux F */
-#define MUX_PA25F_TCC1_WO3 5L
-#define PINMUX_PA25F_TCC1_WO3 ((PIN_PA25F_TCC1_WO3 << 16) | MUX_PA25F_TCC1_WO3)
-#define PORT_PA25F_TCC1_WO3 (1ul << 25)
-#define PIN_PB31F_TCC1_WO3 63L /**< \brief TCC1 signal: WO3 on PB31 mux F */
-#define MUX_PB31F_TCC1_WO3 5L
-#define PINMUX_PB31F_TCC1_WO3 ((PIN_PB31F_TCC1_WO3 << 16) | MUX_PB31F_TCC1_WO3)
-#define PORT_PB31F_TCC1_WO3 (1ul << 31)
-/* ========== PORT definition for TCC2 peripheral ========== */
-#define PIN_PA12E_TCC2_WO0 12L /**< \brief TCC2 signal: WO0 on PA12 mux E */
-#define MUX_PA12E_TCC2_WO0 4L
-#define PINMUX_PA12E_TCC2_WO0 ((PIN_PA12E_TCC2_WO0 << 16) | MUX_PA12E_TCC2_WO0)
-#define PORT_PA12E_TCC2_WO0 (1ul << 12)
-#define PIN_PA16E_TCC2_WO0 16L /**< \brief TCC2 signal: WO0 on PA16 mux E */
-#define MUX_PA16E_TCC2_WO0 4L
-#define PINMUX_PA16E_TCC2_WO0 ((PIN_PA16E_TCC2_WO0 << 16) | MUX_PA16E_TCC2_WO0)
-#define PORT_PA16E_TCC2_WO0 (1ul << 16)
-#define PIN_PA00E_TCC2_WO0 0L /**< \brief TCC2 signal: WO0 on PA00 mux E */
-#define MUX_PA00E_TCC2_WO0 4L
-#define PINMUX_PA00E_TCC2_WO0 ((PIN_PA00E_TCC2_WO0 << 16) | MUX_PA00E_TCC2_WO0)
-#define PORT_PA00E_TCC2_WO0 (1ul << 0)
-#define PIN_PA13E_TCC2_WO1 13L /**< \brief TCC2 signal: WO1 on PA13 mux E */
-#define MUX_PA13E_TCC2_WO1 4L
-#define PINMUX_PA13E_TCC2_WO1 ((PIN_PA13E_TCC2_WO1 << 16) | MUX_PA13E_TCC2_WO1)
-#define PORT_PA13E_TCC2_WO1 (1ul << 13)
-#define PIN_PA17E_TCC2_WO1 17L /**< \brief TCC2 signal: WO1 on PA17 mux E */
-#define MUX_PA17E_TCC2_WO1 4L
-#define PINMUX_PA17E_TCC2_WO1 ((PIN_PA17E_TCC2_WO1 << 16) | MUX_PA17E_TCC2_WO1)
-#define PORT_PA17E_TCC2_WO1 (1ul << 17)
-#define PIN_PA01E_TCC2_WO1 1L /**< \brief TCC2 signal: WO1 on PA01 mux E */
-#define MUX_PA01E_TCC2_WO1 4L
-#define PINMUX_PA01E_TCC2_WO1 ((PIN_PA01E_TCC2_WO1 << 16) | MUX_PA01E_TCC2_WO1)
-#define PORT_PA01E_TCC2_WO1 (1ul << 1)
-/* ========== PORT definition for TC3 peripheral ========== */
-#define PIN_PA18E_TC3_WO0 18L /**< \brief TC3 signal: WO0 on PA18 mux E */
-#define MUX_PA18E_TC3_WO0 4L
-#define PINMUX_PA18E_TC3_WO0 ((PIN_PA18E_TC3_WO0 << 16) | MUX_PA18E_TC3_WO0)
-#define PORT_PA18E_TC3_WO0 (1ul << 18)
-#define PIN_PA14E_TC3_WO0 14L /**< \brief TC3 signal: WO0 on PA14 mux E */
-#define MUX_PA14E_TC3_WO0 4L
-#define PINMUX_PA14E_TC3_WO0 ((PIN_PA14E_TC3_WO0 << 16) | MUX_PA14E_TC3_WO0)
-#define PORT_PA14E_TC3_WO0 (1ul << 14)
-#define PIN_PA19E_TC3_WO1 19L /**< \brief TC3 signal: WO1 on PA19 mux E */
-#define MUX_PA19E_TC3_WO1 4L
-#define PINMUX_PA19E_TC3_WO1 ((PIN_PA19E_TC3_WO1 << 16) | MUX_PA19E_TC3_WO1)
-#define PORT_PA19E_TC3_WO1 (1ul << 19)
-#define PIN_PA15E_TC3_WO1 15L /**< \brief TC3 signal: WO1 on PA15 mux E */
-#define MUX_PA15E_TC3_WO1 4L
-#define PINMUX_PA15E_TC3_WO1 ((PIN_PA15E_TC3_WO1 << 16) | MUX_PA15E_TC3_WO1)
-#define PORT_PA15E_TC3_WO1 (1ul << 15)
-/* ========== PORT definition for TC4 peripheral ========== */
-#define PIN_PA22E_TC4_WO0 22L /**< \brief TC4 signal: WO0 on PA22 mux E */
-#define MUX_PA22E_TC4_WO0 4L
-#define PINMUX_PA22E_TC4_WO0 ((PIN_PA22E_TC4_WO0 << 16) | MUX_PA22E_TC4_WO0)
-#define PORT_PA22E_TC4_WO0 (1ul << 22)
-#define PIN_PB08E_TC4_WO0 40L /**< \brief TC4 signal: WO0 on PB08 mux E */
-#define MUX_PB08E_TC4_WO0 4L
-#define PINMUX_PB08E_TC4_WO0 ((PIN_PB08E_TC4_WO0 << 16) | MUX_PB08E_TC4_WO0)
-#define PORT_PB08E_TC4_WO0 (1ul << 8)
-#define PIN_PB12E_TC4_WO0 44L /**< \brief TC4 signal: WO0 on PB12 mux E */
-#define MUX_PB12E_TC4_WO0 4L
-#define PINMUX_PB12E_TC4_WO0 ((PIN_PB12E_TC4_WO0 << 16) | MUX_PB12E_TC4_WO0)
-#define PORT_PB12E_TC4_WO0 (1ul << 12)
-#define PIN_PA23E_TC4_WO1 23L /**< \brief TC4 signal: WO1 on PA23 mux E */
-#define MUX_PA23E_TC4_WO1 4L
-#define PINMUX_PA23E_TC4_WO1 ((PIN_PA23E_TC4_WO1 << 16) | MUX_PA23E_TC4_WO1)
-#define PORT_PA23E_TC4_WO1 (1ul << 23)
-#define PIN_PB09E_TC4_WO1 41L /**< \brief TC4 signal: WO1 on PB09 mux E */
-#define MUX_PB09E_TC4_WO1 4L
-#define PINMUX_PB09E_TC4_WO1 ((PIN_PB09E_TC4_WO1 << 16) | MUX_PB09E_TC4_WO1)
-#define PORT_PB09E_TC4_WO1 (1ul << 9)
-#define PIN_PB13E_TC4_WO1 45L /**< \brief TC4 signal: WO1 on PB13 mux E */
-#define MUX_PB13E_TC4_WO1 4L
-#define PINMUX_PB13E_TC4_WO1 ((PIN_PB13E_TC4_WO1 << 16) | MUX_PB13E_TC4_WO1)
-#define PORT_PB13E_TC4_WO1 (1ul << 13)
-/* ========== PORT definition for TC5 peripheral ========== */
-#define PIN_PA24E_TC5_WO0 24L /**< \brief TC5 signal: WO0 on PA24 mux E */
-#define MUX_PA24E_TC5_WO0 4L
-#define PINMUX_PA24E_TC5_WO0 ((PIN_PA24E_TC5_WO0 << 16) | MUX_PA24E_TC5_WO0)
-#define PORT_PA24E_TC5_WO0 (1ul << 24)
-#define PIN_PB10E_TC5_WO0 42L /**< \brief TC5 signal: WO0 on PB10 mux E */
-#define MUX_PB10E_TC5_WO0 4L
-#define PINMUX_PB10E_TC5_WO0 ((PIN_PB10E_TC5_WO0 << 16) | MUX_PB10E_TC5_WO0)
-#define PORT_PB10E_TC5_WO0 (1ul << 10)
-#define PIN_PB14E_TC5_WO0 46L /**< \brief TC5 signal: WO0 on PB14 mux E */
-#define MUX_PB14E_TC5_WO0 4L
-#define PINMUX_PB14E_TC5_WO0 ((PIN_PB14E_TC5_WO0 << 16) | MUX_PB14E_TC5_WO0)
-#define PORT_PB14E_TC5_WO0 (1ul << 14)
-#define PIN_PA25E_TC5_WO1 25L /**< \brief TC5 signal: WO1 on PA25 mux E */
-#define MUX_PA25E_TC5_WO1 4L
-#define PINMUX_PA25E_TC5_WO1 ((PIN_PA25E_TC5_WO1 << 16) | MUX_PA25E_TC5_WO1)
-#define PORT_PA25E_TC5_WO1 (1ul << 25)
-#define PIN_PB11E_TC5_WO1 43L /**< \brief TC5 signal: WO1 on PB11 mux E */
-#define MUX_PB11E_TC5_WO1 4L
-#define PINMUX_PB11E_TC5_WO1 ((PIN_PB11E_TC5_WO1 << 16) | MUX_PB11E_TC5_WO1)
-#define PORT_PB11E_TC5_WO1 (1ul << 11)
-#define PIN_PB15E_TC5_WO1 47L /**< \brief TC5 signal: WO1 on PB15 mux E */
-#define MUX_PB15E_TC5_WO1 4L
-#define PINMUX_PB15E_TC5_WO1 ((PIN_PB15E_TC5_WO1 << 16) | MUX_PB15E_TC5_WO1)
-#define PORT_PB15E_TC5_WO1 (1ul << 15)
-/* ========== PORT definition for TC6 peripheral ========== */
-#define PIN_PB02E_TC6_WO0 34L /**< \brief TC6 signal: WO0 on PB02 mux E */
-#define MUX_PB02E_TC6_WO0 4L
-#define PINMUX_PB02E_TC6_WO0 ((PIN_PB02E_TC6_WO0 << 16) | MUX_PB02E_TC6_WO0)
-#define PORT_PB02E_TC6_WO0 (1ul << 2)
-#define PIN_PB16E_TC6_WO0 48L /**< \brief TC6 signal: WO0 on PB16 mux E */
-#define MUX_PB16E_TC6_WO0 4L
-#define PINMUX_PB16E_TC6_WO0 ((PIN_PB16E_TC6_WO0 << 16) | MUX_PB16E_TC6_WO0)
-#define PORT_PB16E_TC6_WO0 (1ul << 16)
-#define PIN_PB03E_TC6_WO1 35L /**< \brief TC6 signal: WO1 on PB03 mux E */
-#define MUX_PB03E_TC6_WO1 4L
-#define PINMUX_PB03E_TC6_WO1 ((PIN_PB03E_TC6_WO1 << 16) | MUX_PB03E_TC6_WO1)
-#define PORT_PB03E_TC6_WO1 (1ul << 3)
-#define PIN_PB17E_TC6_WO1 49L /**< \brief TC6 signal: WO1 on PB17 mux E */
-#define MUX_PB17E_TC6_WO1 4L
-#define PINMUX_PB17E_TC6_WO1 ((PIN_PB17E_TC6_WO1 << 16) | MUX_PB17E_TC6_WO1)
-#define PORT_PB17E_TC6_WO1 (1ul << 17)
-/* ========== PORT definition for TC7 peripheral ========== */
-#define PIN_PA20E_TC7_WO0 20L /**< \brief TC7 signal: WO0 on PA20 mux E */
-#define MUX_PA20E_TC7_WO0 4L
-#define PINMUX_PA20E_TC7_WO0 ((PIN_PA20E_TC7_WO0 << 16) | MUX_PA20E_TC7_WO0)
-#define PORT_PA20E_TC7_WO0 (1ul << 20)
-#define PIN_PB00E_TC7_WO0 32L /**< \brief TC7 signal: WO0 on PB00 mux E */
-#define MUX_PB00E_TC7_WO0 4L
-#define PINMUX_PB00E_TC7_WO0 ((PIN_PB00E_TC7_WO0 << 16) | MUX_PB00E_TC7_WO0)
-#define PORT_PB00E_TC7_WO0 (1ul << 0)
-#define PIN_PB22E_TC7_WO0 54L /**< \brief TC7 signal: WO0 on PB22 mux E */
-#define MUX_PB22E_TC7_WO0 4L
-#define PINMUX_PB22E_TC7_WO0 ((PIN_PB22E_TC7_WO0 << 16) | MUX_PB22E_TC7_WO0)
-#define PORT_PB22E_TC7_WO0 (1ul << 22)
-#define PIN_PA21E_TC7_WO1 21L /**< \brief TC7 signal: WO1 on PA21 mux E */
-#define MUX_PA21E_TC7_WO1 4L
-#define PINMUX_PA21E_TC7_WO1 ((PIN_PA21E_TC7_WO1 << 16) | MUX_PA21E_TC7_WO1)
-#define PORT_PA21E_TC7_WO1 (1ul << 21)
-#define PIN_PB01E_TC7_WO1 33L /**< \brief TC7 signal: WO1 on PB01 mux E */
-#define MUX_PB01E_TC7_WO1 4L
-#define PINMUX_PB01E_TC7_WO1 ((PIN_PB01E_TC7_WO1 << 16) | MUX_PB01E_TC7_WO1)
-#define PORT_PB01E_TC7_WO1 (1ul << 1)
-#define PIN_PB23E_TC7_WO1 55L /**< \brief TC7 signal: WO1 on PB23 mux E */
-#define MUX_PB23E_TC7_WO1 4L
-#define PINMUX_PB23E_TC7_WO1 ((PIN_PB23E_TC7_WO1 << 16) | MUX_PB23E_TC7_WO1)
-#define PORT_PB23E_TC7_WO1 (1ul << 23)
-/* ========== PORT definition for ADC peripheral ========== */
-#define PIN_PA02B_ADC_AIN0 2L /**< \brief ADC signal: AIN0 on PA02 mux B */
-#define MUX_PA02B_ADC_AIN0 1L
-#define PINMUX_PA02B_ADC_AIN0 ((PIN_PA02B_ADC_AIN0 << 16) | MUX_PA02B_ADC_AIN0)
-#define PORT_PA02B_ADC_AIN0 (1ul << 2)
-#define PIN_PA03B_ADC_AIN1 3L /**< \brief ADC signal: AIN1 on PA03 mux B */
-#define MUX_PA03B_ADC_AIN1 1L
-#define PINMUX_PA03B_ADC_AIN1 ((PIN_PA03B_ADC_AIN1 << 16) | MUX_PA03B_ADC_AIN1)
-#define PORT_PA03B_ADC_AIN1 (1ul << 3)
-#define PIN_PB08B_ADC_AIN2 40L /**< \brief ADC signal: AIN2 on PB08 mux B */
-#define MUX_PB08B_ADC_AIN2 1L
-#define PINMUX_PB08B_ADC_AIN2 ((PIN_PB08B_ADC_AIN2 << 16) | MUX_PB08B_ADC_AIN2)
-#define PORT_PB08B_ADC_AIN2 (1ul << 8)
-#define PIN_PB09B_ADC_AIN3 41L /**< \brief ADC signal: AIN3 on PB09 mux B */
-#define MUX_PB09B_ADC_AIN3 1L
-#define PINMUX_PB09B_ADC_AIN3 ((PIN_PB09B_ADC_AIN3 << 16) | MUX_PB09B_ADC_AIN3)
-#define PORT_PB09B_ADC_AIN3 (1ul << 9)
-#define PIN_PA04B_ADC_AIN4 4L /**< \brief ADC signal: AIN4 on PA04 mux B */
-#define MUX_PA04B_ADC_AIN4 1L
-#define PINMUX_PA04B_ADC_AIN4 ((PIN_PA04B_ADC_AIN4 << 16) | MUX_PA04B_ADC_AIN4)
-#define PORT_PA04B_ADC_AIN4 (1ul << 4)
-#define PIN_PA05B_ADC_AIN5 5L /**< \brief ADC signal: AIN5 on PA05 mux B */
-#define MUX_PA05B_ADC_AIN5 1L
-#define PINMUX_PA05B_ADC_AIN5 ((PIN_PA05B_ADC_AIN5 << 16) | MUX_PA05B_ADC_AIN5)
-#define PORT_PA05B_ADC_AIN5 (1ul << 5)
-#define PIN_PA06B_ADC_AIN6 6L /**< \brief ADC signal: AIN6 on PA06 mux B */
-#define MUX_PA06B_ADC_AIN6 1L
-#define PINMUX_PA06B_ADC_AIN6 ((PIN_PA06B_ADC_AIN6 << 16) | MUX_PA06B_ADC_AIN6)
-#define PORT_PA06B_ADC_AIN6 (1ul << 6)
-#define PIN_PA07B_ADC_AIN7 7L /**< \brief ADC signal: AIN7 on PA07 mux B */
-#define MUX_PA07B_ADC_AIN7 1L
-#define PINMUX_PA07B_ADC_AIN7 ((PIN_PA07B_ADC_AIN7 << 16) | MUX_PA07B_ADC_AIN7)
-#define PORT_PA07B_ADC_AIN7 (1ul << 7)
-#define PIN_PB00B_ADC_AIN8 32L /**< \brief ADC signal: AIN8 on PB00 mux B */
-#define MUX_PB00B_ADC_AIN8 1L
-#define PINMUX_PB00B_ADC_AIN8 ((PIN_PB00B_ADC_AIN8 << 16) | MUX_PB00B_ADC_AIN8)
-#define PORT_PB00B_ADC_AIN8 (1ul << 0)
-#define PIN_PB01B_ADC_AIN9 33L /**< \brief ADC signal: AIN9 on PB01 mux B */
-#define MUX_PB01B_ADC_AIN9 1L
-#define PINMUX_PB01B_ADC_AIN9 ((PIN_PB01B_ADC_AIN9 << 16) | MUX_PB01B_ADC_AIN9)
-#define PORT_PB01B_ADC_AIN9 (1ul << 1)
-#define PIN_PB02B_ADC_AIN10 34L /**< \brief ADC signal: AIN10 on PB02 mux B */
-#define MUX_PB02B_ADC_AIN10 1L
-#define PINMUX_PB02B_ADC_AIN10 ((PIN_PB02B_ADC_AIN10 << 16) | MUX_PB02B_ADC_AIN10)
-#define PORT_PB02B_ADC_AIN10 (1ul << 2)
-#define PIN_PB03B_ADC_AIN11 35L /**< \brief ADC signal: AIN11 on PB03 mux B */
-#define MUX_PB03B_ADC_AIN11 1L
-#define PINMUX_PB03B_ADC_AIN11 ((PIN_PB03B_ADC_AIN11 << 16) | MUX_PB03B_ADC_AIN11)
-#define PORT_PB03B_ADC_AIN11 (1ul << 3)
-#define PIN_PB04B_ADC_AIN12 36L /**< \brief ADC signal: AIN12 on PB04 mux B */
-#define MUX_PB04B_ADC_AIN12 1L
-#define PINMUX_PB04B_ADC_AIN12 ((PIN_PB04B_ADC_AIN12 << 16) | MUX_PB04B_ADC_AIN12)
-#define PORT_PB04B_ADC_AIN12 (1ul << 4)
-#define PIN_PB05B_ADC_AIN13 37L /**< \brief ADC signal: AIN13 on PB05 mux B */
-#define MUX_PB05B_ADC_AIN13 1L
-#define PINMUX_PB05B_ADC_AIN13 ((PIN_PB05B_ADC_AIN13 << 16) | MUX_PB05B_ADC_AIN13)
-#define PORT_PB05B_ADC_AIN13 (1ul << 5)
-#define PIN_PB06B_ADC_AIN14 38L /**< \brief ADC signal: AIN14 on PB06 mux B */
-#define MUX_PB06B_ADC_AIN14 1L
-#define PINMUX_PB06B_ADC_AIN14 ((PIN_PB06B_ADC_AIN14 << 16) | MUX_PB06B_ADC_AIN14)
-#define PORT_PB06B_ADC_AIN14 (1ul << 6)
-#define PIN_PB07B_ADC_AIN15 39L /**< \brief ADC signal: AIN15 on PB07 mux B */
-#define MUX_PB07B_ADC_AIN15 1L
-#define PINMUX_PB07B_ADC_AIN15 ((PIN_PB07B_ADC_AIN15 << 16) | MUX_PB07B_ADC_AIN15)
-#define PORT_PB07B_ADC_AIN15 (1ul << 7)
-#define PIN_PA08B_ADC_AIN16 8L /**< \brief ADC signal: AIN16 on PA08 mux B */
-#define MUX_PA08B_ADC_AIN16 1L
-#define PINMUX_PA08B_ADC_AIN16 ((PIN_PA08B_ADC_AIN16 << 16) | MUX_PA08B_ADC_AIN16)
-#define PORT_PA08B_ADC_AIN16 (1ul << 8)
-#define PIN_PA09B_ADC_AIN17 9L /**< \brief ADC signal: AIN17 on PA09 mux B */
-#define MUX_PA09B_ADC_AIN17 1L
-#define PINMUX_PA09B_ADC_AIN17 ((PIN_PA09B_ADC_AIN17 << 16) | MUX_PA09B_ADC_AIN17)
-#define PORT_PA09B_ADC_AIN17 (1ul << 9)
-#define PIN_PA10B_ADC_AIN18 10L /**< \brief ADC signal: AIN18 on PA10 mux B */
-#define MUX_PA10B_ADC_AIN18 1L
-#define PINMUX_PA10B_ADC_AIN18 ((PIN_PA10B_ADC_AIN18 << 16) | MUX_PA10B_ADC_AIN18)
-#define PORT_PA10B_ADC_AIN18 (1ul << 10)
-#define PIN_PA11B_ADC_AIN19 11L /**< \brief ADC signal: AIN19 on PA11 mux B */
-#define MUX_PA11B_ADC_AIN19 1L
-#define PINMUX_PA11B_ADC_AIN19 ((PIN_PA11B_ADC_AIN19 << 16) | MUX_PA11B_ADC_AIN19)
-#define PORT_PA11B_ADC_AIN19 (1ul << 11)
-#define PIN_PA04B_ADC_VREFP 4L /**< \brief ADC signal: VREFP on PA04 mux B */
-#define MUX_PA04B_ADC_VREFP 1L
-#define PINMUX_PA04B_ADC_VREFP ((PIN_PA04B_ADC_VREFP << 16) | MUX_PA04B_ADC_VREFP)
-#define PORT_PA04B_ADC_VREFP (1ul << 4)
-/* ========== PORT definition for AC peripheral ========== */
-#define PIN_PA04B_AC_AIN0 4L /**< \brief AC signal: AIN0 on PA04 mux B */
-#define MUX_PA04B_AC_AIN0 1L
-#define PINMUX_PA04B_AC_AIN0 ((PIN_PA04B_AC_AIN0 << 16) | MUX_PA04B_AC_AIN0)
-#define PORT_PA04B_AC_AIN0 (1ul << 4)
-#define PIN_PA05B_AC_AIN1 5L /**< \brief AC signal: AIN1 on PA05 mux B */
-#define MUX_PA05B_AC_AIN1 1L
-#define PINMUX_PA05B_AC_AIN1 ((PIN_PA05B_AC_AIN1 << 16) | MUX_PA05B_AC_AIN1)
-#define PORT_PA05B_AC_AIN1 (1ul << 5)
-#define PIN_PA06B_AC_AIN2 6L /**< \brief AC signal: AIN2 on PA06 mux B */
-#define MUX_PA06B_AC_AIN2 1L
-#define PINMUX_PA06B_AC_AIN2 ((PIN_PA06B_AC_AIN2 << 16) | MUX_PA06B_AC_AIN2)
-#define PORT_PA06B_AC_AIN2 (1ul << 6)
-#define PIN_PA07B_AC_AIN3 7L /**< \brief AC signal: AIN3 on PA07 mux B */
-#define MUX_PA07B_AC_AIN3 1L
-#define PINMUX_PA07B_AC_AIN3 ((PIN_PA07B_AC_AIN3 << 16) | MUX_PA07B_AC_AIN3)
-#define PORT_PA07B_AC_AIN3 (1ul << 7)
-#define PIN_PA12H_AC_CMP0 12L /**< \brief AC signal: CMP0 on PA12 mux H */
-#define MUX_PA12H_AC_CMP0 7L
-#define PINMUX_PA12H_AC_CMP0 ((PIN_PA12H_AC_CMP0 << 16) | MUX_PA12H_AC_CMP0)
-#define PORT_PA12H_AC_CMP0 (1ul << 12)
-#define PIN_PA18H_AC_CMP0 18L /**< \brief AC signal: CMP0 on PA18 mux H */
-#define MUX_PA18H_AC_CMP0 7L
-#define PINMUX_PA18H_AC_CMP0 ((PIN_PA18H_AC_CMP0 << 16) | MUX_PA18H_AC_CMP0)
-#define PORT_PA18H_AC_CMP0 (1ul << 18)
-#define PIN_PA13H_AC_CMP1 13L /**< \brief AC signal: CMP1 on PA13 mux H */
-#define MUX_PA13H_AC_CMP1 7L
-#define PINMUX_PA13H_AC_CMP1 ((PIN_PA13H_AC_CMP1 << 16) | MUX_PA13H_AC_CMP1)
-#define PORT_PA13H_AC_CMP1 (1ul << 13)
-#define PIN_PA19H_AC_CMP1 19L /**< \brief AC signal: CMP1 on PA19 mux H */
-#define MUX_PA19H_AC_CMP1 7L
-#define PINMUX_PA19H_AC_CMP1 ((PIN_PA19H_AC_CMP1 << 16) | MUX_PA19H_AC_CMP1)
-#define PORT_PA19H_AC_CMP1 (1ul << 19)
-/* ========== PORT definition for DAC peripheral ========== */
-#define PIN_PA02B_DAC_VOUT 2L /**< \brief DAC signal: VOUT on PA02 mux B */
-#define MUX_PA02B_DAC_VOUT 1L
-#define PINMUX_PA02B_DAC_VOUT ((PIN_PA02B_DAC_VOUT << 16) | MUX_PA02B_DAC_VOUT)
-#define PORT_PA02B_DAC_VOUT (1ul << 2)
-#define PIN_PA03B_DAC_VREFP 3L /**< \brief DAC signal: VREFP on PA03 mux B */
-#define MUX_PA03B_DAC_VREFP 1L
-#define PINMUX_PA03B_DAC_VREFP ((PIN_PA03B_DAC_VREFP << 16) | MUX_PA03B_DAC_VREFP)
-#define PORT_PA03B_DAC_VREFP (1ul << 3)
-/* ========== PORT definition for I2S peripheral ========== */
-#define PIN_PA11G_I2S_FS0 11L /**< \brief I2S signal: FS0 on PA11 mux G */
-#define MUX_PA11G_I2S_FS0 6L
-#define PINMUX_PA11G_I2S_FS0 ((PIN_PA11G_I2S_FS0 << 16) | MUX_PA11G_I2S_FS0)
-#define PORT_PA11G_I2S_FS0 (1ul << 11)
-#define PIN_PA21G_I2S_FS0 21L /**< \brief I2S signal: FS0 on PA21 mux G */
-#define MUX_PA21G_I2S_FS0 6L
-#define PINMUX_PA21G_I2S_FS0 ((PIN_PA21G_I2S_FS0 << 16) | MUX_PA21G_I2S_FS0)
-#define PORT_PA21G_I2S_FS0 (1ul << 21)
-#define PIN_PB12G_I2S_FS1 44L /**< \brief I2S signal: FS1 on PB12 mux G */
-#define MUX_PB12G_I2S_FS1 6L
-#define PINMUX_PB12G_I2S_FS1 ((PIN_PB12G_I2S_FS1 << 16) | MUX_PB12G_I2S_FS1)
-#define PORT_PB12G_I2S_FS1 (1ul << 12)
-#define PIN_PA09G_I2S_MCK0 9L /**< \brief I2S signal: MCK0 on PA09 mux G */
-#define MUX_PA09G_I2S_MCK0 6L
-#define PINMUX_PA09G_I2S_MCK0 ((PIN_PA09G_I2S_MCK0 << 16) | MUX_PA09G_I2S_MCK0)
-#define PORT_PA09G_I2S_MCK0 (1ul << 9)
-#define PIN_PB17G_I2S_MCK0 49L /**< \brief I2S signal: MCK0 on PB17 mux G */
-#define MUX_PB17G_I2S_MCK0 6L
-#define PINMUX_PB17G_I2S_MCK0 ((PIN_PB17G_I2S_MCK0 << 16) | MUX_PB17G_I2S_MCK0)
-#define PORT_PB17G_I2S_MCK0 (1ul << 17)
-#define PIN_PB10G_I2S_MCK1 42L /**< \brief I2S signal: MCK1 on PB10 mux G */
-#define MUX_PB10G_I2S_MCK1 6L
-#define PINMUX_PB10G_I2S_MCK1 ((PIN_PB10G_I2S_MCK1 << 16) | MUX_PB10G_I2S_MCK1)
-#define PORT_PB10G_I2S_MCK1 (1ul << 10)
-#define PIN_PA10G_I2S_SCK0 10L /**< \brief I2S signal: SCK0 on PA10 mux G */
-#define MUX_PA10G_I2S_SCK0 6L
-#define PINMUX_PA10G_I2S_SCK0 ((PIN_PA10G_I2S_SCK0 << 16) | MUX_PA10G_I2S_SCK0)
-#define PORT_PA10G_I2S_SCK0 (1ul << 10)
-#define PIN_PA20G_I2S_SCK0 20L /**< \brief I2S signal: SCK0 on PA20 mux G */
-#define MUX_PA20G_I2S_SCK0 6L
-#define PINMUX_PA20G_I2S_SCK0 ((PIN_PA20G_I2S_SCK0 << 16) | MUX_PA20G_I2S_SCK0)
-#define PORT_PA20G_I2S_SCK0 (1ul << 20)
-#define PIN_PB11G_I2S_SCK1 43L /**< \brief I2S signal: SCK1 on PB11 mux G */
-#define MUX_PB11G_I2S_SCK1 6L
-#define PINMUX_PB11G_I2S_SCK1 ((PIN_PB11G_I2S_SCK1 << 16) | MUX_PB11G_I2S_SCK1)
-#define PORT_PB11G_I2S_SCK1 (1ul << 11)
-#define PIN_PA07G_I2S_SD0 7L /**< \brief I2S signal: SD0 on PA07 mux G */
-#define MUX_PA07G_I2S_SD0 6L
-#define PINMUX_PA07G_I2S_SD0 ((PIN_PA07G_I2S_SD0 << 16) | MUX_PA07G_I2S_SD0)
-#define PORT_PA07G_I2S_SD0 (1ul << 7)
-#define PIN_PA19G_I2S_SD0 19L /**< \brief I2S signal: SD0 on PA19 mux G */
-#define MUX_PA19G_I2S_SD0 6L
-#define PINMUX_PA19G_I2S_SD0 ((PIN_PA19G_I2S_SD0 << 16) | MUX_PA19G_I2S_SD0)
-#define PORT_PA19G_I2S_SD0 (1ul << 19)
-#define PIN_PA08G_I2S_SD1 8L /**< \brief I2S signal: SD1 on PA08 mux G */
-#define MUX_PA08G_I2S_SD1 6L
-#define PINMUX_PA08G_I2S_SD1 ((PIN_PA08G_I2S_SD1 << 16) | MUX_PA08G_I2S_SD1)
-#define PORT_PA08G_I2S_SD1 (1ul << 8)
-#define PIN_PB16G_I2S_SD1 48L /**< \brief I2S signal: SD1 on PB16 mux G */
-#define MUX_PB16G_I2S_SD1 6L
-#define PINMUX_PB16G_I2S_SD1 ((PIN_PB16G_I2S_SD1 << 16) | MUX_PB16G_I2S_SD1)
-#define PORT_PB16G_I2S_SD1 (1ul << 16)
-
-#endif /* _SAMD21J18A_PIO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21.h
deleted file mode 100644
index c9905b7..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/**
- * \file
- *
- * \brief Top header file for SAMD21
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _SAMD21_
-#define _SAMD21_
-
-/**
- * \defgroup SAMD21_definitions SAMD21 Device Definitions
- * \brief SAMD21 CMSIS Definitions.
- */
-
-#if defined(__SAMD21E15A__) || defined(__ATSAMD21E15A__)
- #include "samd21e15a.h"
-#elif defined(__SAMD21E16A__) || defined(__ATSAMD21E16A__)
- #include "samd21e16a.h"
-#elif defined(__SAMD21E17A__) || defined(__ATSAMD21E17A__)
- #include "samd21e17a.h"
-#elif defined(__SAMD21E18A__) || defined(__ATSAMD21E18A__)
- #include "samd21e18a.h"
-#elif defined(__SAMD21G15A__) || defined(__ATSAMD21G15A__)
- #include "samd21g15a.h"
-#elif defined(__SAMD21G16A__) || defined(__ATSAMD21G16A__)
- #include "samd21g16a.h"
-#elif defined(__SAMD21G17A__) || defined(__ATSAMD21G17A__)
- #include "samd21g17a.h"
-#elif defined(__SAMD21G17AU__) || defined(__ATSAMD21G17AU__)
- #include "samd21g17au.h"
-#elif defined(__SAMD21G18A__) || defined(__ATSAMD21G18A__)
- #include "samd21g18a.h"
-#elif defined (__SAMD21G18AU__) || defined(__ATSAMD21G18AU__)
- #include "samd21g18au.h"
-#elif defined(__SAMD21J15A__) || defined(__ATSAMD21J15A__)
- #include "samd21j15a.h"
-#elif defined(__SAMD21J16A__) || defined(__ATSAMD21J16A__)
- #include "samd21j16a.h"
-#elif defined(__SAMD21J17A__) || defined(__ATSAMD21J17A__)
- #include "samd21j17a.h"
-#elif defined(__SAMD21J18A__) || defined(__ATSAMD21J18A__)
- #include "samd21j18a.h"
-#elif defined(__SAMD21E15B__) || defined(__ATSAMD21E15B__)
- #include "samd21e15b.h"
-#elif defined(__SAMD21E15BU__) || defined(__ATSAMD21E15BU__)
- #include "samd21e15bu.h"
-#elif defined(__SAMD21E15L__) || defined(__ATSAMD21E15L__)
- #include "samd21e15l.h"
-#elif defined(__SAMD21E16B__) || defined(__ATSAMD21E16B__)
- #include "samd21e16b.h"
-#elif defined(__SAMD21E16BU__) || defined(__ATSAMD21E16BU__)
- #include "samd21e16bu.h"
-#elif defined(__SAMD21E16L__) || defined(__ATSAMD21E16L__)
- #include "samd21e16l.h"
-#elif defined(__SAMD21G15B__) || defined(__ATSAMD21G15B__)
- #include "samd21g15b.h"
-#elif defined(__SAMD21G15L__) || defined(__ATSAMD21G15L__)
- #include "samd21g15l.h"
-#elif defined(__SAMD21G16B__) || defined(__ATSAMD21G16B__)
- #include "samd21g16b.h"
-#elif defined(__SAMD21G16L__) || defined(__ATSAMD21G16L__)
- #include "samd21g16l.h"
-#elif defined(__SAMD21J15B__) || defined(__ATSAMD21J15B__)
- #include "samd21j15b.h"
-#elif defined(__SAMD21J16B__) || defined(__ATSAMD21J16B__)
- #include "samd21j16b.h"
-#elif defined(__SAMD21E17D__) || defined(__ATSAMD21E17D__)
- #include "samd21e17d.h"
-#elif defined(__SAMD21E17DU__) || defined(__ATSAMD21E17DU__)
- #include "samd21e17du.h"
-#elif defined(__SAMD21E17L__) || defined(__ATSAMD21E17L__)
- #include "samd21e17l.h"
-#elif defined(__SAMD21G17D__) || defined(__ATSAMD21G17D__)
- #include "samd21g17d.h"
-#elif defined(__SAMD21G17L__) || defined(__ATSAMD21G17L__)
- #include "samd21g17l.h"
-#elif defined(__SAMD21J17D__) || defined(__ATSAMD21J17D__)
- #include "samd21j17d.h"
-#else
- #error Library does not support the specified device.
-#endif
-
-#endif /* _SAMD21_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e15a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e15a.h
deleted file mode 100644
index 2448e72..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e15a.h
+++ /dev/null
@@ -1,547 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21E15A
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21E15A_
-#define _SAMD21E15A_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21E15A_definitions SAMD21E15A definitions
- * This file defines all structures and symbols for SAMD21E15A:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21E15A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15A_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21E15A-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21E15A Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21E15A System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21E15A Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21E15A Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21E15A External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21E15A Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21E15A Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21E15A Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21E15A Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21E15A Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21E15A Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21E15A Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21E15A Serial Communication Interface 3 (SERCOM3) */
- TCC0_IRQn = 15, /**< 15 SAMD21E15A Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21E15A Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21E15A Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21E15A Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21E15A Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21E15A Basic Timer Counter 5 (TC5) */
- ADC_IRQn = 23, /**< 23 SAMD21E15A Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21E15A Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21E15A Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21E15A Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21E15A Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pvReserved13;
- void* pvReserved14;
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pvReserved21;
- void* pvReserved22;
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E15A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15A_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E15A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15A_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21E15A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15A_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21E15A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15A_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21E15A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15A_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21e15a.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21E15A */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x8000UL /* 32 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 512
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x1000UL /* 4 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x1001000DUL
-#define EIC_EXTINT_NUM 16
-#define PORT_GROUPS 1
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21E15A */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21E15A_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e15b.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e15b.h
deleted file mode 100644
index ebab4f3..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e15b.h
+++ /dev/null
@@ -1,551 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21E15B
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21E15B_
-#define _SAMD21E15B_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21E15B_definitions SAMD21E15B definitions
- * This file defines all structures and symbols for SAMD21E15B:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21E15B */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15B_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21E15B-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21E15B Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21E15B System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21E15B Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21E15B Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21E15B External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21E15B Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21E15B Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21E15B Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21E15B Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21E15B Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21E15B Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21E15B Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21E15B Serial Communication Interface 3 (SERCOM3) */
- TCC0_IRQn = 15, /**< 15 SAMD21E15B Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21E15B Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21E15B Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21E15B Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21E15B Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21E15B Basic Timer Counter 5 (TC5) */
- ADC_IRQn = 23, /**< 23 SAMD21E15B Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21E15B Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21E15B Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21E15B Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21E15B Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 29 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pvReserved13;
- void* pvReserved14;
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pvReserved21;
- void* pvReserved22;
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E15B */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15B_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E15B */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15B_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21E15B */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15B_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21E15B */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15B_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21E15B */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15B_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21e15b.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21E15B */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x8000UL /* 32 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 512
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x1000UL /* 4 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x10011427UL
-#define EIC_EXTINT_NUM 16
-#define NVMCTRL_RWW_EEPROM_SIZE 0x400UL /* 1 kB */
-#define PORT_GROUPS 1
-#define USB_HOST 1
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21E15B */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21E15B_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e15bu.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e15bu.h
deleted file mode 100644
index fca4bbc..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e15bu.h
+++ /dev/null
@@ -1,551 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21E15BU
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21E15BU_
-#define _SAMD21E15BU_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21E15BU_definitions SAMD21E15BU definitions
- * This file defines all structures and symbols for SAMD21E15BU:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21E15BU */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15BU_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21E15BU-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21E15BU Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21E15BU System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21E15BU Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21E15BU Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21E15BU External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21E15BU Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21E15BU Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21E15BU Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21E15BU Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21E15BU Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21E15BU Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21E15BU Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21E15BU Serial Communication Interface 3 (SERCOM3) */
- TCC0_IRQn = 15, /**< 15 SAMD21E15BU Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21E15BU Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21E15BU Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21E15BU Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21E15BU Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21E15BU Basic Timer Counter 5 (TC5) */
- ADC_IRQn = 23, /**< 23 SAMD21E15BU Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21E15BU Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21E15BU Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21E15BU Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21E15BU Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 29 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pvReserved13;
- void* pvReserved14;
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pvReserved21;
- void* pvReserved22;
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E15BU */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15BU_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E15BU */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15BU_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21E15BU */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15BU_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21E15BU */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15BU_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21E15BU */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15BU_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21e15bu.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21E15BU */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x8000UL /* 32 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 512
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x1000UL /* 4 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x10011456UL
-#define EIC_EXTINT_NUM 16
-#define NVMCTRL_RWW_EEPROM_SIZE 0x400UL /* 1 kB */
-#define PORT_GROUPS 1
-#define USB_HOST 1
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21E15BU */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21E15BU_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e15l.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e15l.h
deleted file mode 100644
index 8346456..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e15l.h
+++ /dev/null
@@ -1,530 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21E15L
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21E15L_
-#define _SAMD21E15L_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21E15L_definitions SAMD21E15L definitions
- * This file defines all structures and symbols for SAMD21E15L:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21E15L */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15L_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21E15L-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21E15L Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21E15L System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21E15L Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21E15L Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21E15L External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21E15L Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21E15L Direct Memory Access Controller (DMAC) */
- EVSYS_IRQn = 8, /**< 8 SAMD21E15L Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21E15L Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21E15L Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21E15L Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21E15L Serial Communication Interface 3 (SERCOM3) */
- TCC0_IRQn = 15, /**< 15 SAMD21E15L Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21E15L Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21E15L Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21E15L Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21E15L Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21E15L Basic Timer Counter 5 (TC5) */
- ADC_IRQn = 23, /**< 23 SAMD21E15L Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21E15L Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21E15L Digital Analog Converter (DAC) */
- AC1_IRQn = 28, /**< 28 SAMD21E15L Analog Comparators 1 (AC1) */
-
- PERIPH_COUNT_IRQn = 29 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pvReserved7;
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pvReserved13;
- void* pvReserved14;
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pvReserved21;
- void* pvReserved22;
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pvReserved26;
- void* pvReserved27;
- void* pfnAC1_Handler; /* 28 Analog Comparators 1 */
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void AC1_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E15L */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15L_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc_lighting.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E15L */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15L_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/ac1.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21E15L */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15L_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_AC1 85 /**< \brief Analog Comparators 1 (AC1) */
-
-#define ID_PERIPH_COUNT 86 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21E15L */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15L_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC1 (0x42005400UL) /**< \brief (AC1) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC1 ((Ac *)0x42005400UL) /**< \brief (AC1) APB Base Address */
-#define AC_INST_NUM 2 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC, AC1 } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21E15L */
-/* ************************************************************************** */
-/** \defgroup SAMD21E15L_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21e15l.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21E15L */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x8000UL /* 32 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 512
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x1000UL /* 4 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x1001143FUL
-#define EIC_EXTINT_NUM 16
-#define NVMCTRL_RWW_EEPROM_SIZE 0x400UL /* 1 kB */
-#define PORT_GROUPS 2
-#define USB_HOST 0
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21E15L */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21E15L_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e16a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e16a.h
deleted file mode 100644
index 042dde0..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e16a.h
+++ /dev/null
@@ -1,547 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21E16A
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21E16A_
-#define _SAMD21E16A_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21E16A_definitions SAMD21E16A definitions
- * This file defines all structures and symbols for SAMD21E16A:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21E16A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16A_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21E16A-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21E16A Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21E16A System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21E16A Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21E16A Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21E16A External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21E16A Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21E16A Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21E16A Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21E16A Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21E16A Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21E16A Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21E16A Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21E16A Serial Communication Interface 3 (SERCOM3) */
- TCC0_IRQn = 15, /**< 15 SAMD21E16A Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21E16A Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21E16A Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21E16A Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21E16A Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21E16A Basic Timer Counter 5 (TC5) */
- ADC_IRQn = 23, /**< 23 SAMD21E16A Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21E16A Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21E16A Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21E16A Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21E16A Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pvReserved13;
- void* pvReserved14;
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pvReserved21;
- void* pvReserved22;
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E16A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16A_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E16A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16A_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21E16A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16A_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21E16A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16A_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21E16A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16A_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21e16a.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21E16A */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x10000UL /* 64 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 1024
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x2000UL /* 8 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x1001000CUL
-#define EIC_EXTINT_NUM 16
-#define PORT_GROUPS 1
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21E16A */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21E16A_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e16b.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e16b.h
deleted file mode 100644
index e5c7031..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e16b.h
+++ /dev/null
@@ -1,551 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21E16B
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21E16B_
-#define _SAMD21E16B_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21E16B_definitions SAMD21E16B definitions
- * This file defines all structures and symbols for SAMD21E16B:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21E16B */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16B_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21E16B-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21E16B Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21E16B System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21E16B Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21E16B Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21E16B External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21E16B Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21E16B Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21E16B Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21E16B Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21E16B Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21E16B Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21E16B Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21E16B Serial Communication Interface 3 (SERCOM3) */
- TCC0_IRQn = 15, /**< 15 SAMD21E16B Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21E16B Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21E16B Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21E16B Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21E16B Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21E16B Basic Timer Counter 5 (TC5) */
- ADC_IRQn = 23, /**< 23 SAMD21E16B Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21E16B Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21E16B Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21E16B Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21E16B Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 29 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pvReserved13;
- void* pvReserved14;
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pvReserved21;
- void* pvReserved22;
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E16B */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16B_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E16B */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16B_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21E16B */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16B_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21E16B */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16B_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21E16B */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16B_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21e16b.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21E16B */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x10000UL /* 64 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 1024
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x2000UL /* 8 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x10011426UL
-#define EIC_EXTINT_NUM 16
-#define NVMCTRL_RWW_EEPROM_SIZE 0x800UL /* 2 kB */
-#define PORT_GROUPS 1
-#define USB_HOST 1
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21E16B */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21E16B_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e16bu.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e16bu.h
deleted file mode 100644
index a539c9c..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e16bu.h
+++ /dev/null
@@ -1,551 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21E16BU
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21E16BU_
-#define _SAMD21E16BU_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21E16BU_definitions SAMD21E16BU definitions
- * This file defines all structures and symbols for SAMD21E16BU:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21E16BU */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16BU_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21E16BU-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21E16BU Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21E16BU System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21E16BU Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21E16BU Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21E16BU External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21E16BU Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21E16BU Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21E16BU Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21E16BU Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21E16BU Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21E16BU Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21E16BU Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21E16BU Serial Communication Interface 3 (SERCOM3) */
- TCC0_IRQn = 15, /**< 15 SAMD21E16BU Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21E16BU Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21E16BU Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21E16BU Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21E16BU Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21E16BU Basic Timer Counter 5 (TC5) */
- ADC_IRQn = 23, /**< 23 SAMD21E16BU Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21E16BU Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21E16BU Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21E16BU Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21E16BU Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 29 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pvReserved13;
- void* pvReserved14;
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pvReserved21;
- void* pvReserved22;
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E16BU */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16BU_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E16BU */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16BU_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21E16BU */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16BU_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21E16BU */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16BU_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21E16BU */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16BU_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21e16bu.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21E16BU */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x10000UL /* 64 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 1024
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x2000UL /* 8 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x10011455UL
-#define EIC_EXTINT_NUM 16
-#define NVMCTRL_RWW_EEPROM_SIZE 0x800UL /* 2 kB */
-#define PORT_GROUPS 1
-#define USB_HOST 1
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21E16BU */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21E16BU_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e16l.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e16l.h
deleted file mode 100644
index 57f4978..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e16l.h
+++ /dev/null
@@ -1,530 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21E16L
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21E16L_
-#define _SAMD21E16L_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21E16L_definitions SAMD21E16L definitions
- * This file defines all structures and symbols for SAMD21E16L:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21E16L */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16L_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21E16L-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21E16L Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21E16L System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21E16L Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21E16L Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21E16L External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21E16L Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21E16L Direct Memory Access Controller (DMAC) */
- EVSYS_IRQn = 8, /**< 8 SAMD21E16L Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21E16L Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21E16L Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21E16L Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21E16L Serial Communication Interface 3 (SERCOM3) */
- TCC0_IRQn = 15, /**< 15 SAMD21E16L Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21E16L Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21E16L Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21E16L Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21E16L Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21E16L Basic Timer Counter 5 (TC5) */
- ADC_IRQn = 23, /**< 23 SAMD21E16L Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21E16L Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21E16L Digital Analog Converter (DAC) */
- AC1_IRQn = 28, /**< 28 SAMD21E16L Analog Comparators 1 (AC1) */
-
- PERIPH_COUNT_IRQn = 29 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pvReserved7;
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pvReserved13;
- void* pvReserved14;
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pvReserved21;
- void* pvReserved22;
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pvReserved26;
- void* pvReserved27;
- void* pfnAC1_Handler; /* 28 Analog Comparators 1 */
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void AC1_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E16L */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16L_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc_lighting.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E16L */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16L_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/ac1.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21E16L */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16L_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_AC1 85 /**< \brief Analog Comparators 1 (AC1) */
-
-#define ID_PERIPH_COUNT 86 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21E16L */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16L_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC1 (0x42005400UL) /**< \brief (AC1) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC1 ((Ac *)0x42005400UL) /**< \brief (AC1) APB Base Address */
-#define AC_INST_NUM 2 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC, AC1 } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21E16L */
-/* ************************************************************************** */
-/** \defgroup SAMD21E16L_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21e16l.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21E16L */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x10000UL /* 64 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 1024
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x2000UL /* 8 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x1001143EUL
-#define EIC_EXTINT_NUM 16
-#define NVMCTRL_RWW_EEPROM_SIZE 0x800UL /* 2 kB */
-#define PORT_GROUPS 2
-#define USB_HOST 0
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21E16L */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21E16L_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e17a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e17a.h
deleted file mode 100644
index 1d9db3d..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e17a.h
+++ /dev/null
@@ -1,547 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21E17A
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21E17A_
-#define _SAMD21E17A_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21E17A_definitions SAMD21E17A definitions
- * This file defines all structures and symbols for SAMD21E17A:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21E17A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17A_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21E17A-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21E17A Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21E17A System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21E17A Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21E17A Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21E17A External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21E17A Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21E17A Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21E17A Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21E17A Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21E17A Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21E17A Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21E17A Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21E17A Serial Communication Interface 3 (SERCOM3) */
- TCC0_IRQn = 15, /**< 15 SAMD21E17A Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21E17A Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21E17A Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21E17A Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21E17A Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21E17A Basic Timer Counter 5 (TC5) */
- ADC_IRQn = 23, /**< 23 SAMD21E17A Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21E17A Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21E17A Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21E17A Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21E17A Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pvReserved13;
- void* pvReserved14;
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pvReserved21;
- void* pvReserved22;
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E17A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17A_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E17A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17A_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21E17A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17A_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21E17A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17A_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21E17A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17A_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21e17a.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21E17A */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x20000UL /* 128 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 2048
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x4000UL /* 16 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x1001000BUL
-#define EIC_EXTINT_NUM 16
-#define PORT_GROUPS 1
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21E17A */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21E17A_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e17d.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e17d.h
deleted file mode 100644
index 3dcd735..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e17d.h
+++ /dev/null
@@ -1,574 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21E17D
- *
- * Copyright (c) 2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21E17D_
-#define _SAMD21E17D_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21E17D_definitions SAMD21E17D definitions
- * This file defines all structures and symbols for SAMD21E17D:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#endif
-
-#if !defined(SKIP_INTEGER_LITERALS)
-#if defined(_U_) || defined(_L_) || defined(_UL_)
- #error "Integer Literals macros already defined elsewhere"
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-/* Macros that deal with adding suffixes to integer literal constants for C/C++ */
-#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */
-#define _L_(x) x ## L /**< C code: Long integer literal constant value */
-#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */
-#else /* Assembler */
-#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */
-#define _L_(x) x /**< Assembler: Long integer literal constant value */
-#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-#endif /* SKIP_INTEGER_LITERALS */
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21E17D */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17D_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21E17D-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21E17D Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21E17D System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21E17D Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21E17D Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21E17D External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21E17D Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21E17D Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21E17D Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21E17D Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21E17D Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21E17D Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21E17D Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21E17D Serial Communication Interface 3 (SERCOM3) */
- TCC0_IRQn = 15, /**< 15 SAMD21E17D Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21E17D Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21E17D Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21E17D Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21E17D Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21E17D Basic Timer Counter 5 (TC5) */
- ADC_IRQn = 23, /**< 23 SAMD21E17D Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21E17D Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21E17D Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21E17D Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21E17D Inter-IC Sound Interface (I2S) */
- TCC3_IRQn = 29, /**< 29 SAMD21E17D Timer Counter Control 3 (TCC3) */
-
- PERIPH_COUNT_IRQn = 30 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pvReserved13;
- void* pvReserved14;
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pvReserved21;
- void* pvReserved22;
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
- void* pfnTCC3_Handler; /* 29 Timer Counter Control 3 */
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-void TCC3_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E17D */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17D_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys_variant_d.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl_variant_d.h"
-#include "component/pac.h"
-#include "component/pm_variant_d.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc_variant_d.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E17D */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17D_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys_variant_d.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl_variant_d.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port_variant_d.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/tcc3.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21E17D */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17D_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-#define ID_TCC3 88 /**< \brief Timer Counter Control 3 (TCC3) */
-
-#define ID_PERIPH_COUNT 89 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21E17D */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17D_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL_AUX3 (0x0080A000) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */
-#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */
-#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */
-#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */
-#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */
-#define TCC3 (0x42006000) /**< \brief (TCC3) APB Base Address */
-#define USB (0x41005000) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */
-
-#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC3 ((Tcc *)0x42006000UL) /**< \brief (TCC3) APB Base Address */
-#define TCC_INST_NUM 4 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21E17D */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17D_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21e17d.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21E17D */
-/* ************************************************************************** */
-
-#define FLASH_SIZE _UL_(0x00020000) /* 128 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 2048
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE _UL_(0x00004000) /* 16 kB */
-
-#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */
-#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */
-#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */
-#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */
-#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE _UL_(0x10012694)
-#define EIC_EXTINT_NUM 16
-#define NVMCTRL_RWW_EEPROM_SIZE _UL_(0x00001000) /* 4 kB */
-#define PORT_GROUPS 1
-#define USB_HOST 1
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21E17D */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21E17D_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e17du.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e17du.h
deleted file mode 100644
index 419b57b..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e17du.h
+++ /dev/null
@@ -1,574 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21E17DU
- *
- * Copyright (c) 2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21E17DU_
-#define _SAMD21E17DU_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21E17DU_definitions SAMD21E17DU definitions
- * This file defines all structures and symbols for SAMD21E17DU:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#endif
-
-#if !defined(SKIP_INTEGER_LITERALS)
-#if defined(_U_) || defined(_L_) || defined(_UL_)
- #error "Integer Literals macros already defined elsewhere"
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-/* Macros that deal with adding suffixes to integer literal constants for C/C++ */
-#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */
-#define _L_(x) x ## L /**< C code: Long integer literal constant value */
-#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */
-#else /* Assembler */
-#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */
-#define _L_(x) x /**< Assembler: Long integer literal constant value */
-#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-#endif /* SKIP_INTEGER_LITERALS */
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21E17DU */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17DU_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21E17DU-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21E17DU Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21E17DU System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21E17DU Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21E17DU Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21E17DU External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21E17DU Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21E17DU Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21E17DU Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21E17DU Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21E17DU Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21E17DU Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21E17DU Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21E17DU Serial Communication Interface 3 (SERCOM3) */
- TCC0_IRQn = 15, /**< 15 SAMD21E17DU Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21E17DU Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21E17DU Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21E17DU Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21E17DU Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21E17DU Basic Timer Counter 5 (TC5) */
- ADC_IRQn = 23, /**< 23 SAMD21E17DU Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21E17DU Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21E17DU Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21E17DU Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21E17DU Inter-IC Sound Interface (I2S) */
- TCC3_IRQn = 29, /**< 29 SAMD21E17DU Timer Counter Control 3 (TCC3) */
-
- PERIPH_COUNT_IRQn = 30 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pvReserved13;
- void* pvReserved14;
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pvReserved21;
- void* pvReserved22;
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
- void* pfnTCC3_Handler; /* 29 Timer Counter Control 3 */
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-void TCC3_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E17DU */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17DU_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys_variant_d.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl_variant_d.h"
-#include "component/pac.h"
-#include "component/pm_variant_d.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc_variant_d.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E17DU */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17DU_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys_variant_d.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl_variant_d.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port_variant_d.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/tcc3.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21E17DU */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17DU_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-#define ID_TCC3 88 /**< \brief Timer Counter Control 3 (TCC3) */
-
-#define ID_PERIPH_COUNT 89 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21E17DU */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17DU_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL_AUX3 (0x0080A000) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */
-#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */
-#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */
-#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */
-#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */
-#define TCC3 (0x42006000) /**< \brief (TCC3) APB Base Address */
-#define USB (0x41005000) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */
-
-#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC3 ((Tcc *)0x42006000UL) /**< \brief (TCC3) APB Base Address */
-#define TCC_INST_NUM 4 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21E17DU */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17DU_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21e17du.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21E17DU */
-/* ************************************************************************** */
-
-#define FLASH_SIZE _UL_(0x00020000) /* 128 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 2048
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE _UL_(0x00004000) /* 16 kB */
-
-#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */
-#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */
-#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */
-#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */
-#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE _UL_(0x10012695)
-#define EIC_EXTINT_NUM 16
-#define NVMCTRL_RWW_EEPROM_SIZE _UL_(0x00001000) /* 4 kB */
-#define PORT_GROUPS 1
-#define USB_HOST 1
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21E17DU */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21E17DU_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e17l.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e17l.h
deleted file mode 100644
index 47e0350..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e17l.h
+++ /dev/null
@@ -1,551 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21E17L
- *
- * Copyright (c) 2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21E17L_
-#define _SAMD21E17L_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21E17L_definitions SAMD21E17L definitions
- * This file defines all structures and symbols for SAMD21E17L:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#endif
-
-#if !defined(SKIP_INTEGER_LITERALS)
-#if defined(_U_) || defined(_L_) || defined(_UL_)
- #error "Integer Literals macros already defined elsewhere"
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-/* Macros that deal with adding suffixes to integer literal constants for C/C++ */
-#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */
-#define _L_(x) x ## L /**< C code: Long integer literal constant value */
-#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */
-#else /* Assembler */
-#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */
-#define _L_(x) x /**< Assembler: Long integer literal constant value */
-#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-#endif /* SKIP_INTEGER_LITERALS */
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21E17L */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17L_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21E17L-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21E17L Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21E17L System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21E17L Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21E17L Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21E17L External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21E17L Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21E17L Direct Memory Access Controller (DMAC) */
- EVSYS_IRQn = 8, /**< 8 SAMD21E17L Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21E17L Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21E17L Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21E17L Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21E17L Serial Communication Interface 3 (SERCOM3) */
- TCC0_IRQn = 15, /**< 15 SAMD21E17L Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21E17L Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21E17L Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21E17L Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21E17L Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21E17L Basic Timer Counter 5 (TC5) */
- ADC_IRQn = 23, /**< 23 SAMD21E17L Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21E17L Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21E17L Digital Analog Converter (DAC) */
- AC1_IRQn = 28, /**< 28 SAMD21E17L Analog Comparators 1 (AC1) */
- TCC3_IRQn = 29, /**< 29 SAMD21E17L Timer Counter Control 3 (TCC3) */
-
- PERIPH_COUNT_IRQn = 30 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pvReserved7;
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pvReserved13;
- void* pvReserved14;
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pvReserved21;
- void* pvReserved22;
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pvReserved26;
- void* pvReserved27;
- void* pfnAC1_Handler; /* 28 Analog Comparators 1 */
- void* pfnTCC3_Handler; /* 29 Timer Counter Control 3 */
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void AC1_Handler ( void );
-void TCC3_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E17L */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17L_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys_variant_d.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/mtb.h"
-#include "component/nvmctrl_variant_d.h"
-#include "component/pac.h"
-#include "component/pm_variant_d.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc_lighting.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E17L */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17L_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/ac1.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys_variant_d.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl_variant_d.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port_variant_d.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/tcc3.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21E17L */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17L_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_AC1 85 /**< \brief Analog Comparators 1 (AC1) */
-#define ID_TCC3 88 /**< \brief Timer Counter Control 3 (TCC3) */
-
-#define ID_PERIPH_COUNT 89 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21E17L */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17L_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400) /**< \brief (AC) APB Base Address */
-#define AC1 (0x42005400) /**< \brief (AC1) APB Base Address */
-#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */
-#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL_AUX3 (0x0080A000) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */
-#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */
-#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */
-#define TCC3 (0x42006000) /**< \brief (TCC3) APB Base Address */
-#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC1 ((Ac *)0x42005400UL) /**< \brief (AC1) APB Base Address */
-#define AC_INST_NUM 2 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC, AC1 } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC3 ((Tcc *)0x42006000UL) /**< \brief (TCC3) APB Base Address */
-#define TCC_INST_NUM 4 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3 } /**< \brief (TCC) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21E17L */
-/* ************************************************************************** */
-/** \defgroup SAMD21E17L_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21e17l.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21E17L */
-/* ************************************************************************** */
-
-#define FLASH_SIZE _UL_(0x00020000) /* 128 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 2048
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE _UL_(0x00004000) /* 16 kB */
-
-#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */
-#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */
-#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */
-#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */
-#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE _UL_(0x10012697)
-#define EIC_EXTINT_NUM 16
-#define NVMCTRL_RWW_EEPROM_SIZE _UL_(0x00001000) /* 4 kB */
-#define PORT_GROUPS 2
-#define USB_HOST 0
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21E17L */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21E17L_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e18a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e18a.h
deleted file mode 100644
index 6e52322..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21e18a.h
+++ /dev/null
@@ -1,547 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21E18A
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21E18A_
-#define _SAMD21E18A_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21E18A_definitions SAMD21E18A definitions
- * This file defines all structures and symbols for SAMD21E18A:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21E18A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E18A_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21E18A-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21E18A Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21E18A System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21E18A Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21E18A Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21E18A External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21E18A Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21E18A Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21E18A Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21E18A Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21E18A Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21E18A Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21E18A Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21E18A Serial Communication Interface 3 (SERCOM3) */
- TCC0_IRQn = 15, /**< 15 SAMD21E18A Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21E18A Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21E18A Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21E18A Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21E18A Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21E18A Basic Timer Counter 5 (TC5) */
- ADC_IRQn = 23, /**< 23 SAMD21E18A Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21E18A Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21E18A Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21E18A Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21E18A Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pvReserved13;
- void* pvReserved14;
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pvReserved21;
- void* pvReserved22;
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21E18A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E18A_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21E18A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E18A_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21E18A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E18A_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21E18A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E18A_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM_INST_NUM 4 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21E18A */
-/* ************************************************************************** */
-/** \defgroup SAMD21E18A_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21e18a.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21E18A */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x40000UL /* 256 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 4096
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x8000UL /* 32 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x1001000AUL
-#define EIC_EXTINT_NUM 16
-#define PORT_GROUPS 1
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21E18A */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21E18A_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g15a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g15a.h
deleted file mode 100644
index 9257f68..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g15a.h
+++ /dev/null
@@ -1,559 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21G15A
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21G15A_
-#define _SAMD21G15A_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21G15A_definitions SAMD21G15A definitions
- * This file defines all structures and symbols for SAMD21G15A:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21G15A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G15A_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21G15A-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21G15A Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21G15A System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21G15A Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21G15A Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21G15A External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21G15A Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21G15A Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21G15A Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21G15A Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21G15A Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21G15A Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21G15A Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21G15A Serial Communication Interface 3 (SERCOM3) */
- SERCOM4_IRQn = 13, /**< 13 SAMD21G15A Serial Communication Interface 4 (SERCOM4) */
- SERCOM5_IRQn = 14, /**< 14 SAMD21G15A Serial Communication Interface 5 (SERCOM5) */
- TCC0_IRQn = 15, /**< 15 SAMD21G15A Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21G15A Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21G15A Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21G15A Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21G15A Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21G15A Basic Timer Counter 5 (TC5) */
- ADC_IRQn = 23, /**< 23 SAMD21G15A Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21G15A Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21G15A Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21G15A Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21G15A Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */
- void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pvReserved21;
- void* pvReserved22;
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void SERCOM4_Handler ( void );
-void SERCOM5_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G15A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G15A_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G15A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G15A_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sercom4.h"
-#include "instance/sercom5.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21G15A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G15A_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */
-#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21G15A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G15A_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 (0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 (0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21G15A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G15A_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21g15a.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21G15A */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x8000UL /* 32 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 512
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x1000UL /* 4 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x10010008UL
-#define EIC_EXTINT_NUM 16
-#define PORT_GROUPS 2
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21G15A */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21G15A_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g15b.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g15b.h
deleted file mode 100644
index 041b54d..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g15b.h
+++ /dev/null
@@ -1,563 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21G15B
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21G15B_
-#define _SAMD21G15B_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21G15B_definitions SAMD21G15B definitions
- * This file defines all structures and symbols for SAMD21G15B:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21G15B */
-/* ************************************************************************** */
-/** \defgroup SAMD21G15B_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21G15B-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21G15B Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21G15B System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21G15B Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21G15B Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21G15B External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21G15B Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21G15B Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21G15B Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21G15B Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21G15B Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21G15B Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21G15B Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21G15B Serial Communication Interface 3 (SERCOM3) */
- SERCOM4_IRQn = 13, /**< 13 SAMD21G15B Serial Communication Interface 4 (SERCOM4) */
- SERCOM5_IRQn = 14, /**< 14 SAMD21G15B Serial Communication Interface 5 (SERCOM5) */
- TCC0_IRQn = 15, /**< 15 SAMD21G15B Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21G15B Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21G15B Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21G15B Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21G15B Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21G15B Basic Timer Counter 5 (TC5) */
- ADC_IRQn = 23, /**< 23 SAMD21G15B Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21G15B Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21G15B Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21G15B Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21G15B Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 29 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */
- void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pvReserved21;
- void* pvReserved22;
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void SERCOM4_Handler ( void );
-void SERCOM5_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G15B */
-/* ************************************************************************** */
-/** \defgroup SAMD21G15B_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G15B */
-/* ************************************************************************** */
-/** \defgroup SAMD21G15B_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sercom4.h"
-#include "instance/sercom5.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21G15B */
-/* ************************************************************************** */
-/** \defgroup SAMD21G15B_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */
-#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21G15B */
-/* ************************************************************************** */
-/** \defgroup SAMD21G15B_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 (0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 (0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21G15B */
-/* ************************************************************************** */
-/** \defgroup SAMD21G15B_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21g15b.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21G15B */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x8000UL /* 32 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 512
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x1000UL /* 4 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x10011424UL
-#define EIC_EXTINT_NUM 16
-#define NVMCTRL_RWW_EEPROM_SIZE 0x400UL /* 1 kB */
-#define PORT_GROUPS 2
-#define USB_HOST 1
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21G15B */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21G15B_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g15l.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g15l.h
deleted file mode 100644
index 65f3645..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g15l.h
+++ /dev/null
@@ -1,554 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21G15L
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21G15L_
-#define _SAMD21G15L_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21G15L_definitions SAMD21G15L definitions
- * This file defines all structures and symbols for SAMD21G15L:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21G15L */
-/* ************************************************************************** */
-/** \defgroup SAMD21G15L_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21G15L-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21G15L Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21G15L System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21G15L Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21G15L Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21G15L External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21G15L Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21G15L Direct Memory Access Controller (DMAC) */
- EVSYS_IRQn = 8, /**< 8 SAMD21G15L Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21G15L Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21G15L Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21G15L Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21G15L Serial Communication Interface 3 (SERCOM3) */
- SERCOM4_IRQn = 13, /**< 13 SAMD21G15L Serial Communication Interface 4 (SERCOM4) */
- SERCOM5_IRQn = 14, /**< 14 SAMD21G15L Serial Communication Interface 5 (SERCOM5) */
- TCC0_IRQn = 15, /**< 15 SAMD21G15L Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21G15L Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21G15L Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21G15L Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21G15L Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21G15L Basic Timer Counter 5 (TC5) */
- TC6_IRQn = 21, /**< 21 SAMD21G15L Basic Timer Counter 6 (TC6) */
- TC7_IRQn = 22, /**< 22 SAMD21G15L Basic Timer Counter 7 (TC7) */
- ADC_IRQn = 23, /**< 23 SAMD21G15L Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21G15L Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21G15L Digital Analog Converter (DAC) */
- AC1_IRQn = 28, /**< 28 SAMD21G15L Analog Comparators 1 (AC1) */
-
- PERIPH_COUNT_IRQn = 29 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pvReserved7;
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */
- void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */
- void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pvReserved26;
- void* pvReserved27;
- void* pfnAC1_Handler; /* 28 Analog Comparators 1 */
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void SERCOM4_Handler ( void );
-void SERCOM5_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void TC6_Handler ( void );
-void TC7_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void AC1_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G15L */
-/* ************************************************************************** */
-/** \defgroup SAMD21G15L_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc_lighting.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G15L */
-/* ************************************************************************** */
-/** \defgroup SAMD21G15L_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/ac1.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sercom4.h"
-#include "instance/sercom5.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tc6.h"
-#include "instance/tc7.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21G15L */
-/* ************************************************************************** */
-/** \defgroup SAMD21G15L_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */
-#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */
-#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_AC1 85 /**< \brief Analog Comparators 1 (AC1) */
-
-#define ID_PERIPH_COUNT 86 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21G15L */
-/* ************************************************************************** */
-/** \defgroup SAMD21G15L_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC1 (0x42005400UL) /**< \brief (AC1) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 (0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 (0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 (0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 (0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC1 ((Ac *)0x42005400UL) /**< \brief (AC1) APB Base Address */
-#define AC_INST_NUM 2 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC, AC1 } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21G15L */
-/* ************************************************************************** */
-/** \defgroup SAMD21G15L_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21g15l.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21G15L */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x8000UL /* 32 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 512
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x1000UL /* 4 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x10011458UL
-#define EIC_EXTINT_NUM 16
-#define NVMCTRL_RWW_EEPROM_SIZE 0x400UL /* 1 kB */
-#define PORT_GROUPS 2
-#define USB_HOST 0
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21G15L */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21G15L_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g16a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g16a.h
deleted file mode 100644
index 1513991..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g16a.h
+++ /dev/null
@@ -1,559 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21G16A
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21G16A_
-#define _SAMD21G16A_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21G16A_definitions SAMD21G16A definitions
- * This file defines all structures and symbols for SAMD21G16A:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21G16A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G16A_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21G16A-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21G16A Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21G16A System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21G16A Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21G16A Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21G16A External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21G16A Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21G16A Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21G16A Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21G16A Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21G16A Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21G16A Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21G16A Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21G16A Serial Communication Interface 3 (SERCOM3) */
- SERCOM4_IRQn = 13, /**< 13 SAMD21G16A Serial Communication Interface 4 (SERCOM4) */
- SERCOM5_IRQn = 14, /**< 14 SAMD21G16A Serial Communication Interface 5 (SERCOM5) */
- TCC0_IRQn = 15, /**< 15 SAMD21G16A Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21G16A Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21G16A Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21G16A Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21G16A Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21G16A Basic Timer Counter 5 (TC5) */
- ADC_IRQn = 23, /**< 23 SAMD21G16A Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21G16A Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21G16A Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21G16A Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21G16A Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */
- void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pvReserved21;
- void* pvReserved22;
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void SERCOM4_Handler ( void );
-void SERCOM5_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G16A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G16A_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G16A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G16A_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sercom4.h"
-#include "instance/sercom5.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21G16A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G16A_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */
-#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21G16A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G16A_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 (0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 (0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21G16A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G16A_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21g16a.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21G16A */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x10000UL /* 64 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 1024
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x2000UL /* 8 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x10010007UL
-#define EIC_EXTINT_NUM 16
-#define PORT_GROUPS 2
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21G16A */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21G16A_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g16b.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g16b.h
deleted file mode 100644
index 55889e7..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g16b.h
+++ /dev/null
@@ -1,563 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21G16B
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21G16B_
-#define _SAMD21G16B_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21G16B_definitions SAMD21G16B definitions
- * This file defines all structures and symbols for SAMD21G16B:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21G16B */
-/* ************************************************************************** */
-/** \defgroup SAMD21G16B_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21G16B-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21G16B Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21G16B System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21G16B Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21G16B Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21G16B External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21G16B Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21G16B Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21G16B Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21G16B Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21G16B Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21G16B Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21G16B Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21G16B Serial Communication Interface 3 (SERCOM3) */
- SERCOM4_IRQn = 13, /**< 13 SAMD21G16B Serial Communication Interface 4 (SERCOM4) */
- SERCOM5_IRQn = 14, /**< 14 SAMD21G16B Serial Communication Interface 5 (SERCOM5) */
- TCC0_IRQn = 15, /**< 15 SAMD21G16B Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21G16B Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21G16B Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21G16B Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21G16B Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21G16B Basic Timer Counter 5 (TC5) */
- ADC_IRQn = 23, /**< 23 SAMD21G16B Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21G16B Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21G16B Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21G16B Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21G16B Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 29 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */
- void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pvReserved21;
- void* pvReserved22;
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void SERCOM4_Handler ( void );
-void SERCOM5_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G16B */
-/* ************************************************************************** */
-/** \defgroup SAMD21G16B_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G16B */
-/* ************************************************************************** */
-/** \defgroup SAMD21G16B_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sercom4.h"
-#include "instance/sercom5.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21G16B */
-/* ************************************************************************** */
-/** \defgroup SAMD21G16B_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */
-#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21G16B */
-/* ************************************************************************** */
-/** \defgroup SAMD21G16B_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 (0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 (0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21G16B */
-/* ************************************************************************** */
-/** \defgroup SAMD21G16B_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21g16b.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21G16B */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x10000UL /* 64 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 1024
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x2000UL /* 8 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x10011423UL
-#define EIC_EXTINT_NUM 16
-#define NVMCTRL_RWW_EEPROM_SIZE 0x800UL /* 2 kB */
-#define PORT_GROUPS 2
-#define USB_HOST 1
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21G16B */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21G16B_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g16l.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g16l.h
deleted file mode 100644
index 7eef278..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g16l.h
+++ /dev/null
@@ -1,554 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21G16L
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21G16L_
-#define _SAMD21G16L_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21G16L_definitions SAMD21G16L definitions
- * This file defines all structures and symbols for SAMD21G16L:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21G16L */
-/* ************************************************************************** */
-/** \defgroup SAMD21G16L_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21G16L-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21G16L Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21G16L System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21G16L Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21G16L Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21G16L External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21G16L Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21G16L Direct Memory Access Controller (DMAC) */
- EVSYS_IRQn = 8, /**< 8 SAMD21G16L Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21G16L Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21G16L Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21G16L Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21G16L Serial Communication Interface 3 (SERCOM3) */
- SERCOM4_IRQn = 13, /**< 13 SAMD21G16L Serial Communication Interface 4 (SERCOM4) */
- SERCOM5_IRQn = 14, /**< 14 SAMD21G16L Serial Communication Interface 5 (SERCOM5) */
- TCC0_IRQn = 15, /**< 15 SAMD21G16L Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21G16L Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21G16L Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21G16L Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21G16L Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21G16L Basic Timer Counter 5 (TC5) */
- TC6_IRQn = 21, /**< 21 SAMD21G16L Basic Timer Counter 6 (TC6) */
- TC7_IRQn = 22, /**< 22 SAMD21G16L Basic Timer Counter 7 (TC7) */
- ADC_IRQn = 23, /**< 23 SAMD21G16L Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21G16L Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21G16L Digital Analog Converter (DAC) */
- AC1_IRQn = 28, /**< 28 SAMD21G16L Analog Comparators 1 (AC1) */
-
- PERIPH_COUNT_IRQn = 29 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pvReserved7;
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */
- void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */
- void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pvReserved26;
- void* pvReserved27;
- void* pfnAC1_Handler; /* 28 Analog Comparators 1 */
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void SERCOM4_Handler ( void );
-void SERCOM5_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void TC6_Handler ( void );
-void TC7_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void AC1_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G16L */
-/* ************************************************************************** */
-/** \defgroup SAMD21G16L_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc_lighting.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G16L */
-/* ************************************************************************** */
-/** \defgroup SAMD21G16L_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/ac1.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sercom4.h"
-#include "instance/sercom5.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tc6.h"
-#include "instance/tc7.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21G16L */
-/* ************************************************************************** */
-/** \defgroup SAMD21G16L_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */
-#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */
-#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_AC1 85 /**< \brief Analog Comparators 1 (AC1) */
-
-#define ID_PERIPH_COUNT 86 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21G16L */
-/* ************************************************************************** */
-/** \defgroup SAMD21G16L_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC1 (0x42005400UL) /**< \brief (AC1) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 (0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 (0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 (0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 (0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC1 ((Ac *)0x42005400UL) /**< \brief (AC1) APB Base Address */
-#define AC_INST_NUM 2 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC, AC1 } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21G16L */
-/* ************************************************************************** */
-/** \defgroup SAMD21G16L_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21g16l.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21G16L */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x10000UL /* 64 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 1024
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x2000UL /* 8 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x10011457UL
-#define EIC_EXTINT_NUM 16
-#define NVMCTRL_RWW_EEPROM_SIZE 0x800UL /* 2 kB */
-#define PORT_GROUPS 2
-#define USB_HOST 0
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21G16L */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21G16L_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g17a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g17a.h
deleted file mode 100644
index e85c4c7..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g17a.h
+++ /dev/null
@@ -1,559 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21G17A
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21G17A_
-#define _SAMD21G17A_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21G17A_definitions SAMD21G17A definitions
- * This file defines all structures and symbols for SAMD21G17A:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21G17A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17A_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21G17A-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21G17A Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21G17A System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21G17A Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21G17A Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21G17A External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21G17A Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21G17A Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21G17A Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21G17A Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21G17A Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21G17A Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21G17A Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21G17A Serial Communication Interface 3 (SERCOM3) */
- SERCOM4_IRQn = 13, /**< 13 SAMD21G17A Serial Communication Interface 4 (SERCOM4) */
- SERCOM5_IRQn = 14, /**< 14 SAMD21G17A Serial Communication Interface 5 (SERCOM5) */
- TCC0_IRQn = 15, /**< 15 SAMD21G17A Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21G17A Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21G17A Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21G17A Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21G17A Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21G17A Basic Timer Counter 5 (TC5) */
- ADC_IRQn = 23, /**< 23 SAMD21G17A Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21G17A Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21G17A Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21G17A Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21G17A Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */
- void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pvReserved21;
- void* pvReserved22;
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void SERCOM4_Handler ( void );
-void SERCOM5_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G17A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17A_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G17A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17A_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sercom4.h"
-#include "instance/sercom5.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21G17A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17A_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */
-#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21G17A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17A_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 (0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 (0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21G17A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17A_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21g17a.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21G17A */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x20000UL /* 128 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 2048
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x4000UL /* 16 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x10010006UL
-#define EIC_EXTINT_NUM 16
-#define PORT_GROUPS 2
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21G17A */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21G17A_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g17au.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g17au.h
deleted file mode 100644
index 192c332..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g17au.h
+++ /dev/null
@@ -1,571 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21G17AU
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21G17AU_
-#define _SAMD21G17AU_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21G17AU_definitions SAMD21G17AU definitions
- * This file defines all structures and symbols for SAMD21G17AU:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21G17AU */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17AU_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21G17AU-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21G17AU Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21G17AU System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21G17AU Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21G17AU Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21G17AU External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21G17AU Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21G17AU Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21G17AU Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21G17AU Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21G17AU Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21G17AU Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21G17AU Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21G17AU Serial Communication Interface 3 (SERCOM3) */
- SERCOM4_IRQn = 13, /**< 13 SAMD21G17AU Serial Communication Interface 4 (SERCOM4) */
- SERCOM5_IRQn = 14, /**< 14 SAMD21G17AU Serial Communication Interface 5 (SERCOM5) */
- TCC0_IRQn = 15, /**< 15 SAMD21G17AU Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21G17AU Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21G17AU Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21G17AU Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21G17AU Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21G17AU Basic Timer Counter 5 (TC5) */
- TC6_IRQn = 21, /**< 21 SAMD21G17AU Basic Timer Counter 6 (TC6) */
- TC7_IRQn = 22, /**< 22 SAMD21G17AU Basic Timer Counter 7 (TC7) */
- ADC_IRQn = 23, /**< 23 SAMD21G17AU Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21G17AU Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21G17AU Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21G17AU Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21G17AU Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */
- void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */
- void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void SERCOM4_Handler ( void );
-void SERCOM5_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void TC6_Handler ( void );
-void TC7_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G17AU */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17AU_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G17AU */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17AU_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sercom4.h"
-#include "instance/sercom5.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tc6.h"
-#include "instance/tc7.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21G17AU */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17AU_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */
-#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */
-#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21G17AU */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17AU_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 (0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 (0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 (0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 (0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21G17AU */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17AU_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21g17au.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21G17AU */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x20000UL /* 128 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 2048
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x4000UL /* 16 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x10010010UL
-#define EIC_EXTINT_NUM 16
-#define PORT_GROUPS 2
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21G17AU */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21G17AU_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g17d.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g17d.h
deleted file mode 100644
index 2d4fb6e..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g17d.h
+++ /dev/null
@@ -1,586 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21G17D
- *
- * Copyright (c) 2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21G17D_
-#define _SAMD21G17D_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21G17D_definitions SAMD21G17D definitions
- * This file defines all structures and symbols for SAMD21G17D:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#endif
-
-#if !defined(SKIP_INTEGER_LITERALS)
-#if defined(_U_) || defined(_L_) || defined(_UL_)
- #error "Integer Literals macros already defined elsewhere"
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-/* Macros that deal with adding suffixes to integer literal constants for C/C++ */
-#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */
-#define _L_(x) x ## L /**< C code: Long integer literal constant value */
-#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */
-#else /* Assembler */
-#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */
-#define _L_(x) x /**< Assembler: Long integer literal constant value */
-#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-#endif /* SKIP_INTEGER_LITERALS */
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21G17D */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17D_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21G17D-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21G17D Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21G17D System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21G17D Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21G17D Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21G17D External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21G17D Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21G17D Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21G17D Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21G17D Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21G17D Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21G17D Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21G17D Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21G17D Serial Communication Interface 3 (SERCOM3) */
- SERCOM4_IRQn = 13, /**< 13 SAMD21G17D Serial Communication Interface 4 (SERCOM4) */
- SERCOM5_IRQn = 14, /**< 14 SAMD21G17D Serial Communication Interface 5 (SERCOM5) */
- TCC0_IRQn = 15, /**< 15 SAMD21G17D Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21G17D Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21G17D Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21G17D Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21G17D Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21G17D Basic Timer Counter 5 (TC5) */
- ADC_IRQn = 23, /**< 23 SAMD21G17D Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21G17D Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21G17D Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21G17D Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21G17D Inter-IC Sound Interface (I2S) */
- TCC3_IRQn = 29, /**< 29 SAMD21G17D Timer Counter Control 3 (TCC3) */
-
- PERIPH_COUNT_IRQn = 30 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */
- void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pvReserved21;
- void* pvReserved22;
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
- void* pfnTCC3_Handler; /* 29 Timer Counter Control 3 */
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void SERCOM4_Handler ( void );
-void SERCOM5_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-void TCC3_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G17D */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17D_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys_variant_d.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl_variant_d.h"
-#include "component/pac.h"
-#include "component/pm_variant_d.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc_variant_d.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G17D */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17D_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys_variant_d.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl_variant_d.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port_variant_d.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sercom4.h"
-#include "instance/sercom5.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/tcc3.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21G17D */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17D_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */
-#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-#define ID_TCC3 88 /**< \brief Timer Counter Control 3 (TCC3) */
-
-#define ID_PERIPH_COUNT 89 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21G17D */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17D_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL_AUX3 (0x0080A000) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */
-#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */
-#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */
-#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */
-#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */
-#define TCC3 (0x42006000) /**< \brief (TCC3) APB Base Address */
-#define USB (0x41005000) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */
-
-#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC3 ((Tcc *)0x42006000UL) /**< \brief (TCC3) APB Base Address */
-#define TCC_INST_NUM 4 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21G17D */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17D_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21g17d.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21G17D */
-/* ************************************************************************** */
-
-#define FLASH_SIZE _UL_(0x00020000) /* 128 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 2048
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE _UL_(0x00004000) /* 16 kB */
-
-#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */
-#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */
-#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */
-#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */
-#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE _UL_(0x10012693)
-#define EIC_EXTINT_NUM 16
-#define NVMCTRL_RWW_EEPROM_SIZE _UL_(0x00001000) /* 4 kB */
-#define PORT_GROUPS 2
-#define USB_HOST 1
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21G17D */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21G17D_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g17l.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g17l.h
deleted file mode 100644
index ec18829..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g17l.h
+++ /dev/null
@@ -1,575 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21G17L
- *
- * Copyright (c) 2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21G17L_
-#define _SAMD21G17L_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21G17L_definitions SAMD21G17L definitions
- * This file defines all structures and symbols for SAMD21G17L:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#endif
-
-#if !defined(SKIP_INTEGER_LITERALS)
-#if defined(_U_) || defined(_L_) || defined(_UL_)
- #error "Integer Literals macros already defined elsewhere"
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-/* Macros that deal with adding suffixes to integer literal constants for C/C++ */
-#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */
-#define _L_(x) x ## L /**< C code: Long integer literal constant value */
-#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */
-#else /* Assembler */
-#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */
-#define _L_(x) x /**< Assembler: Long integer literal constant value */
-#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-#endif /* SKIP_INTEGER_LITERALS */
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21G17L */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17L_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21G17L-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21G17L Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21G17L System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21G17L Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21G17L Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21G17L External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21G17L Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21G17L Direct Memory Access Controller (DMAC) */
- EVSYS_IRQn = 8, /**< 8 SAMD21G17L Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21G17L Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21G17L Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21G17L Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21G17L Serial Communication Interface 3 (SERCOM3) */
- SERCOM4_IRQn = 13, /**< 13 SAMD21G17L Serial Communication Interface 4 (SERCOM4) */
- SERCOM5_IRQn = 14, /**< 14 SAMD21G17L Serial Communication Interface 5 (SERCOM5) */
- TCC0_IRQn = 15, /**< 15 SAMD21G17L Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21G17L Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21G17L Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21G17L Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21G17L Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21G17L Basic Timer Counter 5 (TC5) */
- TC6_IRQn = 21, /**< 21 SAMD21G17L Basic Timer Counter 6 (TC6) */
- TC7_IRQn = 22, /**< 22 SAMD21G17L Basic Timer Counter 7 (TC7) */
- ADC_IRQn = 23, /**< 23 SAMD21G17L Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21G17L Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21G17L Digital Analog Converter (DAC) */
- AC1_IRQn = 28, /**< 28 SAMD21G17L Analog Comparators 1 (AC1) */
- TCC3_IRQn = 29, /**< 29 SAMD21G17L Timer Counter Control 3 (TCC3) */
-
- PERIPH_COUNT_IRQn = 30 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pvReserved7;
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */
- void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */
- void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pvReserved26;
- void* pvReserved27;
- void* pfnAC1_Handler; /* 28 Analog Comparators 1 */
- void* pfnTCC3_Handler; /* 29 Timer Counter Control 3 */
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void SERCOM4_Handler ( void );
-void SERCOM5_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void TC6_Handler ( void );
-void TC7_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void AC1_Handler ( void );
-void TCC3_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G17L */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17L_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys_variant_d.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/mtb.h"
-#include "component/nvmctrl_variant_d.h"
-#include "component/pac.h"
-#include "component/pm_variant_d.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc_lighting.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G17L */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17L_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/ac1.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys_variant_d.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl_variant_d.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port_variant_d.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sercom4.h"
-#include "instance/sercom5.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tc6.h"
-#include "instance/tc7.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/tcc3.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21G17L */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17L_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */
-#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */
-#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_AC1 85 /**< \brief Analog Comparators 1 (AC1) */
-#define ID_TCC3 88 /**< \brief Timer Counter Control 3 (TCC3) */
-
-#define ID_PERIPH_COUNT 89 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21G17L */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17L_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400) /**< \brief (AC) APB Base Address */
-#define AC1 (0x42005400) /**< \brief (AC1) APB Base Address */
-#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */
-#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL_AUX3 (0x0080A000) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */
-#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */
-#define TC6 (0x42003800) /**< \brief (TC6) APB Base Address */
-#define TC7 (0x42003C00) /**< \brief (TC7) APB Base Address */
-#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */
-#define TCC3 (0x42006000) /**< \brief (TCC3) APB Base Address */
-#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC1 ((Ac *)0x42005400UL) /**< \brief (AC1) APB Base Address */
-#define AC_INST_NUM 2 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC, AC1 } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC3 ((Tcc *)0x42006000UL) /**< \brief (TCC3) APB Base Address */
-#define TCC_INST_NUM 4 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3 } /**< \brief (TCC) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21G17L */
-/* ************************************************************************** */
-/** \defgroup SAMD21G17L_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21g17l.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21G17L */
-/* ************************************************************************** */
-
-#define FLASH_SIZE _UL_(0x00020000) /* 128 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 2048
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE _UL_(0x00004000) /* 16 kB */
-
-#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */
-#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */
-#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */
-#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */
-#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE _UL_(0x10012696)
-#define EIC_EXTINT_NUM 16
-#define NVMCTRL_RWW_EEPROM_SIZE _UL_(0x00001000) /* 4 kB */
-#define PORT_GROUPS 2
-#define USB_HOST 0
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21G17L */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21G17L_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g18a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g18a.h
deleted file mode 100644
index f03f09e..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g18a.h
+++ /dev/null
@@ -1,559 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21G18A
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21G18A_
-#define _SAMD21G18A_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21G18A_definitions SAMD21G18A definitions
- * This file defines all structures and symbols for SAMD21G18A:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21G18A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G18A_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21G18A-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21G18A Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21G18A System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21G18A Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21G18A Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21G18A External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21G18A Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21G18A Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21G18A Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21G18A Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21G18A Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21G18A Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21G18A Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21G18A Serial Communication Interface 3 (SERCOM3) */
- SERCOM4_IRQn = 13, /**< 13 SAMD21G18A Serial Communication Interface 4 (SERCOM4) */
- SERCOM5_IRQn = 14, /**< 14 SAMD21G18A Serial Communication Interface 5 (SERCOM5) */
- TCC0_IRQn = 15, /**< 15 SAMD21G18A Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21G18A Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21G18A Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21G18A Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21G18A Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21G18A Basic Timer Counter 5 (TC5) */
- ADC_IRQn = 23, /**< 23 SAMD21G18A Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21G18A Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21G18A Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21G18A Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21G18A Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */
- void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pvReserved21;
- void* pvReserved22;
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void SERCOM4_Handler ( void );
-void SERCOM5_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G18A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G18A_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G18A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G18A_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sercom4.h"
-#include "instance/sercom5.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21G18A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G18A_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */
-#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21G18A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G18A_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 (0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 (0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC_INST_NUM 3 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21G18A */
-/* ************************************************************************** */
-/** \defgroup SAMD21G18A_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21g18a.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21G18A */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x40000UL /* 256 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 4096
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x8000UL /* 32 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x10010005UL
-#define EIC_EXTINT_NUM 16
-#define PORT_GROUPS 2
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21G18A */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21G18A_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g18au.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g18au.h
deleted file mode 100644
index 08b694e..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21g18au.h
+++ /dev/null
@@ -1,571 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21G18AU
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21G18AU_
-#define _SAMD21G18AU_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21G18AU_definitions SAMD21G18AU definitions
- * This file defines all structures and symbols for SAMD21G18AU:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21G18AU */
-/* ************************************************************************** */
-/** \defgroup SAMD21G18AU_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21G18AU-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21G18AU Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21G18AU System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21G18AU Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21G18AU Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21G18AU External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21G18AU Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21G18AU Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21G18AU Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21G18AU Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21G18AU Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21G18AU Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21G18AU Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21G18AU Serial Communication Interface 3 (SERCOM3) */
- SERCOM4_IRQn = 13, /**< 13 SAMD21G18AU Serial Communication Interface 4 (SERCOM4) */
- SERCOM5_IRQn = 14, /**< 14 SAMD21G18AU Serial Communication Interface 5 (SERCOM5) */
- TCC0_IRQn = 15, /**< 15 SAMD21G18AU Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21G18AU Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21G18AU Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21G18AU Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21G18AU Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21G18AU Basic Timer Counter 5 (TC5) */
- TC6_IRQn = 21, /**< 21 SAMD21G18AU Basic Timer Counter 6 (TC6) */
- TC7_IRQn = 22, /**< 22 SAMD21G18AU Basic Timer Counter 7 (TC7) */
- ADC_IRQn = 23, /**< 23 SAMD21G18AU Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21G18AU Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21G18AU Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21G18AU Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21G18AU Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */
- void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */
- void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void SERCOM4_Handler ( void );
-void SERCOM5_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void TC6_Handler ( void );
-void TC7_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21G18AU */
-/* ************************************************************************** */
-/** \defgroup SAMD21G18AU_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21G18AU */
-/* ************************************************************************** */
-/** \defgroup SAMD21G18AU_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sercom4.h"
-#include "instance/sercom5.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tc6.h"
-#include "instance/tc7.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21G18AU */
-/* ************************************************************************** */
-/** \defgroup SAMD21G18AU_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */
-#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */
-#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21G18AU */
-/* ************************************************************************** */
-/** \defgroup SAMD21G18AU_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 (0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 (0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 (0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 (0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21G18AU */
-/* ************************************************************************** */
-/** \defgroup SAMD21G18AU_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21g18au.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21G18AU */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x40000UL /* 256 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 4096
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x8000UL /* 32 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x1001000FUL
-#define EIC_EXTINT_NUM 16
-#define PORT_GROUPS 2
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21G18AU */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21G18AU_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j15a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j15a.h
deleted file mode 100644
index 8790b53..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j15a.h
+++ /dev/null
@@ -1,571 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21J15A
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21J15A_
-#define _SAMD21J15A_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21J15A_definitions SAMD21J15A definitions
- * This file defines all structures and symbols for SAMD21J15A:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21J15A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J15A_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21J15A-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21J15A Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21J15A System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21J15A Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21J15A Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21J15A External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21J15A Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21J15A Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21J15A Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21J15A Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21J15A Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21J15A Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21J15A Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21J15A Serial Communication Interface 3 (SERCOM3) */
- SERCOM4_IRQn = 13, /**< 13 SAMD21J15A Serial Communication Interface 4 (SERCOM4) */
- SERCOM5_IRQn = 14, /**< 14 SAMD21J15A Serial Communication Interface 5 (SERCOM5) */
- TCC0_IRQn = 15, /**< 15 SAMD21J15A Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21J15A Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21J15A Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21J15A Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21J15A Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21J15A Basic Timer Counter 5 (TC5) */
- TC6_IRQn = 21, /**< 21 SAMD21J15A Basic Timer Counter 6 (TC6) */
- TC7_IRQn = 22, /**< 22 SAMD21J15A Basic Timer Counter 7 (TC7) */
- ADC_IRQn = 23, /**< 23 SAMD21J15A Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21J15A Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21J15A Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21J15A Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21J15A Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */
- void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */
- void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void SERCOM4_Handler ( void );
-void SERCOM5_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void TC6_Handler ( void );
-void TC7_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21J15A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J15A_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21J15A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J15A_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sercom4.h"
-#include "instance/sercom5.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tc6.h"
-#include "instance/tc7.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21J15A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J15A_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */
-#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */
-#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21J15A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J15A_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 (0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 (0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 (0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 (0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21J15A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J15A_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21j15a.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21J15A */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x8000UL /* 32 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 512
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x1000UL /* 4 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x10010003UL
-#define EIC_EXTINT_NUM 16
-#define PORT_GROUPS 2
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21J15A */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21J15A_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j15b.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j15b.h
deleted file mode 100644
index 19b0266..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j15b.h
+++ /dev/null
@@ -1,575 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21J15B
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21J15B_
-#define _SAMD21J15B_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21J15B_definitions SAMD21J15B definitions
- * This file defines all structures and symbols for SAMD21J15B:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21J15B */
-/* ************************************************************************** */
-/** \defgroup SAMD21J15B_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21J15B-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21J15B Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21J15B System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21J15B Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21J15B Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21J15B External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21J15B Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21J15B Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21J15B Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21J15B Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21J15B Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21J15B Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21J15B Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21J15B Serial Communication Interface 3 (SERCOM3) */
- SERCOM4_IRQn = 13, /**< 13 SAMD21J15B Serial Communication Interface 4 (SERCOM4) */
- SERCOM5_IRQn = 14, /**< 14 SAMD21J15B Serial Communication Interface 5 (SERCOM5) */
- TCC0_IRQn = 15, /**< 15 SAMD21J15B Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21J15B Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21J15B Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21J15B Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21J15B Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21J15B Basic Timer Counter 5 (TC5) */
- TC6_IRQn = 21, /**< 21 SAMD21J15B Basic Timer Counter 6 (TC6) */
- TC7_IRQn = 22, /**< 22 SAMD21J15B Basic Timer Counter 7 (TC7) */
- ADC_IRQn = 23, /**< 23 SAMD21J15B Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21J15B Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21J15B Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21J15B Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21J15B Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 29 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */
- void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */
- void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void SERCOM4_Handler ( void );
-void SERCOM5_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void TC6_Handler ( void );
-void TC7_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21J15B */
-/* ************************************************************************** */
-/** \defgroup SAMD21J15B_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21J15B */
-/* ************************************************************************** */
-/** \defgroup SAMD21J15B_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sercom4.h"
-#include "instance/sercom5.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tc6.h"
-#include "instance/tc7.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21J15B */
-/* ************************************************************************** */
-/** \defgroup SAMD21J15B_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */
-#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */
-#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21J15B */
-/* ************************************************************************** */
-/** \defgroup SAMD21J15B_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 (0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 (0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 (0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 (0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21J15B */
-/* ************************************************************************** */
-/** \defgroup SAMD21J15B_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21j15b.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21J15B */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x8000UL /* 32 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 512
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x1000UL /* 4 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x10011421UL
-#define EIC_EXTINT_NUM 16
-#define NVMCTRL_RWW_EEPROM_SIZE 0x400UL /* 1 kB */
-#define PORT_GROUPS 2
-#define USB_HOST 1
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21J15B */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21J15B_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j16a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j16a.h
deleted file mode 100644
index 687a262..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j16a.h
+++ /dev/null
@@ -1,571 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21J16A
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21J16A_
-#define _SAMD21J16A_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21J16A_definitions SAMD21J16A definitions
- * This file defines all structures and symbols for SAMD21J16A:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21J16A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J16A_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21J16A-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21J16A Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21J16A System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21J16A Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21J16A Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21J16A External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21J16A Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21J16A Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21J16A Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21J16A Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21J16A Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21J16A Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21J16A Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21J16A Serial Communication Interface 3 (SERCOM3) */
- SERCOM4_IRQn = 13, /**< 13 SAMD21J16A Serial Communication Interface 4 (SERCOM4) */
- SERCOM5_IRQn = 14, /**< 14 SAMD21J16A Serial Communication Interface 5 (SERCOM5) */
- TCC0_IRQn = 15, /**< 15 SAMD21J16A Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21J16A Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21J16A Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21J16A Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21J16A Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21J16A Basic Timer Counter 5 (TC5) */
- TC6_IRQn = 21, /**< 21 SAMD21J16A Basic Timer Counter 6 (TC6) */
- TC7_IRQn = 22, /**< 22 SAMD21J16A Basic Timer Counter 7 (TC7) */
- ADC_IRQn = 23, /**< 23 SAMD21J16A Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21J16A Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21J16A Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21J16A Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21J16A Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */
- void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */
- void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void SERCOM4_Handler ( void );
-void SERCOM5_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void TC6_Handler ( void );
-void TC7_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21J16A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J16A_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21J16A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J16A_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sercom4.h"
-#include "instance/sercom5.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tc6.h"
-#include "instance/tc7.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21J16A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J16A_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */
-#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */
-#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21J16A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J16A_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 (0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 (0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 (0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 (0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21J16A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J16A_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21j16a.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21J16A */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x10000UL /* 64 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 1024
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x2000UL /* 8 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x10010002UL
-#define EIC_EXTINT_NUM 16
-#define PORT_GROUPS 2
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21J16A */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21J16A_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j16b.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j16b.h
deleted file mode 100644
index 1f2c069..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j16b.h
+++ /dev/null
@@ -1,575 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21J16B
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21J16B_
-#define _SAMD21J16B_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21J16B_definitions SAMD21J16B definitions
- * This file defines all structures and symbols for SAMD21J16B:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21J16B */
-/* ************************************************************************** */
-/** \defgroup SAMD21J16B_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21J16B-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21J16B Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21J16B System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21J16B Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21J16B Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21J16B External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21J16B Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21J16B Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21J16B Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21J16B Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21J16B Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21J16B Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21J16B Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21J16B Serial Communication Interface 3 (SERCOM3) */
- SERCOM4_IRQn = 13, /**< 13 SAMD21J16B Serial Communication Interface 4 (SERCOM4) */
- SERCOM5_IRQn = 14, /**< 14 SAMD21J16B Serial Communication Interface 5 (SERCOM5) */
- TCC0_IRQn = 15, /**< 15 SAMD21J16B Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21J16B Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21J16B Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21J16B Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21J16B Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21J16B Basic Timer Counter 5 (TC5) */
- TC6_IRQn = 21, /**< 21 SAMD21J16B Basic Timer Counter 6 (TC6) */
- TC7_IRQn = 22, /**< 22 SAMD21J16B Basic Timer Counter 7 (TC7) */
- ADC_IRQn = 23, /**< 23 SAMD21J16B Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21J16B Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21J16B Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21J16B Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21J16B Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 29 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */
- void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */
- void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void SERCOM4_Handler ( void );
-void SERCOM5_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void TC6_Handler ( void );
-void TC7_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21J16B */
-/* ************************************************************************** */
-/** \defgroup SAMD21J16B_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21J16B */
-/* ************************************************************************** */
-/** \defgroup SAMD21J16B_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sercom4.h"
-#include "instance/sercom5.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tc6.h"
-#include "instance/tc7.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21J16B */
-/* ************************************************************************** */
-/** \defgroup SAMD21J16B_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */
-#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */
-#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21J16B */
-/* ************************************************************************** */
-/** \defgroup SAMD21J16B_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 (0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 (0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 (0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 (0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21J16B */
-/* ************************************************************************** */
-/** \defgroup SAMD21J16B_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21j16b.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21J16B */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x10000UL /* 64 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 1024
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x2000UL /* 8 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x10011420UL
-#define EIC_EXTINT_NUM 16
-#define NVMCTRL_RWW_EEPROM_SIZE 0x800UL /* 2 kB */
-#define PORT_GROUPS 2
-#define USB_HOST 1
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21J16B */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21J16B_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j17a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j17a.h
deleted file mode 100644
index d8d3f1d..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j17a.h
+++ /dev/null
@@ -1,571 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21J17A
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21J17A_
-#define _SAMD21J17A_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21J17A_definitions SAMD21J17A definitions
- * This file defines all structures and symbols for SAMD21J17A:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21J17A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J17A_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21J17A-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21J17A Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21J17A System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21J17A Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21J17A Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21J17A External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21J17A Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21J17A Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21J17A Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21J17A Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21J17A Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21J17A Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21J17A Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21J17A Serial Communication Interface 3 (SERCOM3) */
- SERCOM4_IRQn = 13, /**< 13 SAMD21J17A Serial Communication Interface 4 (SERCOM4) */
- SERCOM5_IRQn = 14, /**< 14 SAMD21J17A Serial Communication Interface 5 (SERCOM5) */
- TCC0_IRQn = 15, /**< 15 SAMD21J17A Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21J17A Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21J17A Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21J17A Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21J17A Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21J17A Basic Timer Counter 5 (TC5) */
- TC6_IRQn = 21, /**< 21 SAMD21J17A Basic Timer Counter 6 (TC6) */
- TC7_IRQn = 22, /**< 22 SAMD21J17A Basic Timer Counter 7 (TC7) */
- ADC_IRQn = 23, /**< 23 SAMD21J17A Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21J17A Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21J17A Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21J17A Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21J17A Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */
- void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */
- void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void SERCOM4_Handler ( void );
-void SERCOM5_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void TC6_Handler ( void );
-void TC7_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21J17A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J17A_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21J17A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J17A_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sercom4.h"
-#include "instance/sercom5.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tc6.h"
-#include "instance/tc7.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21J17A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J17A_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */
-#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */
-#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21J17A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J17A_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 (0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 (0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 (0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 (0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21J17A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J17A_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21j17a.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21J17A */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x20000UL /* 128 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 2048
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x4000UL /* 16 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x10010001UL
-#define EIC_EXTINT_NUM 16
-#define PORT_GROUPS 2
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21J17A */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21J17A_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j17d.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j17d.h
deleted file mode 100644
index 7f181ab..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j17d.h
+++ /dev/null
@@ -1,598 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21J17D
- *
- * Copyright (c) 2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21J17D_
-#define _SAMD21J17D_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21J17D_definitions SAMD21J17D definitions
- * This file defines all structures and symbols for SAMD21J17D:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#endif
-
-#if !defined(SKIP_INTEGER_LITERALS)
-#if defined(_U_) || defined(_L_) || defined(_UL_)
- #error "Integer Literals macros already defined elsewhere"
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-/* Macros that deal with adding suffixes to integer literal constants for C/C++ */
-#define _U_(x) x ## U /**< C code: Unsigned integer literal constant value */
-#define _L_(x) x ## L /**< C code: Long integer literal constant value */
-#define _UL_(x) x ## UL /**< C code: Unsigned Long integer literal constant value */
-#else /* Assembler */
-#define _U_(x) x /**< Assembler: Unsigned integer literal constant value */
-#define _L_(x) x /**< Assembler: Long integer literal constant value */
-#define _UL_(x) x /**< Assembler: Unsigned Long integer literal constant value */
-#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-#endif /* SKIP_INTEGER_LITERALS */
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21J17D */
-/* ************************************************************************** */
-/** \defgroup SAMD21J17D_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21J17D-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21J17D Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21J17D System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21J17D Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21J17D Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21J17D External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21J17D Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21J17D Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21J17D Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21J17D Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21J17D Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21J17D Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21J17D Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21J17D Serial Communication Interface 3 (SERCOM3) */
- SERCOM4_IRQn = 13, /**< 13 SAMD21J17D Serial Communication Interface 4 (SERCOM4) */
- SERCOM5_IRQn = 14, /**< 14 SAMD21J17D Serial Communication Interface 5 (SERCOM5) */
- TCC0_IRQn = 15, /**< 15 SAMD21J17D Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21J17D Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21J17D Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21J17D Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21J17D Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21J17D Basic Timer Counter 5 (TC5) */
- TC6_IRQn = 21, /**< 21 SAMD21J17D Basic Timer Counter 6 (TC6) */
- TC7_IRQn = 22, /**< 22 SAMD21J17D Basic Timer Counter 7 (TC7) */
- ADC_IRQn = 23, /**< 23 SAMD21J17D Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21J17D Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21J17D Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21J17D Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21J17D Inter-IC Sound Interface (I2S) */
- TCC3_IRQn = 29, /**< 29 SAMD21J17D Timer Counter Control 3 (TCC3) */
-
- PERIPH_COUNT_IRQn = 30 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */
- void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */
- void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
- void* pfnTCC3_Handler; /* 29 Timer Counter Control 3 */
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void SERCOM4_Handler ( void );
-void SERCOM5_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void TC6_Handler ( void );
-void TC7_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-void TCC3_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21J17D */
-/* ************************************************************************** */
-/** \defgroup SAMD21J17D_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys_variant_d.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl_variant_d.h"
-#include "component/pac.h"
-#include "component/pm_variant_d.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc_variant_d.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21J17D */
-/* ************************************************************************** */
-/** \defgroup SAMD21J17D_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys_variant_d.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl_variant_d.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port_variant_d.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sercom4.h"
-#include "instance/sercom5.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tc6.h"
-#include "instance/tc7.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/tcc3.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21J17D */
-/* ************************************************************************** */
-/** \defgroup SAMD21J17D_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */
-#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */
-#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-#define ID_TCC3 88 /**< \brief Timer Counter Control 3 (TCC3) */
-
-#define ID_PERIPH_COUNT 89 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21J17D */
-/* ************************************************************************** */
-/** \defgroup SAMD21J17D_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL_AUX3 (0x0080A000) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL (0x41004000) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000) /**< \brief (PORT) IOBUS Base Address */
-#define PTC (0x42004C00) /**< \brief (PTC) APB Base Address */
-#define RTC (0x40001400) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 (0x42001800) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 (0x42001C00) /**< \brief (SERCOM5) APB Base Address */
-#define SYSCTRL (0x40000800) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400) /**< \brief (TC5) APB Base Address */
-#define TC6 (0x42003800) /**< \brief (TC6) APB Base Address */
-#define TC7 (0x42003C00) /**< \brief (TC7) APB Base Address */
-#define TCC0 (0x42002000) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800) /**< \brief (TCC2) APB Base Address */
-#define TCC3 (0x42006000) /**< \brief (TCC3) APB Base Address */
-#define USB (0x41005000) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL_AUX3 (0x0080A000UL) /**< \brief (NVMCTRL) AUX3 Base Address */
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-#define PORT_IOBUS_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_IOBUS_INSTS { PORT_IOBUS } /**< \brief (PORT) Instances List */
-
-#define PTC ((void *)0x42004C00UL) /**< \brief (PTC) APB Base Address */
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC3 ((Tcc *)0x42006000UL) /**< \brief (TCC3) APB Base Address */
-#define TCC_INST_NUM 4 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2, TCC3 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21J17D */
-/* ************************************************************************** */
-/** \defgroup SAMD21J17D_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21j17d.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21J17D */
-/* ************************************************************************** */
-
-#define FLASH_SIZE _UL_(0x00020000) /* 128 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 2048
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE _UL_(0x00004000) /* 16 kB */
-
-#define FLASH_ADDR _UL_(0x00000000) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR _UL_(0x00800000) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR _UL_(0x20000000) /**< HMCRAMC0 base address */
-#define HPB0_ADDR _UL_(0x40000000) /**< HPB0 base address */
-#define HPB1_ADDR _UL_(0x41000000) /**< HPB1 base address */
-#define HPB2_ADDR _UL_(0x42000000) /**< HPB2 base address */
-#define PPB_ADDR _UL_(0xE0000000) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE _UL_(0x10012692)
-#define EIC_EXTINT_NUM 16
-#define NVMCTRL_RWW_EEPROM_SIZE _UL_(0x00001000) /* 4 kB */
-#define PORT_GROUPS 2
-#define USB_HOST 1
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21J17D */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21J17D_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j18a.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j18a.h
deleted file mode 100644
index c6a3ffd..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/include/samd21j18a.h
+++ /dev/null
@@ -1,571 +0,0 @@
-/**
- * \file
- *
- * \brief Header file for SAMD21J18A
- *
- * Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef _SAMD21J18A_
-#define _SAMD21J18A_
-
-/**
- * \ingroup SAMD21_definitions
- * \addtogroup SAMD21J18A_definitions SAMD21J18A definitions
- * This file defines all structures and symbols for SAMD21J18A:
- * - registers and bitfields
- * - peripheral base address
- * - peripheral ID
- * - PIO definitions
-*/
-/*@{*/
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
-#include
-#ifndef __cplusplus
-typedef volatile const uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile const uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile const uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#else
-typedef volatile uint32_t RoReg; /**< Read only 32-bit register (volatile const unsigned int) */
-typedef volatile uint16_t RoReg16; /**< Read only 16-bit register (volatile const unsigned int) */
-typedef volatile uint8_t RoReg8; /**< Read only 8-bit register (volatile const unsigned int) */
-#endif
-typedef volatile uint32_t WoReg; /**< Write only 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t WoReg16; /**< Write only 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t WoReg8; /**< Write only 8-bit register (volatile unsigned int) */
-typedef volatile uint32_t RwReg; /**< Read-Write 32-bit register (volatile unsigned int) */
-typedef volatile uint16_t RwReg16; /**< Read-Write 16-bit register (volatile unsigned int) */
-typedef volatile uint8_t RwReg8; /**< Read-Write 8-bit register (volatile unsigned int) */
-#define CAST(type, value) ((type *)(value))
-#define REG_ACCESS(type, address) (*(type*)(address)) /**< C code: Register value */
-#else
-#define CAST(type, value) (value)
-#define REG_ACCESS(type, address) (address) /**< Assembly code: Register address */
-#endif
-
-/* ************************************************************************** */
-/** CMSIS DEFINITIONS FOR SAMD21J18A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J18A_cmsis CMSIS Definitions */
-/*@{*/
-
-/** Interrupt Number Definition */
-typedef enum IRQn
-{
- /****** Cortex-M0+ Processor Exceptions Numbers ******************************/
- NonMaskableInt_IRQn = -14,/**< 2 Non Maskable Interrupt */
- HardFault_IRQn = -13,/**< 3 Cortex-M0+ Hard Fault Interrupt */
- SVCall_IRQn = -5, /**< 11 Cortex-M0+ SV Call Interrupt */
- PendSV_IRQn = -2, /**< 14 Cortex-M0+ Pend SV Interrupt */
- SysTick_IRQn = -1, /**< 15 Cortex-M0+ System Tick Interrupt */
- /****** SAMD21J18A-specific Interrupt Numbers ***********************/
- PM_IRQn = 0, /**< 0 SAMD21J18A Power Manager (PM) */
- SYSCTRL_IRQn = 1, /**< 1 SAMD21J18A System Control (SYSCTRL) */
- WDT_IRQn = 2, /**< 2 SAMD21J18A Watchdog Timer (WDT) */
- RTC_IRQn = 3, /**< 3 SAMD21J18A Real-Time Counter (RTC) */
- EIC_IRQn = 4, /**< 4 SAMD21J18A External Interrupt Controller (EIC) */
- NVMCTRL_IRQn = 5, /**< 5 SAMD21J18A Non-Volatile Memory Controller (NVMCTRL) */
- DMAC_IRQn = 6, /**< 6 SAMD21J18A Direct Memory Access Controller (DMAC) */
- USB_IRQn = 7, /**< 7 SAMD21J18A Universal Serial Bus (USB) */
- EVSYS_IRQn = 8, /**< 8 SAMD21J18A Event System Interface (EVSYS) */
- SERCOM0_IRQn = 9, /**< 9 SAMD21J18A Serial Communication Interface 0 (SERCOM0) */
- SERCOM1_IRQn = 10, /**< 10 SAMD21J18A Serial Communication Interface 1 (SERCOM1) */
- SERCOM2_IRQn = 11, /**< 11 SAMD21J18A Serial Communication Interface 2 (SERCOM2) */
- SERCOM3_IRQn = 12, /**< 12 SAMD21J18A Serial Communication Interface 3 (SERCOM3) */
- SERCOM4_IRQn = 13, /**< 13 SAMD21J18A Serial Communication Interface 4 (SERCOM4) */
- SERCOM5_IRQn = 14, /**< 14 SAMD21J18A Serial Communication Interface 5 (SERCOM5) */
- TCC0_IRQn = 15, /**< 15 SAMD21J18A Timer Counter Control 0 (TCC0) */
- TCC1_IRQn = 16, /**< 16 SAMD21J18A Timer Counter Control 1 (TCC1) */
- TCC2_IRQn = 17, /**< 17 SAMD21J18A Timer Counter Control 2 (TCC2) */
- TC3_IRQn = 18, /**< 18 SAMD21J18A Basic Timer Counter 3 (TC3) */
- TC4_IRQn = 19, /**< 19 SAMD21J18A Basic Timer Counter 4 (TC4) */
- TC5_IRQn = 20, /**< 20 SAMD21J18A Basic Timer Counter 5 (TC5) */
- TC6_IRQn = 21, /**< 21 SAMD21J18A Basic Timer Counter 6 (TC6) */
- TC7_IRQn = 22, /**< 22 SAMD21J18A Basic Timer Counter 7 (TC7) */
- ADC_IRQn = 23, /**< 23 SAMD21J18A Analog Digital Converter (ADC) */
- AC_IRQn = 24, /**< 24 SAMD21J18A Analog Comparators (AC) */
- DAC_IRQn = 25, /**< 25 SAMD21J18A Digital Analog Converter (DAC) */
- PTC_IRQn = 26, /**< 26 SAMD21J18A Peripheral Touch Controller (PTC) */
- I2S_IRQn = 27, /**< 27 SAMD21J18A Inter-IC Sound Interface (I2S) */
-
- PERIPH_COUNT_IRQn = 28 /**< Number of peripheral IDs */
-} IRQn_Type;
-
-typedef struct _DeviceVectors
-{
- /* Stack pointer */
- void* pvStack;
-
- /* Cortex-M handlers */
- void* pfnReset_Handler;
- void* pfnNMI_Handler;
- void* pfnHardFault_Handler;
- void* pvReservedM12;
- void* pvReservedM11;
- void* pvReservedM10;
- void* pvReservedM9;
- void* pvReservedM8;
- void* pvReservedM7;
- void* pvReservedM6;
- void* pfnSVC_Handler;
- void* pvReservedM4;
- void* pvReservedM3;
- void* pfnPendSV_Handler;
- void* pfnSysTick_Handler;
-
- /* Peripheral handlers */
- void* pfnPM_Handler; /* 0 Power Manager */
- void* pfnSYSCTRL_Handler; /* 1 System Control */
- void* pfnWDT_Handler; /* 2 Watchdog Timer */
- void* pfnRTC_Handler; /* 3 Real-Time Counter */
- void* pfnEIC_Handler; /* 4 External Interrupt Controller */
- void* pfnNVMCTRL_Handler; /* 5 Non-Volatile Memory Controller */
- void* pfnDMAC_Handler; /* 6 Direct Memory Access Controller */
- void* pfnUSB_Handler; /* 7 Universal Serial Bus */
- void* pfnEVSYS_Handler; /* 8 Event System Interface */
- void* pfnSERCOM0_Handler; /* 9 Serial Communication Interface 0 */
- void* pfnSERCOM1_Handler; /* 10 Serial Communication Interface 1 */
- void* pfnSERCOM2_Handler; /* 11 Serial Communication Interface 2 */
- void* pfnSERCOM3_Handler; /* 12 Serial Communication Interface 3 */
- void* pfnSERCOM4_Handler; /* 13 Serial Communication Interface 4 */
- void* pfnSERCOM5_Handler; /* 14 Serial Communication Interface 5 */
- void* pfnTCC0_Handler; /* 15 Timer Counter Control 0 */
- void* pfnTCC1_Handler; /* 16 Timer Counter Control 1 */
- void* pfnTCC2_Handler; /* 17 Timer Counter Control 2 */
- void* pfnTC3_Handler; /* 18 Basic Timer Counter 3 */
- void* pfnTC4_Handler; /* 19 Basic Timer Counter 4 */
- void* pfnTC5_Handler; /* 20 Basic Timer Counter 5 */
- void* pfnTC6_Handler; /* 21 Basic Timer Counter 6 */
- void* pfnTC7_Handler; /* 22 Basic Timer Counter 7 */
- void* pfnADC_Handler; /* 23 Analog Digital Converter */
- void* pfnAC_Handler; /* 24 Analog Comparators */
- void* pfnDAC_Handler; /* 25 Digital Analog Converter */
- void* pfnPTC_Handler; /* 26 Peripheral Touch Controller */
- void* pfnI2S_Handler; /* 27 Inter-IC Sound Interface */
- void* pvReserved28;
-} DeviceVectors;
-
-/* Cortex-M0+ processor handlers */
-void Reset_Handler ( void );
-void NMI_Handler ( void );
-void HardFault_Handler ( void );
-void SVC_Handler ( void );
-void PendSV_Handler ( void );
-void SysTick_Handler ( void );
-
-/* Peripherals handlers */
-void PM_Handler ( void );
-void SYSCTRL_Handler ( void );
-void WDT_Handler ( void );
-void RTC_Handler ( void );
-void EIC_Handler ( void );
-void NVMCTRL_Handler ( void );
-void DMAC_Handler ( void );
-void USB_Handler ( void );
-void EVSYS_Handler ( void );
-void SERCOM0_Handler ( void );
-void SERCOM1_Handler ( void );
-void SERCOM2_Handler ( void );
-void SERCOM3_Handler ( void );
-void SERCOM4_Handler ( void );
-void SERCOM5_Handler ( void );
-void TCC0_Handler ( void );
-void TCC1_Handler ( void );
-void TCC2_Handler ( void );
-void TC3_Handler ( void );
-void TC4_Handler ( void );
-void TC5_Handler ( void );
-void TC6_Handler ( void );
-void TC7_Handler ( void );
-void ADC_Handler ( void );
-void AC_Handler ( void );
-void DAC_Handler ( void );
-void PTC_Handler ( void );
-void I2S_Handler ( void );
-
-/*
- * \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
- */
-
-#define LITTLE_ENDIAN 1
-#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
-#define __MPU_PRESENT 0 /*!< MPU present or not */
-#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
-#define __VTOR_PRESENT 1 /*!< VTOR present or not */
-#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
-
-/**
- * \brief CMSIS includes
- */
-
-#include
-#if !defined DONT_USE_CMSIS_INIT
-#include "system_samd21.h"
-#endif /* DONT_USE_CMSIS_INIT */
-
-/*@}*/
-
-/* ************************************************************************** */
-/** SOFTWARE PERIPHERAL API DEFINITION FOR SAMD21J18A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J18A_api Peripheral Software API */
-/*@{*/
-
-#include "component/ac.h"
-#include "component/adc.h"
-#include "component/dac.h"
-#include "component/dmac.h"
-#include "component/dsu.h"
-#include "component/eic.h"
-#include "component/evsys.h"
-#include "component/gclk.h"
-#include "component/hmatrixb.h"
-#include "component/i2s.h"
-#include "component/mtb.h"
-#include "component/nvmctrl.h"
-#include "component/pac.h"
-#include "component/pm.h"
-#include "component/port.h"
-#include "component/rtc.h"
-#include "component/sercom.h"
-#include "component/sysctrl.h"
-#include "component/tc.h"
-#include "component/tcc.h"
-#include "component/usb.h"
-#include "component/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** REGISTERS ACCESS DEFINITIONS FOR SAMD21J18A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J18A_reg Registers Access Definitions */
-/*@{*/
-
-#include "instance/ac.h"
-#include "instance/adc.h"
-#include "instance/dac.h"
-#include "instance/dmac.h"
-#include "instance/dsu.h"
-#include "instance/eic.h"
-#include "instance/evsys.h"
-#include "instance/gclk.h"
-#include "instance/sbmatrix.h"
-#include "instance/i2s.h"
-#include "instance/mtb.h"
-#include "instance/nvmctrl.h"
-#include "instance/pac0.h"
-#include "instance/pac1.h"
-#include "instance/pac2.h"
-#include "instance/pm.h"
-#include "instance/port.h"
-#include "instance/rtc.h"
-#include "instance/sercom0.h"
-#include "instance/sercom1.h"
-#include "instance/sercom2.h"
-#include "instance/sercom3.h"
-#include "instance/sercom4.h"
-#include "instance/sercom5.h"
-#include "instance/sysctrl.h"
-#include "instance/tc3.h"
-#include "instance/tc4.h"
-#include "instance/tc5.h"
-#include "instance/tc6.h"
-#include "instance/tc7.h"
-#include "instance/tcc0.h"
-#include "instance/tcc1.h"
-#include "instance/tcc2.h"
-#include "instance/usb.h"
-#include "instance/wdt.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** PERIPHERAL ID DEFINITIONS FOR SAMD21J18A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J18A_id Peripheral Ids Definitions */
-/*@{*/
-
-// Peripheral instances on HPB0 bridge
-#define ID_PAC0 0 /**< \brief Peripheral Access Controller 0 (PAC0) */
-#define ID_PM 1 /**< \brief Power Manager (PM) */
-#define ID_SYSCTRL 2 /**< \brief System Control (SYSCTRL) */
-#define ID_GCLK 3 /**< \brief Generic Clock Generator (GCLK) */
-#define ID_WDT 4 /**< \brief Watchdog Timer (WDT) */
-#define ID_RTC 5 /**< \brief Real-Time Counter (RTC) */
-#define ID_EIC 6 /**< \brief External Interrupt Controller (EIC) */
-
-// Peripheral instances on HPB1 bridge
-#define ID_PAC1 32 /**< \brief Peripheral Access Controller 1 (PAC1) */
-#define ID_DSU 33 /**< \brief Device Service Unit (DSU) */
-#define ID_NVMCTRL 34 /**< \brief Non-Volatile Memory Controller (NVMCTRL) */
-#define ID_PORT 35 /**< \brief Port Module (PORT) */
-#define ID_DMAC 36 /**< \brief Direct Memory Access Controller (DMAC) */
-#define ID_USB 37 /**< \brief Universal Serial Bus (USB) */
-#define ID_MTB 38 /**< \brief Cortex-M0+ Micro-Trace Buffer (MTB) */
-#define ID_SBMATRIX 39 /**< \brief HSB Matrix (SBMATRIX) */
-
-// Peripheral instances on HPB2 bridge
-#define ID_PAC2 64 /**< \brief Peripheral Access Controller 2 (PAC2) */
-#define ID_EVSYS 65 /**< \brief Event System Interface (EVSYS) */
-#define ID_SERCOM0 66 /**< \brief Serial Communication Interface 0 (SERCOM0) */
-#define ID_SERCOM1 67 /**< \brief Serial Communication Interface 1 (SERCOM1) */
-#define ID_SERCOM2 68 /**< \brief Serial Communication Interface 2 (SERCOM2) */
-#define ID_SERCOM3 69 /**< \brief Serial Communication Interface 3 (SERCOM3) */
-#define ID_SERCOM4 70 /**< \brief Serial Communication Interface 4 (SERCOM4) */
-#define ID_SERCOM5 71 /**< \brief Serial Communication Interface 5 (SERCOM5) */
-#define ID_TCC0 72 /**< \brief Timer Counter Control 0 (TCC0) */
-#define ID_TCC1 73 /**< \brief Timer Counter Control 1 (TCC1) */
-#define ID_TCC2 74 /**< \brief Timer Counter Control 2 (TCC2) */
-#define ID_TC3 75 /**< \brief Basic Timer Counter 3 (TC3) */
-#define ID_TC4 76 /**< \brief Basic Timer Counter 4 (TC4) */
-#define ID_TC5 77 /**< \brief Basic Timer Counter 5 (TC5) */
-#define ID_TC6 78 /**< \brief Basic Timer Counter 6 (TC6) */
-#define ID_TC7 79 /**< \brief Basic Timer Counter 7 (TC7) */
-#define ID_ADC 80 /**< \brief Analog Digital Converter (ADC) */
-#define ID_AC 81 /**< \brief Analog Comparators (AC) */
-#define ID_DAC 82 /**< \brief Digital Analog Converter (DAC) */
-#define ID_PTC 83 /**< \brief Peripheral Touch Controller (PTC) */
-#define ID_I2S 84 /**< \brief Inter-IC Sound Interface (I2S) */
-
-#define ID_PERIPH_COUNT 85 /**< \brief Max number of peripheral IDs */
-/*@}*/
-
-/* ************************************************************************** */
-/** BASE ADDRESS DEFINITIONS FOR SAMD21J18A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J18A_base Peripheral Base Address Definitions */
-/*@{*/
-
-#if defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)
-#define AC (0x42004400UL) /**< \brief (AC) APB Base Address */
-#define ADC (0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define DAC (0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DMAC (0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DSU (0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define EIC (0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EVSYS (0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define GCLK (0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define SBMATRIX (0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define I2S (0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define MTB (0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define NVMCTRL (0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define PAC0 (0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 (0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 (0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PM (0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PORT (0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS (0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define RTC (0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define SERCOM0 (0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 (0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 (0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 (0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 (0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 (0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SYSCTRL (0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define TC3 (0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 (0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 (0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 (0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 (0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TCC0 (0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 (0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 (0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define USB (0x41005000UL) /**< \brief (USB) APB Base Address */
-#define WDT (0x40001000UL) /**< \brief (WDT) APB Base Address */
-#else
-#define AC ((Ac *)0x42004400UL) /**< \brief (AC) APB Base Address */
-#define AC_INST_NUM 1 /**< \brief (AC) Number of instances */
-#define AC_INSTS { AC } /**< \brief (AC) Instances List */
-
-#define ADC ((Adc *)0x42004000UL) /**< \brief (ADC) APB Base Address */
-#define ADC_INST_NUM 1 /**< \brief (ADC) Number of instances */
-#define ADC_INSTS { ADC } /**< \brief (ADC) Instances List */
-
-#define DAC ((Dac *)0x42004800UL) /**< \brief (DAC) APB Base Address */
-#define DAC_INST_NUM 1 /**< \brief (DAC) Number of instances */
-#define DAC_INSTS { DAC } /**< \brief (DAC) Instances List */
-
-#define DMAC ((Dmac *)0x41004800UL) /**< \brief (DMAC) APB Base Address */
-#define DMAC_INST_NUM 1 /**< \brief (DMAC) Number of instances */
-#define DMAC_INSTS { DMAC } /**< \brief (DMAC) Instances List */
-
-#define DSU ((Dsu *)0x41002000UL) /**< \brief (DSU) APB Base Address */
-#define DSU_INST_NUM 1 /**< \brief (DSU) Number of instances */
-#define DSU_INSTS { DSU } /**< \brief (DSU) Instances List */
-
-#define EIC ((Eic *)0x40001800UL) /**< \brief (EIC) APB Base Address */
-#define EIC_INST_NUM 1 /**< \brief (EIC) Number of instances */
-#define EIC_INSTS { EIC } /**< \brief (EIC) Instances List */
-
-#define EVSYS ((Evsys *)0x42000400UL) /**< \brief (EVSYS) APB Base Address */
-#define EVSYS_INST_NUM 1 /**< \brief (EVSYS) Number of instances */
-#define EVSYS_INSTS { EVSYS } /**< \brief (EVSYS) Instances List */
-
-#define GCLK ((Gclk *)0x40000C00UL) /**< \brief (GCLK) APB Base Address */
-#define GCLK_INST_NUM 1 /**< \brief (GCLK) Number of instances */
-#define GCLK_INSTS { GCLK } /**< \brief (GCLK) Instances List */
-
-#define SBMATRIX ((Hmatrixb *)0x41007000UL) /**< \brief (SBMATRIX) APB Base Address */
-#define HMATRIXB_INST_NUM 1 /**< \brief (HMATRIXB) Number of instances */
-#define HMATRIXB_INSTS { SBMATRIX } /**< \brief (HMATRIXB) Instances List */
-
-#define I2S ((I2s *)0x42005000UL) /**< \brief (I2S) APB Base Address */
-#define I2S_INST_NUM 1 /**< \brief (I2S) Number of instances */
-#define I2S_INSTS { I2S } /**< \brief (I2S) Instances List */
-
-#define MTB ((Mtb *)0x41006000UL) /**< \brief (MTB) APB Base Address */
-#define MTB_INST_NUM 1 /**< \brief (MTB) Number of instances */
-#define MTB_INSTS { MTB } /**< \brief (MTB) Instances List */
-
-#define NVMCTRL ((Nvmctrl *)0x41004000UL) /**< \brief (NVMCTRL) APB Base Address */
-#define NVMCTRL_CAL (0x00800000UL) /**< \brief (NVMCTRL) CAL Base Address */
-#define NVMCTRL_LOCKBIT (0x00802000UL) /**< \brief (NVMCTRL) LOCKBIT Base Address */
-#define NVMCTRL_OTP1 (0x00806000UL) /**< \brief (NVMCTRL) OTP1 Base Address */
-#define NVMCTRL_OTP2 (0x00806008UL) /**< \brief (NVMCTRL) OTP2 Base Address */
-#define NVMCTRL_OTP4 (0x00806020UL) /**< \brief (NVMCTRL) OTP4 Base Address */
-#define NVMCTRL_TEMP_LOG (0x00806030UL) /**< \brief (NVMCTRL) TEMP_LOG Base Address */
-#define NVMCTRL_USER (0x00804000UL) /**< \brief (NVMCTRL) USER Base Address */
-#define NVMCTRL_INST_NUM 1 /**< \brief (NVMCTRL) Number of instances */
-#define NVMCTRL_INSTS { NVMCTRL } /**< \brief (NVMCTRL) Instances List */
-
-#define PAC0 ((Pac *)0x40000000UL) /**< \brief (PAC0) APB Base Address */
-#define PAC1 ((Pac *)0x41000000UL) /**< \brief (PAC1) APB Base Address */
-#define PAC2 ((Pac *)0x42000000UL) /**< \brief (PAC2) APB Base Address */
-#define PAC_INST_NUM 3 /**< \brief (PAC) Number of instances */
-#define PAC_INSTS { PAC0, PAC1, PAC2 } /**< \brief (PAC) Instances List */
-
-#define PM ((Pm *)0x40000400UL) /**< \brief (PM) APB Base Address */
-#define PM_INST_NUM 1 /**< \brief (PM) Number of instances */
-#define PM_INSTS { PM } /**< \brief (PM) Instances List */
-
-#define PORT ((Port *)0x41004400UL) /**< \brief (PORT) APB Base Address */
-#define PORT_IOBUS ((Port *)0x60000000UL) /**< \brief (PORT) IOBUS Base Address */
-#define PORT_INST_NUM 1 /**< \brief (PORT) Number of instances */
-#define PORT_INSTS { PORT } /**< \brief (PORT) Instances List */
-
-#define PTC_GCLK_ID 34
-#define PTC_INST_NUM 1 /**< \brief (PTC) Number of instances */
-#define PTC_INSTS { PTC } /**< \brief (PTC) Instances List */
-
-#define RTC ((Rtc *)0x40001400UL) /**< \brief (RTC) APB Base Address */
-#define RTC_INST_NUM 1 /**< \brief (RTC) Number of instances */
-#define RTC_INSTS { RTC } /**< \brief (RTC) Instances List */
-
-#define SERCOM0 ((Sercom *)0x42000800UL) /**< \brief (SERCOM0) APB Base Address */
-#define SERCOM1 ((Sercom *)0x42000C00UL) /**< \brief (SERCOM1) APB Base Address */
-#define SERCOM2 ((Sercom *)0x42001000UL) /**< \brief (SERCOM2) APB Base Address */
-#define SERCOM3 ((Sercom *)0x42001400UL) /**< \brief (SERCOM3) APB Base Address */
-#define SERCOM4 ((Sercom *)0x42001800UL) /**< \brief (SERCOM4) APB Base Address */
-#define SERCOM5 ((Sercom *)0x42001C00UL) /**< \brief (SERCOM5) APB Base Address */
-#define SERCOM_INST_NUM 6 /**< \brief (SERCOM) Number of instances */
-#define SERCOM_INSTS { SERCOM0, SERCOM1, SERCOM2, SERCOM3, SERCOM4, SERCOM5 } /**< \brief (SERCOM) Instances List */
-
-#define SYSCTRL ((Sysctrl *)0x40000800UL) /**< \brief (SYSCTRL) APB Base Address */
-#define SYSCTRL_INST_NUM 1 /**< \brief (SYSCTRL) Number of instances */
-#define SYSCTRL_INSTS { SYSCTRL } /**< \brief (SYSCTRL) Instances List */
-
-#define TC3 ((Tc *)0x42002C00UL) /**< \brief (TC3) APB Base Address */
-#define TC4 ((Tc *)0x42003000UL) /**< \brief (TC4) APB Base Address */
-#define TC5 ((Tc *)0x42003400UL) /**< \brief (TC5) APB Base Address */
-#define TC6 ((Tc *)0x42003800UL) /**< \brief (TC6) APB Base Address */
-#define TC7 ((Tc *)0x42003C00UL) /**< \brief (TC7) APB Base Address */
-#define TC_INST_NUM 5 /**< \brief (TC) Number of instances */
-#define TC_INSTS { TC3, TC4, TC5, TC6, TC7 } /**< \brief (TC) Instances List */
-
-#define TCC0 ((Tcc *)0x42002000UL) /**< \brief (TCC0) APB Base Address */
-#define TCC1 ((Tcc *)0x42002400UL) /**< \brief (TCC1) APB Base Address */
-#define TCC2 ((Tcc *)0x42002800UL) /**< \brief (TCC2) APB Base Address */
-#define TCC_INST_NUM 3 /**< \brief (TCC) Number of instances */
-#define TCC_INSTS { TCC0, TCC1, TCC2 } /**< \brief (TCC) Instances List */
-
-#define USB ((Usb *)0x41005000UL) /**< \brief (USB) APB Base Address */
-#define USB_INST_NUM 1 /**< \brief (USB) Number of instances */
-#define USB_INSTS { USB } /**< \brief (USB) Instances List */
-
-#define WDT ((Wdt *)0x40001000UL) /**< \brief (WDT) APB Base Address */
-#define WDT_INST_NUM 1 /**< \brief (WDT) Number of instances */
-#define WDT_INSTS { WDT } /**< \brief (WDT) Instances List */
-
-#endif /* (defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
-/*@}*/
-
-/* ************************************************************************** */
-/** PORT DEFINITIONS FOR SAMD21J18A */
-/* ************************************************************************** */
-/** \defgroup SAMD21J18A_port PORT Definitions */
-/*@{*/
-
-#include "pio/samd21j18a.h"
-/*@}*/
-
-/* ************************************************************************** */
-/** MEMORY MAPPING DEFINITIONS FOR SAMD21J18A */
-/* ************************************************************************** */
-
-#define FLASH_SIZE 0x40000UL /* 256 kB */
-#define FLASH_PAGE_SIZE 64
-#define FLASH_NB_OF_PAGES 4096
-#define FLASH_USER_PAGE_SIZE 64
-#define HMCRAMC0_SIZE 0x8000UL /* 32 kB */
-
-#define FLASH_ADDR (0x00000000u) /**< FLASH base address */
-#define FLASH_USER_PAGE_ADDR (0x00800000u) /**< FLASH_USER_PAGE base address */
-#define HMCRAMC0_ADDR (0x20000000u) /**< HMCRAMC0 base address */
-#define HPB0_ADDR (0x40000000u) /**< HPB0 base address */
-#define HPB1_ADDR (0x41000000u) /**< HPB1 base address */
-#define HPB2_ADDR (0x42000000u) /**< HPB2 base address */
-#define PPB_ADDR (0xE0000000u) /**< PPB base address */
-
-#define DSU_DID_RESETVALUE 0x10010000UL
-#define EIC_EXTINT_NUM 16
-#define PORT_GROUPS 2
-
-/* ************************************************************************** */
-/** ELECTRICAL DEFINITIONS FOR SAMD21J18A */
-/* ************************************************************************** */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/*@}*/
-
-#endif /* SAMD21J18A_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/source/gcc/startup_samd21.c b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/source/gcc/startup_samd21.c
deleted file mode 100644
index 5bf0fae..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/source/gcc/startup_samd21.c
+++ /dev/null
@@ -1,278 +0,0 @@
-/**
- * \file
- *
- * \brief gcc startup file for SAMD21
- *
- * Copyright (c) 2016-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-#include "samd21.h"
-
-/* Initialize segments */
-extern uint32_t _sfixed;
-extern uint32_t _efixed;
-extern uint32_t _etext;
-extern uint32_t _srelocate;
-extern uint32_t _erelocate;
-extern uint32_t _szero;
-extern uint32_t _ezero;
-extern uint32_t _sstack;
-extern uint32_t _estack;
-
-/** \cond DOXYGEN_SHOULD_SKIP_THIS */
-int main(void);
-/** \endcond */
-
-void __libc_init_array(void);
-
-/* Default empty handler */
-void Dummy_Handler(void);
-
-/* Cortex-M0+ core handlers */
-void NMI_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-void HardFault_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-void SVC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-void PendSV_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-void SysTick_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-
-/* Peripherals handlers */
-void PM_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-void SYSCTRL_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-void WDT_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-void RTC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-void EIC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-void NVMCTRL_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-void DMAC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-#ifdef ID_USB
-void USB_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-#endif
-void EVSYS_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-void SERCOM0_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-void SERCOM1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-void SERCOM2_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-void SERCOM3_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-#ifdef ID_SERCOM4
-void SERCOM4_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-#endif
-#ifdef ID_SERCOM5
-void SERCOM5_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-#endif
-void TCC0_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-void TCC1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-void TCC2_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-void TC3_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-void TC4_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-void TC5_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-#ifdef ID_TC6
-void TC6_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-#endif
-#ifdef ID_TC7
-void TC7_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-#endif
-#ifdef ID_ADC
-void ADC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-#endif
-#ifdef ID_AC
-void AC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-#endif
-#ifdef ID_DAC
-void DAC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-#endif
-#ifdef ID_PTC
-void PTC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-#endif
-#ifdef ID_I2S
-void I2S_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-#endif
-#ifdef ID_AC1
-void AC1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-#endif
-#ifdef ID_TCC3
-void TCC3_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
-#endif
-
-/* Exception Table */
-__attribute__ ((section(".vectors")))
-const DeviceVectors exception_table = {
-
- /* Configure Initial Stack Pointer, using linker-generated symbols */
- .pvStack = (void*) (&_estack),
-
- .pfnReset_Handler = (void*) Reset_Handler,
- .pfnNMI_Handler = (void*) NMI_Handler,
- .pfnHardFault_Handler = (void*) HardFault_Handler,
- .pvReservedM12 = (void*) (0UL), /* Reserved */
- .pvReservedM11 = (void*) (0UL), /* Reserved */
- .pvReservedM10 = (void*) (0UL), /* Reserved */
- .pvReservedM9 = (void*) (0UL), /* Reserved */
- .pvReservedM8 = (void*) (0UL), /* Reserved */
- .pvReservedM7 = (void*) (0UL), /* Reserved */
- .pvReservedM6 = (void*) (0UL), /* Reserved */
- .pfnSVC_Handler = (void*) SVC_Handler,
- .pvReservedM4 = (void*) (0UL), /* Reserved */
- .pvReservedM3 = (void*) (0UL), /* Reserved */
- .pfnPendSV_Handler = (void*) PendSV_Handler,
- .pfnSysTick_Handler = (void*) SysTick_Handler,
-
- /* Configurable interrupts */
- .pfnPM_Handler = (void*) PM_Handler, /* 0 Power Manager */
- .pfnSYSCTRL_Handler = (void*) SYSCTRL_Handler, /* 1 System Control */
- .pfnWDT_Handler = (void*) WDT_Handler, /* 2 Watchdog Timer */
- .pfnRTC_Handler = (void*) RTC_Handler, /* 3 Real-Time Counter */
- .pfnEIC_Handler = (void*) EIC_Handler, /* 4 External Interrupt Controller */
- .pfnNVMCTRL_Handler = (void*) NVMCTRL_Handler, /* 5 Non-Volatile Memory Controller */
- .pfnDMAC_Handler = (void*) DMAC_Handler, /* 6 Direct Memory Access Controller */
-#ifdef ID_USB
- .pfnUSB_Handler = (void*) USB_Handler, /* 7 Universal Serial Bus */
-#else
- .pvReserved7 = (void*) (0UL), /* 7 Reserved */
-#endif
- .pfnEVSYS_Handler = (void*) EVSYS_Handler, /* 8 Event System Interface */
- .pfnSERCOM0_Handler = (void*) SERCOM0_Handler, /* 9 Serial Communication Interface 0 */
- .pfnSERCOM1_Handler = (void*) SERCOM1_Handler, /* 10 Serial Communication Interface 1 */
- .pfnSERCOM2_Handler = (void*) SERCOM2_Handler, /* 11 Serial Communication Interface 2 */
- .pfnSERCOM3_Handler = (void*) SERCOM3_Handler, /* 12 Serial Communication Interface 3 */
-#ifdef ID_SERCOM4
- .pfnSERCOM4_Handler = (void*) SERCOM4_Handler, /* 13 Serial Communication Interface 4 */
-#else
- .pvReserved13 = (void*) (0UL), /* 13 Reserved */
-#endif
-#ifdef ID_SERCOM5
- .pfnSERCOM5_Handler = (void*) SERCOM5_Handler, /* 14 Serial Communication Interface 5 */
-#else
- .pvReserved14 = (void*) (0UL), /* 14 Reserved */
-#endif
- .pfnTCC0_Handler = (void*) TCC0_Handler, /* 15 Timer Counter Control 0 */
- .pfnTCC1_Handler = (void*) TCC1_Handler, /* 16 Timer Counter Control 1 */
- .pfnTCC2_Handler = (void*) TCC2_Handler, /* 17 Timer Counter Control 2 */
- .pfnTC3_Handler = (void*) TC3_Handler, /* 18 Basic Timer Counter 0 */
- .pfnTC4_Handler = (void*) TC4_Handler, /* 19 Basic Timer Counter 1 */
- .pfnTC5_Handler = (void*) TC5_Handler, /* 20 Basic Timer Counter 2 */
-#ifdef ID_TC6
- .pfnTC6_Handler = (void*) TC6_Handler, /* 21 Basic Timer Counter 3 */
-#else
- .pvReserved21 = (void*) (0UL), /* 21 Reserved */
-#endif
-#ifdef ID_TC7
- .pfnTC7_Handler = (void*) TC7_Handler, /* 22 Basic Timer Counter 4 */
-#else
- .pvReserved22 = (void*) (0UL), /* 22 Reserved */
-#endif
-#ifdef ID_ADC
- .pfnADC_Handler = (void*) ADC_Handler, /* 23 Analog Digital Converter */
-#else
- .pvReserved23 = (void*) (0UL), /* 23 Reserved */
-#endif
-#ifdef ID_AC
- .pfnAC_Handler = (void*) AC_Handler, /* 24 Analog Comparators 0 */
-#else
- .pvReserved24 = (void*) (0UL), /* 24 Reserved */
-#endif
-#ifdef ID_DAC
- .pfnDAC_Handler = (void*) DAC_Handler, /* 25 Digital Analog Converter */
-#else
- .pvReserved25 = (void*) (0UL), /* 25 Reserved */
-#endif
-#ifdef ID_PTC
- .pfnPTC_Handler = (void*) PTC_Handler, /* 26 Peripheral Touch Controller */
-#else
- .pvReserved26 = (void*) (0UL), /* 26 Reserved */
-#endif
-#ifdef ID_I2S
- .pfnI2S_Handler = (void*) I2S_Handler, /* 27 Inter-IC Sound Interface */
-#else
- .pvReserved27 = (void*) (0UL), /* 27 Reserved */
-#endif
-#ifdef ID_AC1
- .pfnAC1_Handler = (void*) AC1_Handler, /* 28 Analog Comparators 1 */
-#else
- .pvReserved28 = (void*) (0UL), /* 28 Reserved */
-#endif
-#ifdef ID_TCC3
- .pfnTCC3_Handler = (void*) TCC3_Handler /* 29 Timer Counter Control 3 */
-#endif
-};
-
-/**
- * \brief This is the code that gets called on processor reset.
- * To initialize the device, and call the main() routine.
- */
-void Reset_Handler(void)
-{
- uint32_t *pSrc, *pDest;
-
- /* Initialize the relocate segment */
- pSrc = &_etext;
- pDest = &_srelocate;
-
- if (pSrc != pDest) {
- for (; pDest < &_erelocate;) {
- *pDest++ = *pSrc++;
- }
- }
-
- /* Clear the zero segment */
- for (pDest = &_szero; pDest < &_ezero;) {
- *pDest++ = 0;
- }
-
- /* Set the vector table base address */
- pSrc = (uint32_t *) & _sfixed;
- SCB->VTOR = ((uint32_t) pSrc & SCB_VTOR_TBLOFF_Msk);
-
- /* Change default QOS values to have the best performance and correct USB behaviour */
- SBMATRIX->SFR[SBMATRIX_SLAVE_HMCRAMC0].reg = 2;
-#if defined(ID_USB)
- USB->DEVICE.QOSCTRL.bit.CQOS = 2;
- USB->DEVICE.QOSCTRL.bit.DQOS = 2;
-#endif
- DMAC->QOSCTRL.bit.DQOS = 2;
- DMAC->QOSCTRL.bit.FQOS = 2;
- DMAC->QOSCTRL.bit.WRBQOS = 2;
-
- /* Overwriting the default value of the NVMCTRL.CTRLB.MANW bit (errata reference 13134) */
- NVMCTRL->CTRLB.bit.MANW = 1;
-
- /* Initialize the C library */
- __libc_init_array();
-
- /* Branch to main function */
- main();
-
- /* Infinite loop */
- while (1);
-}
-
-/**
- * \brief Default interrupt handler for unused IRQs.
- */
-void Dummy_Handler(void)
-{
- while (1) {
- }
-}
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/source/system_samd21.c b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/source/system_samd21.c
deleted file mode 100644
index 5e088bb..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/source/system_samd21.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * \file
- *
- * \brief Low-level initialization functions called upon chip startup.
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#include "samd21.h"
-
-/**
- * Initial system clock frequency. The System RC Oscillator (RCSYS) provides
- * the source for the main clock at chip startup.
- */
-#define __SYSTEM_CLOCK (1000000)
-
-uint32_t SystemCoreClock = __SYSTEM_CLOCK;/*!< System Clock Frequency (Core Clock)*/
-
-/**
- * Initialize the system
- *
- * @brief Setup the microcontroller system.
- * Initialize the System and update the SystemCoreClock variable.
- */
-void SystemInit(void)
-{
- // Keep the default device state after reset
- SystemCoreClock = __SYSTEM_CLOCK;
- return;
-}
-
-/**
- * Update SystemCoreClock variable
- *
- * @brief Updates the SystemCoreClock with current core Clock
- * retrieved from cpu registers.
- */
-void SystemCoreClockUpdate(void)
-{
- // Not implemented
- SystemCoreClock = __SYSTEM_CLOCK;
- return;
-}
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/source/system_samd21.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/source/system_samd21.h
deleted file mode 100644
index 90d9439..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/cmsis/samd21/source/system_samd21.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * \file
- *
- * \brief Low-level initialization functions called upon chip startup
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _SYSTEM_SAMD21_H_INCLUDED_
-#define _SYSTEM_SAMD21_H_INCLUDED_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include
-
-extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */
-
-void SystemInit(void);
-void SystemCoreClockUpdate(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* SYSTEM_SAMD21_H_INCLUDED */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/compiler.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/compiler.h
deleted file mode 100644
index a83b46c..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/compiler.h
+++ /dev/null
@@ -1,1166 +0,0 @@
-/**
- * \file
- *
- * \brief Commonly used includes, types and macros.
- *
- * Copyright (c) 2012-2019 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef UTILS_COMPILER_H_INCLUDED
-#define UTILS_COMPILER_H_INCLUDED
-
-/**
- * \defgroup group_sam0_utils Compiler abstraction layer and code utilities
- *
- * Compiler abstraction layer and code utilities for Cortex-M0+ based Atmel SAM devices.
- * This module provides various abstraction layers and utilities to make code compatible between different compilers.
- *
- * @{
- */
-
-#if (defined __ICCARM__)
-# include
-#endif
-
-#include
-#include
-#include
-#include
-#include
-
-#ifndef __ASSEMBLY__
-
-#include
-#include
-#include
-#include
-
-/**
- * \def UNUSED
- * \brief Marking \a v as a unused parameter or value.
- */
-#define UNUSED(v) (void)(v)
-
-/**
- * \def barrier
- * \brief Memory barrier
- */
-#ifdef __GNUC__
-# define barrier() asm volatile("" ::: "memory")
-#else
-# define barrier() asm ("")
-#endif
-
-/**
- * \brief Emit the compiler pragma \a arg.
- *
- * \param[in] arg The pragma directive as it would appear after \e \#pragma
- * (i.e. not stringified).
- */
-#define COMPILER_PRAGMA(arg) _Pragma(#arg)
-
-/**
- * \def COMPILER_PACK_SET(alignment)
- * \brief Set maximum alignment for subsequent struct and union definitions to \a alignment.
- */
-#define COMPILER_PACK_SET(alignment) COMPILER_PRAGMA(pack(alignment))
-
-/**
- * \def COMPILER_PACK_RESET()
- * \brief Set default alignment for subsequent struct and union definitions.
- */
-#define COMPILER_PACK_RESET() COMPILER_PRAGMA(pack())
-
-
-/**
- * \brief Set aligned boundary.
- */
-#if (defined __GNUC__) || (defined __CC_ARM)
-# define COMPILER_ALIGNED(a) __attribute__((__aligned__(a)))
-#elif (defined __ICCARM__)
-# define COMPILER_ALIGNED(a) COMPILER_PRAGMA(data_alignment = a)
-#endif
-
-/**
- * \brief Set word-aligned boundary.
- */
-#if (defined __GNUC__) || defined(__CC_ARM)
-#define COMPILER_WORD_ALIGNED __attribute__((__aligned__(4)))
-#elif (defined __ICCARM__)
-#define COMPILER_WORD_ALIGNED COMPILER_PRAGMA(data_alignment = 4)
-#endif
-
-/**
- * \def __always_inline
- * \brief The function should always be inlined.
- *
- * This annotation instructs the compiler to ignore its inlining
- * heuristics and inline the function no matter how big it thinks it
- * becomes.
- */
-#if defined(__CC_ARM)
-# define __always_inline __forceinline
-#elif (defined __GNUC__)
-# define __always_inline __attribute__((__always_inline__))
-#elif (defined __ICCARM__)
-# define __always_inline _Pragma("inline=forced")
-#endif
-
-/**
- * \def __no_inline
- * \brief The function should never be inlined
- *
- * This annotation instructs the compiler to ignore its inlining
- * heuristics and not inline the function no matter how small it thinks it
- * becomes.
- */
-#if defined(__CC_ARM)
-# define __no_inline __attribute__((noinline))
-#elif (defined __GNUC__)
-# define __no_inline __attribute__((noinline))
-#elif (defined __ICCARM__)
-# define __no_inline _Pragma("inline=never")
-#endif
-
-
-/** \brief This macro is used to test fatal errors.
- *
- * The macro tests if the expression is false. If it is, a fatal error is
- * detected and the application hangs up. If \c TEST_SUITE_DEFINE_ASSERT_MACRO
- * is defined, a unit test version of the macro is used, to allow execution
- * of further tests after a false expression.
- *
- * \param[in] expr Expression to evaluate and supposed to be nonzero.
- */
-#if defined(_ASSERT_ENABLE_)
-# if defined(TEST_SUITE_DEFINE_ASSERT_MACRO)
-# include "unit_test/suite.h"
-# else
-# undef TEST_SUITE_DEFINE_ASSERT_MACRO
-# define Assert(expr) \
- {\
- if (!(expr)) asm("BKPT #0");\
- }
-# endif
-#else
-# define Assert(expr) ((void) 0)
-#endif
-
-/* Define WEAK attribute */
-#if defined ( __CC_ARM )
-# define WEAK __attribute__ ((weak))
-#elif defined ( __ICCARM__ )
-# define WEAK __weak
-#elif defined ( __GNUC__ )
-# define WEAK __attribute__ ((weak))
-#endif
-
-/* Define NO_INIT attribute */
-#if defined ( __CC_ARM )
-# define NO_INIT __attribute__((zero_init))
-#elif defined ( __ICCARM__ )
-# define NO_INIT __no_init
-#elif defined ( __GNUC__ )
-# define NO_INIT __attribute__((section(".no_init")))
-#endif
-
-#include "interrupt.h"
-
-/** \name Usual Types
- * @{ */
-#ifndef __cplusplus
-# if !defined(__bool_true_false_are_defined)
-typedef unsigned char bool;
-# endif
-#endif
-typedef uint16_t le16_t;
-typedef uint16_t be16_t;
-typedef uint32_t le32_t;
-typedef uint32_t be32_t;
-typedef uint32_t iram_size_t;
-/** @} */
-
-/** \name Aliasing Aggregate Types
- * @{ */
-
-/** 16-bit union. */
-typedef union
-{
- int16_t s16;
- uint16_t u16;
- int8_t s8[2];
- uint8_t u8[2];
-} Union16;
-
-/** 32-bit union. */
-typedef union
-{
- int32_t s32;
- uint32_t u32;
- int16_t s16[2];
- uint16_t u16[2];
- int8_t s8[4];
- uint8_t u8[4];
-} Union32;
-
-/** 64-bit union. */
-typedef union
-{
- int64_t s64;
- uint64_t u64;
- int32_t s32[2];
- uint32_t u32[2];
- int16_t s16[4];
- uint16_t u16[4];
- int8_t s8[8];
- uint8_t u8[8];
-} Union64;
-
-/** Union of pointers to 64-, 32-, 16- and 8-bit unsigned integers. */
-typedef union
-{
- int64_t *s64ptr;
- uint64_t *u64ptr;
- int32_t *s32ptr;
- uint32_t *u32ptr;
- int16_t *s16ptr;
- uint16_t *u16ptr;
- int8_t *s8ptr;
- uint8_t *u8ptr;
-} UnionPtr;
-
-/** Union of pointers to volatile 64-, 32-, 16- and 8-bit unsigned integers. */
-typedef union
-{
- volatile int64_t *s64ptr;
- volatile uint64_t *u64ptr;
- volatile int32_t *s32ptr;
- volatile uint32_t *u32ptr;
- volatile int16_t *s16ptr;
- volatile uint16_t *u16ptr;
- volatile int8_t *s8ptr;
- volatile uint8_t *u8ptr;
-} UnionVPtr;
-
-/** Union of pointers to constant 64-, 32-, 16- and 8-bit unsigned integers. */
-typedef union
-{
- const int64_t *s64ptr;
- const uint64_t *u64ptr;
- const int32_t *s32ptr;
- const uint32_t *u32ptr;
- const int16_t *s16ptr;
- const uint16_t *u16ptr;
- const int8_t *s8ptr;
- const uint8_t *u8ptr;
-} UnionCPtr;
-
-/** Union of pointers to constant volatile 64-, 32-, 16- and 8-bit unsigned integers. */
-typedef union
-{
- const volatile int64_t *s64ptr;
- const volatile uint64_t *u64ptr;
- const volatile int32_t *s32ptr;
- const volatile uint32_t *u32ptr;
- const volatile int16_t *s16ptr;
- const volatile uint16_t *u16ptr;
- const volatile int8_t *s8ptr;
- const volatile uint8_t *u8ptr;
-} UnionCVPtr;
-
-/** Structure of pointers to 64-, 32-, 16- and 8-bit unsigned integers. */
-typedef struct
-{
- int64_t *s64ptr;
- uint64_t *u64ptr;
- int32_t *s32ptr;
- uint32_t *u32ptr;
- int16_t *s16ptr;
- uint16_t *u16ptr;
- int8_t *s8ptr;
- uint8_t *u8ptr;
-} StructPtr;
-
-/** Structure of pointers to volatile 64-, 32-, 16- and 8-bit unsigned integers. */
-typedef struct
-{
- volatile int64_t *s64ptr;
- volatile uint64_t *u64ptr;
- volatile int32_t *s32ptr;
- volatile uint32_t *u32ptr;
- volatile int16_t *s16ptr;
- volatile uint16_t *u16ptr;
- volatile int8_t *s8ptr;
- volatile uint8_t *u8ptr;
-} StructVPtr;
-
-/** Structure of pointers to constant 64-, 32-, 16- and 8-bit unsigned integers. */
-typedef struct
-{
- const int64_t *s64ptr;
- const uint64_t *u64ptr;
- const int32_t *s32ptr;
- const uint32_t *u32ptr;
- const int16_t *s16ptr;
- const uint16_t *u16ptr;
- const int8_t *s8ptr;
- const uint8_t *u8ptr;
-} StructCPtr;
-
-/** Structure of pointers to constant volatile 64-, 32-, 16- and 8-bit unsigned integers. */
-typedef struct
-{
- const volatile int64_t *s64ptr;
- const volatile uint64_t *u64ptr;
- const volatile int32_t *s32ptr;
- const volatile uint32_t *u32ptr;
- const volatile int16_t *s16ptr;
- const volatile uint16_t *u16ptr;
- const volatile int8_t *s8ptr;
- const volatile uint8_t *u8ptr;
-} StructCVPtr;
-
-/** @} */
-
-#endif /* #ifndef __ASSEMBLY__ */
-
-/** \name Usual Constants
- * @{ */
-#define DISABLE 0
-#define ENABLE 1
-
-#ifndef __cplusplus
-# if !defined(__bool_true_false_are_defined)
-# define false 0
-# define true 1
-# endif
-#endif
-/** @} */
-
-#ifndef __ASSEMBLY__
-
-/** \name Optimization Control
- * @{ */
-
-/**
- * \def likely(exp)
- * \brief The expression \a exp is likely to be true
- */
-#if !defined(likely) || defined(__DOXYGEN__)
-# define likely(exp) (exp)
-#endif
-
-/**
- * \def unlikely(exp)
- * \brief The expression \a exp is unlikely to be true
- */
-#if !defined(unlikely) || defined(__DOXYGEN__)
-# define unlikely(exp) (exp)
-#endif
-
-/**
- * \def is_constant(exp)
- * \brief Determine if an expression evaluates to a constant value.
- *
- * \param[in] exp Any expression
- *
- * \return true if \a exp is constant, false otherwise.
- */
-#if (defined __GNUC__) || (defined __CC_ARM)
-# define is_constant(exp) __builtin_constant_p(exp)
-#else
-# define is_constant(exp) (0)
-#endif
-
-/** @} */
-
-/** \name Bit-Field Handling
- * @{ */
-
-/** \brief Reads the bits of a value specified by a given bit-mask.
- *
- * \param[in] value Value to read bits from.
- * \param[in] mask Bit-mask indicating bits to read.
- *
- * \return Read bits.
- */
-#define Rd_bits( value, mask) ((value) & (mask))
-
-/** \brief Writes the bits of a C lvalue specified by a given bit-mask.
- *
- * \param[in] lvalue C lvalue to write bits to.
- * \param[in] mask Bit-mask indicating bits to write.
- * \param[in] bits Bits to write.
- *
- * \return Resulting value with written bits.
- */
-#define Wr_bits(lvalue, mask, bits) ((lvalue) = ((lvalue) & ~(mask)) |\
- ((bits ) & (mask)))
-
-/** \brief Tests the bits of a value specified by a given bit-mask.
- *
- * \param[in] value Value of which to test bits.
- * \param[in] mask Bit-mask indicating bits to test.
- *
- * \return \c 1 if at least one of the tested bits is set, else \c 0.
- */
-#define Tst_bits( value, mask) (Rd_bits(value, mask) != 0)
-
-/** \brief Clears the bits of a C lvalue specified by a given bit-mask.
- *
- * \param[in] lvalue C lvalue of which to clear bits.
- * \param[in] mask Bit-mask indicating bits to clear.
- *
- * \return Resulting value with cleared bits.
- */
-#define Clr_bits(lvalue, mask) ((lvalue) &= ~(mask))
-
-/** \brief Sets the bits of a C lvalue specified by a given bit-mask.
- *
- * \param[in] lvalue C lvalue of which to set bits.
- * \param[in] mask Bit-mask indicating bits to set.
- *
- * \return Resulting value with set bits.
- */
-#define Set_bits(lvalue, mask) ((lvalue) |= (mask))
-
-/** \brief Toggles the bits of a C lvalue specified by a given bit-mask.
- *
- * \param[in] lvalue C lvalue of which to toggle bits.
- * \param[in] mask Bit-mask indicating bits to toggle.
- *
- * \return Resulting value with toggled bits.
- */
-#define Tgl_bits(lvalue, mask) ((lvalue) ^= (mask))
-
-/** \brief Reads the bit-field of a value specified by a given bit-mask.
- *
- * \param[in] value Value to read a bit-field from.
- * \param[in] mask Bit-mask indicating the bit-field to read.
- *
- * \return Read bit-field.
- */
-#define Rd_bitfield( value, mask) (Rd_bits( value, mask) >> ctz(mask))
-
-/** \brief Writes the bit-field of a C lvalue specified by a given bit-mask.
- *
- * \param[in] lvalue C lvalue to write a bit-field to.
- * \param[in] mask Bit-mask indicating the bit-field to write.
- * \param[in] bitfield Bit-field to write.
- *
- * \return Resulting value with written bit-field.
- */
-#define Wr_bitfield(lvalue, mask, bitfield) (Wr_bits(lvalue, mask, (uint32_t)(bitfield) << ctz(mask)))
-
-/** @} */
-
-
-/** \name Zero-Bit Counting
- *
- * Under GCC, __builtin_clz and __builtin_ctz behave like macros when
- * applied to constant expressions (values known at compile time), so they are
- * more optimized than the use of the corresponding assembly instructions and
- * they can be used as constant expressions e.g. to initialize objects having
- * static storage duration, and like the corresponding assembly instructions
- * when applied to non-constant expressions (values unknown at compile time), so
- * they are more optimized than an assembly periphrasis. Hence, clz and ctz
- * ensure a possible and optimized behavior for both constant and non-constant
- * expressions.
- *
- * @{ */
-
-/** \brief Counts the leading zero bits of the given value considered as a 32-bit integer.
- *
- * \param[in] u Value of which to count the leading zero bits.
- *
- * \return The count of leading zero bits in \a u.
- */
-#if (defined __GNUC__) || (defined __CC_ARM)
-# define clz(u) ((u) ? __builtin_clz(u) : 32)
-#else
-# define clz(u) (((u) == 0) ? 32 : \
- ((u) & (1ul << 31)) ? 0 : \
- ((u) & (1ul << 30)) ? 1 : \
- ((u) & (1ul << 29)) ? 2 : \
- ((u) & (1ul << 28)) ? 3 : \
- ((u) & (1ul << 27)) ? 4 : \
- ((u) & (1ul << 26)) ? 5 : \
- ((u) & (1ul << 25)) ? 6 : \
- ((u) & (1ul << 24)) ? 7 : \
- ((u) & (1ul << 23)) ? 8 : \
- ((u) & (1ul << 22)) ? 9 : \
- ((u) & (1ul << 21)) ? 10 : \
- ((u) & (1ul << 20)) ? 11 : \
- ((u) & (1ul << 19)) ? 12 : \
- ((u) & (1ul << 18)) ? 13 : \
- ((u) & (1ul << 17)) ? 14 : \
- ((u) & (1ul << 16)) ? 15 : \
- ((u) & (1ul << 15)) ? 16 : \
- ((u) & (1ul << 14)) ? 17 : \
- ((u) & (1ul << 13)) ? 18 : \
- ((u) & (1ul << 12)) ? 19 : \
- ((u) & (1ul << 11)) ? 20 : \
- ((u) & (1ul << 10)) ? 21 : \
- ((u) & (1ul << 9)) ? 22 : \
- ((u) & (1ul << 8)) ? 23 : \
- ((u) & (1ul << 7)) ? 24 : \
- ((u) & (1ul << 6)) ? 25 : \
- ((u) & (1ul << 5)) ? 26 : \
- ((u) & (1ul << 4)) ? 27 : \
- ((u) & (1ul << 3)) ? 28 : \
- ((u) & (1ul << 2)) ? 29 : \
- ((u) & (1ul << 1)) ? 30 : \
- 31)
-#endif
-
-/** \brief Counts the trailing zero bits of the given value considered as a 32-bit integer.
- *
- * \param[in] u Value of which to count the trailing zero bits.
- *
- * \return The count of trailing zero bits in \a u.
- */
-#if (defined __GNUC__) || (defined __CC_ARM)
-# define ctz(u) ((u) ? __builtin_ctz(u) : 32)
-#else
-# define ctz(u) ((u) & (1ul << 0) ? 0 : \
- (u) & (1ul << 1) ? 1 : \
- (u) & (1ul << 2) ? 2 : \
- (u) & (1ul << 3) ? 3 : \
- (u) & (1ul << 4) ? 4 : \
- (u) & (1ul << 5) ? 5 : \
- (u) & (1ul << 6) ? 6 : \
- (u) & (1ul << 7) ? 7 : \
- (u) & (1ul << 8) ? 8 : \
- (u) & (1ul << 9) ? 9 : \
- (u) & (1ul << 10) ? 10 : \
- (u) & (1ul << 11) ? 11 : \
- (u) & (1ul << 12) ? 12 : \
- (u) & (1ul << 13) ? 13 : \
- (u) & (1ul << 14) ? 14 : \
- (u) & (1ul << 15) ? 15 : \
- (u) & (1ul << 16) ? 16 : \
- (u) & (1ul << 17) ? 17 : \
- (u) & (1ul << 18) ? 18 : \
- (u) & (1ul << 19) ? 19 : \
- (u) & (1ul << 20) ? 20 : \
- (u) & (1ul << 21) ? 21 : \
- (u) & (1ul << 22) ? 22 : \
- (u) & (1ul << 23) ? 23 : \
- (u) & (1ul << 24) ? 24 : \
- (u) & (1ul << 25) ? 25 : \
- (u) & (1ul << 26) ? 26 : \
- (u) & (1ul << 27) ? 27 : \
- (u) & (1ul << 28) ? 28 : \
- (u) & (1ul << 29) ? 29 : \
- (u) & (1ul << 30) ? 30 : \
- (u) & (1ul << 31) ? 31 : \
- 32)
-#endif
-
-/** @} */
-
-
-/** \name Bit Reversing
- * @{ */
-
-/** \brief Reverses the bits of \a u8.
- *
- * \param[in] u8 U8 of which to reverse the bits.
- *
- * \return Value resulting from \a u8 with reversed bits.
- */
-#define bit_reverse8(u8) ((U8)(bit_reverse32((U8)(u8)) >> 24))
-
-/** \brief Reverses the bits of \a u16.
- *
- * \param[in] u16 U16 of which to reverse the bits.
- *
- * \return Value resulting from \a u16 with reversed bits.
- */
-#define bit_reverse16(u16) ((uint16_t)(bit_reverse32((uint16_t)(u16)) >> 16))
-
-/** \brief Reverses the bits of \a u32.
- *
- * \param[in] u32 U32 of which to reverse the bits.
- *
- * \return Value resulting from \a u32 with reversed bits.
- */
-#define bit_reverse32(u32) __RBIT(u32)
-
-/** \brief Reverses the bits of \a u64.
- *
- * \param[in] u64 U64 of which to reverse the bits.
- *
- * \return Value resulting from \a u64 with reversed bits.
- */
-#define bit_reverse64(u64) ((uint64_t)(((uint64_t)bit_reverse32((uint64_t)(u64) >> 32)) |\
- ((uint64_t)bit_reverse32((uint64_t)(u64)) << 32)))
-
-/** @} */
-
-
-/** \name Alignment
- * @{ */
-
-/** \brief Tests alignment of the number \a val with the \a n boundary.
- *
- * \param[in] val Input value.
- * \param[in] n Boundary.
- *
- * \return \c 1 if the number \a val is aligned with the \a n boundary, else \c 0.
- */
-#define Test_align(val, n) (!Tst_bits( val, (n) - 1 ) )
-
-/** \brief Gets alignment of the number \a val with respect to the \a n boundary.
- *
- * \param[in] val Input value.
- * \param[in] n Boundary.
- *
- * \return Alignment of the number \a val with respect to the \a n boundary.
- */
-#define Get_align(val, n) ( Rd_bits( val, (n) - 1 ) )
-
-/** \brief Sets alignment of the lvalue number \a lval to \a alg with respect to the \a n boundary.
- *
- * \param[in] lval Input/output lvalue.
- * \param[in] n Boundary.
- * \param[in] alg Alignment.
- *
- * \return New value of \a lval resulting from its alignment set to \a alg with respect to the \a n boundary.
- */
-#define Set_align(lval, n, alg) ( Wr_bits(lval, (n) - 1, alg) )
-
-/** \brief Aligns the number \a val with the upper \a n boundary.
- *
- * \param[in] val Input value.
- * \param[in] n Boundary.
- *
- * \return Value resulting from the number \a val aligned with the upper \a n boundary.
- */
-#define Align_up( val, n) (((val) + ((n) - 1)) & ~((n) - 1))
-
-/** \brief Aligns the number \a val with the lower \a n boundary.
- *
- * \param[in] val Input value.
- * \param[in] n Boundary.
- *
- * \return Value resulting from the number \a val aligned with the lower \a n boundary.
- */
-#define Align_down(val, n) ( (val) & ~((n) - 1))
-
-/** @} */
-
-
-/** \name Mathematics
- *
- * The same considerations as for clz and ctz apply here but GCC does not
- * provide built-in functions to access the assembly instructions abs, min and
- * max and it does not produce them by itself in most cases, so two sets of
- * macros are defined here:
- * - Abs, Min and Max to apply to constant expressions (values known at
- * compile time);
- * - abs, min and max to apply to non-constant expressions (values unknown at
- * compile time), abs is found in stdlib.h.
- *
- * @{ */
-
-/** \brief Takes the absolute value of \a a.
- *
- * \param[in] a Input value.
- *
- * \return Absolute value of \a a.
- *
- * \note More optimized if only used with values known at compile time.
- */
-#define Abs(a) (((a) < 0 ) ? -(a) : (a))
-
-#ifndef __cplusplus
-/** \brief Takes the minimal value of \a a and \a b.
- *
- * \param[in] a Input value.
- * \param[in] b Input value.
- *
- * \return Minimal value of \a a and \a b.
- *
- * \note More optimized if only used with values known at compile time.
- */
-#define Min(a, b) (((a) < (b)) ? (a) : (b))
-
-/** \brief Takes the maximal value of \a a and \a b.
- *
- * \param[in] a Input value.
- * \param[in] b Input value.
- *
- * \return Maximal value of \a a and \a b.
- *
- * \note More optimized if only used with values known at compile time.
- */
-#define Max(a, b) (((a) > (b)) ? (a) : (b))
-
-/** \brief Takes the minimal value of \a a and \a b.
- *
- * \param[in] a Input value.
- * \param[in] b Input value.
- *
- * \return Minimal value of \a a and \a b.
- *
- * \note More optimized if only used with values unknown at compile time.
- */
-#define min(a, b) Min(a, b)
-
-/** \brief Takes the maximal value of \a a and \a b.
- *
- * \param[in] a Input value.
- * \param[in] b Input value.
- *
- * \return Maximal value of \a a and \a b.
- *
- * \note More optimized if only used with values unknown at compile time.
- */
-#define max(a, b) Max(a, b)
-#endif
-
-/** @} */
-
-
-/** \brief Calls the routine at address \a addr.
- *
- * It generates a long call opcode.
- *
- * For example, `Long_call(0x80000000)' generates a software reset on a UC3 if
- * it is invoked from the CPU supervisor mode.
- *
- * \param[in] addr Address of the routine to call.
- *
- * \note It may be used as a long jump opcode in some special cases.
- */
-#define Long_call(addr) ((*(void (*)(void))(addr))())
-
-
-/** \name MCU Endianism Handling
- * ARM is MCU little endian.
- *
- * @{ */
-#define BE16(x) swap16(x)
-#define LE16(x) (x)
-
-#define le16_to_cpu(x) (x)
-#define cpu_to_le16(x) (x)
-#define LE16_TO_CPU(x) (x)
-#define CPU_TO_LE16(x) (x)
-
-#define be16_to_cpu(x) swap16(x)
-#define cpu_to_be16(x) swap16(x)
-#define BE16_TO_CPU(x) swap16(x)
-#define CPU_TO_BE16(x) swap16(x)
-
-#define le32_to_cpu(x) (x)
-#define cpu_to_le32(x) (x)
-#define LE32_TO_CPU(x) (x)
-#define CPU_TO_LE32(x) (x)
-
-#define be32_to_cpu(x) swap32(x)
-#define cpu_to_be32(x) swap32(x)
-#define BE32_TO_CPU(x) swap32(x)
-#define CPU_TO_BE32(x) swap32(x)
-/** @} */
-
-
-/** \name Endianism Conversion
- *
- * The same considerations as for clz and ctz apply here but GCC's
- * __builtin_bswap_32 and __builtin_bswap_64 do not behave like macros when
- * applied to constant expressions, so two sets of macros are defined here:
- * - Swap16, Swap32 and Swap64 to apply to constant expressions (values known
- * at compile time);
- * - swap16, swap32 and swap64 to apply to non-constant expressions (values
- * unknown at compile time).
- *
- * @{ */
-
-/** \brief Toggles the endianism of \a u16 (by swapping its bytes).
- *
- * \param[in] u16 U16 of which to toggle the endianism.
- *
- * \return Value resulting from \a u16 with toggled endianism.
- *
- * \note More optimized if only used with values known at compile time.
- */
-#define Swap16(u16) ((uint16_t)(((uint16_t)(u16) >> 8) |\
- ((uint16_t)(u16) << 8)))
-
-/** \brief Toggles the endianism of \a u32 (by swapping its bytes).
- *
- * \param[in] u32 U32 of which to toggle the endianism.
- *
- * \return Value resulting from \a u32 with toggled endianism.
- *
- * \note More optimized if only used with values known at compile time.
- */
-#define Swap32(u32) ((uint32_t)(((uint32_t)Swap16((uint32_t)(u32) >> 16)) |\
- ((uint32_t)Swap16((uint32_t)(u32)) << 16)))
-
-/** \brief Toggles the endianism of \a u64 (by swapping its bytes).
- *
- * \param[in] u64 U64 of which to toggle the endianism.
- *
- * \return Value resulting from \a u64 with toggled endianism.
- *
- * \note More optimized if only used with values known at compile time.
- */
-#define Swap64(u64) ((uint64_t)(((uint64_t)Swap32((uint64_t)(u64) >> 32)) |\
- ((uint64_t)Swap32((uint64_t)(u64)) << 32)))
-
-/** \brief Toggles the endianism of \a u16 (by swapping its bytes).
- *
- * \param[in] u16 U16 of which to toggle the endianism.
- *
- * \return Value resulting from \a u16 with toggled endianism.
- *
- * \note More optimized if only used with values unknown at compile time.
- */
-#define swap16(u16) Swap16(u16)
-
-/** \brief Toggles the endianism of \a u32 (by swapping its bytes).
- *
- * \param[in] u32 U32 of which to toggle the endianism.
- *
- * \return Value resulting from \a u32 with toggled endianism.
- *
- * \note More optimized if only used with values unknown at compile time.
- */
-#if (defined __GNUC__)
-# define swap32(u32) ((uint32_t)__builtin_bswap32((uint32_t)(u32)))
-#else
-# define swap32(u32) Swap32(u32)
-#endif
-
-/** \brief Toggles the endianism of \a u64 (by swapping its bytes).
- *
- * \param[in] u64 U64 of which to toggle the endianism.
- *
- * \return Value resulting from \a u64 with toggled endianism.
- *
- * \note More optimized if only used with values unknown at compile time.
- */
-#if (defined __GNUC__)
-# define swap64(u64) ((uint64_t)__builtin_bswap64((uint64_t)(u64)))
-#else
-# define swap64(u64) ((uint64_t)(((uint64_t)swap32((uint64_t)(u64) >> 32)) |\
- ((uint64_t)swap32((uint64_t)(u64)) << 32)))
-#endif
-
-/** @} */
-
-
-/** \name Target Abstraction
- *
- * @{ */
-
-#define _GLOBEXT_ extern /**< extern storage-class specifier. */
-#define _CONST_TYPE_ const /**< const type qualifier. */
-#define _MEM_TYPE_SLOW_ /**< Slow memory type. */
-#define _MEM_TYPE_MEDFAST_ /**< Fairly fast memory type. */
-#define _MEM_TYPE_FAST_ /**< Fast memory type. */
-
-#define memcmp_ram2ram memcmp /**< Target-specific memcmp of RAM to RAM. */
-#define memcmp_code2ram memcmp /**< Target-specific memcmp of RAM to NVRAM. */
-#define memcpy_ram2ram memcpy /**< Target-specific memcpy from RAM to RAM. */
-#define memcpy_code2ram memcpy /**< Target-specific memcpy from NVRAM to RAM. */
-
-/** @} */
-
-/**
- * \brief Calculate \f$ \left\lceil \frac{a}{b} \right\rceil \f$ using
- * integer arithmetic.
- *
- * \param[in] a An integer
- * \param[in] b Another integer
- *
- * \return (\a a / \a b) rounded up to the nearest integer.
- */
-#define div_ceil(a, b) (((a) + (b) - 1) / (b))
-
-#endif /* #ifndef __ASSEMBLY__ */
-#ifdef __ICCARM__
-/** \name Compiler Keywords
- *
- * Port of some keywords from GCC to IAR Embedded Workbench.
- *
- * @{ */
-
-#define __asm__ asm
-#define __inline__ inline
-#define __volatile__
-
-/** @} */
-
-#endif
-
-#define FUNC_PTR void *
-/**
- * \def unused
- * \brief Marking \a v as a unused parameter or value.
- */
-#define unused(v) do { (void)(v); } while(0)
-
-/* Define RAMFUNC attribute */
-#if defined ( __CC_ARM ) /* Keil uVision 4 */
-# define RAMFUNC __attribute__ ((section(".ramfunc")))
-#elif defined ( __ICCARM__ ) /* IAR Ewarm 5.41+ */
-# define RAMFUNC __ramfunc
-#elif defined ( __GNUC__ ) /* GCC CS3 2009q3-68 */
-# define RAMFUNC __attribute__ ((section(".ramfunc")))
-#endif
-
-/* Define OPTIMIZE_HIGH attribute */
-#if defined ( __CC_ARM ) /* Keil uVision 4 */
-# define OPTIMIZE_HIGH _Pragma("O3")
-#elif defined ( __ICCARM__ ) /* IAR Ewarm 5.41+ */
-# define OPTIMIZE_HIGH _Pragma("optimize=high")
-#elif defined ( __GNUC__ ) /* GCC CS3 2009q3-68 */
-# define OPTIMIZE_HIGH __attribute__((optimize("s")))
-#endif
-#define PASS 0
-#define FAIL 1
-#define LOW 0
-#define HIGH 1
-
-typedef int8_t S8 ; //!< 8-bit signed integer.
-typedef uint8_t U8 ; //!< 8-bit unsigned integer.
-typedef int16_t S16; //!< 16-bit signed integer.
-typedef uint16_t U16; //!< 16-bit unsigned integer.
-typedef int32_t S32; //!< 32-bit signed integer.
-typedef uint32_t U32; //!< 32-bit unsigned integer.
-typedef int64_t S64; //!< 64-bit signed integer.
-typedef uint64_t U64; //!< 64-bit unsigned integer.
-typedef float F32; //!< 32-bit floating-point number.
-typedef double F64; //!< 64-bit floating-point number.
-
-#define MSB(u16) (((U8 *)&(u16))[1]) //!< Most significant byte of \a u16.
-#define LSB(u16) (((U8 *)&(u16))[0]) //!< Least significant byte of \a u16.
-
-#define MSH(u32) (((U16 *)&(u32))[1]) //!< Most significant half-word of \a u32.
-#define LSH(u32) (((U16 *)&(u32))[0]) //!< Least significant half-word of \a u32.
-#define MSB0W(u32) (((U8 *)&(u32))[3]) //!< Most significant byte of 1st rank of \a u32.
-#define MSB1W(u32) (((U8 *)&(u32))[2]) //!< Most significant byte of 2nd rank of \a u32.
-#define MSB2W(u32) (((U8 *)&(u32))[1]) //!< Most significant byte of 3rd rank of \a u32.
-#define MSB3W(u32) (((U8 *)&(u32))[0]) //!< Most significant byte of 4th rank of \a u32.
-#define LSB3W(u32) MSB0W(u32) //!< Least significant byte of 4th rank of \a u32.
-#define LSB2W(u32) MSB1W(u32) //!< Least significant byte of 3rd rank of \a u32.
-#define LSB1W(u32) MSB2W(u32) //!< Least significant byte of 2nd rank of \a u32.
-#define LSB0W(u32) MSB3W(u32) //!< Least significant byte of 1st rank of \a u32.
-
-#define MSW(u64) (((U32 *)&(u64))[1]) //!< Most significant word of \a u64.
-#define LSW(u64) (((U32 *)&(u64))[0]) //!< Least significant word of \a u64.
-#define MSH0(u64) (((U16 *)&(u64))[3]) //!< Most significant half-word of 1st rank of \a u64.
-#define MSH1(u64) (((U16 *)&(u64))[2]) //!< Most significant half-word of 2nd rank of \a u64.
-#define MSH2(u64) (((U16 *)&(u64))[1]) //!< Most significant half-word of 3rd rank of \a u64.
-#define MSH3(u64) (((U16 *)&(u64))[0]) //!< Most significant half-word of 4th rank of \a u64.
-#define LSH3(u64) MSH0(u64) //!< Least significant half-word of 4th rank of \a u64.
-#define LSH2(u64) MSH1(u64) //!< Least significant half-word of 3rd rank of \a u64.
-#define LSH1(u64) MSH2(u64) //!< Least significant half-word of 2nd rank of \a u64.
-#define LSH0(u64) MSH3(u64) //!< Least significant half-word of 1st rank of \a u64.
-#define MSB0D(u64) (((U8 *)&(u64))[7]) //!< Most significant byte of 1st rank of \a u64.
-#define MSB1D(u64) (((U8 *)&(u64))[6]) //!< Most significant byte of 2nd rank of \a u64.
-#define MSB2D(u64) (((U8 *)&(u64))[5]) //!< Most significant byte of 3rd rank of \a u64.
-#define MSB3D(u64) (((U8 *)&(u64))[4]) //!< Most significant byte of 4th rank of \a u64.
-#define MSB4D(u64) (((U8 *)&(u64))[3]) //!< Most significant byte of 5th rank of \a u64.
-#define MSB5D(u64) (((U8 *)&(u64))[2]) //!< Most significant byte of 6th rank of \a u64.
-#define MSB6D(u64) (((U8 *)&(u64))[1]) //!< Most significant byte of 7th rank of \a u64.
-#define MSB7D(u64) (((U8 *)&(u64))[0]) //!< Most significant byte of 8th rank of \a u64.
-#define LSB7D(u64) MSB0D(u64) //!< Least significant byte of 8th rank of \a u64.
-#define LSB6D(u64) MSB1D(u64) //!< Least significant byte of 7th rank of \a u64.
-#define LSB5D(u64) MSB2D(u64) //!< Least significant byte of 6th rank of \a u64.
-#define LSB4D(u64) MSB3D(u64) //!< Least significant byte of 5th rank of \a u64.
-#define LSB3D(u64) MSB4D(u64) //!< Least significant byte of 4th rank of \a u64.
-#define LSB2D(u64) MSB5D(u64) //!< Least significant byte of 3rd rank of \a u64.
-#define LSB1D(u64) MSB6D(u64) //!< Least significant byte of 2nd rank of \a u64.
-#define LSB0D(u64) MSB7D(u64) //!< Least significant byte of 1st rank of \a u64.
-
-#define LSB0(u32) LSB0W(u32) //!< Least significant byte of 1st rank of \a u32.
-#define LSB1(u32) LSB1W(u32) //!< Least significant byte of 2nd rank of \a u32.
-#define LSB2(u32) LSB2W(u32) //!< Least significant byte of 3rd rank of \a u32.
-#define LSB3(u32) LSB3W(u32) //!< Least significant byte of 4th rank of \a u32.
-#define MSB3(u32) MSB3W(u32) //!< Most significant byte of 4th rank of \a u32.
-#define MSB2(u32) MSB2W(u32) //!< Most significant byte of 3rd rank of \a u32.
-#define MSB1(u32) MSB1W(u32) //!< Most significant byte of 2nd rank of \a u32.
-#define MSB0(u32) MSB0W(u32) //!< Most significant byte of 1st rank of \a u32.
-
-#if defined(__ICCARM__)
-#define SHORTENUM __packed
-#elif defined(__GNUC__)
-#define SHORTENUM __attribute__((packed))
-#endif
-
-/* No operation */
-#if defined(__ICCARM__)
-#define nop() __no_operation()
-#elif defined(__GNUC__)
-#define nop() __NOP()
-#endif
-
-#define FLASH_DECLARE(x) const x
-#define FLASH_EXTERN(x) extern const x
-#define PGM_READ_BYTE(x) *(x)
-#define PGM_READ_WORD(x) *(x)
-#define MEMCPY_ENDIAN memcpy
-#define PGM_READ_BLOCK(dst, src, len) memcpy((dst), (src), (len))
-
-/*Defines the Flash Storage for the request and response of MAC*/
-#define CMD_ID_OCTET (0)
-
-/* Converting of values from CPU endian to little endian. */
-#define CPU_ENDIAN_TO_LE16(x) (x)
-#define CPU_ENDIAN_TO_LE32(x) (x)
-#define CPU_ENDIAN_TO_LE64(x) (x)
-
-/* Converting of values from little endian to CPU endian. */
-#define LE16_TO_CPU_ENDIAN(x) (x)
-#define LE32_TO_CPU_ENDIAN(x) (x)
-#define LE64_TO_CPU_ENDIAN(x) (x)
-
-/* Converting of constants from little endian to CPU endian. */
-#define CLE16_TO_CPU_ENDIAN(x) (x)
-#define CLE32_TO_CPU_ENDIAN(x) (x)
-#define CLE64_TO_CPU_ENDIAN(x) (x)
-
-/* Converting of constants from CPU endian to little endian. */
-#define CCPU_ENDIAN_TO_LE16(x) (x)
-#define CCPU_ENDIAN_TO_LE32(x) (x)
-#define CCPU_ENDIAN_TO_LE64(x) (x)
-
-#define ADDR_COPY_DST_SRC_16(dst, src) ((dst) = (src))
-#define ADDR_COPY_DST_SRC_64(dst, src) ((dst) = (src))
-
-/**
- * @brief Converts a 64-Bit value into a 8 Byte array
- *
- * @param[in] value 64-Bit value
- * @param[out] data Pointer to the 8 Byte array to be updated with 64-Bit value
- * @ingroup apiPalApi
- */
-static inline void convert_64_bit_to_byte_array(uint64_t value, uint8_t *data)
-{
- uint8_t index = 0;
-
- while (index < 8)
- {
- data[index++] = value & 0xFF;
- value = value >> 8;
- }
-}
-
-/**
- * @brief Converts a 16-Bit value into a 2 Byte array
- *
- * @param[in] value 16-Bit value
- * @param[out] data Pointer to the 2 Byte array to be updated with 16-Bit value
- * @ingroup apiPalApi
- */
-static inline void convert_16_bit_to_byte_array(uint16_t value, uint8_t *data)
-{
- data[0] = value & 0xFF;
- data[1] = (value >> 8) & 0xFF;
-}
-
-/* Converts a 16-Bit value into a 2 Byte array */
-static inline void convert_spec_16_bit_to_byte_array(uint16_t value, uint8_t *data)
-{
- data[0] = value & 0xFF;
- data[1] = (value >> 8) & 0xFF;
-}
-
-/* Converts a 16-Bit value into a 2 Byte array */
-static inline void convert_16_bit_to_byte_address(uint16_t value, uint8_t *data)
-{
- data[0] = value & 0xFF;
- data[1] = (value >> 8) & 0xFF;
-}
-
-/*
- * @brief Converts a 2 Byte array into a 16-Bit value
- *
- * @param data Specifies the pointer to the 2 Byte array
- *
- * @return 16-Bit value
- * @ingroup apiPalApi
- */
-static inline uint16_t convert_byte_array_to_16_bit(uint8_t *data)
-{
- return (data[0] | ((uint16_t)data[1] << 8));
-}
-
-/* Converts a 4 Byte array into a 32-Bit value */
-static inline uint32_t convert_byte_array_to_32_bit(uint8_t *data)
-{
- union
- {
- uint32_t u32;
- uint8_t u8[4];
- }long_addr;
- uint8_t index;
- for (index = 0; index < 4; index++)
- {
- long_addr.u8[index] = *data++;
- }
- return long_addr.u32;
-}
-
-/**
- * @brief Converts a 8 Byte array into a 64-Bit value
- *
- * @param data Specifies the pointer to the 8 Byte array
- *
- * @return 64-Bit value
- * @ingroup apiPalApi
- */
-static inline uint64_t convert_byte_array_to_64_bit(uint8_t *data)
-{
- union
- {
- uint64_t u64;
- uint8_t u8[8];
- } long_addr;
-
- uint8_t index;
-
- for (index = 0; index < 8; index++)
- {
- long_addr.u8[index] = *data++;
- }
-
- return long_addr.u64;
-}
-
-/** @} */
-
-#endif /* UTILS_COMPILER_H_INCLUDED */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/header_files/io.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/header_files/io.h
deleted file mode 100644
index 73784a0..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/header_files/io.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/**
- * \file
- *
- * \brief Arch file for SAM0.
- *
- * This file defines common SAM0 series.
- *
- * Copyright (c) 2012-2020 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _SAM_IO_
-#define _SAM_IO_
-
-#include
-#include
-#include
-
-/* SAM D20 family */
-#if (SAMD20)
-# include "samd20.h"
-#endif
-
-#if (SAMD21)
-# include "samd21.h"
-#endif
-
-#if (SAMR21)
-# include "samr21.h"
-#endif
-
-#if (SAMD09)
-# include "samd09.h"
-#endif
-
-#if (SAMD10)
-# include "samd10.h"
-#endif
-
-#if (SAMD11)
-# include "samd11.h"
-#endif
-
-#if (SAML21)
-# include "saml21.h"
-#endif
-
-#if (SAMR30)
-# include "samr30.h"
-#endif
-
-#if (SAMR34)
-# include "samr34.h"
-#endif
-
-#if (WLR089)
-# include "wlr089.h"
-#endif
-
-#if (SAMR35)
-# include "samr35.h"
-#endif
-
-#if (SAML22)
-# include "saml22.h"
-#endif
-
-#if (SAMDA1)
-# include "samda1.h"
-#endif
-
-#if (SAMC20)
-# include "samc20.h"
-#endif
-
-#if (SAMC21)
-# include "samc21.h"
-#endif
-
-#if (SAMHA1)
-# include "samha1.h"
-#endif
-
-#if (SAMHA0)
-# include "samha0.h"
-#endif
-
-#if (SAMB11)
-# include "samb11.h"
-#endif
-
-#endif /* _SAM_IO_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/linker_scripts/samd21/gcc/samd21j18a_flash.ld b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/linker_scripts/samd21/gcc/samd21j18a_flash.ld
deleted file mode 100644
index 17395a3..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/linker_scripts/samd21/gcc/samd21j18a_flash.ld
+++ /dev/null
@@ -1,157 +0,0 @@
-/**
- * \file
- *
- * \brief Linker script for running in internal FLASH on the SAMD21J18A
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an
- * Atmel microcontroller product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL 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.
- *
- * \asf_license_stop
- *
- */
-
-
-OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
-OUTPUT_ARCH(arm)
-SEARCH_DIR(.)
-
-/* Memory Spaces Definitions */
-MEMORY
-{
- rom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00040000
- ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00008000
-}
-
-/* The stack size used by the application. NOTE: you need to adjust according to your application. */
-STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0x2000;
-
-/* Section Definitions */
-SECTIONS
-{
- .text :
- {
- . = ALIGN(4);
- _sfixed = .;
- KEEP(*(.vectors .vectors.*))
- *(.text .text.* .gnu.linkonce.t.*)
- *(.glue_7t) *(.glue_7)
- *(.rodata .rodata* .gnu.linkonce.r.*)
- *(.ARM.extab* .gnu.linkonce.armextab.*)
-
- /* Support C constructors, and C destructors in both user code
- and the C library. This also provides support for C++ code. */
- . = ALIGN(4);
- KEEP(*(.init))
- . = ALIGN(4);
- __preinit_array_start = .;
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
-
- . = ALIGN(4);
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
-
- . = ALIGN(4);
- KEEP (*crtbegin.o(.ctors))
- KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
- KEEP (*(SORT(.ctors.*)))
- KEEP (*crtend.o(.ctors))
-
- . = ALIGN(4);
- KEEP(*(.fini))
-
- . = ALIGN(4);
- __fini_array_start = .;
- KEEP (*(.fini_array))
- KEEP (*(SORT(.fini_array.*)))
- __fini_array_end = .;
-
- KEEP (*crtbegin.o(.dtors))
- KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
- KEEP (*(SORT(.dtors.*)))
- KEEP (*crtend.o(.dtors))
-
- . = ALIGN(4);
- _efixed = .; /* End of text section */
- } > rom
-
- /* .ARM.exidx is sorted, so has to go in its own output section. */
- PROVIDE_HIDDEN (__exidx_start = .);
- .ARM.exidx :
- {
- *(.ARM.exidx* .gnu.linkonce.armexidx.*)
- } > rom
- PROVIDE_HIDDEN (__exidx_end = .);
-
- . = ALIGN(4);
- _etext = .;
-
- .relocate : AT (_etext)
- {
- . = ALIGN(4);
- _srelocate = .;
- *(.ramfunc .ramfunc.*);
- *(.data .data.*);
- . = ALIGN(4);
- _erelocate = .;
- } > ram
-
- /* .bss section which is used for uninitialized data */
- .bss (NOLOAD) :
- {
- . = ALIGN(4);
- _sbss = . ;
- _szero = .;
- *(.bss .bss.*)
- *(COMMON)
- . = ALIGN(4);
- _ebss = . ;
- _ezero = .;
- } > ram
-
- /* stack section */
- .stack (NOLOAD):
- {
- . = ALIGN(8);
- _sstack = .;
- . = . + STACK_SIZE;
- . = ALIGN(8);
- _estack = .;
- } > ram
-
- . = ALIGN(4);
- _end = . ;
-}
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/make/Makefile.sam.in b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/make/Makefile.sam.in
deleted file mode 100644
index f72b845..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/make/Makefile.sam.in
+++ /dev/null
@@ -1,492 +0,0 @@
-# List of available make goals:
-#
-# all Default target, builds the project
-# clean Clean up the project
-# rebuild Rebuild the project
-# debug_flash Builds the project and debug in flash
-# debug_sram Builds the project and debug in sram
-#
-# doc Build the documentation
-# cleandoc Clean up the documentation
-# rebuilddoc Rebuild the documentation
-#
-# \file
-#
-# Copyright (c) 2011 - 2018 Microchip Technology Inc. and its subsidiaries.
-#
-# \asf_license_start
-#
-# \page License
-#
-# Subject to your compliance with these terms, you may use Microchip
-# software and any derivatives exclusively with Microchip products.
-# It is your responsibility to comply with third party license terms applicable
-# to your use of third party software (including open source software) that
-# may accompany Microchip software.
-#
-# THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
-# WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
-# INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
-# AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
-# LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
-# LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
-# SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
-# POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
-# ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
-# RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
-# THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
-#
-# \asf_license_stop
-#
-
-# Include the config.mk file from the current working path, e.g., where the
-# user called make.
-include config.mk
-
-# Tool to use to generate documentation from the source code
-DOCGEN ?= doxygen
-
-# Look for source files relative to the top-level source directory
-VPATH := $(PRJ_PATH)
-
-# Output target file
-project_type := $(PROJECT_TYPE)
-
-# Output target file
-ifeq ($(project_type),flash)
-target := $(TARGET_FLASH)
-linker_script := $(PRJ_PATH)/$(LINKER_SCRIPT_FLASH)
-debug_script := $(PRJ_PATH)/$(DEBUG_SCRIPT_FLASH)
-else
-target := $(TARGET_SRAM)
-linker_script := $(PRJ_PATH)/$(LINKER_SCRIPT_SRAM)
-debug_script := $(PRJ_PATH)/$(DEBUG_SCRIPT_SRAM)
-endif
-
-# Output project name (target name minus suffix)
-project := $(basename $(target))
-
-# Output target file (typically ELF or static library)
-ifeq ($(suffix $(target)),.a)
-target_type := lib
-else
-ifeq ($(suffix $(target)),.elf)
-target_type := elf
-else
-$(error "Target type $(target_type) is not supported")
-endif
-endif
-
-# Allow override of operating system detection. The user can add OS=Linux or
-# OS=Windows on the command line to explicit set the host OS.
-#
-# This allows to work around broken uname utility on certain systems.
-ifdef OS
- ifeq ($(strip $(OS)), Linux)
- os_type := Linux
- endif
- ifeq ($(strip $(OS)), Windows)
- os_type := windows32_64
- endif
-endif
-
-os_type ?= $(strip $(shell uname))
-
-ifeq ($(os_type),windows32)
-os := Windows
-else
-ifeq ($(os_type),windows64)
-os := Windows
-else
-ifeq ($(os_type),windows32_64)
-os ?= Windows
-else
-ifeq ($(os_type),)
-os := Windows
-else
-# Default to Linux style operating system. Both Cygwin and mingw are fully
-# compatible (for this Makefile) with Linux.
-os := Linux
-endif
-endif
-endif
-endif
-
-# Output documentation directory and configuration file.
-docdir := ../doxygen/html
-doccfg := ../doxygen/doxyfile.doxygen
-
-CROSS ?= arm-none-eabi-
-AR := $(CROSS)ar
-AS := $(CROSS)as
-CC := $(CROSS)gcc
-CPP := $(CROSS)gcc -E
-CXX := $(CROSS)g++
-LD := $(CROSS)g++
-NM := $(CROSS)nm
-OBJCOPY := $(CROSS)objcopy
-OBJDUMP := $(CROSS)objdump
-SIZE := $(CROSS)size
-GDB := $(CROSS)gdb
-
-RM := rm
-ifeq ($(os),Windows)
-RMDIR := rmdir /S /Q
-else
-RMDIR := rmdir -p --ignore-fail-on-non-empty
-endif
-
-# On Windows, we need to override the shell to force the use of cmd.exe
-ifeq ($(os),Windows)
-SHELL := cmd
-endif
-
-# Strings for beautifying output
-MSG_CLEAN_FILES = "RM *.o *.d"
-MSG_CLEAN_DIRS = "RMDIR $(strip $(clean-dirs))"
-MSG_CLEAN_DOC = "RMDIR $(docdir)"
-MSG_MKDIR = "MKDIR $(dir $@)"
-
-MSG_INFO = "INFO "
-MSG_PREBUILD = "PREBUILD $(PREBUILD_CMD)"
-MSG_POSTBUILD = "POSTBUILD $(POSTBUILD_CMD)"
-
-MSG_ARCHIVING = "AR $@"
-MSG_ASSEMBLING = "AS $@"
-MSG_BINARY_IMAGE = "OBJCOPY $@"
-MSG_COMPILING = "CC $@"
-MSG_COMPILING_CXX = "CXX $@"
-MSG_EXTENDED_LISTING = "OBJDUMP $@"
-MSG_IHEX_IMAGE = "OBJCOPY $@"
-MSG_LINKING = "LN $@"
-MSG_PREPROCESSING = "CPP $@"
-MSG_SIZE = "SIZE $@"
-MSG_SYMBOL_TABLE = "NM $@"
-
-MSG_GENERATING_DOC = "DOXYGEN $(docdir)"
-
-# Don't use make's built-in rules and variables
-MAKEFLAGS += -rR
-
-# Don't print 'Entering directory ...'
-MAKEFLAGS += --no-print-directory
-
-# Function for reversing the order of a list
-reverse = $(if $(1),$(call reverse,$(wordlist 2,$(words $(1)),$(1)))) $(firstword $(1))
-
-# Hide command output by default, but allow the user to override this
-# by adding V=1 on the command line.
-#
-# This is inspired by the Kbuild system used by the Linux kernel.
-ifdef V
- ifeq ("$(origin V)", "command line")
- VERBOSE = $(V)
- endif
-endif
-ifndef VERBOSE
- VERBOSE = 0
-endif
-
-ifeq ($(VERBOSE), 1)
- Q =
-else
- Q = @
-endif
-
-arflags-gnu-y := $(ARFLAGS)
-asflags-gnu-y := $(ASFLAGS)
-cflags-gnu-y := $(CFLAGS)
-cxxflags-gnu-y := $(CXXFLAGS)
-cppflags-gnu-y := $(CPPFLAGS)
-cpuflags-gnu-y :=
-dbgflags-gnu-y := $(DBGFLAGS)
-libflags-gnu-y := $(foreach LIB,$(LIBS),-l$(LIB))
-ldflags-gnu-y := $(LDFLAGS)
-flashflags-gnu-y :=
-clean-files :=
-clean-dirs :=
-
-clean-files += $(wildcard $(target) $(project).map)
-clean-files += $(wildcard $(project).hex $(project).bin)
-clean-files += $(wildcard $(project).lss $(project).sym)
-clean-files += $(wildcard $(build))
-
-# Use pipes instead of temporary files for communication between processes
-cflags-gnu-y += -pipe
-asflags-gnu-y += -pipe
-ldflags-gnu-y += -pipe
-
-# Archiver flags.
-arflags-gnu-y += rcs
-
-# Always enable warnings. And be very careful about implicit
-# declarations.
-cflags-gnu-y += -Wall -Wstrict-prototypes -Wmissing-prototypes
-cflags-gnu-y += -Werror-implicit-function-declaration
-cxxflags-gnu-y += -Wall
-# IAR doesn't allow arithmetic on void pointers, so warn about that.
-cflags-gnu-y += -Wpointer-arith
-cxxflags-gnu-y += -Wpointer-arith
-
-# Preprocessor flags.
-cppflags-gnu-y += $(foreach INC,$(addprefix $(PRJ_PATH)/,$(INC_PATH)),-I$(INC))
-asflags-gnu-y += $(foreach INC,$(addprefix $(PRJ_PATH)/,$(INC_PATH)),'-Wa,-I$(INC)')
-
-# CPU specific flags.
-cpuflags-gnu-y += -mcpu=$(ARCH) -mthumb -D=__$(PART)__
-
-# Dependency file flags.
-depflags = -MD -MP -MQ $@
-
-# Debug specific flags.
-ifdef BUILD_DEBUG_LEVEL
-dbgflags-gnu-y += -g$(BUILD_DEBUG_LEVEL)
-else
-dbgflags-gnu-y += -g3
-endif
-
-# Optimization specific flags.
-ifdef BUILD_OPTIMIZATION
-optflags-gnu-y = -O$(BUILD_OPTIMIZATION)
-else
-optflags-gnu-y = $(OPTIMIZATION)
-endif
-
-# Always preprocess assembler files.
-asflags-gnu-y += -x assembler-with-cpp
-# Compile C files using the GNU99 standard.
-cflags-gnu-y += -std=gnu99
-# Compile C++ files using the GNU++98 standard.
-cxxflags-gnu-y += -std=gnu++98
-
-# Don't use strict aliasing (very common in embedded applications).
-cflags-gnu-y += -fno-strict-aliasing
-cxxflags-gnu-y += -fno-strict-aliasing
-
-# Separate each function and data into its own separate section to allow
-# garbage collection of unused sections.
-cflags-gnu-y += -ffunction-sections -fdata-sections
-cxxflags-gnu-y += -ffunction-sections -fdata-sections
-
-# Various cflags.
-cflags-gnu-y += -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int
-cflags-gnu-y += -Wmain -Wparentheses
-cflags-gnu-y += -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused
-cflags-gnu-y += -Wuninitialized -Wunknown-pragmas -Wfloat-equal -Wundef
-cflags-gnu-y += -Wshadow -Wbad-function-cast -Wwrite-strings
-cflags-gnu-y += -Wsign-compare -Waggregate-return
-cflags-gnu-y += -Wmissing-declarations
-cflags-gnu-y += -Wformat -Wmissing-format-attribute -Wno-deprecated-declarations
-cflags-gnu-y += -Wpacked -Wredundant-decls -Wnested-externs -Wlong-long
-cflags-gnu-y += -Wunreachable-code
-cflags-gnu-y += -Wcast-align
-cflags-gnu-y += --param max-inline-insns-single=500
-
-# To reduce application size use only integer printf function.
-cflags-gnu-y += -Dprintf=iprintf
-
-# Use newlib-nano to reduce application size
-ldflags-gnu-y += --specs=nano.specs
-
-# Garbage collect unreferred sections when linking.
-ldflags-gnu-y += -Wl,--gc-sections
-
-# Use the linker script if provided by the project.
-ifneq ($(strip $(linker_script)),)
-ldflags-gnu-y += -Wl,-T $(linker_script)
-endif
-
-# Output a link map file and a cross reference table
-ldflags-gnu-y += -Wl,-Map=$(project).map,--cref
-
-# Add library search paths relative to the top level directory.
-ldflags-gnu-y += $(foreach _LIB_PATH,$(addprefix $(PRJ_PATH)/,$(LIB_PATH)),-L$(_LIB_PATH))
-
-a_flags = $(cpuflags-gnu-y) $(depflags) $(cppflags-gnu-y) $(asflags-gnu-y) -D__ASSEMBLY__
-c_flags = $(cpuflags-gnu-y) $(dbgflags-gnu-y) $(depflags) $(optflags-gnu-y) $(cppflags-gnu-y) $(cflags-gnu-y)
-cxx_flags= $(cpuflags-gnu-y) $(dbgflags-gnu-y) $(depflags) $(optflags-gnu-y) $(cppflags-gnu-y) $(cxxflags-gnu-y)
-l_flags = -Wl,--entry=Reset_Handler -Wl,--cref $(cpuflags-gnu-y) $(optflags-gnu-y) $(ldflags-gnu-y)
-ar_flags = $(arflags-gnu-y)
-
-# Source files list and part informations must already be included before
-# running this makefile
-
-# If a custom build directory is specified, use it -- force trailing / in directory name.
-ifdef BUILD_DIR
- build-dir := $(dir $(BUILD_DIR))$(if $(notdir $(BUILD_DIR)),$(notdir $(BUILD_DIR))/)
-else
- build-dir =
-endif
-
-# Create object files list from source files list.
-obj-y := $(addprefix $(build-dir), $(addsuffix .o,$(basename $(CSRCS) $(ASSRCS))))
-# Create dependency files list from source files list.
-dep-files := $(wildcard $(foreach f,$(obj-y),$(basename $(f)).d))
-
-clean-files += $(wildcard $(obj-y))
-clean-files += $(dep-files)
-
-clean-dirs += $(call reverse,$(sort $(wildcard $(dir $(obj-y)))))
-
-# Default target.
-.PHONY: all
-ifeq ($(project_type),all)
-all:
- $(MAKE) all PROJECT_TYPE=flash
- $(MAKE) all PROJECT_TYPE=sram
-else
-ifeq ($(target_type),lib)
-all: $(target) $(project).lss $(project).sym
-else
-ifeq ($(target_type),elf)
-all: prebuild $(target) $(project).lss $(project).sym $(project).hex $(project).bin postbuild
-endif
-endif
-endif
-
-prebuild:
-ifneq ($(strip $(PREBUILD_CMD)),)
- @echo $(MSG_PREBUILD)
- $(Q)$(PREBUILD_CMD)
-endif
-
-postbuild:
-ifneq ($(strip $(POSTBUILD_CMD)),)
- @echo $(MSG_POSTBUILD)
- $(Q)$(POSTBUILD_CMD)
-endif
-
-# Clean up the project.
-.PHONY: clean
-clean:
- @$(if $(strip $(clean-files)),echo $(MSG_CLEAN_FILES))
- $(if $(strip $(clean-files)),$(Q)$(RM) $(clean-files),)
- @$(if $(strip $(clean-dirs)),echo $(MSG_CLEAN_DIRS))
-# Remove created directories, and make sure we only remove existing
-# directories, since recursive rmdir might help us a bit on the way.
-ifeq ($(os),Windows)
- $(Q)$(if $(strip $(clean-dirs)), \
- $(RMDIR) $(strip $(subst /,\,$(clean-dirs))))
-else
- $(Q)$(if $(strip $(clean-dirs)), \
- for directory in $(strip $(clean-dirs)); do \
- if [ -d "$$directory" ]; then \
- $(RMDIR) $$directory; \
- fi \
- done \
- )
-endif
-
-# Rebuild the project.
-.PHONY: rebuild
-rebuild: clean all
-
-# Debug the project in flash.
-.PHONY: debug_flash
-debug_flash: all
- $(GDB) -x "$(PRJ_PATH)/$(DEBUG_SCRIPT_FLASH)" -ex "reset" -readnow -se $(TARGET_FLASH)
-
-# Debug the project in sram.
-.PHONY: debug_sram
-debug_sram: all
- $(GDB) -x "$(PRJ_PATH)/$(DEBUG_SCRIPT_SRAM)" -ex "reset" -readnow -se $(TARGET_SRAM)
-
-.PHONY: objfiles
-objfiles: $(obj-y)
-
-# Create object files from C source files.
-$(build-dir)%.o: %.c $(MAKEFILE_PATH) config.mk
- $(Q)test -d $(dir $@) || echo $(MSG_MKDIR)
-ifeq ($(os),Windows)
- $(Q)test -d $(patsubst %/,%,$(dir $@)) || mkdir $(subst /,\,$(dir $@))
-else
- $(Q)test -d $(dir $@) || mkdir -p $(dir $@)
-endif
- @echo $(MSG_COMPILING)
- $(Q)$(CC) $(c_flags) -c $< -o $@
-
-# Create object files from C++ source files.
-$(build-dir)%.o: %.cpp $(MAKEFILE_PATH) config.mk
- $(Q)test -d $(dir $@) || echo $(MSG_MKDIR)
-ifeq ($(os),Windows)
- $(Q)test -d $(patsubst %/,%,$(dir $@)) || mkdir $(subst /,\,$(dir $@))
-else
- $(Q)test -d $(dir $@) || mkdir -p $(dir $@)
-endif
- @echo $(MSG_COMPILING_CXX)
- $(Q)$(CXX) $(cxx_flags) -c $< -o $@
-
-# Preprocess and assemble: create object files from assembler source files.
-$(build-dir)%.o: %.S $(MAKEFILE_PATH) config.mk
- $(Q)test -d $(dir $@) || echo $(MSG_MKDIR)
-ifeq ($(os),Windows)
- $(Q)test -d $(patsubst %/,%,$(dir $@)) || mkdir $(subst /,\,$(dir $@))
-else
- $(Q)test -d $(dir $@) || mkdir -p $(dir $@)
-endif
- @echo $(MSG_ASSEMBLING)
- $(Q)$(CC) $(a_flags) -c $< -o $@
-
-# Include all dependency files to add depedency to all header files in use.
-include $(dep-files)
-
-ifeq ($(target_type),lib)
-# Archive object files into an archive
-$(target): $(MAKEFILE_PATH) config.mk $(obj-y)
- @echo $(MSG_ARCHIVING)
- $(Q)$(AR) $(ar_flags) $@ $(obj-y)
- @echo $(MSG_SIZE)
- $(Q)$(SIZE) -Bxt $@
-else
-ifeq ($(target_type),elf)
-# Link the object files into an ELF file. Also make sure the target is rebuilt
-# if the common Makefile.sam.in or project config.mk is changed.
-$(target): $(linker_script) $(MAKEFILE_PATH) config.mk $(obj-y)
- @echo $(MSG_LINKING)
- $(Q)$(LD) $(l_flags) $(obj-y) $(libflags-gnu-y) -o $@
- @echo $(MSG_SIZE)
- $(Q)$(SIZE) -Ax $@
- $(Q)$(SIZE) -Bx $@
-endif
-endif
-
-# Create extended function listing from target output file.
-%.lss: $(target)
- @echo $(MSG_EXTENDED_LISTING)
- $(Q)$(OBJDUMP) -h -S $< > $@
-
-# Create symbol table from target output file.
-%.sym: $(target)
- @echo $(MSG_SYMBOL_TABLE)
- $(Q)$(NM) -n $< > $@
-
-# Create Intel HEX image from ELF output file.
-%.hex: $(target)
- @echo $(MSG_IHEX_IMAGE)
- $(Q)$(OBJCOPY) -O ihex $(flashflags-gnu-y) $< $@
-
-# Create binary image from ELF output file.
-%.bin: $(target)
- @echo $(MSG_BINARY_IMAGE)
- $(Q)$(OBJCOPY) -O binary $< $@
-
-# Provide information about the detected host operating system.
-.SECONDARY: info-os
-info-os:
- @echo $(MSG_INFO)$(os) build host detected
-
-# Build Doxygen generated documentation.
-.PHONY: doc
-doc:
- @echo $(MSG_GENERATING_DOC)
- $(Q)cd $(dir $(doccfg)) && $(DOCGEN) $(notdir $(doccfg))
-
-# Clean Doxygen generated documentation.
-.PHONY: cleandoc
-cleandoc:
- @$(if $(wildcard $(docdir)),echo $(MSG_CLEAN_DOC))
- $(Q)$(if $(wildcard $(docdir)),$(RM) --recursive $(docdir))
-
-# Rebuild the Doxygen generated documentation.
-.PHONY: rebuilddoc
-rebuilddoc: cleandoc doc
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/preprocessor/mrecursion.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/preprocessor/mrecursion.h
deleted file mode 100644
index 6e6a1d2..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/preprocessor/mrecursion.h
+++ /dev/null
@@ -1,588 +0,0 @@
-/**
- * \file
- *
- * \brief Preprocessor macro recursion utils.
- *
- * Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _MRECURSION_H_
-#define _MRECURSION_H_
-
-/**
- * \defgroup group_sam0_utils_mrecursion Preprocessor - Macro Recursion
- *
- * \ingroup group_sam0_utils
- *
- * @{
- */
-
-#include "preprocessor.h"
-
-#define DEC_256 255
-#define DEC_255 254
-#define DEC_254 253
-#define DEC_253 252
-#define DEC_252 251
-#define DEC_251 250
-#define DEC_250 249
-#define DEC_249 248
-#define DEC_248 247
-#define DEC_247 246
-#define DEC_246 245
-#define DEC_245 244
-#define DEC_244 243
-#define DEC_243 242
-#define DEC_242 241
-#define DEC_241 240
-#define DEC_240 239
-#define DEC_239 238
-#define DEC_238 237
-#define DEC_237 236
-#define DEC_236 235
-#define DEC_235 234
-#define DEC_234 233
-#define DEC_233 232
-#define DEC_232 231
-#define DEC_231 230
-#define DEC_230 229
-#define DEC_229 228
-#define DEC_228 227
-#define DEC_227 226
-#define DEC_226 225
-#define DEC_225 224
-#define DEC_224 223
-#define DEC_223 222
-#define DEC_222 221
-#define DEC_221 220
-#define DEC_220 219
-#define DEC_219 218
-#define DEC_218 217
-#define DEC_217 216
-#define DEC_216 215
-#define DEC_215 214
-#define DEC_214 213
-#define DEC_213 212
-#define DEC_212 211
-#define DEC_211 210
-#define DEC_210 209
-#define DEC_209 208
-#define DEC_208 207
-#define DEC_207 206
-#define DEC_206 205
-#define DEC_205 204
-#define DEC_204 203
-#define DEC_203 202
-#define DEC_202 201
-#define DEC_201 200
-#define DEC_200 199
-#define DEC_199 198
-#define DEC_198 197
-#define DEC_197 196
-#define DEC_196 195
-#define DEC_195 194
-#define DEC_194 193
-#define DEC_193 192
-#define DEC_192 191
-#define DEC_191 190
-#define DEC_190 189
-#define DEC_189 188
-#define DEC_188 187
-#define DEC_187 186
-#define DEC_186 185
-#define DEC_185 184
-#define DEC_184 183
-#define DEC_183 182
-#define DEC_182 181
-#define DEC_181 180
-#define DEC_180 179
-#define DEC_179 178
-#define DEC_178 177
-#define DEC_177 176
-#define DEC_176 175
-#define DEC_175 174
-#define DEC_174 173
-#define DEC_173 172
-#define DEC_172 171
-#define DEC_171 170
-#define DEC_170 169
-#define DEC_169 168
-#define DEC_168 167
-#define DEC_167 166
-#define DEC_166 165
-#define DEC_165 164
-#define DEC_164 163
-#define DEC_163 162
-#define DEC_162 161
-#define DEC_161 160
-#define DEC_160 159
-#define DEC_159 158
-#define DEC_158 157
-#define DEC_157 156
-#define DEC_156 155
-#define DEC_155 154
-#define DEC_154 153
-#define DEC_153 152
-#define DEC_152 151
-#define DEC_151 150
-#define DEC_150 149
-#define DEC_149 148
-#define DEC_148 147
-#define DEC_147 146
-#define DEC_146 145
-#define DEC_145 144
-#define DEC_144 143
-#define DEC_143 142
-#define DEC_142 141
-#define DEC_141 140
-#define DEC_140 139
-#define DEC_139 138
-#define DEC_138 137
-#define DEC_137 136
-#define DEC_136 135
-#define DEC_135 134
-#define DEC_134 133
-#define DEC_133 132
-#define DEC_132 131
-#define DEC_131 130
-#define DEC_130 129
-#define DEC_129 128
-#define DEC_128 127
-#define DEC_127 126
-#define DEC_126 125
-#define DEC_125 124
-#define DEC_124 123
-#define DEC_123 122
-#define DEC_122 121
-#define DEC_121 120
-#define DEC_120 119
-#define DEC_119 118
-#define DEC_118 117
-#define DEC_117 116
-#define DEC_116 115
-#define DEC_115 114
-#define DEC_114 113
-#define DEC_113 112
-#define DEC_112 111
-#define DEC_111 110
-#define DEC_110 109
-#define DEC_109 108
-#define DEC_108 107
-#define DEC_107 106
-#define DEC_106 105
-#define DEC_105 104
-#define DEC_104 103
-#define DEC_103 102
-#define DEC_102 101
-#define DEC_101 100
-#define DEC_100 99
-#define DEC_99 98
-#define DEC_98 97
-#define DEC_97 96
-#define DEC_96 95
-#define DEC_95 94
-#define DEC_94 93
-#define DEC_93 92
-#define DEC_92 91
-#define DEC_91 90
-#define DEC_90 89
-#define DEC_89 88
-#define DEC_88 87
-#define DEC_87 86
-#define DEC_86 85
-#define DEC_85 84
-#define DEC_84 83
-#define DEC_83 82
-#define DEC_82 81
-#define DEC_81 80
-#define DEC_80 79
-#define DEC_79 78
-#define DEC_78 77
-#define DEC_77 76
-#define DEC_76 75
-#define DEC_75 74
-#define DEC_74 73
-#define DEC_73 72
-#define DEC_72 71
-#define DEC_71 70
-#define DEC_70 69
-#define DEC_69 68
-#define DEC_68 67
-#define DEC_67 66
-#define DEC_66 65
-#define DEC_65 64
-#define DEC_64 63
-#define DEC_63 62
-#define DEC_62 61
-#define DEC_61 60
-#define DEC_60 59
-#define DEC_59 58
-#define DEC_58 57
-#define DEC_57 56
-#define DEC_56 55
-#define DEC_55 54
-#define DEC_54 53
-#define DEC_53 52
-#define DEC_52 51
-#define DEC_51 50
-#define DEC_50 49
-#define DEC_49 48
-#define DEC_48 47
-#define DEC_47 46
-#define DEC_46 45
-#define DEC_45 44
-#define DEC_44 43
-#define DEC_43 42
-#define DEC_42 41
-#define DEC_41 40
-#define DEC_40 39
-#define DEC_39 38
-#define DEC_38 37
-#define DEC_37 36
-#define DEC_36 35
-#define DEC_35 34
-#define DEC_34 33
-#define DEC_33 32
-#define DEC_32 31
-#define DEC_31 30
-#define DEC_30 29
-#define DEC_29 28
-#define DEC_28 27
-#define DEC_27 26
-#define DEC_26 25
-#define DEC_25 24
-#define DEC_24 23
-#define DEC_23 22
-#define DEC_22 21
-#define DEC_21 20
-#define DEC_20 19
-#define DEC_19 18
-#define DEC_18 17
-#define DEC_17 16
-#define DEC_16 15
-#define DEC_15 14
-#define DEC_14 13
-#define DEC_13 12
-#define DEC_12 11
-#define DEC_11 10
-#define DEC_10 9
-#define DEC_9 8
-#define DEC_8 7
-#define DEC_7 6
-#define DEC_6 5
-#define DEC_5 4
-#define DEC_4 3
-#define DEC_3 2
-#define DEC_2 1
-#define DEC_1 0
-#define DEC_(n) DEC_##n
-
-
-/** Maximal number of repetitions supported by MRECURSION. */
-#define MRECURSION_LIMIT 256
-
-/** \brief Macro recursion.
- *
- * This macro represents a horizontal repetition construct.
- *
- * \param[in] count The number of repetitious calls to macro. Valid values
- * range from 0 to MRECURSION_LIMIT.
- * \param[in] macro A binary operation of the form macro(data, n). This macro
- * is expanded by MRECURSION with the current repetition number
- * and the auxiliary data argument.
- * \param[in] data A recursive threshold, building on this to decline by times
- * defined with param count.
- *
- * \return macro(data-count+1,0) macro(data-count+2,1)...macro(data,count-1)
- */
-#define MRECURSION(count, macro, data) TPASTE2(MRECURSION, count) (macro, data)
-
-#define MRECURSION0( macro, data)
-#define MRECURSION1( macro, data) MRECURSION0( macro, DEC_(data)) macro(data, 0)
-#define MRECURSION2( macro, data) MRECURSION1( macro, DEC_(data)) macro(data, 1)
-#define MRECURSION3( macro, data) MRECURSION2( macro, DEC_(data)) macro(data, 2)
-#define MRECURSION4( macro, data) MRECURSION3( macro, DEC_(data)) macro(data, 3)
-#define MRECURSION5( macro, data) MRECURSION4( macro, DEC_(data)) macro(data, 4)
-#define MRECURSION6( macro, data) MRECURSION5( macro, DEC_(data)) macro(data, 5)
-#define MRECURSION7( macro, data) MRECURSION6( macro, DEC_(data)) macro(data, 6)
-#define MRECURSION8( macro, data) MRECURSION7( macro, DEC_(data)) macro(data, 7)
-#define MRECURSION9( macro, data) MRECURSION8( macro, DEC_(data)) macro(data, 8)
-#define MRECURSION10( macro, data) MRECURSION9( macro, DEC_(data)) macro(data, 9)
-#define MRECURSION11( macro, data) MRECURSION10( macro, DEC_(data)) macro(data, 10)
-#define MRECURSION12( macro, data) MRECURSION11( macro, DEC_(data)) macro(data, 11)
-#define MRECURSION13( macro, data) MRECURSION12( macro, DEC_(data)) macro(data, 12)
-#define MRECURSION14( macro, data) MRECURSION13( macro, DEC_(data)) macro(data, 13)
-#define MRECURSION15( macro, data) MRECURSION14( macro, DEC_(data)) macro(data, 14)
-#define MRECURSION16( macro, data) MRECURSION15( macro, DEC_(data)) macro(data, 15)
-#define MRECURSION17( macro, data) MRECURSION16( macro, DEC_(data)) macro(data, 16)
-#define MRECURSION18( macro, data) MRECURSION17( macro, DEC_(data)) macro(data, 17)
-#define MRECURSION19( macro, data) MRECURSION18( macro, DEC_(data)) macro(data, 18)
-#define MRECURSION20( macro, data) MRECURSION19( macro, DEC_(data)) macro(data, 19)
-#define MRECURSION21( macro, data) MRECURSION20( macro, DEC_(data)) macro(data, 20)
-#define MRECURSION22( macro, data) MRECURSION21( macro, DEC_(data)) macro(data, 21)
-#define MRECURSION23( macro, data) MRECURSION22( macro, DEC_(data)) macro(data, 22)
-#define MRECURSION24( macro, data) MRECURSION23( macro, DEC_(data)) macro(data, 23)
-#define MRECURSION25( macro, data) MRECURSION24( macro, DEC_(data)) macro(data, 24)
-#define MRECURSION26( macro, data) MRECURSION25( macro, DEC_(data)) macro(data, 25)
-#define MRECURSION27( macro, data) MRECURSION26( macro, DEC_(data)) macro(data, 26)
-#define MRECURSION28( macro, data) MRECURSION27( macro, DEC_(data)) macro(data, 27)
-#define MRECURSION29( macro, data) MRECURSION28( macro, DEC_(data)) macro(data, 28)
-#define MRECURSION30( macro, data) MRECURSION29( macro, DEC_(data)) macro(data, 29)
-#define MRECURSION31( macro, data) MRECURSION30( macro, DEC_(data)) macro(data, 30)
-#define MRECURSION32( macro, data) MRECURSION31( macro, DEC_(data)) macro(data, 31)
-#define MRECURSION33( macro, data) MRECURSION32( macro, DEC_(data)) macro(data, 32)
-#define MRECURSION34( macro, data) MRECURSION33( macro, DEC_(data)) macro(data, 33)
-#define MRECURSION35( macro, data) MRECURSION34( macro, DEC_(data)) macro(data, 34)
-#define MRECURSION36( macro, data) MRECURSION35( macro, DEC_(data)) macro(data, 35)
-#define MRECURSION37( macro, data) MRECURSION36( macro, DEC_(data)) macro(data, 36)
-#define MRECURSION38( macro, data) MRECURSION37( macro, DEC_(data)) macro(data, 37)
-#define MRECURSION39( macro, data) MRECURSION38( macro, DEC_(data)) macro(data, 38)
-#define MRECURSION40( macro, data) MRECURSION39( macro, DEC_(data)) macro(data, 39)
-#define MRECURSION41( macro, data) MRECURSION40( macro, DEC_(data)) macro(data, 40)
-#define MRECURSION42( macro, data) MRECURSION41( macro, DEC_(data)) macro(data, 41)
-#define MRECURSION43( macro, data) MRECURSION42( macro, DEC_(data)) macro(data, 42)
-#define MRECURSION44( macro, data) MRECURSION43( macro, DEC_(data)) macro(data, 43)
-#define MRECURSION45( macro, data) MRECURSION44( macro, DEC_(data)) macro(data, 44)
-#define MRECURSION46( macro, data) MRECURSION45( macro, DEC_(data)) macro(data, 45)
-#define MRECURSION47( macro, data) MRECURSION46( macro, DEC_(data)) macro(data, 46)
-#define MRECURSION48( macro, data) MRECURSION47( macro, DEC_(data)) macro(data, 47)
-#define MRECURSION49( macro, data) MRECURSION48( macro, DEC_(data)) macro(data, 48)
-#define MRECURSION50( macro, data) MRECURSION49( macro, DEC_(data)) macro(data, 49)
-#define MRECURSION51( macro, data) MRECURSION50( macro, DEC_(data)) macro(data, 50)
-#define MRECURSION52( macro, data) MRECURSION51( macro, DEC_(data)) macro(data, 51)
-#define MRECURSION53( macro, data) MRECURSION52( macro, DEC_(data)) macro(data, 52)
-#define MRECURSION54( macro, data) MRECURSION53( macro, DEC_(data)) macro(data, 53)
-#define MRECURSION55( macro, data) MRECURSION54( macro, DEC_(data)) macro(data, 54)
-#define MRECURSION56( macro, data) MRECURSION55( macro, DEC_(data)) macro(data, 55)
-#define MRECURSION57( macro, data) MRECURSION56( macro, DEC_(data)) macro(data, 56)
-#define MRECURSION58( macro, data) MRECURSION57( macro, DEC_(data)) macro(data, 57)
-#define MRECURSION59( macro, data) MRECURSION58( macro, DEC_(data)) macro(data, 58)
-#define MRECURSION60( macro, data) MRECURSION59( macro, DEC_(data)) macro(data, 59)
-#define MRECURSION61( macro, data) MRECURSION60( macro, DEC_(data)) macro(data, 60)
-#define MRECURSION62( macro, data) MRECURSION61( macro, DEC_(data)) macro(data, 61)
-#define MRECURSION63( macro, data) MRECURSION62( macro, DEC_(data)) macro(data, 62)
-#define MRECURSION64( macro, data) MRECURSION63( macro, DEC_(data)) macro(data, 63)
-#define MRECURSION65( macro, data) MRECURSION64( macro, DEC_(data)) macro(data, 64)
-#define MRECURSION66( macro, data) MRECURSION65( macro, DEC_(data)) macro(data, 65)
-#define MRECURSION67( macro, data) MRECURSION66( macro, DEC_(data)) macro(data, 66)
-#define MRECURSION68( macro, data) MRECURSION67( macro, DEC_(data)) macro(data, 67)
-#define MRECURSION69( macro, data) MRECURSION68( macro, DEC_(data)) macro(data, 68)
-#define MRECURSION70( macro, data) MRECURSION69( macro, DEC_(data)) macro(data, 69)
-#define MRECURSION71( macro, data) MRECURSION70( macro, DEC_(data)) macro(data, 70)
-#define MRECURSION72( macro, data) MRECURSION71( macro, DEC_(data)) macro(data, 71)
-#define MRECURSION73( macro, data) MRECURSION72( macro, DEC_(data)) macro(data, 72)
-#define MRECURSION74( macro, data) MRECURSION73( macro, DEC_(data)) macro(data, 73)
-#define MRECURSION75( macro, data) MRECURSION74( macro, DEC_(data)) macro(data, 74)
-#define MRECURSION76( macro, data) MRECURSION75( macro, DEC_(data)) macro(data, 75)
-#define MRECURSION77( macro, data) MRECURSION76( macro, DEC_(data)) macro(data, 76)
-#define MRECURSION78( macro, data) MRECURSION77( macro, DEC_(data)) macro(data, 77)
-#define MRECURSION79( macro, data) MRECURSION78( macro, DEC_(data)) macro(data, 78)
-#define MRECURSION80( macro, data) MRECURSION79( macro, DEC_(data)) macro(data, 79)
-#define MRECURSION81( macro, data) MRECURSION80( macro, DEC_(data)) macro(data, 80)
-#define MRECURSION82( macro, data) MRECURSION81( macro, DEC_(data)) macro(data, 81)
-#define MRECURSION83( macro, data) MRECURSION82( macro, DEC_(data)) macro(data, 82)
-#define MRECURSION84( macro, data) MRECURSION83( macro, DEC_(data)) macro(data, 83)
-#define MRECURSION85( macro, data) MRECURSION84( macro, DEC_(data)) macro(data, 84)
-#define MRECURSION86( macro, data) MRECURSION85( macro, DEC_(data)) macro(data, 85)
-#define MRECURSION87( macro, data) MRECURSION86( macro, DEC_(data)) macro(data, 86)
-#define MRECURSION88( macro, data) MRECURSION87( macro, DEC_(data)) macro(data, 87)
-#define MRECURSION89( macro, data) MRECURSION88( macro, DEC_(data)) macro(data, 88)
-#define MRECURSION90( macro, data) MRECURSION89( macro, DEC_(data)) macro(data, 89)
-#define MRECURSION91( macro, data) MRECURSION90( macro, DEC_(data)) macro(data, 90)
-#define MRECURSION92( macro, data) MRECURSION91( macro, DEC_(data)) macro(data, 91)
-#define MRECURSION93( macro, data) MRECURSION92( macro, DEC_(data)) macro(data, 92)
-#define MRECURSION94( macro, data) MRECURSION93( macro, DEC_(data)) macro(data, 93)
-#define MRECURSION95( macro, data) MRECURSION94( macro, DEC_(data)) macro(data, 94)
-#define MRECURSION96( macro, data) MRECURSION95( macro, DEC_(data)) macro(data, 95)
-#define MRECURSION97( macro, data) MRECURSION96( macro, DEC_(data)) macro(data, 96)
-#define MRECURSION98( macro, data) MRECURSION97( macro, DEC_(data)) macro(data, 97)
-#define MRECURSION99( macro, data) MRECURSION98( macro, DEC_(data)) macro(data, 98)
-#define MRECURSION100(macro, data) MRECURSION99( macro, DEC_(data)) macro(data, 99)
-#define MRECURSION101(macro, data) MRECURSION100( macro, DEC_(data)) macro(data, 100)
-#define MRECURSION102(macro, data) MRECURSION101( macro, DEC_(data)) macro(data, 101)
-#define MRECURSION103(macro, data) MRECURSION102( macro, DEC_(data)) macro(data, 102)
-#define MRECURSION104(macro, data) MRECURSION103( macro, DEC_(data)) macro(data, 103)
-#define MRECURSION105(macro, data) MRECURSION104( macro, DEC_(data)) macro(data, 104)
-#define MRECURSION106(macro, data) MRECURSION105( macro, DEC_(data)) macro(data, 105)
-#define MRECURSION107(macro, data) MRECURSION106( macro, DEC_(data)) macro(data, 106)
-#define MRECURSION108(macro, data) MRECURSION107( macro, DEC_(data)) macro(data, 107)
-#define MRECURSION109(macro, data) MRECURSION108( macro, DEC_(data)) macro(data, 108)
-#define MRECURSION110(macro, data) MRECURSION109( macro, DEC_(data)) macro(data, 109)
-#define MRECURSION111(macro, data) MRECURSION110( macro, DEC_(data)) macro(data, 110)
-#define MRECURSION112(macro, data) MRECURSION111( macro, DEC_(data)) macro(data, 111)
-#define MRECURSION113(macro, data) MRECURSION112( macro, DEC_(data)) macro(data, 112)
-#define MRECURSION114(macro, data) MRECURSION113( macro, DEC_(data)) macro(data, 113)
-#define MRECURSION115(macro, data) MRECURSION114( macro, DEC_(data)) macro(data, 114)
-#define MRECURSION116(macro, data) MRECURSION115( macro, DEC_(data)) macro(data, 115)
-#define MRECURSION117(macro, data) MRECURSION116( macro, DEC_(data)) macro(data, 116)
-#define MRECURSION118(macro, data) MRECURSION117( macro, DEC_(data)) macro(data, 117)
-#define MRECURSION119(macro, data) MRECURSION118( macro, DEC_(data)) macro(data, 118)
-#define MRECURSION120(macro, data) MRECURSION119( macro, DEC_(data)) macro(data, 119)
-#define MRECURSION121(macro, data) MRECURSION120( macro, DEC_(data)) macro(data, 120)
-#define MRECURSION122(macro, data) MRECURSION121( macro, DEC_(data)) macro(data, 121)
-#define MRECURSION123(macro, data) MRECURSION122( macro, DEC_(data)) macro(data, 122)
-#define MRECURSION124(macro, data) MRECURSION123( macro, DEC_(data)) macro(data, 123)
-#define MRECURSION125(macro, data) MRECURSION124( macro, DEC_(data)) macro(data, 124)
-#define MRECURSION126(macro, data) MRECURSION125( macro, DEC_(data)) macro(data, 125)
-#define MRECURSION127(macro, data) MRECURSION126( macro, DEC_(data)) macro(data, 126)
-#define MRECURSION128(macro, data) MRECURSION127( macro, DEC_(data)) macro(data, 127)
-#define MRECURSION129(macro, data) MRECURSION128( macro, DEC_(data)) macro(data, 128)
-#define MRECURSION130(macro, data) MRECURSION129( macro, DEC_(data)) macro(data, 129)
-#define MRECURSION131(macro, data) MRECURSION130( macro, DEC_(data)) macro(data, 130)
-#define MRECURSION132(macro, data) MRECURSION131( macro, DEC_(data)) macro(data, 131)
-#define MRECURSION133(macro, data) MRECURSION132( macro, DEC_(data)) macro(data, 132)
-#define MRECURSION134(macro, data) MRECURSION133( macro, DEC_(data)) macro(data, 133)
-#define MRECURSION135(macro, data) MRECURSION134( macro, DEC_(data)) macro(data, 134)
-#define MRECURSION136(macro, data) MRECURSION135( macro, DEC_(data)) macro(data, 135)
-#define MRECURSION137(macro, data) MRECURSION136( macro, DEC_(data)) macro(data, 136)
-#define MRECURSION138(macro, data) MRECURSION137( macro, DEC_(data)) macro(data, 137)
-#define MRECURSION139(macro, data) MRECURSION138( macro, DEC_(data)) macro(data, 138)
-#define MRECURSION140(macro, data) MRECURSION139( macro, DEC_(data)) macro(data, 139)
-#define MRECURSION141(macro, data) MRECURSION140( macro, DEC_(data)) macro(data, 140)
-#define MRECURSION142(macro, data) MRECURSION141( macro, DEC_(data)) macro(data, 141)
-#define MRECURSION143(macro, data) MRECURSION142( macro, DEC_(data)) macro(data, 142)
-#define MRECURSION144(macro, data) MRECURSION143( macro, DEC_(data)) macro(data, 143)
-#define MRECURSION145(macro, data) MRECURSION144( macro, DEC_(data)) macro(data, 144)
-#define MRECURSION146(macro, data) MRECURSION145( macro, DEC_(data)) macro(data, 145)
-#define MRECURSION147(macro, data) MRECURSION146( macro, DEC_(data)) macro(data, 146)
-#define MRECURSION148(macro, data) MRECURSION147( macro, DEC_(data)) macro(data, 147)
-#define MRECURSION149(macro, data) MRECURSION148( macro, DEC_(data)) macro(data, 148)
-#define MRECURSION150(macro, data) MRECURSION149( macro, DEC_(data)) macro(data, 149)
-#define MRECURSION151(macro, data) MRECURSION150( macro, DEC_(data)) macro(data, 150)
-#define MRECURSION152(macro, data) MRECURSION151( macro, DEC_(data)) macro(data, 151)
-#define MRECURSION153(macro, data) MRECURSION152( macro, DEC_(data)) macro(data, 152)
-#define MRECURSION154(macro, data) MRECURSION153( macro, DEC_(data)) macro(data, 153)
-#define MRECURSION155(macro, data) MRECURSION154( macro, DEC_(data)) macro(data, 154)
-#define MRECURSION156(macro, data) MRECURSION155( macro, DEC_(data)) macro(data, 155)
-#define MRECURSION157(macro, data) MRECURSION156( macro, DEC_(data)) macro(data, 156)
-#define MRECURSION158(macro, data) MRECURSION157( macro, DEC_(data)) macro(data, 157)
-#define MRECURSION159(macro, data) MRECURSION158( macro, DEC_(data)) macro(data, 158)
-#define MRECURSION160(macro, data) MRECURSION159( macro, DEC_(data)) macro(data, 159)
-#define MRECURSION161(macro, data) MRECURSION160( macro, DEC_(data)) macro(data, 160)
-#define MRECURSION162(macro, data) MRECURSION161( macro, DEC_(data)) macro(data, 161)
-#define MRECURSION163(macro, data) MRECURSION162( macro, DEC_(data)) macro(data, 162)
-#define MRECURSION164(macro, data) MRECURSION163( macro, DEC_(data)) macro(data, 163)
-#define MRECURSION165(macro, data) MRECURSION164( macro, DEC_(data)) macro(data, 164)
-#define MRECURSION166(macro, data) MRECURSION165( macro, DEC_(data)) macro(data, 165)
-#define MRECURSION167(macro, data) MRECURSION166( macro, DEC_(data)) macro(data, 166)
-#define MRECURSION168(macro, data) MRECURSION167( macro, DEC_(data)) macro(data, 167)
-#define MRECURSION169(macro, data) MRECURSION168( macro, DEC_(data)) macro(data, 168)
-#define MRECURSION170(macro, data) MRECURSION169( macro, DEC_(data)) macro(data, 169)
-#define MRECURSION171(macro, data) MRECURSION170( macro, DEC_(data)) macro(data, 170)
-#define MRECURSION172(macro, data) MRECURSION171( macro, DEC_(data)) macro(data, 171)
-#define MRECURSION173(macro, data) MRECURSION172( macro, DEC_(data)) macro(data, 172)
-#define MRECURSION174(macro, data) MRECURSION173( macro, DEC_(data)) macro(data, 173)
-#define MRECURSION175(macro, data) MRECURSION174( macro, DEC_(data)) macro(data, 174)
-#define MRECURSION176(macro, data) MRECURSION175( macro, DEC_(data)) macro(data, 175)
-#define MRECURSION177(macro, data) MRECURSION176( macro, DEC_(data)) macro(data, 176)
-#define MRECURSION178(macro, data) MRECURSION177( macro, DEC_(data)) macro(data, 177)
-#define MRECURSION179(macro, data) MRECURSION178( macro, DEC_(data)) macro(data, 178)
-#define MRECURSION180(macro, data) MRECURSION179( macro, DEC_(data)) macro(data, 179)
-#define MRECURSION181(macro, data) MRECURSION180( macro, DEC_(data)) macro(data, 180)
-#define MRECURSION182(macro, data) MRECURSION181( macro, DEC_(data)) macro(data, 181)
-#define MRECURSION183(macro, data) MRECURSION182( macro, DEC_(data)) macro(data, 182)
-#define MRECURSION184(macro, data) MRECURSION183( macro, DEC_(data)) macro(data, 183)
-#define MRECURSION185(macro, data) MRECURSION184( macro, DEC_(data)) macro(data, 184)
-#define MRECURSION186(macro, data) MRECURSION185( macro, DEC_(data)) macro(data, 185)
-#define MRECURSION187(macro, data) MRECURSION186( macro, DEC_(data)) macro(data, 186)
-#define MRECURSION188(macro, data) MRECURSION187( macro, DEC_(data)) macro(data, 187)
-#define MRECURSION189(macro, data) MRECURSION188( macro, DEC_(data)) macro(data, 188)
-#define MRECURSION190(macro, data) MRECURSION189( macro, DEC_(data)) macro(data, 189)
-#define MRECURSION191(macro, data) MRECURSION190( macro, DEC_(data)) macro(data, 190)
-#define MRECURSION192(macro, data) MRECURSION191( macro, DEC_(data)) macro(data, 191)
-#define MRECURSION193(macro, data) MRECURSION192( macro, DEC_(data)) macro(data, 192)
-#define MRECURSION194(macro, data) MRECURSION193( macro, DEC_(data)) macro(data, 193)
-#define MRECURSION195(macro, data) MRECURSION194( macro, DEC_(data)) macro(data, 194)
-#define MRECURSION196(macro, data) MRECURSION195( macro, DEC_(data)) macro(data, 195)
-#define MRECURSION197(macro, data) MRECURSION196( macro, DEC_(data)) macro(data, 196)
-#define MRECURSION198(macro, data) MRECURSION197( macro, DEC_(data)) macro(data, 197)
-#define MRECURSION199(macro, data) MRECURSION198( macro, DEC_(data)) macro(data, 198)
-#define MRECURSION200(macro, data) MRECURSION199( macro, DEC_(data)) macro(data, 199)
-#define MRECURSION201(macro, data) MRECURSION200( macro, DEC_(data)) macro(data, 200)
-#define MRECURSION202(macro, data) MRECURSION201( macro, DEC_(data)) macro(data, 201)
-#define MRECURSION203(macro, data) MRECURSION202( macro, DEC_(data)) macro(data, 202)
-#define MRECURSION204(macro, data) MRECURSION203( macro, DEC_(data)) macro(data, 203)
-#define MRECURSION205(macro, data) MRECURSION204( macro, DEC_(data)) macro(data, 204)
-#define MRECURSION206(macro, data) MRECURSION205( macro, DEC_(data)) macro(data, 205)
-#define MRECURSION207(macro, data) MRECURSION206( macro, DEC_(data)) macro(data, 206)
-#define MRECURSION208(macro, data) MRECURSION207( macro, DEC_(data)) macro(data, 207)
-#define MRECURSION209(macro, data) MRECURSION208( macro, DEC_(data)) macro(data, 208)
-#define MRECURSION210(macro, data) MRECURSION209( macro, DEC_(data)) macro(data, 209)
-#define MRECURSION211(macro, data) MRECURSION210( macro, DEC_(data)) macro(data, 210)
-#define MRECURSION212(macro, data) MRECURSION211( macro, DEC_(data)) macro(data, 211)
-#define MRECURSION213(macro, data) MRECURSION212( macro, DEC_(data)) macro(data, 212)
-#define MRECURSION214(macro, data) MRECURSION213( macro, DEC_(data)) macro(data, 213)
-#define MRECURSION215(macro, data) MRECURSION214( macro, DEC_(data)) macro(data, 214)
-#define MRECURSION216(macro, data) MRECURSION215( macro, DEC_(data)) macro(data, 215)
-#define MRECURSION217(macro, data) MRECURSION216( macro, DEC_(data)) macro(data, 216)
-#define MRECURSION218(macro, data) MRECURSION217( macro, DEC_(data)) macro(data, 217)
-#define MRECURSION219(macro, data) MRECURSION218( macro, DEC_(data)) macro(data, 218)
-#define MRECURSION220(macro, data) MRECURSION219( macro, DEC_(data)) macro(data, 219)
-#define MRECURSION221(macro, data) MRECURSION220( macro, DEC_(data)) macro(data, 220)
-#define MRECURSION222(macro, data) MRECURSION221( macro, DEC_(data)) macro(data, 221)
-#define MRECURSION223(macro, data) MRECURSION222( macro, DEC_(data)) macro(data, 222)
-#define MRECURSION224(macro, data) MRECURSION223( macro, DEC_(data)) macro(data, 223)
-#define MRECURSION225(macro, data) MRECURSION224( macro, DEC_(data)) macro(data, 224)
-#define MRECURSION226(macro, data) MRECURSION225( macro, DEC_(data)) macro(data, 225)
-#define MRECURSION227(macro, data) MRECURSION226( macro, DEC_(data)) macro(data, 226)
-#define MRECURSION228(macro, data) MRECURSION227( macro, DEC_(data)) macro(data, 227)
-#define MRECURSION229(macro, data) MRECURSION228( macro, DEC_(data)) macro(data, 228)
-#define MRECURSION230(macro, data) MRECURSION229( macro, DEC_(data)) macro(data, 229)
-#define MRECURSION231(macro, data) MRECURSION230( macro, DEC_(data)) macro(data, 230)
-#define MRECURSION232(macro, data) MRECURSION231( macro, DEC_(data)) macro(data, 231)
-#define MRECURSION233(macro, data) MRECURSION232( macro, DEC_(data)) macro(data, 232)
-#define MRECURSION234(macro, data) MRECURSION233( macro, DEC_(data)) macro(data, 233)
-#define MRECURSION235(macro, data) MRECURSION234( macro, DEC_(data)) macro(data, 234)
-#define MRECURSION236(macro, data) MRECURSION235( macro, DEC_(data)) macro(data, 235)
-#define MRECURSION237(macro, data) MRECURSION236( macro, DEC_(data)) macro(data, 236)
-#define MRECURSION238(macro, data) MRECURSION237( macro, DEC_(data)) macro(data, 237)
-#define MRECURSION239(macro, data) MRECURSION238( macro, DEC_(data)) macro(data, 238)
-#define MRECURSION240(macro, data) MRECURSION239( macro, DEC_(data)) macro(data, 239)
-#define MRECURSION241(macro, data) MRECURSION240( macro, DEC_(data)) macro(data, 240)
-#define MRECURSION242(macro, data) MRECURSION241( macro, DEC_(data)) macro(data, 241)
-#define MRECURSION243(macro, data) MRECURSION242( macro, DEC_(data)) macro(data, 242)
-#define MRECURSION244(macro, data) MRECURSION243( macro, DEC_(data)) macro(data, 243)
-#define MRECURSION245(macro, data) MRECURSION244( macro, DEC_(data)) macro(data, 244)
-#define MRECURSION246(macro, data) MRECURSION245( macro, DEC_(data)) macro(data, 245)
-#define MRECURSION247(macro, data) MRECURSION246( macro, DEC_(data)) macro(data, 246)
-#define MRECURSION248(macro, data) MRECURSION247( macro, DEC_(data)) macro(data, 247)
-#define MRECURSION249(macro, data) MRECURSION248( macro, DEC_(data)) macro(data, 248)
-#define MRECURSION250(macro, data) MRECURSION249( macro, DEC_(data)) macro(data, 249)
-#define MRECURSION251(macro, data) MRECURSION250( macro, DEC_(data)) macro(data, 250)
-#define MRECURSION252(macro, data) MRECURSION251( macro, DEC_(data)) macro(data, 251)
-#define MRECURSION253(macro, data) MRECURSION252( macro, DEC_(data)) macro(data, 252)
-#define MRECURSION254(macro, data) MRECURSION253( macro, DEC_(data)) macro(data, 253)
-#define MRECURSION255(macro, data) MRECURSION254( macro, DEC_(data)) macro(data, 254)
-#define MRECURSION256(macro, data) MRECURSION255( macro, DEC_(data)) macro(data, 255)
-
-/** @} */
-
-#endif /* _MRECURSION_H_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/preprocessor/mrepeat.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/preprocessor/mrepeat.h
deleted file mode 100644
index 5b0eb0a..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/preprocessor/mrepeat.h
+++ /dev/null
@@ -1,328 +0,0 @@
-/**
- * \file
- *
- * \brief Preprocessor macro repeating utils.
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _MREPEAT_H_
-#define _MREPEAT_H_
-
-/**
- * \defgroup group_sam0_utils_mrepeat Preprocessor - Macro Repeat
- *
- * \ingroup group_sam0_utils
- *
- * @{
- */
-
-#include "preprocessor.h"
-
-/** Maximal number of repetitions supported by MREPEAT. */
-#define MREPEAT_LIMIT 256
-
-/** \brief Macro repeat.
- *
- * This macro represents a horizontal repetition construct.
- *
- * \param[in] count The number of repetitious calls to macro. Valid values
- * range from 0 to MREPEAT_LIMIT.
- * \param[in] macro A binary operation of the form macro(n, data). This macro
- * is expanded by MREPEAT with the current repetition number
- * and the auxiliary data argument.
- * \param[in] data Auxiliary data passed to macro.
- *
- * \return macro(0, data) macro(1, data) ... macro(count - 1, data)
- */
-#define MREPEAT(count, macro, data) TPASTE2(MREPEAT, count) (macro, data)
-
-#define MREPEAT0( macro, data)
-#define MREPEAT1( macro, data) MREPEAT0( macro, data) macro( 0, data)
-#define MREPEAT2( macro, data) MREPEAT1( macro, data) macro( 1, data)
-#define MREPEAT3( macro, data) MREPEAT2( macro, data) macro( 2, data)
-#define MREPEAT4( macro, data) MREPEAT3( macro, data) macro( 3, data)
-#define MREPEAT5( macro, data) MREPEAT4( macro, data) macro( 4, data)
-#define MREPEAT6( macro, data) MREPEAT5( macro, data) macro( 5, data)
-#define MREPEAT7( macro, data) MREPEAT6( macro, data) macro( 6, data)
-#define MREPEAT8( macro, data) MREPEAT7( macro, data) macro( 7, data)
-#define MREPEAT9( macro, data) MREPEAT8( macro, data) macro( 8, data)
-#define MREPEAT10( macro, data) MREPEAT9( macro, data) macro( 9, data)
-#define MREPEAT11( macro, data) MREPEAT10( macro, data) macro( 10, data)
-#define MREPEAT12( macro, data) MREPEAT11( macro, data) macro( 11, data)
-#define MREPEAT13( macro, data) MREPEAT12( macro, data) macro( 12, data)
-#define MREPEAT14( macro, data) MREPEAT13( macro, data) macro( 13, data)
-#define MREPEAT15( macro, data) MREPEAT14( macro, data) macro( 14, data)
-#define MREPEAT16( macro, data) MREPEAT15( macro, data) macro( 15, data)
-#define MREPEAT17( macro, data) MREPEAT16( macro, data) macro( 16, data)
-#define MREPEAT18( macro, data) MREPEAT17( macro, data) macro( 17, data)
-#define MREPEAT19( macro, data) MREPEAT18( macro, data) macro( 18, data)
-#define MREPEAT20( macro, data) MREPEAT19( macro, data) macro( 19, data)
-#define MREPEAT21( macro, data) MREPEAT20( macro, data) macro( 20, data)
-#define MREPEAT22( macro, data) MREPEAT21( macro, data) macro( 21, data)
-#define MREPEAT23( macro, data) MREPEAT22( macro, data) macro( 22, data)
-#define MREPEAT24( macro, data) MREPEAT23( macro, data) macro( 23, data)
-#define MREPEAT25( macro, data) MREPEAT24( macro, data) macro( 24, data)
-#define MREPEAT26( macro, data) MREPEAT25( macro, data) macro( 25, data)
-#define MREPEAT27( macro, data) MREPEAT26( macro, data) macro( 26, data)
-#define MREPEAT28( macro, data) MREPEAT27( macro, data) macro( 27, data)
-#define MREPEAT29( macro, data) MREPEAT28( macro, data) macro( 28, data)
-#define MREPEAT30( macro, data) MREPEAT29( macro, data) macro( 29, data)
-#define MREPEAT31( macro, data) MREPEAT30( macro, data) macro( 30, data)
-#define MREPEAT32( macro, data) MREPEAT31( macro, data) macro( 31, data)
-#define MREPEAT33( macro, data) MREPEAT32( macro, data) macro( 32, data)
-#define MREPEAT34( macro, data) MREPEAT33( macro, data) macro( 33, data)
-#define MREPEAT35( macro, data) MREPEAT34( macro, data) macro( 34, data)
-#define MREPEAT36( macro, data) MREPEAT35( macro, data) macro( 35, data)
-#define MREPEAT37( macro, data) MREPEAT36( macro, data) macro( 36, data)
-#define MREPEAT38( macro, data) MREPEAT37( macro, data) macro( 37, data)
-#define MREPEAT39( macro, data) MREPEAT38( macro, data) macro( 38, data)
-#define MREPEAT40( macro, data) MREPEAT39( macro, data) macro( 39, data)
-#define MREPEAT41( macro, data) MREPEAT40( macro, data) macro( 40, data)
-#define MREPEAT42( macro, data) MREPEAT41( macro, data) macro( 41, data)
-#define MREPEAT43( macro, data) MREPEAT42( macro, data) macro( 42, data)
-#define MREPEAT44( macro, data) MREPEAT43( macro, data) macro( 43, data)
-#define MREPEAT45( macro, data) MREPEAT44( macro, data) macro( 44, data)
-#define MREPEAT46( macro, data) MREPEAT45( macro, data) macro( 45, data)
-#define MREPEAT47( macro, data) MREPEAT46( macro, data) macro( 46, data)
-#define MREPEAT48( macro, data) MREPEAT47( macro, data) macro( 47, data)
-#define MREPEAT49( macro, data) MREPEAT48( macro, data) macro( 48, data)
-#define MREPEAT50( macro, data) MREPEAT49( macro, data) macro( 49, data)
-#define MREPEAT51( macro, data) MREPEAT50( macro, data) macro( 50, data)
-#define MREPEAT52( macro, data) MREPEAT51( macro, data) macro( 51, data)
-#define MREPEAT53( macro, data) MREPEAT52( macro, data) macro( 52, data)
-#define MREPEAT54( macro, data) MREPEAT53( macro, data) macro( 53, data)
-#define MREPEAT55( macro, data) MREPEAT54( macro, data) macro( 54, data)
-#define MREPEAT56( macro, data) MREPEAT55( macro, data) macro( 55, data)
-#define MREPEAT57( macro, data) MREPEAT56( macro, data) macro( 56, data)
-#define MREPEAT58( macro, data) MREPEAT57( macro, data) macro( 57, data)
-#define MREPEAT59( macro, data) MREPEAT58( macro, data) macro( 58, data)
-#define MREPEAT60( macro, data) MREPEAT59( macro, data) macro( 59, data)
-#define MREPEAT61( macro, data) MREPEAT60( macro, data) macro( 60, data)
-#define MREPEAT62( macro, data) MREPEAT61( macro, data) macro( 61, data)
-#define MREPEAT63( macro, data) MREPEAT62( macro, data) macro( 62, data)
-#define MREPEAT64( macro, data) MREPEAT63( macro, data) macro( 63, data)
-#define MREPEAT65( macro, data) MREPEAT64( macro, data) macro( 64, data)
-#define MREPEAT66( macro, data) MREPEAT65( macro, data) macro( 65, data)
-#define MREPEAT67( macro, data) MREPEAT66( macro, data) macro( 66, data)
-#define MREPEAT68( macro, data) MREPEAT67( macro, data) macro( 67, data)
-#define MREPEAT69( macro, data) MREPEAT68( macro, data) macro( 68, data)
-#define MREPEAT70( macro, data) MREPEAT69( macro, data) macro( 69, data)
-#define MREPEAT71( macro, data) MREPEAT70( macro, data) macro( 70, data)
-#define MREPEAT72( macro, data) MREPEAT71( macro, data) macro( 71, data)
-#define MREPEAT73( macro, data) MREPEAT72( macro, data) macro( 72, data)
-#define MREPEAT74( macro, data) MREPEAT73( macro, data) macro( 73, data)
-#define MREPEAT75( macro, data) MREPEAT74( macro, data) macro( 74, data)
-#define MREPEAT76( macro, data) MREPEAT75( macro, data) macro( 75, data)
-#define MREPEAT77( macro, data) MREPEAT76( macro, data) macro( 76, data)
-#define MREPEAT78( macro, data) MREPEAT77( macro, data) macro( 77, data)
-#define MREPEAT79( macro, data) MREPEAT78( macro, data) macro( 78, data)
-#define MREPEAT80( macro, data) MREPEAT79( macro, data) macro( 79, data)
-#define MREPEAT81( macro, data) MREPEAT80( macro, data) macro( 80, data)
-#define MREPEAT82( macro, data) MREPEAT81( macro, data) macro( 81, data)
-#define MREPEAT83( macro, data) MREPEAT82( macro, data) macro( 82, data)
-#define MREPEAT84( macro, data) MREPEAT83( macro, data) macro( 83, data)
-#define MREPEAT85( macro, data) MREPEAT84( macro, data) macro( 84, data)
-#define MREPEAT86( macro, data) MREPEAT85( macro, data) macro( 85, data)
-#define MREPEAT87( macro, data) MREPEAT86( macro, data) macro( 86, data)
-#define MREPEAT88( macro, data) MREPEAT87( macro, data) macro( 87, data)
-#define MREPEAT89( macro, data) MREPEAT88( macro, data) macro( 88, data)
-#define MREPEAT90( macro, data) MREPEAT89( macro, data) macro( 89, data)
-#define MREPEAT91( macro, data) MREPEAT90( macro, data) macro( 90, data)
-#define MREPEAT92( macro, data) MREPEAT91( macro, data) macro( 91, data)
-#define MREPEAT93( macro, data) MREPEAT92( macro, data) macro( 92, data)
-#define MREPEAT94( macro, data) MREPEAT93( macro, data) macro( 93, data)
-#define MREPEAT95( macro, data) MREPEAT94( macro, data) macro( 94, data)
-#define MREPEAT96( macro, data) MREPEAT95( macro, data) macro( 95, data)
-#define MREPEAT97( macro, data) MREPEAT96( macro, data) macro( 96, data)
-#define MREPEAT98( macro, data) MREPEAT97( macro, data) macro( 97, data)
-#define MREPEAT99( macro, data) MREPEAT98( macro, data) macro( 98, data)
-#define MREPEAT100(macro, data) MREPEAT99( macro, data) macro( 99, data)
-#define MREPEAT101(macro, data) MREPEAT100(macro, data) macro(100, data)
-#define MREPEAT102(macro, data) MREPEAT101(macro, data) macro(101, data)
-#define MREPEAT103(macro, data) MREPEAT102(macro, data) macro(102, data)
-#define MREPEAT104(macro, data) MREPEAT103(macro, data) macro(103, data)
-#define MREPEAT105(macro, data) MREPEAT104(macro, data) macro(104, data)
-#define MREPEAT106(macro, data) MREPEAT105(macro, data) macro(105, data)
-#define MREPEAT107(macro, data) MREPEAT106(macro, data) macro(106, data)
-#define MREPEAT108(macro, data) MREPEAT107(macro, data) macro(107, data)
-#define MREPEAT109(macro, data) MREPEAT108(macro, data) macro(108, data)
-#define MREPEAT110(macro, data) MREPEAT109(macro, data) macro(109, data)
-#define MREPEAT111(macro, data) MREPEAT110(macro, data) macro(110, data)
-#define MREPEAT112(macro, data) MREPEAT111(macro, data) macro(111, data)
-#define MREPEAT113(macro, data) MREPEAT112(macro, data) macro(112, data)
-#define MREPEAT114(macro, data) MREPEAT113(macro, data) macro(113, data)
-#define MREPEAT115(macro, data) MREPEAT114(macro, data) macro(114, data)
-#define MREPEAT116(macro, data) MREPEAT115(macro, data) macro(115, data)
-#define MREPEAT117(macro, data) MREPEAT116(macro, data) macro(116, data)
-#define MREPEAT118(macro, data) MREPEAT117(macro, data) macro(117, data)
-#define MREPEAT119(macro, data) MREPEAT118(macro, data) macro(118, data)
-#define MREPEAT120(macro, data) MREPEAT119(macro, data) macro(119, data)
-#define MREPEAT121(macro, data) MREPEAT120(macro, data) macro(120, data)
-#define MREPEAT122(macro, data) MREPEAT121(macro, data) macro(121, data)
-#define MREPEAT123(macro, data) MREPEAT122(macro, data) macro(122, data)
-#define MREPEAT124(macro, data) MREPEAT123(macro, data) macro(123, data)
-#define MREPEAT125(macro, data) MREPEAT124(macro, data) macro(124, data)
-#define MREPEAT126(macro, data) MREPEAT125(macro, data) macro(125, data)
-#define MREPEAT127(macro, data) MREPEAT126(macro, data) macro(126, data)
-#define MREPEAT128(macro, data) MREPEAT127(macro, data) macro(127, data)
-#define MREPEAT129(macro, data) MREPEAT128(macro, data) macro(128, data)
-#define MREPEAT130(macro, data) MREPEAT129(macro, data) macro(129, data)
-#define MREPEAT131(macro, data) MREPEAT130(macro, data) macro(130, data)
-#define MREPEAT132(macro, data) MREPEAT131(macro, data) macro(131, data)
-#define MREPEAT133(macro, data) MREPEAT132(macro, data) macro(132, data)
-#define MREPEAT134(macro, data) MREPEAT133(macro, data) macro(133, data)
-#define MREPEAT135(macro, data) MREPEAT134(macro, data) macro(134, data)
-#define MREPEAT136(macro, data) MREPEAT135(macro, data) macro(135, data)
-#define MREPEAT137(macro, data) MREPEAT136(macro, data) macro(136, data)
-#define MREPEAT138(macro, data) MREPEAT137(macro, data) macro(137, data)
-#define MREPEAT139(macro, data) MREPEAT138(macro, data) macro(138, data)
-#define MREPEAT140(macro, data) MREPEAT139(macro, data) macro(139, data)
-#define MREPEAT141(macro, data) MREPEAT140(macro, data) macro(140, data)
-#define MREPEAT142(macro, data) MREPEAT141(macro, data) macro(141, data)
-#define MREPEAT143(macro, data) MREPEAT142(macro, data) macro(142, data)
-#define MREPEAT144(macro, data) MREPEAT143(macro, data) macro(143, data)
-#define MREPEAT145(macro, data) MREPEAT144(macro, data) macro(144, data)
-#define MREPEAT146(macro, data) MREPEAT145(macro, data) macro(145, data)
-#define MREPEAT147(macro, data) MREPEAT146(macro, data) macro(146, data)
-#define MREPEAT148(macro, data) MREPEAT147(macro, data) macro(147, data)
-#define MREPEAT149(macro, data) MREPEAT148(macro, data) macro(148, data)
-#define MREPEAT150(macro, data) MREPEAT149(macro, data) macro(149, data)
-#define MREPEAT151(macro, data) MREPEAT150(macro, data) macro(150, data)
-#define MREPEAT152(macro, data) MREPEAT151(macro, data) macro(151, data)
-#define MREPEAT153(macro, data) MREPEAT152(macro, data) macro(152, data)
-#define MREPEAT154(macro, data) MREPEAT153(macro, data) macro(153, data)
-#define MREPEAT155(macro, data) MREPEAT154(macro, data) macro(154, data)
-#define MREPEAT156(macro, data) MREPEAT155(macro, data) macro(155, data)
-#define MREPEAT157(macro, data) MREPEAT156(macro, data) macro(156, data)
-#define MREPEAT158(macro, data) MREPEAT157(macro, data) macro(157, data)
-#define MREPEAT159(macro, data) MREPEAT158(macro, data) macro(158, data)
-#define MREPEAT160(macro, data) MREPEAT159(macro, data) macro(159, data)
-#define MREPEAT161(macro, data) MREPEAT160(macro, data) macro(160, data)
-#define MREPEAT162(macro, data) MREPEAT161(macro, data) macro(161, data)
-#define MREPEAT163(macro, data) MREPEAT162(macro, data) macro(162, data)
-#define MREPEAT164(macro, data) MREPEAT163(macro, data) macro(163, data)
-#define MREPEAT165(macro, data) MREPEAT164(macro, data) macro(164, data)
-#define MREPEAT166(macro, data) MREPEAT165(macro, data) macro(165, data)
-#define MREPEAT167(macro, data) MREPEAT166(macro, data) macro(166, data)
-#define MREPEAT168(macro, data) MREPEAT167(macro, data) macro(167, data)
-#define MREPEAT169(macro, data) MREPEAT168(macro, data) macro(168, data)
-#define MREPEAT170(macro, data) MREPEAT169(macro, data) macro(169, data)
-#define MREPEAT171(macro, data) MREPEAT170(macro, data) macro(170, data)
-#define MREPEAT172(macro, data) MREPEAT171(macro, data) macro(171, data)
-#define MREPEAT173(macro, data) MREPEAT172(macro, data) macro(172, data)
-#define MREPEAT174(macro, data) MREPEAT173(macro, data) macro(173, data)
-#define MREPEAT175(macro, data) MREPEAT174(macro, data) macro(174, data)
-#define MREPEAT176(macro, data) MREPEAT175(macro, data) macro(175, data)
-#define MREPEAT177(macro, data) MREPEAT176(macro, data) macro(176, data)
-#define MREPEAT178(macro, data) MREPEAT177(macro, data) macro(177, data)
-#define MREPEAT179(macro, data) MREPEAT178(macro, data) macro(178, data)
-#define MREPEAT180(macro, data) MREPEAT179(macro, data) macro(179, data)
-#define MREPEAT181(macro, data) MREPEAT180(macro, data) macro(180, data)
-#define MREPEAT182(macro, data) MREPEAT181(macro, data) macro(181, data)
-#define MREPEAT183(macro, data) MREPEAT182(macro, data) macro(182, data)
-#define MREPEAT184(macro, data) MREPEAT183(macro, data) macro(183, data)
-#define MREPEAT185(macro, data) MREPEAT184(macro, data) macro(184, data)
-#define MREPEAT186(macro, data) MREPEAT185(macro, data) macro(185, data)
-#define MREPEAT187(macro, data) MREPEAT186(macro, data) macro(186, data)
-#define MREPEAT188(macro, data) MREPEAT187(macro, data) macro(187, data)
-#define MREPEAT189(macro, data) MREPEAT188(macro, data) macro(188, data)
-#define MREPEAT190(macro, data) MREPEAT189(macro, data) macro(189, data)
-#define MREPEAT191(macro, data) MREPEAT190(macro, data) macro(190, data)
-#define MREPEAT192(macro, data) MREPEAT191(macro, data) macro(191, data)
-#define MREPEAT193(macro, data) MREPEAT192(macro, data) macro(192, data)
-#define MREPEAT194(macro, data) MREPEAT193(macro, data) macro(193, data)
-#define MREPEAT195(macro, data) MREPEAT194(macro, data) macro(194, data)
-#define MREPEAT196(macro, data) MREPEAT195(macro, data) macro(195, data)
-#define MREPEAT197(macro, data) MREPEAT196(macro, data) macro(196, data)
-#define MREPEAT198(macro, data) MREPEAT197(macro, data) macro(197, data)
-#define MREPEAT199(macro, data) MREPEAT198(macro, data) macro(198, data)
-#define MREPEAT200(macro, data) MREPEAT199(macro, data) macro(199, data)
-#define MREPEAT201(macro, data) MREPEAT200(macro, data) macro(200, data)
-#define MREPEAT202(macro, data) MREPEAT201(macro, data) macro(201, data)
-#define MREPEAT203(macro, data) MREPEAT202(macro, data) macro(202, data)
-#define MREPEAT204(macro, data) MREPEAT203(macro, data) macro(203, data)
-#define MREPEAT205(macro, data) MREPEAT204(macro, data) macro(204, data)
-#define MREPEAT206(macro, data) MREPEAT205(macro, data) macro(205, data)
-#define MREPEAT207(macro, data) MREPEAT206(macro, data) macro(206, data)
-#define MREPEAT208(macro, data) MREPEAT207(macro, data) macro(207, data)
-#define MREPEAT209(macro, data) MREPEAT208(macro, data) macro(208, data)
-#define MREPEAT210(macro, data) MREPEAT209(macro, data) macro(209, data)
-#define MREPEAT211(macro, data) MREPEAT210(macro, data) macro(210, data)
-#define MREPEAT212(macro, data) MREPEAT211(macro, data) macro(211, data)
-#define MREPEAT213(macro, data) MREPEAT212(macro, data) macro(212, data)
-#define MREPEAT214(macro, data) MREPEAT213(macro, data) macro(213, data)
-#define MREPEAT215(macro, data) MREPEAT214(macro, data) macro(214, data)
-#define MREPEAT216(macro, data) MREPEAT215(macro, data) macro(215, data)
-#define MREPEAT217(macro, data) MREPEAT216(macro, data) macro(216, data)
-#define MREPEAT218(macro, data) MREPEAT217(macro, data) macro(217, data)
-#define MREPEAT219(macro, data) MREPEAT218(macro, data) macro(218, data)
-#define MREPEAT220(macro, data) MREPEAT219(macro, data) macro(219, data)
-#define MREPEAT221(macro, data) MREPEAT220(macro, data) macro(220, data)
-#define MREPEAT222(macro, data) MREPEAT221(macro, data) macro(221, data)
-#define MREPEAT223(macro, data) MREPEAT222(macro, data) macro(222, data)
-#define MREPEAT224(macro, data) MREPEAT223(macro, data) macro(223, data)
-#define MREPEAT225(macro, data) MREPEAT224(macro, data) macro(224, data)
-#define MREPEAT226(macro, data) MREPEAT225(macro, data) macro(225, data)
-#define MREPEAT227(macro, data) MREPEAT226(macro, data) macro(226, data)
-#define MREPEAT228(macro, data) MREPEAT227(macro, data) macro(227, data)
-#define MREPEAT229(macro, data) MREPEAT228(macro, data) macro(228, data)
-#define MREPEAT230(macro, data) MREPEAT229(macro, data) macro(229, data)
-#define MREPEAT231(macro, data) MREPEAT230(macro, data) macro(230, data)
-#define MREPEAT232(macro, data) MREPEAT231(macro, data) macro(231, data)
-#define MREPEAT233(macro, data) MREPEAT232(macro, data) macro(232, data)
-#define MREPEAT234(macro, data) MREPEAT233(macro, data) macro(233, data)
-#define MREPEAT235(macro, data) MREPEAT234(macro, data) macro(234, data)
-#define MREPEAT236(macro, data) MREPEAT235(macro, data) macro(235, data)
-#define MREPEAT237(macro, data) MREPEAT236(macro, data) macro(236, data)
-#define MREPEAT238(macro, data) MREPEAT237(macro, data) macro(237, data)
-#define MREPEAT239(macro, data) MREPEAT238(macro, data) macro(238, data)
-#define MREPEAT240(macro, data) MREPEAT239(macro, data) macro(239, data)
-#define MREPEAT241(macro, data) MREPEAT240(macro, data) macro(240, data)
-#define MREPEAT242(macro, data) MREPEAT241(macro, data) macro(241, data)
-#define MREPEAT243(macro, data) MREPEAT242(macro, data) macro(242, data)
-#define MREPEAT244(macro, data) MREPEAT243(macro, data) macro(243, data)
-#define MREPEAT245(macro, data) MREPEAT244(macro, data) macro(244, data)
-#define MREPEAT246(macro, data) MREPEAT245(macro, data) macro(245, data)
-#define MREPEAT247(macro, data) MREPEAT246(macro, data) macro(246, data)
-#define MREPEAT248(macro, data) MREPEAT247(macro, data) macro(247, data)
-#define MREPEAT249(macro, data) MREPEAT248(macro, data) macro(248, data)
-#define MREPEAT250(macro, data) MREPEAT249(macro, data) macro(249, data)
-#define MREPEAT251(macro, data) MREPEAT250(macro, data) macro(250, data)
-#define MREPEAT252(macro, data) MREPEAT251(macro, data) macro(251, data)
-#define MREPEAT253(macro, data) MREPEAT252(macro, data) macro(252, data)
-#define MREPEAT254(macro, data) MREPEAT253(macro, data) macro(253, data)
-#define MREPEAT255(macro, data) MREPEAT254(macro, data) macro(254, data)
-#define MREPEAT256(macro, data) MREPEAT255(macro, data) macro(255, data)
-
-/** @} */
-
-#endif /* _MREPEAT_H_ */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/preprocessor/preprocessor.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/preprocessor/preprocessor.h
deleted file mode 100644
index d28f8b0..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/preprocessor/preprocessor.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- * \file
- *
- * \brief Preprocessor utils.
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _PREPROCESSOR_H_
-#define _PREPROCESSOR_H_
-
-#include "tpaste.h"
-#include "stringz.h"
-#include "mrepeat.h"
-#include "mrecursion.h"
-
-#endif // _PREPROCESSOR_H_
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/preprocessor/stringz.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/preprocessor/stringz.h
deleted file mode 100644
index cf307d1..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/preprocessor/stringz.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * \file
- *
- * \brief Preprocessor stringizing utils.
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _STRINGZ_H_
-#define _STRINGZ_H_
-
-/**
- * \defgroup group_sam0_utils_stringz Preprocessor - Stringize
- *
- * \ingroup group_sam0_utils
- *
- * @{
- */
-
-/** \brief Stringize.
- *
- * Stringize a preprocessing token, this token being allowed to be \#defined.
- *
- * May be used only within macros with the token passed as an argument if the
- * token is \#defined.
- *
- * For example, writing STRINGZ(PIN) within a macro \#defined by PIN_NAME(PIN)
- * and invoked as PIN_NAME(PIN0) with PIN0 \#defined as A0 is equivalent to
- * writing "A0".
- */
-#define STRINGZ(x) #x
-
-/** \brief Absolute stringize.
- *
- * Stringize a preprocessing token, this token being allowed to be \#defined.
- *
- * No restriction of use if the token is \#defined.
- *
- * For example, writing ASTRINGZ(PIN0) anywhere with PIN0 \#defined as A0 is
- * equivalent to writing "A0".
- */
-#define ASTRINGZ(x) STRINGZ(x)
-
-/** @} */
-
-#endif // _STRINGZ_H_
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/preprocessor/tpaste.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/preprocessor/tpaste.h
deleted file mode 100644
index dd1033a..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/preprocessor/tpaste.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * \file
- *
- * \brief Preprocessor token pasting utils.
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _TPASTE_H_
-#define _TPASTE_H_
-
-/**
- * \defgroup group_sam0_utils_tpaste Preprocessor - Token Paste
- *
- * \ingroup group_sam0_utils
- *
- * @{
- */
-
-/** \name Token Paste
- *
- * Paste N preprocessing tokens together, these tokens being allowed to be \#defined.
- *
- * May be used only within macros with the tokens passed as arguments if the tokens are \#defined.
- *
- * For example, writing TPASTE2(U, WIDTH) within a macro \#defined by
- * UTYPE(WIDTH) and invoked as UTYPE(UL_WIDTH) with UL_WIDTH \#defined as 32 is
- * equivalent to writing U32.
- *
- * @{ */
-#define TPASTE2( a, b) a##b
-#define TPASTE3( a, b, c) a##b##c
-#define TPASTE4( a, b, c, d) a##b##c##d
-#define TPASTE5( a, b, c, d, e) a##b##c##d##e
-#define TPASTE6( a, b, c, d, e, f) a##b##c##d##e##f
-#define TPASTE7( a, b, c, d, e, f, g) a##b##c##d##e##f##g
-#define TPASTE8( a, b, c, d, e, f, g, h) a##b##c##d##e##f##g##h
-#define TPASTE9( a, b, c, d, e, f, g, h, i) a##b##c##d##e##f##g##h##i
-#define TPASTE10(a, b, c, d, e, f, g, h, i, j) a##b##c##d##e##f##g##h##i##j
-/** @} */
-
-/** \name Absolute Token Paste
- *
- * Paste N preprocessing tokens together, these tokens being allowed to be \#defined.
- *
- * No restriction of use if the tokens are \#defined.
- *
- * For example, writing ATPASTE2(U, UL_WIDTH) anywhere with UL_WIDTH \#defined
- * as 32 is equivalent to writing U32.
- *
- * @{ */
-#define ATPASTE2( a, b) TPASTE2( a, b)
-#define ATPASTE3( a, b, c) TPASTE3( a, b, c)
-#define ATPASTE4( a, b, c, d) TPASTE4( a, b, c, d)
-#define ATPASTE5( a, b, c, d, e) TPASTE5( a, b, c, d, e)
-#define ATPASTE6( a, b, c, d, e, f) TPASTE6( a, b, c, d, e, f)
-#define ATPASTE7( a, b, c, d, e, f, g) TPASTE7( a, b, c, d, e, f, g)
-#define ATPASTE8( a, b, c, d, e, f, g, h) TPASTE8( a, b, c, d, e, f, g, h)
-#define ATPASTE9( a, b, c, d, e, f, g, h, i) TPASTE9( a, b, c, d, e, f, g, h, i)
-#define ATPASTE10(a, b, c, d, e, f, g, h, i, j) TPASTE10(a, b, c, d, e, f, g, h, i, j)
-/** @} */
-
-/** @} */
-
-#endif // _TPASTE_H_
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/status_codes.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/status_codes.h
deleted file mode 100644
index 532f8b2..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/status_codes.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/**
- * \file
- *
- * \brief Status code definitions.
- *
- * This file defines various status codes returned by functions,
- * indicating success or failure as well as what kind of failure.
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef STATUS_CODES_H_INCLUDED
-#define STATUS_CODES_H_INCLUDED
-
-#include
-
-/**
- * \defgroup group_sam0_utils_status_codes Status Codes
- *
- * \ingroup group_sam0_utils
- *
- * @{
- */
-
-/** Mask to retrieve the error category of a status code. */
-#define STATUS_CATEGORY_MASK 0xF0
-
-/** Mask to retrieve the error code within the category of a status code. */
-#define STATUS_ERROR_MASK 0x0F
-
-/** Status code error categories. */
-enum status_categories {
- STATUS_CATEGORY_OK = 0x00,
- STATUS_CATEGORY_COMMON = 0x10,
- STATUS_CATEGORY_ANALOG = 0x30,
- STATUS_CATEGORY_COM = 0x40,
- STATUS_CATEGORY_IO = 0x50,
-};
-
-/**
- * Status code that may be returned by shell commands and protocol
- * implementations.
- *
- * \note Any change to these status codes and the corresponding
- * message strings is strictly forbidden. New codes can be added,
- * however, but make sure that any message string tables are updated
- * at the same time.
- */
-enum status_code {
- STATUS_OK = STATUS_CATEGORY_OK | 0x00,
- STATUS_VALID_DATA = STATUS_CATEGORY_OK | 0x01,
- STATUS_NO_CHANGE = STATUS_CATEGORY_OK | 0x02,
- STATUS_ABORTED = STATUS_CATEGORY_OK | 0x04,
- STATUS_BUSY = STATUS_CATEGORY_OK | 0x05,
- STATUS_SUSPEND = STATUS_CATEGORY_OK | 0x06,
-
- STATUS_ERR_IO = STATUS_CATEGORY_COMMON | 0x00,
- STATUS_ERR_REQ_FLUSHED = STATUS_CATEGORY_COMMON | 0x01,
- STATUS_ERR_TIMEOUT = STATUS_CATEGORY_COMMON | 0x02,
- STATUS_ERR_BAD_DATA = STATUS_CATEGORY_COMMON | 0x03,
- STATUS_ERR_NOT_FOUND = STATUS_CATEGORY_COMMON | 0x04,
- STATUS_ERR_UNSUPPORTED_DEV = STATUS_CATEGORY_COMMON | 0x05,
- STATUS_ERR_NO_MEMORY = STATUS_CATEGORY_COMMON | 0x06,
- STATUS_ERR_INVALID_ARG = STATUS_CATEGORY_COMMON | 0x07,
- STATUS_ERR_BAD_ADDRESS = STATUS_CATEGORY_COMMON | 0x08,
- STATUS_ERR_BAD_FORMAT = STATUS_CATEGORY_COMMON | 0x0A,
- STATUS_ERR_BAD_FRQ = STATUS_CATEGORY_COMMON | 0x0B,
- STATUS_ERR_DENIED = STATUS_CATEGORY_COMMON | 0x0c,
- STATUS_ERR_ALREADY_INITIALIZED = STATUS_CATEGORY_COMMON | 0x0d,
- STATUS_ERR_OVERFLOW = STATUS_CATEGORY_COMMON | 0x0e,
- STATUS_ERR_NOT_INITIALIZED = STATUS_CATEGORY_COMMON | 0x0f,
-
- STATUS_ERR_SAMPLERATE_UNAVAILABLE = STATUS_CATEGORY_ANALOG | 0x00,
- STATUS_ERR_RESOLUTION_UNAVAILABLE = STATUS_CATEGORY_ANALOG | 0x01,
-
- STATUS_ERR_BAUDRATE_UNAVAILABLE = STATUS_CATEGORY_COM | 0x00,
- STATUS_ERR_PACKET_COLLISION = STATUS_CATEGORY_COM | 0x01,
- STATUS_ERR_PROTOCOL = STATUS_CATEGORY_COM | 0x02,
-
- STATUS_ERR_PIN_MUX_INVALID = STATUS_CATEGORY_IO | 0x00,
-};
-typedef enum status_code status_code_genare_t;
-
-/**
- Status codes used by MAC stack.
- */
-enum status_code_wireless {
- //STATUS_OK = 0, //!< Success
- ERR_IO_ERROR = -1, //!< I/O error
- ERR_FLUSHED = -2, //!< Request flushed from queue
- ERR_TIMEOUT = -3, //!< Operation timed out
- ERR_BAD_DATA = -4, //!< Data integrity check failed
- ERR_PROTOCOL = -5, //!< Protocol error
- ERR_UNSUPPORTED_DEV = -6, //!< Unsupported device
- ERR_NO_MEMORY = -7, //!< Insufficient memory
- ERR_INVALID_ARG = -8, //!< Invalid argument
- ERR_BAD_ADDRESS = -9, //!< Bad address
- ERR_BUSY = -10, //!< Resource is busy
- ERR_BAD_FORMAT = -11, //!< Data format not recognized
- ERR_NO_TIMER = -12, //!< No timer available
- ERR_TIMER_ALREADY_RUNNING = -13, //!< Timer already running
- ERR_TIMER_NOT_RUNNING = -14, //!< Timer not running
-
- /**
- * \brief Operation in progress
- *
- * This status code is for driver-internal use when an operation
- * is currently being performed.
- *
- * \note Drivers should never return this status code to any
- * callers. It is strictly for internal use.
- */
- OPERATION_IN_PROGRESS = -128,
-};
-
-typedef enum status_code_wireless status_code_t;
-
-/** @} */
-
-#endif /* STATUS_CODES_H_INCLUDED */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/syscalls/gcc/syscalls.c b/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/syscalls/gcc/syscalls.c
deleted file mode 100644
index 3079234..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/sam0/utils/syscalls/gcc/syscalls.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/**
- * \file
- *
- * \brief Syscalls for SAM0 (GCC).
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#include
-#include
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#undef errno
-extern int errno;
-extern int _end;
-
-extern caddr_t _sbrk(int incr);
-extern int link(char *old, char *new);
-extern int _close(int file);
-extern int _fstat(int file, struct stat *st);
-extern int _isatty(int file);
-extern int _lseek(int file, int ptr, int dir);
-extern void _exit(int status);
-extern void _kill(int pid, int sig);
-extern int _getpid(void);
-
-extern caddr_t _sbrk(int incr)
-{
- static unsigned char *heap = NULL;
- unsigned char *prev_heap;
-
- if (heap == NULL) {
- heap = (unsigned char *)&_end;
- }
- prev_heap = heap;
-
- heap += incr;
-
- return (caddr_t) prev_heap;
-}
-
-extern int link(char *old, char *new)
-{
- return -1;
-}
-
-extern int _close(int file)
-{
- return -1;
-}
-
-extern int _fstat(int file, struct stat *st)
-{
- st->st_mode = S_IFCHR;
-
- return 0;
-}
-
-extern int _isatty(int file)
-{
- return 1;
-}
-
-extern int _lseek(int file, int ptr, int dir)
-{
- return 0;
-}
-
-extern void _exit(int status)
-{
- asm("BKPT #0");
- for (;;);
-}
-
-extern void _kill(int pid, int sig)
-{
- return;
-}
-
-extern int _getpid(void)
-{
- return -1;
-}
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/ATMEL-disclaimer.txt b/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/ATMEL-disclaimer.txt
deleted file mode 100644
index 422f7fe..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/ATMEL-disclaimer.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Only the CMSIS required parts for ASF are included here, go to the below
- * address for the full package:
- * http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php
- *
- * The library file thirdparty/CMSIS/Lib/GCC/libarm_cortexM4lf_math_softfp.a was generated by ATMEL, which
- * is support -mfloat-abi=softfp compiler flag, and this is also the default selection for device that
- * have FPU module and enabled.
- * If customer want to use -mfloat-abi=hard compiler flag, the project compile/link flag and link library
- * should be manual modified. The library thirdparty/CMSIS/Lib/GCC/libarm_cortexM4lf_math.a is used for
- * -mfloat-abi=hard configration.
- *
- * __CORTEX_SC is not defined for cortex-m0+, and may cause compiler warning, so the include file
- * thirdparty/CMSIS/Include/core_cmInstr.h was modified to void such warning.
- * Modified from:
- * #if (__CORTEX_M >= 0x03) || (__CORTEX_SC >= 300)
- * to:
- * #if (__CORTEX_M >= 0x03) || ((defined(__CORTEX_SC)) && (__CORTEX_SC >= 300))
- *
- */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/CMSIS_END_USER_LICENCE_AGREEMENT.pdf b/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/CMSIS_END_USER_LICENCE_AGREEMENT.pdf
deleted file mode 100644
index c67c867..0000000
Binary files a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/CMSIS_END_USER_LICENCE_AGREEMENT.pdf and /dev/null differ
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Include/arm_math.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Include/arm_math.h
deleted file mode 100644
index ea9dd26..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Include/arm_math.h
+++ /dev/null
@@ -1,7157 +0,0 @@
-/******************************************************************************
- * @file arm_math.h
- * @brief Public header file for CMSIS DSP LibraryU
- * @version V1.5.3
- * @date 10. January 2018
- ******************************************************************************/
-/*
- * Copyright (c) 2010-2018 Arm Limited or its affiliates. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- \mainpage CMSIS DSP Software Library
- *
- * Introduction
- * ------------
- *
- * This user manual describes the CMSIS DSP software library,
- * a suite of common signal processing functions for use on Cortex-M processor based devices.
- *
- * The library is divided into a number of functions each covering a specific category:
- * - Basic math functions
- * - Fast math functions
- * - Complex math functions
- * - Filters
- * - Matrix functions
- * - Transforms
- * - Motor control functions
- * - Statistical functions
- * - Support functions
- * - Interpolation functions
- *
- * The library has separate functions for operating on 8-bit integers, 16-bit integers,
- * 32-bit integer and 32-bit floating-point values.
- *
- * Using the Library
- * ------------
- *
- * The library installer contains prebuilt versions of the libraries in the Lib folder.
- * - arm_cortexM7lfdp_math.lib (Cortex-M7, Little endian, Double Precision Floating Point Unit)
- * - arm_cortexM7bfdp_math.lib (Cortex-M7, Big endian, Double Precision Floating Point Unit)
- * - arm_cortexM7lfsp_math.lib (Cortex-M7, Little endian, Single Precision Floating Point Unit)
- * - arm_cortexM7bfsp_math.lib (Cortex-M7, Big endian and Single Precision Floating Point Unit on)
- * - arm_cortexM7l_math.lib (Cortex-M7, Little endian)
- * - arm_cortexM7b_math.lib (Cortex-M7, Big endian)
- * - arm_cortexM4lf_math.lib (Cortex-M4, Little endian, Floating Point Unit)
- * - arm_cortexM4bf_math.lib (Cortex-M4, Big endian, Floating Point Unit)
- * - arm_cortexM4l_math.lib (Cortex-M4, Little endian)
- * - arm_cortexM4b_math.lib (Cortex-M4, Big endian)
- * - arm_cortexM3l_math.lib (Cortex-M3, Little endian)
- * - arm_cortexM3b_math.lib (Cortex-M3, Big endian)
- * - arm_cortexM0l_math.lib (Cortex-M0 / Cortex-M0+, Little endian)
- * - arm_cortexM0b_math.lib (Cortex-M0 / Cortex-M0+, Big endian)
- * - arm_ARMv8MBLl_math.lib (Armv8-M Baseline, Little endian)
- * - arm_ARMv8MMLl_math.lib (Armv8-M Mainline, Little endian)
- * - arm_ARMv8MMLlfsp_math.lib (Armv8-M Mainline, Little endian, Single Precision Floating Point Unit)
- * - arm_ARMv8MMLld_math.lib (Armv8-M Mainline, Little endian, DSP instructions)
- * - arm_ARMv8MMLldfsp_math.lib (Armv8-M Mainline, Little endian, DSP instructions, Single Precision Floating Point Unit)
- *
- * The library functions are declared in the public file arm_math.h which is placed in the Include folder.
- * Simply include this file and link the appropriate library in the application and begin calling the library functions. The Library supports single
- * public header file arm_math.h for Cortex-M cores with little endian and big endian. Same header file will be used for floating point unit(FPU) variants.
- * Define the appropriate preprocessor macro ARM_MATH_CM7 or ARM_MATH_CM4 or ARM_MATH_CM3 or
- * ARM_MATH_CM0 or ARM_MATH_CM0PLUS depending on the target processor in the application.
- * For Armv8-M cores define preprocessor macro ARM_MATH_ARMV8MBL or ARM_MATH_ARMV8MML.
- * Set preprocessor macro __DSP_PRESENT if Armv8-M Mainline core supports DSP instructions.
- *
- *
- * Examples
- * --------
- *
- * The library ships with a number of examples which demonstrate how to use the library functions.
- *
- * Toolchain Support
- * ------------
- *
- * The library has been developed and tested with MDK version 5.14.0.0
- * The library is being tested in GCC and IAR toolchains and updates on this activity will be made available shortly.
- *
- * Building the Library
- * ------------
- *
- * The library installer contains a project file to rebuild libraries on MDK toolchain in the CMSIS\\DSP_Lib\\Source\\ARM folder.
- * - arm_cortexM_math.uvprojx
- *
- *
- * The libraries can be built by opening the arm_cortexM_math.uvprojx project in MDK-ARM, selecting a specific target, and defining the optional preprocessor macros detailed above.
- *
- * Preprocessor Macros
- * ------------
- *
- * Each library project have different preprocessor macros.
- *
- * - UNALIGNED_SUPPORT_DISABLE:
- *
- * Define macro UNALIGNED_SUPPORT_DISABLE, If the silicon does not support unaligned memory access
- *
- * - ARM_MATH_BIG_ENDIAN:
- *
- * Define macro ARM_MATH_BIG_ENDIAN to build the library for big endian targets. By default library builds for little endian targets.
- *
- * - ARM_MATH_MATRIX_CHECK:
- *
- * Define macro ARM_MATH_MATRIX_CHECK for checking on the input and output sizes of matrices
- *
- * - ARM_MATH_ROUNDING:
- *
- * Define macro ARM_MATH_ROUNDING for rounding on support functions
- *
- * - ARM_MATH_CMx:
- *
- * Define macro ARM_MATH_CM4 for building the library on Cortex-M4 target, ARM_MATH_CM3 for building library on Cortex-M3 target
- * and ARM_MATH_CM0 for building library on Cortex-M0 target, ARM_MATH_CM0PLUS for building library on Cortex-M0+ target, and
- * ARM_MATH_CM7 for building the library on cortex-M7.
- *
- * - ARM_MATH_ARMV8MxL:
- *
- * Define macro ARM_MATH_ARMV8MBL for building the library on Armv8-M Baseline target, ARM_MATH_ARMV8MML for building library
- * on Armv8-M Mainline target.
- *
- * - __FPU_PRESENT:
- *
- * Initialize macro __FPU_PRESENT = 1 when building on FPU supported Targets. Enable this macro for floating point libraries.
- *
- * - __DSP_PRESENT:
- *
- * Initialize macro __DSP_PRESENT = 1 when Armv8-M Mainline core supports DSP instructions.
- *
- *
- * CMSIS-DSP in ARM::CMSIS Pack
- * -----------------------------
- *
- * The following files relevant to CMSIS-DSP are present in the ARM::CMSIS Pack directories:
- * |File/Folder |Content |
- * |------------------------------|------------------------------------------------------------------------|
- * |\b CMSIS\\Documentation\\DSP | This documentation |
- * |\b CMSIS\\DSP_Lib | Software license agreement (license.txt) |
- * |\b CMSIS\\DSP_Lib\\Examples | Example projects demonstrating the usage of the library functions |
- * |\b CMSIS\\DSP_Lib\\Source | Source files for rebuilding the library |
- *
- *
- * Revision History of CMSIS-DSP
- * ------------
- * Please refer to \ref ChangeLog_pg.
- *
- * Copyright Notice
- * ------------
- *
- * Copyright (C) 2010-2015 Arm Limited. All rights reserved.
- */
-
-
-/**
- * @defgroup groupMath Basic Math Functions
- */
-
-/**
- * @defgroup groupFastMath Fast Math Functions
- * This set of functions provides a fast approximation to sine, cosine, and square root.
- * As compared to most of the other functions in the CMSIS math library, the fast math functions
- * operate on individual values and not arrays.
- * There are separate functions for Q15, Q31, and floating-point data.
- *
- */
-
-/**
- * @defgroup groupCmplxMath Complex Math Functions
- * This set of functions operates on complex data vectors.
- * The data in the complex arrays is stored in an interleaved fashion
- * (real, imag, real, imag, ...).
- * In the API functions, the number of samples in a complex array refers
- * to the number of complex values; the array contains twice this number of
- * real values.
- */
-
-/**
- * @defgroup groupFilters Filtering Functions
- */
-
-/**
- * @defgroup groupMatrix Matrix Functions
- *
- * This set of functions provides basic matrix math operations.
- * The functions operate on matrix data structures. For example,
- * the type
- * definition for the floating-point matrix structure is shown
- * below:
- *
- * typedef struct
- * {
- * uint16_t numRows; // number of rows of the matrix.
- * uint16_t numCols; // number of columns of the matrix.
- * float32_t *pData; // points to the data of the matrix.
- * } arm_matrix_instance_f32;
- *
- * There are similar definitions for Q15 and Q31 data types.
- *
- * The structure specifies the size of the matrix and then points to
- * an array of data. The array is of size numRows X numCols
- * and the values are arranged in row order. That is, the
- * matrix element (i, j) is stored at:
- *
- * pData[i*numCols + j]
- *
- *
- * \par Init Functions
- * There is an associated initialization function for each type of matrix
- * data structure.
- * The initialization function sets the values of the internal structure fields.
- * Refer to the function arm_mat_init_f32(), arm_mat_init_q31()
- * and arm_mat_init_q15() for floating-point, Q31 and Q15 types, respectively.
- *
- * \par
- * Use of the initialization function is optional. However, if initialization function is used
- * then the instance structure cannot be placed into a const data section.
- * To place the instance structure in a const data
- * section, manually initialize the data structure. For example:
- *
- * arm_matrix_instance_f32 S = {nRows, nColumns, pData};
- * arm_matrix_instance_q31 S = {nRows, nColumns, pData};
- * arm_matrix_instance_q15 S = {nRows, nColumns, pData};
- *
- * where nRows specifies the number of rows, nColumns
- * specifies the number of columns, and pData points to the
- * data array.
- *
- * \par Size Checking
- * By default all of the matrix functions perform size checking on the input and
- * output matrices. For example, the matrix addition function verifies that the
- * two input matrices and the output matrix all have the same number of rows and
- * columns. If the size check fails the functions return:
- *
- * ARM_MATH_SIZE_MISMATCH
- *
- * Otherwise the functions return
- *
- * ARM_MATH_SUCCESS
- *
- * There is some overhead associated with this matrix size checking.
- * The matrix size checking is enabled via the \#define
- *
- * ARM_MATH_MATRIX_CHECK
- *
- * within the library project settings. By default this macro is defined
- * and size checking is enabled. By changing the project settings and
- * undefining this macro size checking is eliminated and the functions
- * run a bit faster. With size checking disabled the functions always
- * return ARM_MATH_SUCCESS.
- */
-
-/**
- * @defgroup groupTransforms Transform Functions
- */
-
-/**
- * @defgroup groupController Controller Functions
- */
-
-/**
- * @defgroup groupStats Statistics Functions
- */
-/**
- * @defgroup groupSupport Support Functions
- */
-
-/**
- * @defgroup groupInterpolation Interpolation Functions
- * These functions perform 1- and 2-dimensional interpolation of data.
- * Linear interpolation is used for 1-dimensional data and
- * bilinear interpolation is used for 2-dimensional data.
- */
-
-/**
- * @defgroup groupExamples Examples
- */
-#ifndef _ARM_MATH_H
-#define _ARM_MATH_H
-
-/* Compiler specific diagnostic adjustment */
-#if defined ( __CC_ARM )
-
-#elif defined ( __ARMCC_VERSION ) && ( __ARMCC_VERSION >= 6010050 )
-
-#elif defined ( __GNUC__ )
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wsign-conversion"
-#pragma GCC diagnostic ignored "-Wconversion"
-#pragma GCC diagnostic ignored "-Wunused-parameter"
-
-#elif defined ( __ICCARM__ )
-
-#elif defined ( __TI_ARM__ )
-
-#elif defined ( __CSMC__ )
-
-#elif defined ( __TASKING__ )
-
-#else
- #error Unknown compiler
-#endif
-
-
-#define __CMSIS_GENERIC /* disable NVIC and Systick functions */
-
-#if defined(ARM_MATH_CM7)
- #include "core_cm7.h"
- #define ARM_MATH_DSP
-#elif defined (ARM_MATH_CM4)
- #include "core_cm4.h"
- #define ARM_MATH_DSP
-#elif defined (ARM_MATH_CM3)
- #include "core_cm3.h"
-#elif defined (ARM_MATH_CM0)
- #include "core_cm0.h"
- #define ARM_MATH_CM0_FAMILY
-#elif defined (ARM_MATH_CM0PLUS)
- #include "core_cm0plus.h"
- #define ARM_MATH_CM0_FAMILY
-#elif defined (ARM_MATH_ARMV8MBL)
- #include "core_armv8mbl.h"
- #define ARM_MATH_CM0_FAMILY
-#elif defined (ARM_MATH_ARMV8MML)
- #include "core_armv8mml.h"
- #if (defined (__DSP_PRESENT) && (__DSP_PRESENT == 1))
- #define ARM_MATH_DSP
- #endif
-#else
- #error "Define according the used Cortex core ARM_MATH_CM7, ARM_MATH_CM4, ARM_MATH_CM3, ARM_MATH_CM0PLUS, ARM_MATH_CM0, ARM_MATH_ARMV8MBL, ARM_MATH_ARMV8MML"
-#endif
-
-#undef __CMSIS_GENERIC /* enable NVIC and Systick functions */
-#include "string.h"
-#include "math.h"
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-
- /**
- * @brief Macros required for reciprocal calculation in Normalized LMS
- */
-
-#define DELTA_Q31 (0x100)
-#define DELTA_Q15 0x5
-#define INDEX_MASK 0x0000003F
-#ifndef PI
- #define PI 3.14159265358979f
-#endif
-
- /**
- * @brief Macros required for SINE and COSINE Fast math approximations
- */
-
-#define FAST_MATH_TABLE_SIZE 512
-#define FAST_MATH_Q31_SHIFT (32 - 10)
-#define FAST_MATH_Q15_SHIFT (16 - 10)
-#define CONTROLLER_Q31_SHIFT (32 - 9)
-#define TABLE_SPACING_Q31 0x400000
-#define TABLE_SPACING_Q15 0x80
-
- /**
- * @brief Macros required for SINE and COSINE Controller functions
- */
- /* 1.31(q31) Fixed value of 2/360 */
- /* -1 to +1 is divided into 360 values so total spacing is (2/360) */
-#define INPUT_SPACING 0xB60B61
-
- /**
- * @brief Macro for Unaligned Support
- */
-#ifndef UNALIGNED_SUPPORT_DISABLE
- #define ALIGN4
-#else
- #if defined (__GNUC__)
- #define ALIGN4 __attribute__((aligned(4)))
- #else
- #define ALIGN4 __align(4)
- #endif
-#endif /* #ifndef UNALIGNED_SUPPORT_DISABLE */
-
- /**
- * @brief Error status returned by some functions in the library.
- */
-
- typedef enum
- {
- ARM_MATH_SUCCESS = 0, /**< No error */
- ARM_MATH_ARGUMENT_ERROR = -1, /**< One or more arguments are incorrect */
- ARM_MATH_LENGTH_ERROR = -2, /**< Length of data buffer is incorrect */
- ARM_MATH_SIZE_MISMATCH = -3, /**< Size of matrices is not compatible with the operation. */
- ARM_MATH_NANINF = -4, /**< Not-a-number (NaN) or infinity is generated */
- ARM_MATH_SINGULAR = -5, /**< Generated by matrix inversion if the input matrix is singular and cannot be inverted. */
- ARM_MATH_TEST_FAILURE = -6 /**< Test Failed */
- } arm_status;
-
- /**
- * @brief 8-bit fractional data type in 1.7 format.
- */
- typedef int8_t q7_t;
-
- /**
- * @brief 16-bit fractional data type in 1.15 format.
- */
- typedef int16_t q15_t;
-
- /**
- * @brief 32-bit fractional data type in 1.31 format.
- */
- typedef int32_t q31_t;
-
- /**
- * @brief 64-bit fractional data type in 1.63 format.
- */
- typedef int64_t q63_t;
-
- /**
- * @brief 32-bit floating-point type definition.
- */
- typedef float float32_t;
-
- /**
- * @brief 64-bit floating-point type definition.
- */
- typedef double float64_t;
-
- /**
- * @brief definition to read/write two 16 bit values.
- */
-#if defined ( __CC_ARM )
- #define __SIMD32_TYPE int32_t __packed
- #define CMSIS_UNUSED __attribute__((unused))
- #define CMSIS_INLINE __attribute__((always_inline))
-
-#elif defined ( __ARMCC_VERSION ) && ( __ARMCC_VERSION >= 6010050 )
- #define __SIMD32_TYPE int32_t
- #define CMSIS_UNUSED __attribute__((unused))
- #define CMSIS_INLINE __attribute__((always_inline))
-
-#elif defined ( __GNUC__ )
- #define __SIMD32_TYPE int32_t
- #define CMSIS_UNUSED __attribute__((unused))
- #define CMSIS_INLINE __attribute__((always_inline))
-
-#elif defined ( __ICCARM__ )
- #define __SIMD32_TYPE int32_t __packed
- #define CMSIS_UNUSED
- #define CMSIS_INLINE
-
-#elif defined ( __TI_ARM__ )
- #define __SIMD32_TYPE int32_t
- #define CMSIS_UNUSED __attribute__((unused))
- #define CMSIS_INLINE
-
-#elif defined ( __CSMC__ )
- #define __SIMD32_TYPE int32_t
- #define CMSIS_UNUSED
- #define CMSIS_INLINE
-
-#elif defined ( __TASKING__ )
- #define __SIMD32_TYPE __unaligned int32_t
- #define CMSIS_UNUSED
- #define CMSIS_INLINE
-
-#else
- #error Unknown compiler
-#endif
-
-#define __SIMD32(addr) (*(__SIMD32_TYPE **) & (addr))
-#define __SIMD32_CONST(addr) ((__SIMD32_TYPE *)(addr))
-#define _SIMD32_OFFSET(addr) (*(__SIMD32_TYPE *) (addr))
-#define __SIMD64(addr) (*(int64_t **) & (addr))
-
-#if !defined (ARM_MATH_DSP)
- /**
- * @brief definition to pack two 16 bit values.
- */
-#define __PKHBT(ARG1, ARG2, ARG3) ( (((int32_t)(ARG1) << 0) & (int32_t)0x0000FFFF) | \
- (((int32_t)(ARG2) << ARG3) & (int32_t)0xFFFF0000) )
-#define __PKHTB(ARG1, ARG2, ARG3) ( (((int32_t)(ARG1) << 0) & (int32_t)0xFFFF0000) | \
- (((int32_t)(ARG2) >> ARG3) & (int32_t)0x0000FFFF) )
-
-#endif /* !defined (ARM_MATH_DSP) */
-
- /**
- * @brief definition to pack four 8 bit values.
- */
-#ifndef ARM_MATH_BIG_ENDIAN
-
-#define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v0) << 0) & (int32_t)0x000000FF) | \
- (((int32_t)(v1) << 8) & (int32_t)0x0000FF00) | \
- (((int32_t)(v2) << 16) & (int32_t)0x00FF0000) | \
- (((int32_t)(v3) << 24) & (int32_t)0xFF000000) )
-#else
-
-#define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v3) << 0) & (int32_t)0x000000FF) | \
- (((int32_t)(v2) << 8) & (int32_t)0x0000FF00) | \
- (((int32_t)(v1) << 16) & (int32_t)0x00FF0000) | \
- (((int32_t)(v0) << 24) & (int32_t)0xFF000000) )
-
-#endif
-
-
- /**
- * @brief Clips Q63 to Q31 values.
- */
- CMSIS_INLINE __STATIC_INLINE q31_t clip_q63_to_q31(
- q63_t x)
- {
- return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ?
- ((0x7FFFFFFF ^ ((q31_t) (x >> 63)))) : (q31_t) x;
- }
-
- /**
- * @brief Clips Q63 to Q15 values.
- */
- CMSIS_INLINE __STATIC_INLINE q15_t clip_q63_to_q15(
- q63_t x)
- {
- return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ?
- ((0x7FFF ^ ((q15_t) (x >> 63)))) : (q15_t) (x >> 15);
- }
-
- /**
- * @brief Clips Q31 to Q7 values.
- */
- CMSIS_INLINE __STATIC_INLINE q7_t clip_q31_to_q7(
- q31_t x)
- {
- return ((q31_t) (x >> 24) != ((q31_t) x >> 23)) ?
- ((0x7F ^ ((q7_t) (x >> 31)))) : (q7_t) x;
- }
-
- /**
- * @brief Clips Q31 to Q15 values.
- */
- CMSIS_INLINE __STATIC_INLINE q15_t clip_q31_to_q15(
- q31_t x)
- {
- return ((q31_t) (x >> 16) != ((q31_t) x >> 15)) ?
- ((0x7FFF ^ ((q15_t) (x >> 31)))) : (q15_t) x;
- }
-
- /**
- * @brief Multiplies 32 X 64 and returns 32 bit result in 2.30 format.
- */
-
- CMSIS_INLINE __STATIC_INLINE q63_t mult32x64(
- q63_t x,
- q31_t y)
- {
- return ((((q63_t) (x & 0x00000000FFFFFFFF) * y) >> 32) +
- (((q63_t) (x >> 32) * y)));
- }
-
- /**
- * @brief Function to Calculates 1/in (reciprocal) value of Q31 Data type.
- */
-
- CMSIS_INLINE __STATIC_INLINE uint32_t arm_recip_q31(
- q31_t in,
- q31_t * dst,
- q31_t * pRecipTable)
- {
- q31_t out;
- uint32_t tempVal;
- uint32_t index, i;
- uint32_t signBits;
-
- if (in > 0)
- {
- signBits = ((uint32_t) (__CLZ( in) - 1));
- }
- else
- {
- signBits = ((uint32_t) (__CLZ(-in) - 1));
- }
-
- /* Convert input sample to 1.31 format */
- in = (in << signBits);
-
- /* calculation of index for initial approximated Val */
- index = (uint32_t)(in >> 24);
- index = (index & INDEX_MASK);
-
- /* 1.31 with exp 1 */
- out = pRecipTable[index];
-
- /* calculation of reciprocal value */
- /* running approximation for two iterations */
- for (i = 0U; i < 2U; i++)
- {
- tempVal = (uint32_t) (((q63_t) in * out) >> 31);
- tempVal = 0x7FFFFFFFu - tempVal;
- /* 1.31 with exp 1 */
- /* out = (q31_t) (((q63_t) out * tempVal) >> 30); */
- out = clip_q63_to_q31(((q63_t) out * tempVal) >> 30);
- }
-
- /* write output */
- *dst = out;
-
- /* return num of signbits of out = 1/in value */
- return (signBits + 1U);
- }
-
-
- /**
- * @brief Function to Calculates 1/in (reciprocal) value of Q15 Data type.
- */
- CMSIS_INLINE __STATIC_INLINE uint32_t arm_recip_q15(
- q15_t in,
- q15_t * dst,
- q15_t * pRecipTable)
- {
- q15_t out = 0;
- uint32_t tempVal = 0;
- uint32_t index = 0, i = 0;
- uint32_t signBits = 0;
-
- if (in > 0)
- {
- signBits = ((uint32_t)(__CLZ( in) - 17));
- }
- else
- {
- signBits = ((uint32_t)(__CLZ(-in) - 17));
- }
-
- /* Convert input sample to 1.15 format */
- in = (in << signBits);
-
- /* calculation of index for initial approximated Val */
- index = (uint32_t)(in >> 8);
- index = (index & INDEX_MASK);
-
- /* 1.15 with exp 1 */
- out = pRecipTable[index];
-
- /* calculation of reciprocal value */
- /* running approximation for two iterations */
- for (i = 0U; i < 2U; i++)
- {
- tempVal = (uint32_t) (((q31_t) in * out) >> 15);
- tempVal = 0x7FFFu - tempVal;
- /* 1.15 with exp 1 */
- out = (q15_t) (((q31_t) out * tempVal) >> 14);
- /* out = clip_q31_to_q15(((q31_t) out * tempVal) >> 14); */
- }
-
- /* write output */
- *dst = out;
-
- /* return num of signbits of out = 1/in value */
- return (signBits + 1);
- }
-
-
-/*
- * @brief C custom defined intrinsic function for M3 and M0 processors
- */
-#if !defined (ARM_MATH_DSP)
-
- /*
- * @brief C custom defined QADD8 for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE uint32_t __QADD8(
- uint32_t x,
- uint32_t y)
- {
- q31_t r, s, t, u;
-
- r = __SSAT(((((q31_t)x << 24) >> 24) + (((q31_t)y << 24) >> 24)), 8) & (int32_t)0x000000FF;
- s = __SSAT(((((q31_t)x << 16) >> 24) + (((q31_t)y << 16) >> 24)), 8) & (int32_t)0x000000FF;
- t = __SSAT(((((q31_t)x << 8) >> 24) + (((q31_t)y << 8) >> 24)), 8) & (int32_t)0x000000FF;
- u = __SSAT(((((q31_t)x ) >> 24) + (((q31_t)y ) >> 24)), 8) & (int32_t)0x000000FF;
-
- return ((uint32_t)((u << 24) | (t << 16) | (s << 8) | (r )));
- }
-
-
- /*
- * @brief C custom defined QSUB8 for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE uint32_t __QSUB8(
- uint32_t x,
- uint32_t y)
- {
- q31_t r, s, t, u;
-
- r = __SSAT(((((q31_t)x << 24) >> 24) - (((q31_t)y << 24) >> 24)), 8) & (int32_t)0x000000FF;
- s = __SSAT(((((q31_t)x << 16) >> 24) - (((q31_t)y << 16) >> 24)), 8) & (int32_t)0x000000FF;
- t = __SSAT(((((q31_t)x << 8) >> 24) - (((q31_t)y << 8) >> 24)), 8) & (int32_t)0x000000FF;
- u = __SSAT(((((q31_t)x ) >> 24) - (((q31_t)y ) >> 24)), 8) & (int32_t)0x000000FF;
-
- return ((uint32_t)((u << 24) | (t << 16) | (s << 8) | (r )));
- }
-
-
- /*
- * @brief C custom defined QADD16 for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE uint32_t __QADD16(
- uint32_t x,
- uint32_t y)
- {
-/* q31_t r, s; without initialisation 'arm_offset_q15 test' fails but 'intrinsic' tests pass! for armCC */
- q31_t r = 0, s = 0;
-
- r = __SSAT(((((q31_t)x << 16) >> 16) + (((q31_t)y << 16) >> 16)), 16) & (int32_t)0x0000FFFF;
- s = __SSAT(((((q31_t)x ) >> 16) + (((q31_t)y ) >> 16)), 16) & (int32_t)0x0000FFFF;
-
- return ((uint32_t)((s << 16) | (r )));
- }
-
-
- /*
- * @brief C custom defined SHADD16 for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE uint32_t __SHADD16(
- uint32_t x,
- uint32_t y)
- {
- q31_t r, s;
-
- r = (((((q31_t)x << 16) >> 16) + (((q31_t)y << 16) >> 16)) >> 1) & (int32_t)0x0000FFFF;
- s = (((((q31_t)x ) >> 16) + (((q31_t)y ) >> 16)) >> 1) & (int32_t)0x0000FFFF;
-
- return ((uint32_t)((s << 16) | (r )));
- }
-
-
- /*
- * @brief C custom defined QSUB16 for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE uint32_t __QSUB16(
- uint32_t x,
- uint32_t y)
- {
- q31_t r, s;
-
- r = __SSAT(((((q31_t)x << 16) >> 16) - (((q31_t)y << 16) >> 16)), 16) & (int32_t)0x0000FFFF;
- s = __SSAT(((((q31_t)x ) >> 16) - (((q31_t)y ) >> 16)), 16) & (int32_t)0x0000FFFF;
-
- return ((uint32_t)((s << 16) | (r )));
- }
-
-
- /*
- * @brief C custom defined SHSUB16 for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE uint32_t __SHSUB16(
- uint32_t x,
- uint32_t y)
- {
- q31_t r, s;
-
- r = (((((q31_t)x << 16) >> 16) - (((q31_t)y << 16) >> 16)) >> 1) & (int32_t)0x0000FFFF;
- s = (((((q31_t)x ) >> 16) - (((q31_t)y ) >> 16)) >> 1) & (int32_t)0x0000FFFF;
-
- return ((uint32_t)((s << 16) | (r )));
- }
-
-
- /*
- * @brief C custom defined QASX for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE uint32_t __QASX(
- uint32_t x,
- uint32_t y)
- {
- q31_t r, s;
-
- r = __SSAT(((((q31_t)x << 16) >> 16) - (((q31_t)y ) >> 16)), 16) & (int32_t)0x0000FFFF;
- s = __SSAT(((((q31_t)x ) >> 16) + (((q31_t)y << 16) >> 16)), 16) & (int32_t)0x0000FFFF;
-
- return ((uint32_t)((s << 16) | (r )));
- }
-
-
- /*
- * @brief C custom defined SHASX for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE uint32_t __SHASX(
- uint32_t x,
- uint32_t y)
- {
- q31_t r, s;
-
- r = (((((q31_t)x << 16) >> 16) - (((q31_t)y ) >> 16)) >> 1) & (int32_t)0x0000FFFF;
- s = (((((q31_t)x ) >> 16) + (((q31_t)y << 16) >> 16)) >> 1) & (int32_t)0x0000FFFF;
-
- return ((uint32_t)((s << 16) | (r )));
- }
-
-
- /*
- * @brief C custom defined QSAX for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE uint32_t __QSAX(
- uint32_t x,
- uint32_t y)
- {
- q31_t r, s;
-
- r = __SSAT(((((q31_t)x << 16) >> 16) + (((q31_t)y ) >> 16)), 16) & (int32_t)0x0000FFFF;
- s = __SSAT(((((q31_t)x ) >> 16) - (((q31_t)y << 16) >> 16)), 16) & (int32_t)0x0000FFFF;
-
- return ((uint32_t)((s << 16) | (r )));
- }
-
-
- /*
- * @brief C custom defined SHSAX for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE uint32_t __SHSAX(
- uint32_t x,
- uint32_t y)
- {
- q31_t r, s;
-
- r = (((((q31_t)x << 16) >> 16) + (((q31_t)y ) >> 16)) >> 1) & (int32_t)0x0000FFFF;
- s = (((((q31_t)x ) >> 16) - (((q31_t)y << 16) >> 16)) >> 1) & (int32_t)0x0000FFFF;
-
- return ((uint32_t)((s << 16) | (r )));
- }
-
-
- /*
- * @brief C custom defined SMUSDX for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE uint32_t __SMUSDX(
- uint32_t x,
- uint32_t y)
- {
- return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) -
- ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) ));
- }
-
- /*
- * @brief C custom defined SMUADX for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE uint32_t __SMUADX(
- uint32_t x,
- uint32_t y)
- {
- return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) +
- ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) ));
- }
-
-
- /*
- * @brief C custom defined QADD for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE int32_t __QADD(
- int32_t x,
- int32_t y)
- {
- return ((int32_t)(clip_q63_to_q31((q63_t)x + (q31_t)y)));
- }
-
-
- /*
- * @brief C custom defined QSUB for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE int32_t __QSUB(
- int32_t x,
- int32_t y)
- {
- return ((int32_t)(clip_q63_to_q31((q63_t)x - (q31_t)y)));
- }
-
-
- /*
- * @brief C custom defined SMLAD for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE uint32_t __SMLAD(
- uint32_t x,
- uint32_t y,
- uint32_t sum)
- {
- return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) +
- ((((q31_t)x ) >> 16) * (((q31_t)y ) >> 16)) +
- ( ((q31_t)sum ) ) ));
- }
-
-
- /*
- * @brief C custom defined SMLADX for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE uint32_t __SMLADX(
- uint32_t x,
- uint32_t y,
- uint32_t sum)
- {
- return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) +
- ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) +
- ( ((q31_t)sum ) ) ));
- }
-
-
- /*
- * @brief C custom defined SMLSDX for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE uint32_t __SMLSDX(
- uint32_t x,
- uint32_t y,
- uint32_t sum)
- {
- return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) -
- ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) +
- ( ((q31_t)sum ) ) ));
- }
-
-
- /*
- * @brief C custom defined SMLALD for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE uint64_t __SMLALD(
- uint32_t x,
- uint32_t y,
- uint64_t sum)
- {
-/* return (sum + ((q15_t) (x >> 16) * (q15_t) (y >> 16)) + ((q15_t) x * (q15_t) y)); */
- return ((uint64_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) +
- ((((q31_t)x ) >> 16) * (((q31_t)y ) >> 16)) +
- ( ((q63_t)sum ) ) ));
- }
-
-
- /*
- * @brief C custom defined SMLALDX for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE uint64_t __SMLALDX(
- uint32_t x,
- uint32_t y,
- uint64_t sum)
- {
-/* return (sum + ((q15_t) (x >> 16) * (q15_t) y)) + ((q15_t) x * (q15_t) (y >> 16)); */
- return ((uint64_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) +
- ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) +
- ( ((q63_t)sum ) ) ));
- }
-
-
- /*
- * @brief C custom defined SMUAD for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE uint32_t __SMUAD(
- uint32_t x,
- uint32_t y)
- {
- return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) +
- ((((q31_t)x ) >> 16) * (((q31_t)y ) >> 16)) ));
- }
-
-
- /*
- * @brief C custom defined SMUSD for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE uint32_t __SMUSD(
- uint32_t x,
- uint32_t y)
- {
- return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) -
- ((((q31_t)x ) >> 16) * (((q31_t)y ) >> 16)) ));
- }
-
-
- /*
- * @brief C custom defined SXTB16 for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE uint32_t __SXTB16(
- uint32_t x)
- {
- return ((uint32_t)(((((q31_t)x << 24) >> 24) & (q31_t)0x0000FFFF) |
- ((((q31_t)x << 8) >> 8) & (q31_t)0xFFFF0000) ));
- }
-
- /*
- * @brief C custom defined SMMLA for M3 and M0 processors
- */
- CMSIS_INLINE __STATIC_INLINE int32_t __SMMLA(
- int32_t x,
- int32_t y,
- int32_t sum)
- {
- return (sum + (int32_t) (((int64_t) x * y) >> 32));
- }
-
-#endif /* !defined (ARM_MATH_DSP) */
-
-
- /**
- * @brief Instance structure for the Q7 FIR filter.
- */
- typedef struct
- {
- uint16_t numTaps; /**< number of filter coefficients in the filter. */
- q7_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
- q7_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/
- } arm_fir_instance_q7;
-
- /**
- * @brief Instance structure for the Q15 FIR filter.
- */
- typedef struct
- {
- uint16_t numTaps; /**< number of filter coefficients in the filter. */
- q15_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
- q15_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/
- } arm_fir_instance_q15;
-
- /**
- * @brief Instance structure for the Q31 FIR filter.
- */
- typedef struct
- {
- uint16_t numTaps; /**< number of filter coefficients in the filter. */
- q31_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
- q31_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */
- } arm_fir_instance_q31;
-
- /**
- * @brief Instance structure for the floating-point FIR filter.
- */
- typedef struct
- {
- uint16_t numTaps; /**< number of filter coefficients in the filter. */
- float32_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
- float32_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */
- } arm_fir_instance_f32;
-
-
- /**
- * @brief Processing function for the Q7 FIR filter.
- * @param[in] S points to an instance of the Q7 FIR filter structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_fir_q7(
- const arm_fir_instance_q7 * S,
- q7_t * pSrc,
- q7_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the Q7 FIR filter.
- * @param[in,out] S points to an instance of the Q7 FIR structure.
- * @param[in] numTaps Number of filter coefficients in the filter.
- * @param[in] pCoeffs points to the filter coefficients.
- * @param[in] pState points to the state buffer.
- * @param[in] blockSize number of samples that are processed.
- */
- void arm_fir_init_q7(
- arm_fir_instance_q7 * S,
- uint16_t numTaps,
- q7_t * pCoeffs,
- q7_t * pState,
- uint32_t blockSize);
-
-
- /**
- * @brief Processing function for the Q15 FIR filter.
- * @param[in] S points to an instance of the Q15 FIR structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_fir_q15(
- const arm_fir_instance_q15 * S,
- q15_t * pSrc,
- q15_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Processing function for the fast Q15 FIR filter for Cortex-M3 and Cortex-M4.
- * @param[in] S points to an instance of the Q15 FIR filter structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_fir_fast_q15(
- const arm_fir_instance_q15 * S,
- q15_t * pSrc,
- q15_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the Q15 FIR filter.
- * @param[in,out] S points to an instance of the Q15 FIR filter structure.
- * @param[in] numTaps Number of filter coefficients in the filter. Must be even and greater than or equal to 4.
- * @param[in] pCoeffs points to the filter coefficients.
- * @param[in] pState points to the state buffer.
- * @param[in] blockSize number of samples that are processed at a time.
- * @return The function returns ARM_MATH_SUCCESS if initialization was successful or ARM_MATH_ARGUMENT_ERROR if
- * numTaps is not a supported value.
- */
- arm_status arm_fir_init_q15(
- arm_fir_instance_q15 * S,
- uint16_t numTaps,
- q15_t * pCoeffs,
- q15_t * pState,
- uint32_t blockSize);
-
-
- /**
- * @brief Processing function for the Q31 FIR filter.
- * @param[in] S points to an instance of the Q31 FIR filter structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_fir_q31(
- const arm_fir_instance_q31 * S,
- q31_t * pSrc,
- q31_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Processing function for the fast Q31 FIR filter for Cortex-M3 and Cortex-M4.
- * @param[in] S points to an instance of the Q31 FIR structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_fir_fast_q31(
- const arm_fir_instance_q31 * S,
- q31_t * pSrc,
- q31_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the Q31 FIR filter.
- * @param[in,out] S points to an instance of the Q31 FIR structure.
- * @param[in] numTaps Number of filter coefficients in the filter.
- * @param[in] pCoeffs points to the filter coefficients.
- * @param[in] pState points to the state buffer.
- * @param[in] blockSize number of samples that are processed at a time.
- */
- void arm_fir_init_q31(
- arm_fir_instance_q31 * S,
- uint16_t numTaps,
- q31_t * pCoeffs,
- q31_t * pState,
- uint32_t blockSize);
-
-
- /**
- * @brief Processing function for the floating-point FIR filter.
- * @param[in] S points to an instance of the floating-point FIR structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_fir_f32(
- const arm_fir_instance_f32 * S,
- float32_t * pSrc,
- float32_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the floating-point FIR filter.
- * @param[in,out] S points to an instance of the floating-point FIR filter structure.
- * @param[in] numTaps Number of filter coefficients in the filter.
- * @param[in] pCoeffs points to the filter coefficients.
- * @param[in] pState points to the state buffer.
- * @param[in] blockSize number of samples that are processed at a time.
- */
- void arm_fir_init_f32(
- arm_fir_instance_f32 * S,
- uint16_t numTaps,
- float32_t * pCoeffs,
- float32_t * pState,
- uint32_t blockSize);
-
-
- /**
- * @brief Instance structure for the Q15 Biquad cascade filter.
- */
- typedef struct
- {
- int8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */
- q15_t *pState; /**< Points to the array of state coefficients. The array is of length 4*numStages. */
- q15_t *pCoeffs; /**< Points to the array of coefficients. The array is of length 5*numStages. */
- int8_t postShift; /**< Additional shift, in bits, applied to each output sample. */
- } arm_biquad_casd_df1_inst_q15;
-
- /**
- * @brief Instance structure for the Q31 Biquad cascade filter.
- */
- typedef struct
- {
- uint32_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */
- q31_t *pState; /**< Points to the array of state coefficients. The array is of length 4*numStages. */
- q31_t *pCoeffs; /**< Points to the array of coefficients. The array is of length 5*numStages. */
- uint8_t postShift; /**< Additional shift, in bits, applied to each output sample. */
- } arm_biquad_casd_df1_inst_q31;
-
- /**
- * @brief Instance structure for the floating-point Biquad cascade filter.
- */
- typedef struct
- {
- uint32_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */
- float32_t *pState; /**< Points to the array of state coefficients. The array is of length 4*numStages. */
- float32_t *pCoeffs; /**< Points to the array of coefficients. The array is of length 5*numStages. */
- } arm_biquad_casd_df1_inst_f32;
-
-
- /**
- * @brief Processing function for the Q15 Biquad cascade filter.
- * @param[in] S points to an instance of the Q15 Biquad cascade structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_biquad_cascade_df1_q15(
- const arm_biquad_casd_df1_inst_q15 * S,
- q15_t * pSrc,
- q15_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the Q15 Biquad cascade filter.
- * @param[in,out] S points to an instance of the Q15 Biquad cascade structure.
- * @param[in] numStages number of 2nd order stages in the filter.
- * @param[in] pCoeffs points to the filter coefficients.
- * @param[in] pState points to the state buffer.
- * @param[in] postShift Shift to be applied to the output. Varies according to the coefficients format
- */
- void arm_biquad_cascade_df1_init_q15(
- arm_biquad_casd_df1_inst_q15 * S,
- uint8_t numStages,
- q15_t * pCoeffs,
- q15_t * pState,
- int8_t postShift);
-
-
- /**
- * @brief Fast but less precise processing function for the Q15 Biquad cascade filter for Cortex-M3 and Cortex-M4.
- * @param[in] S points to an instance of the Q15 Biquad cascade structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_biquad_cascade_df1_fast_q15(
- const arm_biquad_casd_df1_inst_q15 * S,
- q15_t * pSrc,
- q15_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Processing function for the Q31 Biquad cascade filter
- * @param[in] S points to an instance of the Q31 Biquad cascade structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_biquad_cascade_df1_q31(
- const arm_biquad_casd_df1_inst_q31 * S,
- q31_t * pSrc,
- q31_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Fast but less precise processing function for the Q31 Biquad cascade filter for Cortex-M3 and Cortex-M4.
- * @param[in] S points to an instance of the Q31 Biquad cascade structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_biquad_cascade_df1_fast_q31(
- const arm_biquad_casd_df1_inst_q31 * S,
- q31_t * pSrc,
- q31_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the Q31 Biquad cascade filter.
- * @param[in,out] S points to an instance of the Q31 Biquad cascade structure.
- * @param[in] numStages number of 2nd order stages in the filter.
- * @param[in] pCoeffs points to the filter coefficients.
- * @param[in] pState points to the state buffer.
- * @param[in] postShift Shift to be applied to the output. Varies according to the coefficients format
- */
- void arm_biquad_cascade_df1_init_q31(
- arm_biquad_casd_df1_inst_q31 * S,
- uint8_t numStages,
- q31_t * pCoeffs,
- q31_t * pState,
- int8_t postShift);
-
-
- /**
- * @brief Processing function for the floating-point Biquad cascade filter.
- * @param[in] S points to an instance of the floating-point Biquad cascade structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_biquad_cascade_df1_f32(
- const arm_biquad_casd_df1_inst_f32 * S,
- float32_t * pSrc,
- float32_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the floating-point Biquad cascade filter.
- * @param[in,out] S points to an instance of the floating-point Biquad cascade structure.
- * @param[in] numStages number of 2nd order stages in the filter.
- * @param[in] pCoeffs points to the filter coefficients.
- * @param[in] pState points to the state buffer.
- */
- void arm_biquad_cascade_df1_init_f32(
- arm_biquad_casd_df1_inst_f32 * S,
- uint8_t numStages,
- float32_t * pCoeffs,
- float32_t * pState);
-
-
- /**
- * @brief Instance structure for the floating-point matrix structure.
- */
- typedef struct
- {
- uint16_t numRows; /**< number of rows of the matrix. */
- uint16_t numCols; /**< number of columns of the matrix. */
- float32_t *pData; /**< points to the data of the matrix. */
- } arm_matrix_instance_f32;
-
-
- /**
- * @brief Instance structure for the floating-point matrix structure.
- */
- typedef struct
- {
- uint16_t numRows; /**< number of rows of the matrix. */
- uint16_t numCols; /**< number of columns of the matrix. */
- float64_t *pData; /**< points to the data of the matrix. */
- } arm_matrix_instance_f64;
-
- /**
- * @brief Instance structure for the Q15 matrix structure.
- */
- typedef struct
- {
- uint16_t numRows; /**< number of rows of the matrix. */
- uint16_t numCols; /**< number of columns of the matrix. */
- q15_t *pData; /**< points to the data of the matrix. */
- } arm_matrix_instance_q15;
-
- /**
- * @brief Instance structure for the Q31 matrix structure.
- */
- typedef struct
- {
- uint16_t numRows; /**< number of rows of the matrix. */
- uint16_t numCols; /**< number of columns of the matrix. */
- q31_t *pData; /**< points to the data of the matrix. */
- } arm_matrix_instance_q31;
-
-
- /**
- * @brief Floating-point matrix addition.
- * @param[in] pSrcA points to the first input matrix structure
- * @param[in] pSrcB points to the second input matrix structure
- * @param[out] pDst points to output matrix structure
- * @return The function returns either
- * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking.
- */
- arm_status arm_mat_add_f32(
- const arm_matrix_instance_f32 * pSrcA,
- const arm_matrix_instance_f32 * pSrcB,
- arm_matrix_instance_f32 * pDst);
-
-
- /**
- * @brief Q15 matrix addition.
- * @param[in] pSrcA points to the first input matrix structure
- * @param[in] pSrcB points to the second input matrix structure
- * @param[out] pDst points to output matrix structure
- * @return The function returns either
- * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking.
- */
- arm_status arm_mat_add_q15(
- const arm_matrix_instance_q15 * pSrcA,
- const arm_matrix_instance_q15 * pSrcB,
- arm_matrix_instance_q15 * pDst);
-
-
- /**
- * @brief Q31 matrix addition.
- * @param[in] pSrcA points to the first input matrix structure
- * @param[in] pSrcB points to the second input matrix structure
- * @param[out] pDst points to output matrix structure
- * @return The function returns either
- * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking.
- */
- arm_status arm_mat_add_q31(
- const arm_matrix_instance_q31 * pSrcA,
- const arm_matrix_instance_q31 * pSrcB,
- arm_matrix_instance_q31 * pDst);
-
-
- /**
- * @brief Floating-point, complex, matrix multiplication.
- * @param[in] pSrcA points to the first input matrix structure
- * @param[in] pSrcB points to the second input matrix structure
- * @param[out] pDst points to output matrix structure
- * @return The function returns either
- * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking.
- */
- arm_status arm_mat_cmplx_mult_f32(
- const arm_matrix_instance_f32 * pSrcA,
- const arm_matrix_instance_f32 * pSrcB,
- arm_matrix_instance_f32 * pDst);
-
-
- /**
- * @brief Q15, complex, matrix multiplication.
- * @param[in] pSrcA points to the first input matrix structure
- * @param[in] pSrcB points to the second input matrix structure
- * @param[out] pDst points to output matrix structure
- * @return The function returns either
- * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking.
- */
- arm_status arm_mat_cmplx_mult_q15(
- const arm_matrix_instance_q15 * pSrcA,
- const arm_matrix_instance_q15 * pSrcB,
- arm_matrix_instance_q15 * pDst,
- q15_t * pScratch);
-
-
- /**
- * @brief Q31, complex, matrix multiplication.
- * @param[in] pSrcA points to the first input matrix structure
- * @param[in] pSrcB points to the second input matrix structure
- * @param[out] pDst points to output matrix structure
- * @return The function returns either
- * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking.
- */
- arm_status arm_mat_cmplx_mult_q31(
- const arm_matrix_instance_q31 * pSrcA,
- const arm_matrix_instance_q31 * pSrcB,
- arm_matrix_instance_q31 * pDst);
-
-
- /**
- * @brief Floating-point matrix transpose.
- * @param[in] pSrc points to the input matrix
- * @param[out] pDst points to the output matrix
- * @return The function returns either ARM_MATH_SIZE_MISMATCH
- * or ARM_MATH_SUCCESS based on the outcome of size checking.
- */
- arm_status arm_mat_trans_f32(
- const arm_matrix_instance_f32 * pSrc,
- arm_matrix_instance_f32 * pDst);
-
-
- /**
- * @brief Q15 matrix transpose.
- * @param[in] pSrc points to the input matrix
- * @param[out] pDst points to the output matrix
- * @return The function returns either ARM_MATH_SIZE_MISMATCH
- * or ARM_MATH_SUCCESS based on the outcome of size checking.
- */
- arm_status arm_mat_trans_q15(
- const arm_matrix_instance_q15 * pSrc,
- arm_matrix_instance_q15 * pDst);
-
-
- /**
- * @brief Q31 matrix transpose.
- * @param[in] pSrc points to the input matrix
- * @param[out] pDst points to the output matrix
- * @return The function returns either ARM_MATH_SIZE_MISMATCH
- * or ARM_MATH_SUCCESS based on the outcome of size checking.
- */
- arm_status arm_mat_trans_q31(
- const arm_matrix_instance_q31 * pSrc,
- arm_matrix_instance_q31 * pDst);
-
-
- /**
- * @brief Floating-point matrix multiplication
- * @param[in] pSrcA points to the first input matrix structure
- * @param[in] pSrcB points to the second input matrix structure
- * @param[out] pDst points to output matrix structure
- * @return The function returns either
- * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking.
- */
- arm_status arm_mat_mult_f32(
- const arm_matrix_instance_f32 * pSrcA,
- const arm_matrix_instance_f32 * pSrcB,
- arm_matrix_instance_f32 * pDst);
-
-
- /**
- * @brief Q15 matrix multiplication
- * @param[in] pSrcA points to the first input matrix structure
- * @param[in] pSrcB points to the second input matrix structure
- * @param[out] pDst points to output matrix structure
- * @param[in] pState points to the array for storing intermediate results
- * @return The function returns either
- * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking.
- */
- arm_status arm_mat_mult_q15(
- const arm_matrix_instance_q15 * pSrcA,
- const arm_matrix_instance_q15 * pSrcB,
- arm_matrix_instance_q15 * pDst,
- q15_t * pState);
-
-
- /**
- * @brief Q15 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4
- * @param[in] pSrcA points to the first input matrix structure
- * @param[in] pSrcB points to the second input matrix structure
- * @param[out] pDst points to output matrix structure
- * @param[in] pState points to the array for storing intermediate results
- * @return The function returns either
- * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking.
- */
- arm_status arm_mat_mult_fast_q15(
- const arm_matrix_instance_q15 * pSrcA,
- const arm_matrix_instance_q15 * pSrcB,
- arm_matrix_instance_q15 * pDst,
- q15_t * pState);
-
-
- /**
- * @brief Q31 matrix multiplication
- * @param[in] pSrcA points to the first input matrix structure
- * @param[in] pSrcB points to the second input matrix structure
- * @param[out] pDst points to output matrix structure
- * @return The function returns either
- * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking.
- */
- arm_status arm_mat_mult_q31(
- const arm_matrix_instance_q31 * pSrcA,
- const arm_matrix_instance_q31 * pSrcB,
- arm_matrix_instance_q31 * pDst);
-
-
- /**
- * @brief Q31 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4
- * @param[in] pSrcA points to the first input matrix structure
- * @param[in] pSrcB points to the second input matrix structure
- * @param[out] pDst points to output matrix structure
- * @return The function returns either
- * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking.
- */
- arm_status arm_mat_mult_fast_q31(
- const arm_matrix_instance_q31 * pSrcA,
- const arm_matrix_instance_q31 * pSrcB,
- arm_matrix_instance_q31 * pDst);
-
-
- /**
- * @brief Floating-point matrix subtraction
- * @param[in] pSrcA points to the first input matrix structure
- * @param[in] pSrcB points to the second input matrix structure
- * @param[out] pDst points to output matrix structure
- * @return The function returns either
- * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking.
- */
- arm_status arm_mat_sub_f32(
- const arm_matrix_instance_f32 * pSrcA,
- const arm_matrix_instance_f32 * pSrcB,
- arm_matrix_instance_f32 * pDst);
-
-
- /**
- * @brief Q15 matrix subtraction
- * @param[in] pSrcA points to the first input matrix structure
- * @param[in] pSrcB points to the second input matrix structure
- * @param[out] pDst points to output matrix structure
- * @return The function returns either
- * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking.
- */
- arm_status arm_mat_sub_q15(
- const arm_matrix_instance_q15 * pSrcA,
- const arm_matrix_instance_q15 * pSrcB,
- arm_matrix_instance_q15 * pDst);
-
-
- /**
- * @brief Q31 matrix subtraction
- * @param[in] pSrcA points to the first input matrix structure
- * @param[in] pSrcB points to the second input matrix structure
- * @param[out] pDst points to output matrix structure
- * @return The function returns either
- * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking.
- */
- arm_status arm_mat_sub_q31(
- const arm_matrix_instance_q31 * pSrcA,
- const arm_matrix_instance_q31 * pSrcB,
- arm_matrix_instance_q31 * pDst);
-
-
- /**
- * @brief Floating-point matrix scaling.
- * @param[in] pSrc points to the input matrix
- * @param[in] scale scale factor
- * @param[out] pDst points to the output matrix
- * @return The function returns either
- * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking.
- */
- arm_status arm_mat_scale_f32(
- const arm_matrix_instance_f32 * pSrc,
- float32_t scale,
- arm_matrix_instance_f32 * pDst);
-
-
- /**
- * @brief Q15 matrix scaling.
- * @param[in] pSrc points to input matrix
- * @param[in] scaleFract fractional portion of the scale factor
- * @param[in] shift number of bits to shift the result by
- * @param[out] pDst points to output matrix
- * @return The function returns either
- * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking.
- */
- arm_status arm_mat_scale_q15(
- const arm_matrix_instance_q15 * pSrc,
- q15_t scaleFract,
- int32_t shift,
- arm_matrix_instance_q15 * pDst);
-
-
- /**
- * @brief Q31 matrix scaling.
- * @param[in] pSrc points to input matrix
- * @param[in] scaleFract fractional portion of the scale factor
- * @param[in] shift number of bits to shift the result by
- * @param[out] pDst points to output matrix structure
- * @return The function returns either
- * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking.
- */
- arm_status arm_mat_scale_q31(
- const arm_matrix_instance_q31 * pSrc,
- q31_t scaleFract,
- int32_t shift,
- arm_matrix_instance_q31 * pDst);
-
-
- /**
- * @brief Q31 matrix initialization.
- * @param[in,out] S points to an instance of the floating-point matrix structure.
- * @param[in] nRows number of rows in the matrix.
- * @param[in] nColumns number of columns in the matrix.
- * @param[in] pData points to the matrix data array.
- */
- void arm_mat_init_q31(
- arm_matrix_instance_q31 * S,
- uint16_t nRows,
- uint16_t nColumns,
- q31_t * pData);
-
-
- /**
- * @brief Q15 matrix initialization.
- * @param[in,out] S points to an instance of the floating-point matrix structure.
- * @param[in] nRows number of rows in the matrix.
- * @param[in] nColumns number of columns in the matrix.
- * @param[in] pData points to the matrix data array.
- */
- void arm_mat_init_q15(
- arm_matrix_instance_q15 * S,
- uint16_t nRows,
- uint16_t nColumns,
- q15_t * pData);
-
-
- /**
- * @brief Floating-point matrix initialization.
- * @param[in,out] S points to an instance of the floating-point matrix structure.
- * @param[in] nRows number of rows in the matrix.
- * @param[in] nColumns number of columns in the matrix.
- * @param[in] pData points to the matrix data array.
- */
- void arm_mat_init_f32(
- arm_matrix_instance_f32 * S,
- uint16_t nRows,
- uint16_t nColumns,
- float32_t * pData);
-
-
-
- /**
- * @brief Instance structure for the Q15 PID Control.
- */
- typedef struct
- {
- q15_t A0; /**< The derived gain, A0 = Kp + Ki + Kd . */
-#if !defined (ARM_MATH_DSP)
- q15_t A1;
- q15_t A2;
-#else
- q31_t A1; /**< The derived gain A1 = -Kp - 2Kd | Kd.*/
-#endif
- q15_t state[3]; /**< The state array of length 3. */
- q15_t Kp; /**< The proportional gain. */
- q15_t Ki; /**< The integral gain. */
- q15_t Kd; /**< The derivative gain. */
- } arm_pid_instance_q15;
-
- /**
- * @brief Instance structure for the Q31 PID Control.
- */
- typedef struct
- {
- q31_t A0; /**< The derived gain, A0 = Kp + Ki + Kd . */
- q31_t A1; /**< The derived gain, A1 = -Kp - 2Kd. */
- q31_t A2; /**< The derived gain, A2 = Kd . */
- q31_t state[3]; /**< The state array of length 3. */
- q31_t Kp; /**< The proportional gain. */
- q31_t Ki; /**< The integral gain. */
- q31_t Kd; /**< The derivative gain. */
- } arm_pid_instance_q31;
-
- /**
- * @brief Instance structure for the floating-point PID Control.
- */
- typedef struct
- {
- float32_t A0; /**< The derived gain, A0 = Kp + Ki + Kd . */
- float32_t A1; /**< The derived gain, A1 = -Kp - 2Kd. */
- float32_t A2; /**< The derived gain, A2 = Kd . */
- float32_t state[3]; /**< The state array of length 3. */
- float32_t Kp; /**< The proportional gain. */
- float32_t Ki; /**< The integral gain. */
- float32_t Kd; /**< The derivative gain. */
- } arm_pid_instance_f32;
-
-
-
- /**
- * @brief Initialization function for the floating-point PID Control.
- * @param[in,out] S points to an instance of the PID structure.
- * @param[in] resetStateFlag flag to reset the state. 0 = no change in state 1 = reset the state.
- */
- void arm_pid_init_f32(
- arm_pid_instance_f32 * S,
- int32_t resetStateFlag);
-
-
- /**
- * @brief Reset function for the floating-point PID Control.
- * @param[in,out] S is an instance of the floating-point PID Control structure
- */
- void arm_pid_reset_f32(
- arm_pid_instance_f32 * S);
-
-
- /**
- * @brief Initialization function for the Q31 PID Control.
- * @param[in,out] S points to an instance of the Q15 PID structure.
- * @param[in] resetStateFlag flag to reset the state. 0 = no change in state 1 = reset the state.
- */
- void arm_pid_init_q31(
- arm_pid_instance_q31 * S,
- int32_t resetStateFlag);
-
-
- /**
- * @brief Reset function for the Q31 PID Control.
- * @param[in,out] S points to an instance of the Q31 PID Control structure
- */
-
- void arm_pid_reset_q31(
- arm_pid_instance_q31 * S);
-
-
- /**
- * @brief Initialization function for the Q15 PID Control.
- * @param[in,out] S points to an instance of the Q15 PID structure.
- * @param[in] resetStateFlag flag to reset the state. 0 = no change in state 1 = reset the state.
- */
- void arm_pid_init_q15(
- arm_pid_instance_q15 * S,
- int32_t resetStateFlag);
-
-
- /**
- * @brief Reset function for the Q15 PID Control.
- * @param[in,out] S points to an instance of the q15 PID Control structure
- */
- void arm_pid_reset_q15(
- arm_pid_instance_q15 * S);
-
-
- /**
- * @brief Instance structure for the floating-point Linear Interpolate function.
- */
- typedef struct
- {
- uint32_t nValues; /**< nValues */
- float32_t x1; /**< x1 */
- float32_t xSpacing; /**< xSpacing */
- float32_t *pYData; /**< pointer to the table of Y values */
- } arm_linear_interp_instance_f32;
-
- /**
- * @brief Instance structure for the floating-point bilinear interpolation function.
- */
- typedef struct
- {
- uint16_t numRows; /**< number of rows in the data table. */
- uint16_t numCols; /**< number of columns in the data table. */
- float32_t *pData; /**< points to the data table. */
- } arm_bilinear_interp_instance_f32;
-
- /**
- * @brief Instance structure for the Q31 bilinear interpolation function.
- */
- typedef struct
- {
- uint16_t numRows; /**< number of rows in the data table. */
- uint16_t numCols; /**< number of columns in the data table. */
- q31_t *pData; /**< points to the data table. */
- } arm_bilinear_interp_instance_q31;
-
- /**
- * @brief Instance structure for the Q15 bilinear interpolation function.
- */
- typedef struct
- {
- uint16_t numRows; /**< number of rows in the data table. */
- uint16_t numCols; /**< number of columns in the data table. */
- q15_t *pData; /**< points to the data table. */
- } arm_bilinear_interp_instance_q15;
-
- /**
- * @brief Instance structure for the Q15 bilinear interpolation function.
- */
- typedef struct
- {
- uint16_t numRows; /**< number of rows in the data table. */
- uint16_t numCols; /**< number of columns in the data table. */
- q7_t *pData; /**< points to the data table. */
- } arm_bilinear_interp_instance_q7;
-
-
- /**
- * @brief Q7 vector multiplication.
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in each vector
- */
- void arm_mult_q7(
- q7_t * pSrcA,
- q7_t * pSrcB,
- q7_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Q15 vector multiplication.
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in each vector
- */
- void arm_mult_q15(
- q15_t * pSrcA,
- q15_t * pSrcB,
- q15_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Q31 vector multiplication.
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in each vector
- */
- void arm_mult_q31(
- q31_t * pSrcA,
- q31_t * pSrcB,
- q31_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Floating-point vector multiplication.
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in each vector
- */
- void arm_mult_f32(
- float32_t * pSrcA,
- float32_t * pSrcB,
- float32_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Instance structure for the Q15 CFFT/CIFFT function.
- */
- typedef struct
- {
- uint16_t fftLen; /**< length of the FFT. */
- uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */
- uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */
- q15_t *pTwiddle; /**< points to the Sin twiddle factor table. */
- uint16_t *pBitRevTable; /**< points to the bit reversal table. */
- uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */
- uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */
- } arm_cfft_radix2_instance_q15;
-
-/* Deprecated */
- arm_status arm_cfft_radix2_init_q15(
- arm_cfft_radix2_instance_q15 * S,
- uint16_t fftLen,
- uint8_t ifftFlag,
- uint8_t bitReverseFlag);
-
-/* Deprecated */
- void arm_cfft_radix2_q15(
- const arm_cfft_radix2_instance_q15 * S,
- q15_t * pSrc);
-
-
- /**
- * @brief Instance structure for the Q15 CFFT/CIFFT function.
- */
- typedef struct
- {
- uint16_t fftLen; /**< length of the FFT. */
- uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */
- uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */
- q15_t *pTwiddle; /**< points to the twiddle factor table. */
- uint16_t *pBitRevTable; /**< points to the bit reversal table. */
- uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */
- uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */
- } arm_cfft_radix4_instance_q15;
-
-/* Deprecated */
- arm_status arm_cfft_radix4_init_q15(
- arm_cfft_radix4_instance_q15 * S,
- uint16_t fftLen,
- uint8_t ifftFlag,
- uint8_t bitReverseFlag);
-
-/* Deprecated */
- void arm_cfft_radix4_q15(
- const arm_cfft_radix4_instance_q15 * S,
- q15_t * pSrc);
-
- /**
- * @brief Instance structure for the Radix-2 Q31 CFFT/CIFFT function.
- */
- typedef struct
- {
- uint16_t fftLen; /**< length of the FFT. */
- uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */
- uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */
- q31_t *pTwiddle; /**< points to the Twiddle factor table. */
- uint16_t *pBitRevTable; /**< points to the bit reversal table. */
- uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */
- uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */
- } arm_cfft_radix2_instance_q31;
-
-/* Deprecated */
- arm_status arm_cfft_radix2_init_q31(
- arm_cfft_radix2_instance_q31 * S,
- uint16_t fftLen,
- uint8_t ifftFlag,
- uint8_t bitReverseFlag);
-
-/* Deprecated */
- void arm_cfft_radix2_q31(
- const arm_cfft_radix2_instance_q31 * S,
- q31_t * pSrc);
-
- /**
- * @brief Instance structure for the Q31 CFFT/CIFFT function.
- */
- typedef struct
- {
- uint16_t fftLen; /**< length of the FFT. */
- uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */
- uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */
- q31_t *pTwiddle; /**< points to the twiddle factor table. */
- uint16_t *pBitRevTable; /**< points to the bit reversal table. */
- uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */
- uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */
- } arm_cfft_radix4_instance_q31;
-
-/* Deprecated */
- void arm_cfft_radix4_q31(
- const arm_cfft_radix4_instance_q31 * S,
- q31_t * pSrc);
-
-/* Deprecated */
- arm_status arm_cfft_radix4_init_q31(
- arm_cfft_radix4_instance_q31 * S,
- uint16_t fftLen,
- uint8_t ifftFlag,
- uint8_t bitReverseFlag);
-
- /**
- * @brief Instance structure for the floating-point CFFT/CIFFT function.
- */
- typedef struct
- {
- uint16_t fftLen; /**< length of the FFT. */
- uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */
- uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */
- float32_t *pTwiddle; /**< points to the Twiddle factor table. */
- uint16_t *pBitRevTable; /**< points to the bit reversal table. */
- uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */
- uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */
- float32_t onebyfftLen; /**< value of 1/fftLen. */
- } arm_cfft_radix2_instance_f32;
-
-/* Deprecated */
- arm_status arm_cfft_radix2_init_f32(
- arm_cfft_radix2_instance_f32 * S,
- uint16_t fftLen,
- uint8_t ifftFlag,
- uint8_t bitReverseFlag);
-
-/* Deprecated */
- void arm_cfft_radix2_f32(
- const arm_cfft_radix2_instance_f32 * S,
- float32_t * pSrc);
-
- /**
- * @brief Instance structure for the floating-point CFFT/CIFFT function.
- */
- typedef struct
- {
- uint16_t fftLen; /**< length of the FFT. */
- uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */
- uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */
- float32_t *pTwiddle; /**< points to the Twiddle factor table. */
- uint16_t *pBitRevTable; /**< points to the bit reversal table. */
- uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */
- uint16_t bitRevFactor; /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */
- float32_t onebyfftLen; /**< value of 1/fftLen. */
- } arm_cfft_radix4_instance_f32;
-
-/* Deprecated */
- arm_status arm_cfft_radix4_init_f32(
- arm_cfft_radix4_instance_f32 * S,
- uint16_t fftLen,
- uint8_t ifftFlag,
- uint8_t bitReverseFlag);
-
-/* Deprecated */
- void arm_cfft_radix4_f32(
- const arm_cfft_radix4_instance_f32 * S,
- float32_t * pSrc);
-
- /**
- * @brief Instance structure for the fixed-point CFFT/CIFFT function.
- */
- typedef struct
- {
- uint16_t fftLen; /**< length of the FFT. */
- const q15_t *pTwiddle; /**< points to the Twiddle factor table. */
- const uint16_t *pBitRevTable; /**< points to the bit reversal table. */
- uint16_t bitRevLength; /**< bit reversal table length. */
- } arm_cfft_instance_q15;
-
-void arm_cfft_q15(
- const arm_cfft_instance_q15 * S,
- q15_t * p1,
- uint8_t ifftFlag,
- uint8_t bitReverseFlag);
-
- /**
- * @brief Instance structure for the fixed-point CFFT/CIFFT function.
- */
- typedef struct
- {
- uint16_t fftLen; /**< length of the FFT. */
- const q31_t *pTwiddle; /**< points to the Twiddle factor table. */
- const uint16_t *pBitRevTable; /**< points to the bit reversal table. */
- uint16_t bitRevLength; /**< bit reversal table length. */
- } arm_cfft_instance_q31;
-
-void arm_cfft_q31(
- const arm_cfft_instance_q31 * S,
- q31_t * p1,
- uint8_t ifftFlag,
- uint8_t bitReverseFlag);
-
- /**
- * @brief Instance structure for the floating-point CFFT/CIFFT function.
- */
- typedef struct
- {
- uint16_t fftLen; /**< length of the FFT. */
- const float32_t *pTwiddle; /**< points to the Twiddle factor table. */
- const uint16_t *pBitRevTable; /**< points to the bit reversal table. */
- uint16_t bitRevLength; /**< bit reversal table length. */
- } arm_cfft_instance_f32;
-
- void arm_cfft_f32(
- const arm_cfft_instance_f32 * S,
- float32_t * p1,
- uint8_t ifftFlag,
- uint8_t bitReverseFlag);
-
- /**
- * @brief Instance structure for the Q15 RFFT/RIFFT function.
- */
- typedef struct
- {
- uint32_t fftLenReal; /**< length of the real FFT. */
- uint8_t ifftFlagR; /**< flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. */
- uint8_t bitReverseFlagR; /**< flag that enables (bitReverseFlagR=1) or disables (bitReverseFlagR=0) bit reversal of output. */
- uint32_t twidCoefRModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */
- q15_t *pTwiddleAReal; /**< points to the real twiddle factor table. */
- q15_t *pTwiddleBReal; /**< points to the imag twiddle factor table. */
- const arm_cfft_instance_q15 *pCfft; /**< points to the complex FFT instance. */
- } arm_rfft_instance_q15;
-
- arm_status arm_rfft_init_q15(
- arm_rfft_instance_q15 * S,
- uint32_t fftLenReal,
- uint32_t ifftFlagR,
- uint32_t bitReverseFlag);
-
- void arm_rfft_q15(
- const arm_rfft_instance_q15 * S,
- q15_t * pSrc,
- q15_t * pDst);
-
- /**
- * @brief Instance structure for the Q31 RFFT/RIFFT function.
- */
- typedef struct
- {
- uint32_t fftLenReal; /**< length of the real FFT. */
- uint8_t ifftFlagR; /**< flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. */
- uint8_t bitReverseFlagR; /**< flag that enables (bitReverseFlagR=1) or disables (bitReverseFlagR=0) bit reversal of output. */
- uint32_t twidCoefRModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */
- q31_t *pTwiddleAReal; /**< points to the real twiddle factor table. */
- q31_t *pTwiddleBReal; /**< points to the imag twiddle factor table. */
- const arm_cfft_instance_q31 *pCfft; /**< points to the complex FFT instance. */
- } arm_rfft_instance_q31;
-
- arm_status arm_rfft_init_q31(
- arm_rfft_instance_q31 * S,
- uint32_t fftLenReal,
- uint32_t ifftFlagR,
- uint32_t bitReverseFlag);
-
- void arm_rfft_q31(
- const arm_rfft_instance_q31 * S,
- q31_t * pSrc,
- q31_t * pDst);
-
- /**
- * @brief Instance structure for the floating-point RFFT/RIFFT function.
- */
- typedef struct
- {
- uint32_t fftLenReal; /**< length of the real FFT. */
- uint16_t fftLenBy2; /**< length of the complex FFT. */
- uint8_t ifftFlagR; /**< flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. */
- uint8_t bitReverseFlagR; /**< flag that enables (bitReverseFlagR=1) or disables (bitReverseFlagR=0) bit reversal of output. */
- uint32_t twidCoefRModifier; /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */
- float32_t *pTwiddleAReal; /**< points to the real twiddle factor table. */
- float32_t *pTwiddleBReal; /**< points to the imag twiddle factor table. */
- arm_cfft_radix4_instance_f32 *pCfft; /**< points to the complex FFT instance. */
- } arm_rfft_instance_f32;
-
- arm_status arm_rfft_init_f32(
- arm_rfft_instance_f32 * S,
- arm_cfft_radix4_instance_f32 * S_CFFT,
- uint32_t fftLenReal,
- uint32_t ifftFlagR,
- uint32_t bitReverseFlag);
-
- void arm_rfft_f32(
- const arm_rfft_instance_f32 * S,
- float32_t * pSrc,
- float32_t * pDst);
-
- /**
- * @brief Instance structure for the floating-point RFFT/RIFFT function.
- */
-typedef struct
- {
- arm_cfft_instance_f32 Sint; /**< Internal CFFT structure. */
- uint16_t fftLenRFFT; /**< length of the real sequence */
- float32_t * pTwiddleRFFT; /**< Twiddle factors real stage */
- } arm_rfft_fast_instance_f32 ;
-
-arm_status arm_rfft_fast_init_f32 (
- arm_rfft_fast_instance_f32 * S,
- uint16_t fftLen);
-
-void arm_rfft_fast_f32(
- arm_rfft_fast_instance_f32 * S,
- float32_t * p, float32_t * pOut,
- uint8_t ifftFlag);
-
- /**
- * @brief Instance structure for the floating-point DCT4/IDCT4 function.
- */
- typedef struct
- {
- uint16_t N; /**< length of the DCT4. */
- uint16_t Nby2; /**< half of the length of the DCT4. */
- float32_t normalize; /**< normalizing factor. */
- float32_t *pTwiddle; /**< points to the twiddle factor table. */
- float32_t *pCosFactor; /**< points to the cosFactor table. */
- arm_rfft_instance_f32 *pRfft; /**< points to the real FFT instance. */
- arm_cfft_radix4_instance_f32 *pCfft; /**< points to the complex FFT instance. */
- } arm_dct4_instance_f32;
-
-
- /**
- * @brief Initialization function for the floating-point DCT4/IDCT4.
- * @param[in,out] S points to an instance of floating-point DCT4/IDCT4 structure.
- * @param[in] S_RFFT points to an instance of floating-point RFFT/RIFFT structure.
- * @param[in] S_CFFT points to an instance of floating-point CFFT/CIFFT structure.
- * @param[in] N length of the DCT4.
- * @param[in] Nby2 half of the length of the DCT4.
- * @param[in] normalize normalizing factor.
- * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if fftLenReal is not a supported transform length.
- */
- arm_status arm_dct4_init_f32(
- arm_dct4_instance_f32 * S,
- arm_rfft_instance_f32 * S_RFFT,
- arm_cfft_radix4_instance_f32 * S_CFFT,
- uint16_t N,
- uint16_t Nby2,
- float32_t normalize);
-
-
- /**
- * @brief Processing function for the floating-point DCT4/IDCT4.
- * @param[in] S points to an instance of the floating-point DCT4/IDCT4 structure.
- * @param[in] pState points to state buffer.
- * @param[in,out] pInlineBuffer points to the in-place input and output buffer.
- */
- void arm_dct4_f32(
- const arm_dct4_instance_f32 * S,
- float32_t * pState,
- float32_t * pInlineBuffer);
-
-
- /**
- * @brief Instance structure for the Q31 DCT4/IDCT4 function.
- */
- typedef struct
- {
- uint16_t N; /**< length of the DCT4. */
- uint16_t Nby2; /**< half of the length of the DCT4. */
- q31_t normalize; /**< normalizing factor. */
- q31_t *pTwiddle; /**< points to the twiddle factor table. */
- q31_t *pCosFactor; /**< points to the cosFactor table. */
- arm_rfft_instance_q31 *pRfft; /**< points to the real FFT instance. */
- arm_cfft_radix4_instance_q31 *pCfft; /**< points to the complex FFT instance. */
- } arm_dct4_instance_q31;
-
-
- /**
- * @brief Initialization function for the Q31 DCT4/IDCT4.
- * @param[in,out] S points to an instance of Q31 DCT4/IDCT4 structure.
- * @param[in] S_RFFT points to an instance of Q31 RFFT/RIFFT structure
- * @param[in] S_CFFT points to an instance of Q31 CFFT/CIFFT structure
- * @param[in] N length of the DCT4.
- * @param[in] Nby2 half of the length of the DCT4.
- * @param[in] normalize normalizing factor.
- * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if N is not a supported transform length.
- */
- arm_status arm_dct4_init_q31(
- arm_dct4_instance_q31 * S,
- arm_rfft_instance_q31 * S_RFFT,
- arm_cfft_radix4_instance_q31 * S_CFFT,
- uint16_t N,
- uint16_t Nby2,
- q31_t normalize);
-
-
- /**
- * @brief Processing function for the Q31 DCT4/IDCT4.
- * @param[in] S points to an instance of the Q31 DCT4 structure.
- * @param[in] pState points to state buffer.
- * @param[in,out] pInlineBuffer points to the in-place input and output buffer.
- */
- void arm_dct4_q31(
- const arm_dct4_instance_q31 * S,
- q31_t * pState,
- q31_t * pInlineBuffer);
-
-
- /**
- * @brief Instance structure for the Q15 DCT4/IDCT4 function.
- */
- typedef struct
- {
- uint16_t N; /**< length of the DCT4. */
- uint16_t Nby2; /**< half of the length of the DCT4. */
- q15_t normalize; /**< normalizing factor. */
- q15_t *pTwiddle; /**< points to the twiddle factor table. */
- q15_t *pCosFactor; /**< points to the cosFactor table. */
- arm_rfft_instance_q15 *pRfft; /**< points to the real FFT instance. */
- arm_cfft_radix4_instance_q15 *pCfft; /**< points to the complex FFT instance. */
- } arm_dct4_instance_q15;
-
-
- /**
- * @brief Initialization function for the Q15 DCT4/IDCT4.
- * @param[in,out] S points to an instance of Q15 DCT4/IDCT4 structure.
- * @param[in] S_RFFT points to an instance of Q15 RFFT/RIFFT structure.
- * @param[in] S_CFFT points to an instance of Q15 CFFT/CIFFT structure.
- * @param[in] N length of the DCT4.
- * @param[in] Nby2 half of the length of the DCT4.
- * @param[in] normalize normalizing factor.
- * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if N is not a supported transform length.
- */
- arm_status arm_dct4_init_q15(
- arm_dct4_instance_q15 * S,
- arm_rfft_instance_q15 * S_RFFT,
- arm_cfft_radix4_instance_q15 * S_CFFT,
- uint16_t N,
- uint16_t Nby2,
- q15_t normalize);
-
-
- /**
- * @brief Processing function for the Q15 DCT4/IDCT4.
- * @param[in] S points to an instance of the Q15 DCT4 structure.
- * @param[in] pState points to state buffer.
- * @param[in,out] pInlineBuffer points to the in-place input and output buffer.
- */
- void arm_dct4_q15(
- const arm_dct4_instance_q15 * S,
- q15_t * pState,
- q15_t * pInlineBuffer);
-
-
- /**
- * @brief Floating-point vector addition.
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in each vector
- */
- void arm_add_f32(
- float32_t * pSrcA,
- float32_t * pSrcB,
- float32_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Q7 vector addition.
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in each vector
- */
- void arm_add_q7(
- q7_t * pSrcA,
- q7_t * pSrcB,
- q7_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Q15 vector addition.
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in each vector
- */
- void arm_add_q15(
- q15_t * pSrcA,
- q15_t * pSrcB,
- q15_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Q31 vector addition.
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in each vector
- */
- void arm_add_q31(
- q31_t * pSrcA,
- q31_t * pSrcB,
- q31_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Floating-point vector subtraction.
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in each vector
- */
- void arm_sub_f32(
- float32_t * pSrcA,
- float32_t * pSrcB,
- float32_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Q7 vector subtraction.
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in each vector
- */
- void arm_sub_q7(
- q7_t * pSrcA,
- q7_t * pSrcB,
- q7_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Q15 vector subtraction.
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in each vector
- */
- void arm_sub_q15(
- q15_t * pSrcA,
- q15_t * pSrcB,
- q15_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Q31 vector subtraction.
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in each vector
- */
- void arm_sub_q31(
- q31_t * pSrcA,
- q31_t * pSrcB,
- q31_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Multiplies a floating-point vector by a scalar.
- * @param[in] pSrc points to the input vector
- * @param[in] scale scale factor to be applied
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in the vector
- */
- void arm_scale_f32(
- float32_t * pSrc,
- float32_t scale,
- float32_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Multiplies a Q7 vector by a scalar.
- * @param[in] pSrc points to the input vector
- * @param[in] scaleFract fractional portion of the scale value
- * @param[in] shift number of bits to shift the result by
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in the vector
- */
- void arm_scale_q7(
- q7_t * pSrc,
- q7_t scaleFract,
- int8_t shift,
- q7_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Multiplies a Q15 vector by a scalar.
- * @param[in] pSrc points to the input vector
- * @param[in] scaleFract fractional portion of the scale value
- * @param[in] shift number of bits to shift the result by
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in the vector
- */
- void arm_scale_q15(
- q15_t * pSrc,
- q15_t scaleFract,
- int8_t shift,
- q15_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Multiplies a Q31 vector by a scalar.
- * @param[in] pSrc points to the input vector
- * @param[in] scaleFract fractional portion of the scale value
- * @param[in] shift number of bits to shift the result by
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in the vector
- */
- void arm_scale_q31(
- q31_t * pSrc,
- q31_t scaleFract,
- int8_t shift,
- q31_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Q7 vector absolute value.
- * @param[in] pSrc points to the input buffer
- * @param[out] pDst points to the output buffer
- * @param[in] blockSize number of samples in each vector
- */
- void arm_abs_q7(
- q7_t * pSrc,
- q7_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Floating-point vector absolute value.
- * @param[in] pSrc points to the input buffer
- * @param[out] pDst points to the output buffer
- * @param[in] blockSize number of samples in each vector
- */
- void arm_abs_f32(
- float32_t * pSrc,
- float32_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Q15 vector absolute value.
- * @param[in] pSrc points to the input buffer
- * @param[out] pDst points to the output buffer
- * @param[in] blockSize number of samples in each vector
- */
- void arm_abs_q15(
- q15_t * pSrc,
- q15_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Q31 vector absolute value.
- * @param[in] pSrc points to the input buffer
- * @param[out] pDst points to the output buffer
- * @param[in] blockSize number of samples in each vector
- */
- void arm_abs_q31(
- q31_t * pSrc,
- q31_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Dot product of floating-point vectors.
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[in] blockSize number of samples in each vector
- * @param[out] result output result returned here
- */
- void arm_dot_prod_f32(
- float32_t * pSrcA,
- float32_t * pSrcB,
- uint32_t blockSize,
- float32_t * result);
-
-
- /**
- * @brief Dot product of Q7 vectors.
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[in] blockSize number of samples in each vector
- * @param[out] result output result returned here
- */
- void arm_dot_prod_q7(
- q7_t * pSrcA,
- q7_t * pSrcB,
- uint32_t blockSize,
- q31_t * result);
-
-
- /**
- * @brief Dot product of Q15 vectors.
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[in] blockSize number of samples in each vector
- * @param[out] result output result returned here
- */
- void arm_dot_prod_q15(
- q15_t * pSrcA,
- q15_t * pSrcB,
- uint32_t blockSize,
- q63_t * result);
-
-
- /**
- * @brief Dot product of Q31 vectors.
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[in] blockSize number of samples in each vector
- * @param[out] result output result returned here
- */
- void arm_dot_prod_q31(
- q31_t * pSrcA,
- q31_t * pSrcB,
- uint32_t blockSize,
- q63_t * result);
-
-
- /**
- * @brief Shifts the elements of a Q7 vector a specified number of bits.
- * @param[in] pSrc points to the input vector
- * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value shifts right.
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in the vector
- */
- void arm_shift_q7(
- q7_t * pSrc,
- int8_t shiftBits,
- q7_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Shifts the elements of a Q15 vector a specified number of bits.
- * @param[in] pSrc points to the input vector
- * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value shifts right.
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in the vector
- */
- void arm_shift_q15(
- q15_t * pSrc,
- int8_t shiftBits,
- q15_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Shifts the elements of a Q31 vector a specified number of bits.
- * @param[in] pSrc points to the input vector
- * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value shifts right.
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in the vector
- */
- void arm_shift_q31(
- q31_t * pSrc,
- int8_t shiftBits,
- q31_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Adds a constant offset to a floating-point vector.
- * @param[in] pSrc points to the input vector
- * @param[in] offset is the offset to be added
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in the vector
- */
- void arm_offset_f32(
- float32_t * pSrc,
- float32_t offset,
- float32_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Adds a constant offset to a Q7 vector.
- * @param[in] pSrc points to the input vector
- * @param[in] offset is the offset to be added
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in the vector
- */
- void arm_offset_q7(
- q7_t * pSrc,
- q7_t offset,
- q7_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Adds a constant offset to a Q15 vector.
- * @param[in] pSrc points to the input vector
- * @param[in] offset is the offset to be added
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in the vector
- */
- void arm_offset_q15(
- q15_t * pSrc,
- q15_t offset,
- q15_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Adds a constant offset to a Q31 vector.
- * @param[in] pSrc points to the input vector
- * @param[in] offset is the offset to be added
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in the vector
- */
- void arm_offset_q31(
- q31_t * pSrc,
- q31_t offset,
- q31_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Negates the elements of a floating-point vector.
- * @param[in] pSrc points to the input vector
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in the vector
- */
- void arm_negate_f32(
- float32_t * pSrc,
- float32_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Negates the elements of a Q7 vector.
- * @param[in] pSrc points to the input vector
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in the vector
- */
- void arm_negate_q7(
- q7_t * pSrc,
- q7_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Negates the elements of a Q15 vector.
- * @param[in] pSrc points to the input vector
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in the vector
- */
- void arm_negate_q15(
- q15_t * pSrc,
- q15_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Negates the elements of a Q31 vector.
- * @param[in] pSrc points to the input vector
- * @param[out] pDst points to the output vector
- * @param[in] blockSize number of samples in the vector
- */
- void arm_negate_q31(
- q31_t * pSrc,
- q31_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Copies the elements of a floating-point vector.
- * @param[in] pSrc input pointer
- * @param[out] pDst output pointer
- * @param[in] blockSize number of samples to process
- */
- void arm_copy_f32(
- float32_t * pSrc,
- float32_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Copies the elements of a Q7 vector.
- * @param[in] pSrc input pointer
- * @param[out] pDst output pointer
- * @param[in] blockSize number of samples to process
- */
- void arm_copy_q7(
- q7_t * pSrc,
- q7_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Copies the elements of a Q15 vector.
- * @param[in] pSrc input pointer
- * @param[out] pDst output pointer
- * @param[in] blockSize number of samples to process
- */
- void arm_copy_q15(
- q15_t * pSrc,
- q15_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Copies the elements of a Q31 vector.
- * @param[in] pSrc input pointer
- * @param[out] pDst output pointer
- * @param[in] blockSize number of samples to process
- */
- void arm_copy_q31(
- q31_t * pSrc,
- q31_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Fills a constant value into a floating-point vector.
- * @param[in] value input value to be filled
- * @param[out] pDst output pointer
- * @param[in] blockSize number of samples to process
- */
- void arm_fill_f32(
- float32_t value,
- float32_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Fills a constant value into a Q7 vector.
- * @param[in] value input value to be filled
- * @param[out] pDst output pointer
- * @param[in] blockSize number of samples to process
- */
- void arm_fill_q7(
- q7_t value,
- q7_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Fills a constant value into a Q15 vector.
- * @param[in] value input value to be filled
- * @param[out] pDst output pointer
- * @param[in] blockSize number of samples to process
- */
- void arm_fill_q15(
- q15_t value,
- q15_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Fills a constant value into a Q31 vector.
- * @param[in] value input value to be filled
- * @param[out] pDst output pointer
- * @param[in] blockSize number of samples to process
- */
- void arm_fill_q31(
- q31_t value,
- q31_t * pDst,
- uint32_t blockSize);
-
-
-/**
- * @brief Convolution of floating-point sequences.
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the location where the output result is written. Length srcALen+srcBLen-1.
- */
- void arm_conv_f32(
- float32_t * pSrcA,
- uint32_t srcALen,
- float32_t * pSrcB,
- uint32_t srcBLen,
- float32_t * pDst);
-
-
- /**
- * @brief Convolution of Q15 sequences.
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1.
- * @param[in] pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
- * @param[in] pScratch2 points to scratch buffer of size min(srcALen, srcBLen).
- */
- void arm_conv_opt_q15(
- q15_t * pSrcA,
- uint32_t srcALen,
- q15_t * pSrcB,
- uint32_t srcBLen,
- q15_t * pDst,
- q15_t * pScratch1,
- q15_t * pScratch2);
-
-
-/**
- * @brief Convolution of Q15 sequences.
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the location where the output result is written. Length srcALen+srcBLen-1.
- */
- void arm_conv_q15(
- q15_t * pSrcA,
- uint32_t srcALen,
- q15_t * pSrcB,
- uint32_t srcBLen,
- q15_t * pDst);
-
-
- /**
- * @brief Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1.
- */
- void arm_conv_fast_q15(
- q15_t * pSrcA,
- uint32_t srcALen,
- q15_t * pSrcB,
- uint32_t srcBLen,
- q15_t * pDst);
-
-
- /**
- * @brief Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1.
- * @param[in] pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
- * @param[in] pScratch2 points to scratch buffer of size min(srcALen, srcBLen).
- */
- void arm_conv_fast_opt_q15(
- q15_t * pSrcA,
- uint32_t srcALen,
- q15_t * pSrcB,
- uint32_t srcBLen,
- q15_t * pDst,
- q15_t * pScratch1,
- q15_t * pScratch2);
-
-
- /**
- * @brief Convolution of Q31 sequences.
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1.
- */
- void arm_conv_q31(
- q31_t * pSrcA,
- uint32_t srcALen,
- q31_t * pSrcB,
- uint32_t srcBLen,
- q31_t * pDst);
-
-
- /**
- * @brief Convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1.
- */
- void arm_conv_fast_q31(
- q31_t * pSrcA,
- uint32_t srcALen,
- q31_t * pSrcB,
- uint32_t srcBLen,
- q31_t * pDst);
-
-
- /**
- * @brief Convolution of Q7 sequences.
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1.
- * @param[in] pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
- * @param[in] pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen).
- */
- void arm_conv_opt_q7(
- q7_t * pSrcA,
- uint32_t srcALen,
- q7_t * pSrcB,
- uint32_t srcBLen,
- q7_t * pDst,
- q15_t * pScratch1,
- q15_t * pScratch2);
-
-
- /**
- * @brief Convolution of Q7 sequences.
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1.
- */
- void arm_conv_q7(
- q7_t * pSrcA,
- uint32_t srcALen,
- q7_t * pSrcB,
- uint32_t srcBLen,
- q7_t * pDst);
-
-
- /**
- * @brief Partial convolution of floating-point sequences.
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data
- * @param[in] firstIndex is the first output sample to start with.
- * @param[in] numPoints is the number of output points to be computed.
- * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2].
- */
- arm_status arm_conv_partial_f32(
- float32_t * pSrcA,
- uint32_t srcALen,
- float32_t * pSrcB,
- uint32_t srcBLen,
- float32_t * pDst,
- uint32_t firstIndex,
- uint32_t numPoints);
-
-
- /**
- * @brief Partial convolution of Q15 sequences.
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data
- * @param[in] firstIndex is the first output sample to start with.
- * @param[in] numPoints is the number of output points to be computed.
- * @param[in] pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
- * @param[in] pScratch2 points to scratch buffer of size min(srcALen, srcBLen).
- * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2].
- */
- arm_status arm_conv_partial_opt_q15(
- q15_t * pSrcA,
- uint32_t srcALen,
- q15_t * pSrcB,
- uint32_t srcBLen,
- q15_t * pDst,
- uint32_t firstIndex,
- uint32_t numPoints,
- q15_t * pScratch1,
- q15_t * pScratch2);
-
-
- /**
- * @brief Partial convolution of Q15 sequences.
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data
- * @param[in] firstIndex is the first output sample to start with.
- * @param[in] numPoints is the number of output points to be computed.
- * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2].
- */
- arm_status arm_conv_partial_q15(
- q15_t * pSrcA,
- uint32_t srcALen,
- q15_t * pSrcB,
- uint32_t srcBLen,
- q15_t * pDst,
- uint32_t firstIndex,
- uint32_t numPoints);
-
-
- /**
- * @brief Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data
- * @param[in] firstIndex is the first output sample to start with.
- * @param[in] numPoints is the number of output points to be computed.
- * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2].
- */
- arm_status arm_conv_partial_fast_q15(
- q15_t * pSrcA,
- uint32_t srcALen,
- q15_t * pSrcB,
- uint32_t srcBLen,
- q15_t * pDst,
- uint32_t firstIndex,
- uint32_t numPoints);
-
-
- /**
- * @brief Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data
- * @param[in] firstIndex is the first output sample to start with.
- * @param[in] numPoints is the number of output points to be computed.
- * @param[in] pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
- * @param[in] pScratch2 points to scratch buffer of size min(srcALen, srcBLen).
- * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2].
- */
- arm_status arm_conv_partial_fast_opt_q15(
- q15_t * pSrcA,
- uint32_t srcALen,
- q15_t * pSrcB,
- uint32_t srcBLen,
- q15_t * pDst,
- uint32_t firstIndex,
- uint32_t numPoints,
- q15_t * pScratch1,
- q15_t * pScratch2);
-
-
- /**
- * @brief Partial convolution of Q31 sequences.
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data
- * @param[in] firstIndex is the first output sample to start with.
- * @param[in] numPoints is the number of output points to be computed.
- * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2].
- */
- arm_status arm_conv_partial_q31(
- q31_t * pSrcA,
- uint32_t srcALen,
- q31_t * pSrcB,
- uint32_t srcBLen,
- q31_t * pDst,
- uint32_t firstIndex,
- uint32_t numPoints);
-
-
- /**
- * @brief Partial convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data
- * @param[in] firstIndex is the first output sample to start with.
- * @param[in] numPoints is the number of output points to be computed.
- * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2].
- */
- arm_status arm_conv_partial_fast_q31(
- q31_t * pSrcA,
- uint32_t srcALen,
- q31_t * pSrcB,
- uint32_t srcBLen,
- q31_t * pDst,
- uint32_t firstIndex,
- uint32_t numPoints);
-
-
- /**
- * @brief Partial convolution of Q7 sequences
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data
- * @param[in] firstIndex is the first output sample to start with.
- * @param[in] numPoints is the number of output points to be computed.
- * @param[in] pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
- * @param[in] pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen).
- * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2].
- */
- arm_status arm_conv_partial_opt_q7(
- q7_t * pSrcA,
- uint32_t srcALen,
- q7_t * pSrcB,
- uint32_t srcBLen,
- q7_t * pDst,
- uint32_t firstIndex,
- uint32_t numPoints,
- q15_t * pScratch1,
- q15_t * pScratch2);
-
-
-/**
- * @brief Partial convolution of Q7 sequences.
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data
- * @param[in] firstIndex is the first output sample to start with.
- * @param[in] numPoints is the number of output points to be computed.
- * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2].
- */
- arm_status arm_conv_partial_q7(
- q7_t * pSrcA,
- uint32_t srcALen,
- q7_t * pSrcB,
- uint32_t srcBLen,
- q7_t * pDst,
- uint32_t firstIndex,
- uint32_t numPoints);
-
-
- /**
- * @brief Instance structure for the Q15 FIR decimator.
- */
- typedef struct
- {
- uint8_t M; /**< decimation factor. */
- uint16_t numTaps; /**< number of coefficients in the filter. */
- q15_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/
- q15_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
- } arm_fir_decimate_instance_q15;
-
- /**
- * @brief Instance structure for the Q31 FIR decimator.
- */
- typedef struct
- {
- uint8_t M; /**< decimation factor. */
- uint16_t numTaps; /**< number of coefficients in the filter. */
- q31_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/
- q31_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
- } arm_fir_decimate_instance_q31;
-
- /**
- * @brief Instance structure for the floating-point FIR decimator.
- */
- typedef struct
- {
- uint8_t M; /**< decimation factor. */
- uint16_t numTaps; /**< number of coefficients in the filter. */
- float32_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/
- float32_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
- } arm_fir_decimate_instance_f32;
-
-
- /**
- * @brief Processing function for the floating-point FIR decimator.
- * @param[in] S points to an instance of the floating-point FIR decimator structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data
- * @param[in] blockSize number of input samples to process per call.
- */
- void arm_fir_decimate_f32(
- const arm_fir_decimate_instance_f32 * S,
- float32_t * pSrc,
- float32_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the floating-point FIR decimator.
- * @param[in,out] S points to an instance of the floating-point FIR decimator structure.
- * @param[in] numTaps number of coefficients in the filter.
- * @param[in] M decimation factor.
- * @param[in] pCoeffs points to the filter coefficients.
- * @param[in] pState points to the state buffer.
- * @param[in] blockSize number of input samples to process per call.
- * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if
- * blockSize is not a multiple of M.
- */
- arm_status arm_fir_decimate_init_f32(
- arm_fir_decimate_instance_f32 * S,
- uint16_t numTaps,
- uint8_t M,
- float32_t * pCoeffs,
- float32_t * pState,
- uint32_t blockSize);
-
-
- /**
- * @brief Processing function for the Q15 FIR decimator.
- * @param[in] S points to an instance of the Q15 FIR decimator structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data
- * @param[in] blockSize number of input samples to process per call.
- */
- void arm_fir_decimate_q15(
- const arm_fir_decimate_instance_q15 * S,
- q15_t * pSrc,
- q15_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Processing function for the Q15 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4.
- * @param[in] S points to an instance of the Q15 FIR decimator structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data
- * @param[in] blockSize number of input samples to process per call.
- */
- void arm_fir_decimate_fast_q15(
- const arm_fir_decimate_instance_q15 * S,
- q15_t * pSrc,
- q15_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the Q15 FIR decimator.
- * @param[in,out] S points to an instance of the Q15 FIR decimator structure.
- * @param[in] numTaps number of coefficients in the filter.
- * @param[in] M decimation factor.
- * @param[in] pCoeffs points to the filter coefficients.
- * @param[in] pState points to the state buffer.
- * @param[in] blockSize number of input samples to process per call.
- * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if
- * blockSize is not a multiple of M.
- */
- arm_status arm_fir_decimate_init_q15(
- arm_fir_decimate_instance_q15 * S,
- uint16_t numTaps,
- uint8_t M,
- q15_t * pCoeffs,
- q15_t * pState,
- uint32_t blockSize);
-
-
- /**
- * @brief Processing function for the Q31 FIR decimator.
- * @param[in] S points to an instance of the Q31 FIR decimator structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data
- * @param[in] blockSize number of input samples to process per call.
- */
- void arm_fir_decimate_q31(
- const arm_fir_decimate_instance_q31 * S,
- q31_t * pSrc,
- q31_t * pDst,
- uint32_t blockSize);
-
- /**
- * @brief Processing function for the Q31 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4.
- * @param[in] S points to an instance of the Q31 FIR decimator structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data
- * @param[in] blockSize number of input samples to process per call.
- */
- void arm_fir_decimate_fast_q31(
- arm_fir_decimate_instance_q31 * S,
- q31_t * pSrc,
- q31_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the Q31 FIR decimator.
- * @param[in,out] S points to an instance of the Q31 FIR decimator structure.
- * @param[in] numTaps number of coefficients in the filter.
- * @param[in] M decimation factor.
- * @param[in] pCoeffs points to the filter coefficients.
- * @param[in] pState points to the state buffer.
- * @param[in] blockSize number of input samples to process per call.
- * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if
- * blockSize is not a multiple of M.
- */
- arm_status arm_fir_decimate_init_q31(
- arm_fir_decimate_instance_q31 * S,
- uint16_t numTaps,
- uint8_t M,
- q31_t * pCoeffs,
- q31_t * pState,
- uint32_t blockSize);
-
-
- /**
- * @brief Instance structure for the Q15 FIR interpolator.
- */
- typedef struct
- {
- uint8_t L; /**< upsample factor. */
- uint16_t phaseLength; /**< length of each polyphase filter component. */
- q15_t *pCoeffs; /**< points to the coefficient array. The array is of length L*phaseLength. */
- q15_t *pState; /**< points to the state variable array. The array is of length blockSize+phaseLength-1. */
- } arm_fir_interpolate_instance_q15;
-
- /**
- * @brief Instance structure for the Q31 FIR interpolator.
- */
- typedef struct
- {
- uint8_t L; /**< upsample factor. */
- uint16_t phaseLength; /**< length of each polyphase filter component. */
- q31_t *pCoeffs; /**< points to the coefficient array. The array is of length L*phaseLength. */
- q31_t *pState; /**< points to the state variable array. The array is of length blockSize+phaseLength-1. */
- } arm_fir_interpolate_instance_q31;
-
- /**
- * @brief Instance structure for the floating-point FIR interpolator.
- */
- typedef struct
- {
- uint8_t L; /**< upsample factor. */
- uint16_t phaseLength; /**< length of each polyphase filter component. */
- float32_t *pCoeffs; /**< points to the coefficient array. The array is of length L*phaseLength. */
- float32_t *pState; /**< points to the state variable array. The array is of length phaseLength+numTaps-1. */
- } arm_fir_interpolate_instance_f32;
-
-
- /**
- * @brief Processing function for the Q15 FIR interpolator.
- * @param[in] S points to an instance of the Q15 FIR interpolator structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data.
- * @param[in] blockSize number of input samples to process per call.
- */
- void arm_fir_interpolate_q15(
- const arm_fir_interpolate_instance_q15 * S,
- q15_t * pSrc,
- q15_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the Q15 FIR interpolator.
- * @param[in,out] S points to an instance of the Q15 FIR interpolator structure.
- * @param[in] L upsample factor.
- * @param[in] numTaps number of filter coefficients in the filter.
- * @param[in] pCoeffs points to the filter coefficient buffer.
- * @param[in] pState points to the state buffer.
- * @param[in] blockSize number of input samples to process per call.
- * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if
- * the filter length numTaps is not a multiple of the interpolation factor L.
- */
- arm_status arm_fir_interpolate_init_q15(
- arm_fir_interpolate_instance_q15 * S,
- uint8_t L,
- uint16_t numTaps,
- q15_t * pCoeffs,
- q15_t * pState,
- uint32_t blockSize);
-
-
- /**
- * @brief Processing function for the Q31 FIR interpolator.
- * @param[in] S points to an instance of the Q15 FIR interpolator structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data.
- * @param[in] blockSize number of input samples to process per call.
- */
- void arm_fir_interpolate_q31(
- const arm_fir_interpolate_instance_q31 * S,
- q31_t * pSrc,
- q31_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the Q31 FIR interpolator.
- * @param[in,out] S points to an instance of the Q31 FIR interpolator structure.
- * @param[in] L upsample factor.
- * @param[in] numTaps number of filter coefficients in the filter.
- * @param[in] pCoeffs points to the filter coefficient buffer.
- * @param[in] pState points to the state buffer.
- * @param[in] blockSize number of input samples to process per call.
- * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if
- * the filter length numTaps is not a multiple of the interpolation factor L.
- */
- arm_status arm_fir_interpolate_init_q31(
- arm_fir_interpolate_instance_q31 * S,
- uint8_t L,
- uint16_t numTaps,
- q31_t * pCoeffs,
- q31_t * pState,
- uint32_t blockSize);
-
-
- /**
- * @brief Processing function for the floating-point FIR interpolator.
- * @param[in] S points to an instance of the floating-point FIR interpolator structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data.
- * @param[in] blockSize number of input samples to process per call.
- */
- void arm_fir_interpolate_f32(
- const arm_fir_interpolate_instance_f32 * S,
- float32_t * pSrc,
- float32_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the floating-point FIR interpolator.
- * @param[in,out] S points to an instance of the floating-point FIR interpolator structure.
- * @param[in] L upsample factor.
- * @param[in] numTaps number of filter coefficients in the filter.
- * @param[in] pCoeffs points to the filter coefficient buffer.
- * @param[in] pState points to the state buffer.
- * @param[in] blockSize number of input samples to process per call.
- * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if
- * the filter length numTaps is not a multiple of the interpolation factor L.
- */
- arm_status arm_fir_interpolate_init_f32(
- arm_fir_interpolate_instance_f32 * S,
- uint8_t L,
- uint16_t numTaps,
- float32_t * pCoeffs,
- float32_t * pState,
- uint32_t blockSize);
-
-
- /**
- * @brief Instance structure for the high precision Q31 Biquad cascade filter.
- */
- typedef struct
- {
- uint8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */
- q63_t *pState; /**< points to the array of state coefficients. The array is of length 4*numStages. */
- q31_t *pCoeffs; /**< points to the array of coefficients. The array is of length 5*numStages. */
- uint8_t postShift; /**< additional shift, in bits, applied to each output sample. */
- } arm_biquad_cas_df1_32x64_ins_q31;
-
-
- /**
- * @param[in] S points to an instance of the high precision Q31 Biquad cascade filter structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data
- * @param[in] blockSize number of samples to process.
- */
- void arm_biquad_cas_df1_32x64_q31(
- const arm_biquad_cas_df1_32x64_ins_q31 * S,
- q31_t * pSrc,
- q31_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @param[in,out] S points to an instance of the high precision Q31 Biquad cascade filter structure.
- * @param[in] numStages number of 2nd order stages in the filter.
- * @param[in] pCoeffs points to the filter coefficients.
- * @param[in] pState points to the state buffer.
- * @param[in] postShift shift to be applied to the output. Varies according to the coefficients format
- */
- void arm_biquad_cas_df1_32x64_init_q31(
- arm_biquad_cas_df1_32x64_ins_q31 * S,
- uint8_t numStages,
- q31_t * pCoeffs,
- q63_t * pState,
- uint8_t postShift);
-
-
- /**
- * @brief Instance structure for the floating-point transposed direct form II Biquad cascade filter.
- */
- typedef struct
- {
- uint8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */
- float32_t *pState; /**< points to the array of state coefficients. The array is of length 2*numStages. */
- float32_t *pCoeffs; /**< points to the array of coefficients. The array is of length 5*numStages. */
- } arm_biquad_cascade_df2T_instance_f32;
-
- /**
- * @brief Instance structure for the floating-point transposed direct form II Biquad cascade filter.
- */
- typedef struct
- {
- uint8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */
- float32_t *pState; /**< points to the array of state coefficients. The array is of length 4*numStages. */
- float32_t *pCoeffs; /**< points to the array of coefficients. The array is of length 5*numStages. */
- } arm_biquad_cascade_stereo_df2T_instance_f32;
-
- /**
- * @brief Instance structure for the floating-point transposed direct form II Biquad cascade filter.
- */
- typedef struct
- {
- uint8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numStages. */
- float64_t *pState; /**< points to the array of state coefficients. The array is of length 2*numStages. */
- float64_t *pCoeffs; /**< points to the array of coefficients. The array is of length 5*numStages. */
- } arm_biquad_cascade_df2T_instance_f64;
-
-
- /**
- * @brief Processing function for the floating-point transposed direct form II Biquad cascade filter.
- * @param[in] S points to an instance of the filter data structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data
- * @param[in] blockSize number of samples to process.
- */
- void arm_biquad_cascade_df2T_f32(
- const arm_biquad_cascade_df2T_instance_f32 * S,
- float32_t * pSrc,
- float32_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Processing function for the floating-point transposed direct form II Biquad cascade filter. 2 channels
- * @param[in] S points to an instance of the filter data structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data
- * @param[in] blockSize number of samples to process.
- */
- void arm_biquad_cascade_stereo_df2T_f32(
- const arm_biquad_cascade_stereo_df2T_instance_f32 * S,
- float32_t * pSrc,
- float32_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Processing function for the floating-point transposed direct form II Biquad cascade filter.
- * @param[in] S points to an instance of the filter data structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data
- * @param[in] blockSize number of samples to process.
- */
- void arm_biquad_cascade_df2T_f64(
- const arm_biquad_cascade_df2T_instance_f64 * S,
- float64_t * pSrc,
- float64_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the floating-point transposed direct form II Biquad cascade filter.
- * @param[in,out] S points to an instance of the filter data structure.
- * @param[in] numStages number of 2nd order stages in the filter.
- * @param[in] pCoeffs points to the filter coefficients.
- * @param[in] pState points to the state buffer.
- */
- void arm_biquad_cascade_df2T_init_f32(
- arm_biquad_cascade_df2T_instance_f32 * S,
- uint8_t numStages,
- float32_t * pCoeffs,
- float32_t * pState);
-
-
- /**
- * @brief Initialization function for the floating-point transposed direct form II Biquad cascade filter.
- * @param[in,out] S points to an instance of the filter data structure.
- * @param[in] numStages number of 2nd order stages in the filter.
- * @param[in] pCoeffs points to the filter coefficients.
- * @param[in] pState points to the state buffer.
- */
- void arm_biquad_cascade_stereo_df2T_init_f32(
- arm_biquad_cascade_stereo_df2T_instance_f32 * S,
- uint8_t numStages,
- float32_t * pCoeffs,
- float32_t * pState);
-
-
- /**
- * @brief Initialization function for the floating-point transposed direct form II Biquad cascade filter.
- * @param[in,out] S points to an instance of the filter data structure.
- * @param[in] numStages number of 2nd order stages in the filter.
- * @param[in] pCoeffs points to the filter coefficients.
- * @param[in] pState points to the state buffer.
- */
- void arm_biquad_cascade_df2T_init_f64(
- arm_biquad_cascade_df2T_instance_f64 * S,
- uint8_t numStages,
- float64_t * pCoeffs,
- float64_t * pState);
-
-
- /**
- * @brief Instance structure for the Q15 FIR lattice filter.
- */
- typedef struct
- {
- uint16_t numStages; /**< number of filter stages. */
- q15_t *pState; /**< points to the state variable array. The array is of length numStages. */
- q15_t *pCoeffs; /**< points to the coefficient array. The array is of length numStages. */
- } arm_fir_lattice_instance_q15;
-
- /**
- * @brief Instance structure for the Q31 FIR lattice filter.
- */
- typedef struct
- {
- uint16_t numStages; /**< number of filter stages. */
- q31_t *pState; /**< points to the state variable array. The array is of length numStages. */
- q31_t *pCoeffs; /**< points to the coefficient array. The array is of length numStages. */
- } arm_fir_lattice_instance_q31;
-
- /**
- * @brief Instance structure for the floating-point FIR lattice filter.
- */
- typedef struct
- {
- uint16_t numStages; /**< number of filter stages. */
- float32_t *pState; /**< points to the state variable array. The array is of length numStages. */
- float32_t *pCoeffs; /**< points to the coefficient array. The array is of length numStages. */
- } arm_fir_lattice_instance_f32;
-
-
- /**
- * @brief Initialization function for the Q15 FIR lattice filter.
- * @param[in] S points to an instance of the Q15 FIR lattice structure.
- * @param[in] numStages number of filter stages.
- * @param[in] pCoeffs points to the coefficient buffer. The array is of length numStages.
- * @param[in] pState points to the state buffer. The array is of length numStages.
- */
- void arm_fir_lattice_init_q15(
- arm_fir_lattice_instance_q15 * S,
- uint16_t numStages,
- q15_t * pCoeffs,
- q15_t * pState);
-
-
- /**
- * @brief Processing function for the Q15 FIR lattice filter.
- * @param[in] S points to an instance of the Q15 FIR lattice structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_fir_lattice_q15(
- const arm_fir_lattice_instance_q15 * S,
- q15_t * pSrc,
- q15_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the Q31 FIR lattice filter.
- * @param[in] S points to an instance of the Q31 FIR lattice structure.
- * @param[in] numStages number of filter stages.
- * @param[in] pCoeffs points to the coefficient buffer. The array is of length numStages.
- * @param[in] pState points to the state buffer. The array is of length numStages.
- */
- void arm_fir_lattice_init_q31(
- arm_fir_lattice_instance_q31 * S,
- uint16_t numStages,
- q31_t * pCoeffs,
- q31_t * pState);
-
-
- /**
- * @brief Processing function for the Q31 FIR lattice filter.
- * @param[in] S points to an instance of the Q31 FIR lattice structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data
- * @param[in] blockSize number of samples to process.
- */
- void arm_fir_lattice_q31(
- const arm_fir_lattice_instance_q31 * S,
- q31_t * pSrc,
- q31_t * pDst,
- uint32_t blockSize);
-
-
-/**
- * @brief Initialization function for the floating-point FIR lattice filter.
- * @param[in] S points to an instance of the floating-point FIR lattice structure.
- * @param[in] numStages number of filter stages.
- * @param[in] pCoeffs points to the coefficient buffer. The array is of length numStages.
- * @param[in] pState points to the state buffer. The array is of length numStages.
- */
- void arm_fir_lattice_init_f32(
- arm_fir_lattice_instance_f32 * S,
- uint16_t numStages,
- float32_t * pCoeffs,
- float32_t * pState);
-
-
- /**
- * @brief Processing function for the floating-point FIR lattice filter.
- * @param[in] S points to an instance of the floating-point FIR lattice structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data
- * @param[in] blockSize number of samples to process.
- */
- void arm_fir_lattice_f32(
- const arm_fir_lattice_instance_f32 * S,
- float32_t * pSrc,
- float32_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Instance structure for the Q15 IIR lattice filter.
- */
- typedef struct
- {
- uint16_t numStages; /**< number of stages in the filter. */
- q15_t *pState; /**< points to the state variable array. The array is of length numStages+blockSize. */
- q15_t *pkCoeffs; /**< points to the reflection coefficient array. The array is of length numStages. */
- q15_t *pvCoeffs; /**< points to the ladder coefficient array. The array is of length numStages+1. */
- } arm_iir_lattice_instance_q15;
-
- /**
- * @brief Instance structure for the Q31 IIR lattice filter.
- */
- typedef struct
- {
- uint16_t numStages; /**< number of stages in the filter. */
- q31_t *pState; /**< points to the state variable array. The array is of length numStages+blockSize. */
- q31_t *pkCoeffs; /**< points to the reflection coefficient array. The array is of length numStages. */
- q31_t *pvCoeffs; /**< points to the ladder coefficient array. The array is of length numStages+1. */
- } arm_iir_lattice_instance_q31;
-
- /**
- * @brief Instance structure for the floating-point IIR lattice filter.
- */
- typedef struct
- {
- uint16_t numStages; /**< number of stages in the filter. */
- float32_t *pState; /**< points to the state variable array. The array is of length numStages+blockSize. */
- float32_t *pkCoeffs; /**< points to the reflection coefficient array. The array is of length numStages. */
- float32_t *pvCoeffs; /**< points to the ladder coefficient array. The array is of length numStages+1. */
- } arm_iir_lattice_instance_f32;
-
-
- /**
- * @brief Processing function for the floating-point IIR lattice filter.
- * @param[in] S points to an instance of the floating-point IIR lattice structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_iir_lattice_f32(
- const arm_iir_lattice_instance_f32 * S,
- float32_t * pSrc,
- float32_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the floating-point IIR lattice filter.
- * @param[in] S points to an instance of the floating-point IIR lattice structure.
- * @param[in] numStages number of stages in the filter.
- * @param[in] pkCoeffs points to the reflection coefficient buffer. The array is of length numStages.
- * @param[in] pvCoeffs points to the ladder coefficient buffer. The array is of length numStages+1.
- * @param[in] pState points to the state buffer. The array is of length numStages+blockSize-1.
- * @param[in] blockSize number of samples to process.
- */
- void arm_iir_lattice_init_f32(
- arm_iir_lattice_instance_f32 * S,
- uint16_t numStages,
- float32_t * pkCoeffs,
- float32_t * pvCoeffs,
- float32_t * pState,
- uint32_t blockSize);
-
-
- /**
- * @brief Processing function for the Q31 IIR lattice filter.
- * @param[in] S points to an instance of the Q31 IIR lattice structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_iir_lattice_q31(
- const arm_iir_lattice_instance_q31 * S,
- q31_t * pSrc,
- q31_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the Q31 IIR lattice filter.
- * @param[in] S points to an instance of the Q31 IIR lattice structure.
- * @param[in] numStages number of stages in the filter.
- * @param[in] pkCoeffs points to the reflection coefficient buffer. The array is of length numStages.
- * @param[in] pvCoeffs points to the ladder coefficient buffer. The array is of length numStages+1.
- * @param[in] pState points to the state buffer. The array is of length numStages+blockSize.
- * @param[in] blockSize number of samples to process.
- */
- void arm_iir_lattice_init_q31(
- arm_iir_lattice_instance_q31 * S,
- uint16_t numStages,
- q31_t * pkCoeffs,
- q31_t * pvCoeffs,
- q31_t * pState,
- uint32_t blockSize);
-
-
- /**
- * @brief Processing function for the Q15 IIR lattice filter.
- * @param[in] S points to an instance of the Q15 IIR lattice structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_iir_lattice_q15(
- const arm_iir_lattice_instance_q15 * S,
- q15_t * pSrc,
- q15_t * pDst,
- uint32_t blockSize);
-
-
-/**
- * @brief Initialization function for the Q15 IIR lattice filter.
- * @param[in] S points to an instance of the fixed-point Q15 IIR lattice structure.
- * @param[in] numStages number of stages in the filter.
- * @param[in] pkCoeffs points to reflection coefficient buffer. The array is of length numStages.
- * @param[in] pvCoeffs points to ladder coefficient buffer. The array is of length numStages+1.
- * @param[in] pState points to state buffer. The array is of length numStages+blockSize.
- * @param[in] blockSize number of samples to process per call.
- */
- void arm_iir_lattice_init_q15(
- arm_iir_lattice_instance_q15 * S,
- uint16_t numStages,
- q15_t * pkCoeffs,
- q15_t * pvCoeffs,
- q15_t * pState,
- uint32_t blockSize);
-
-
- /**
- * @brief Instance structure for the floating-point LMS filter.
- */
- typedef struct
- {
- uint16_t numTaps; /**< number of coefficients in the filter. */
- float32_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
- float32_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */
- float32_t mu; /**< step size that controls filter coefficient updates. */
- } arm_lms_instance_f32;
-
-
- /**
- * @brief Processing function for floating-point LMS filter.
- * @param[in] S points to an instance of the floating-point LMS filter structure.
- * @param[in] pSrc points to the block of input data.
- * @param[in] pRef points to the block of reference data.
- * @param[out] pOut points to the block of output data.
- * @param[out] pErr points to the block of error data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_lms_f32(
- const arm_lms_instance_f32 * S,
- float32_t * pSrc,
- float32_t * pRef,
- float32_t * pOut,
- float32_t * pErr,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for floating-point LMS filter.
- * @param[in] S points to an instance of the floating-point LMS filter structure.
- * @param[in] numTaps number of filter coefficients.
- * @param[in] pCoeffs points to the coefficient buffer.
- * @param[in] pState points to state buffer.
- * @param[in] mu step size that controls filter coefficient updates.
- * @param[in] blockSize number of samples to process.
- */
- void arm_lms_init_f32(
- arm_lms_instance_f32 * S,
- uint16_t numTaps,
- float32_t * pCoeffs,
- float32_t * pState,
- float32_t mu,
- uint32_t blockSize);
-
-
- /**
- * @brief Instance structure for the Q15 LMS filter.
- */
- typedef struct
- {
- uint16_t numTaps; /**< number of coefficients in the filter. */
- q15_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
- q15_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */
- q15_t mu; /**< step size that controls filter coefficient updates. */
- uint32_t postShift; /**< bit shift applied to coefficients. */
- } arm_lms_instance_q15;
-
-
- /**
- * @brief Initialization function for the Q15 LMS filter.
- * @param[in] S points to an instance of the Q15 LMS filter structure.
- * @param[in] numTaps number of filter coefficients.
- * @param[in] pCoeffs points to the coefficient buffer.
- * @param[in] pState points to the state buffer.
- * @param[in] mu step size that controls filter coefficient updates.
- * @param[in] blockSize number of samples to process.
- * @param[in] postShift bit shift applied to coefficients.
- */
- void arm_lms_init_q15(
- arm_lms_instance_q15 * S,
- uint16_t numTaps,
- q15_t * pCoeffs,
- q15_t * pState,
- q15_t mu,
- uint32_t blockSize,
- uint32_t postShift);
-
-
- /**
- * @brief Processing function for Q15 LMS filter.
- * @param[in] S points to an instance of the Q15 LMS filter structure.
- * @param[in] pSrc points to the block of input data.
- * @param[in] pRef points to the block of reference data.
- * @param[out] pOut points to the block of output data.
- * @param[out] pErr points to the block of error data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_lms_q15(
- const arm_lms_instance_q15 * S,
- q15_t * pSrc,
- q15_t * pRef,
- q15_t * pOut,
- q15_t * pErr,
- uint32_t blockSize);
-
-
- /**
- * @brief Instance structure for the Q31 LMS filter.
- */
- typedef struct
- {
- uint16_t numTaps; /**< number of coefficients in the filter. */
- q31_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
- q31_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */
- q31_t mu; /**< step size that controls filter coefficient updates. */
- uint32_t postShift; /**< bit shift applied to coefficients. */
- } arm_lms_instance_q31;
-
-
- /**
- * @brief Processing function for Q31 LMS filter.
- * @param[in] S points to an instance of the Q15 LMS filter structure.
- * @param[in] pSrc points to the block of input data.
- * @param[in] pRef points to the block of reference data.
- * @param[out] pOut points to the block of output data.
- * @param[out] pErr points to the block of error data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_lms_q31(
- const arm_lms_instance_q31 * S,
- q31_t * pSrc,
- q31_t * pRef,
- q31_t * pOut,
- q31_t * pErr,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for Q31 LMS filter.
- * @param[in] S points to an instance of the Q31 LMS filter structure.
- * @param[in] numTaps number of filter coefficients.
- * @param[in] pCoeffs points to coefficient buffer.
- * @param[in] pState points to state buffer.
- * @param[in] mu step size that controls filter coefficient updates.
- * @param[in] blockSize number of samples to process.
- * @param[in] postShift bit shift applied to coefficients.
- */
- void arm_lms_init_q31(
- arm_lms_instance_q31 * S,
- uint16_t numTaps,
- q31_t * pCoeffs,
- q31_t * pState,
- q31_t mu,
- uint32_t blockSize,
- uint32_t postShift);
-
-
- /**
- * @brief Instance structure for the floating-point normalized LMS filter.
- */
- typedef struct
- {
- uint16_t numTaps; /**< number of coefficients in the filter. */
- float32_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
- float32_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */
- float32_t mu; /**< step size that control filter coefficient updates. */
- float32_t energy; /**< saves previous frame energy. */
- float32_t x0; /**< saves previous input sample. */
- } arm_lms_norm_instance_f32;
-
-
- /**
- * @brief Processing function for floating-point normalized LMS filter.
- * @param[in] S points to an instance of the floating-point normalized LMS filter structure.
- * @param[in] pSrc points to the block of input data.
- * @param[in] pRef points to the block of reference data.
- * @param[out] pOut points to the block of output data.
- * @param[out] pErr points to the block of error data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_lms_norm_f32(
- arm_lms_norm_instance_f32 * S,
- float32_t * pSrc,
- float32_t * pRef,
- float32_t * pOut,
- float32_t * pErr,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for floating-point normalized LMS filter.
- * @param[in] S points to an instance of the floating-point LMS filter structure.
- * @param[in] numTaps number of filter coefficients.
- * @param[in] pCoeffs points to coefficient buffer.
- * @param[in] pState points to state buffer.
- * @param[in] mu step size that controls filter coefficient updates.
- * @param[in] blockSize number of samples to process.
- */
- void arm_lms_norm_init_f32(
- arm_lms_norm_instance_f32 * S,
- uint16_t numTaps,
- float32_t * pCoeffs,
- float32_t * pState,
- float32_t mu,
- uint32_t blockSize);
-
-
- /**
- * @brief Instance structure for the Q31 normalized LMS filter.
- */
- typedef struct
- {
- uint16_t numTaps; /**< number of coefficients in the filter. */
- q31_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
- q31_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */
- q31_t mu; /**< step size that controls filter coefficient updates. */
- uint8_t postShift; /**< bit shift applied to coefficients. */
- q31_t *recipTable; /**< points to the reciprocal initial value table. */
- q31_t energy; /**< saves previous frame energy. */
- q31_t x0; /**< saves previous input sample. */
- } arm_lms_norm_instance_q31;
-
-
- /**
- * @brief Processing function for Q31 normalized LMS filter.
- * @param[in] S points to an instance of the Q31 normalized LMS filter structure.
- * @param[in] pSrc points to the block of input data.
- * @param[in] pRef points to the block of reference data.
- * @param[out] pOut points to the block of output data.
- * @param[out] pErr points to the block of error data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_lms_norm_q31(
- arm_lms_norm_instance_q31 * S,
- q31_t * pSrc,
- q31_t * pRef,
- q31_t * pOut,
- q31_t * pErr,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for Q31 normalized LMS filter.
- * @param[in] S points to an instance of the Q31 normalized LMS filter structure.
- * @param[in] numTaps number of filter coefficients.
- * @param[in] pCoeffs points to coefficient buffer.
- * @param[in] pState points to state buffer.
- * @param[in] mu step size that controls filter coefficient updates.
- * @param[in] blockSize number of samples to process.
- * @param[in] postShift bit shift applied to coefficients.
- */
- void arm_lms_norm_init_q31(
- arm_lms_norm_instance_q31 * S,
- uint16_t numTaps,
- q31_t * pCoeffs,
- q31_t * pState,
- q31_t mu,
- uint32_t blockSize,
- uint8_t postShift);
-
-
- /**
- * @brief Instance structure for the Q15 normalized LMS filter.
- */
- typedef struct
- {
- uint16_t numTaps; /**< Number of coefficients in the filter. */
- q15_t *pState; /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
- q15_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps. */
- q15_t mu; /**< step size that controls filter coefficient updates. */
- uint8_t postShift; /**< bit shift applied to coefficients. */
- q15_t *recipTable; /**< Points to the reciprocal initial value table. */
- q15_t energy; /**< saves previous frame energy. */
- q15_t x0; /**< saves previous input sample. */
- } arm_lms_norm_instance_q15;
-
-
- /**
- * @brief Processing function for Q15 normalized LMS filter.
- * @param[in] S points to an instance of the Q15 normalized LMS filter structure.
- * @param[in] pSrc points to the block of input data.
- * @param[in] pRef points to the block of reference data.
- * @param[out] pOut points to the block of output data.
- * @param[out] pErr points to the block of error data.
- * @param[in] blockSize number of samples to process.
- */
- void arm_lms_norm_q15(
- arm_lms_norm_instance_q15 * S,
- q15_t * pSrc,
- q15_t * pRef,
- q15_t * pOut,
- q15_t * pErr,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for Q15 normalized LMS filter.
- * @param[in] S points to an instance of the Q15 normalized LMS filter structure.
- * @param[in] numTaps number of filter coefficients.
- * @param[in] pCoeffs points to coefficient buffer.
- * @param[in] pState points to state buffer.
- * @param[in] mu step size that controls filter coefficient updates.
- * @param[in] blockSize number of samples to process.
- * @param[in] postShift bit shift applied to coefficients.
- */
- void arm_lms_norm_init_q15(
- arm_lms_norm_instance_q15 * S,
- uint16_t numTaps,
- q15_t * pCoeffs,
- q15_t * pState,
- q15_t mu,
- uint32_t blockSize,
- uint8_t postShift);
-
-
- /**
- * @brief Correlation of floating-point sequences.
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1.
- */
- void arm_correlate_f32(
- float32_t * pSrcA,
- uint32_t srcALen,
- float32_t * pSrcB,
- uint32_t srcBLen,
- float32_t * pDst);
-
-
- /**
- * @brief Correlation of Q15 sequences
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1.
- * @param[in] pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
- */
- void arm_correlate_opt_q15(
- q15_t * pSrcA,
- uint32_t srcALen,
- q15_t * pSrcB,
- uint32_t srcBLen,
- q15_t * pDst,
- q15_t * pScratch);
-
-
- /**
- * @brief Correlation of Q15 sequences.
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1.
- */
-
- void arm_correlate_q15(
- q15_t * pSrcA,
- uint32_t srcALen,
- q15_t * pSrcB,
- uint32_t srcBLen,
- q15_t * pDst);
-
-
- /**
- * @brief Correlation of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4.
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1.
- */
-
- void arm_correlate_fast_q15(
- q15_t * pSrcA,
- uint32_t srcALen,
- q15_t * pSrcB,
- uint32_t srcBLen,
- q15_t * pDst);
-
-
- /**
- * @brief Correlation of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4.
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1.
- * @param[in] pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
- */
- void arm_correlate_fast_opt_q15(
- q15_t * pSrcA,
- uint32_t srcALen,
- q15_t * pSrcB,
- uint32_t srcBLen,
- q15_t * pDst,
- q15_t * pScratch);
-
-
- /**
- * @brief Correlation of Q31 sequences.
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1.
- */
- void arm_correlate_q31(
- q31_t * pSrcA,
- uint32_t srcALen,
- q31_t * pSrcB,
- uint32_t srcBLen,
- q31_t * pDst);
-
-
- /**
- * @brief Correlation of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1.
- */
- void arm_correlate_fast_q31(
- q31_t * pSrcA,
- uint32_t srcALen,
- q31_t * pSrcB,
- uint32_t srcBLen,
- q31_t * pDst);
-
-
- /**
- * @brief Correlation of Q7 sequences.
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1.
- * @param[in] pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
- * @param[in] pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen).
- */
- void arm_correlate_opt_q7(
- q7_t * pSrcA,
- uint32_t srcALen,
- q7_t * pSrcB,
- uint32_t srcBLen,
- q7_t * pDst,
- q15_t * pScratch1,
- q15_t * pScratch2);
-
-
- /**
- * @brief Correlation of Q7 sequences.
- * @param[in] pSrcA points to the first input sequence.
- * @param[in] srcALen length of the first input sequence.
- * @param[in] pSrcB points to the second input sequence.
- * @param[in] srcBLen length of the second input sequence.
- * @param[out] pDst points to the block of output data Length 2 * max(srcALen, srcBLen) - 1.
- */
- void arm_correlate_q7(
- q7_t * pSrcA,
- uint32_t srcALen,
- q7_t * pSrcB,
- uint32_t srcBLen,
- q7_t * pDst);
-
-
- /**
- * @brief Instance structure for the floating-point sparse FIR filter.
- */
- typedef struct
- {
- uint16_t numTaps; /**< number of coefficients in the filter. */
- uint16_t stateIndex; /**< state buffer index. Points to the oldest sample in the state buffer. */
- float32_t *pState; /**< points to the state buffer array. The array is of length maxDelay+blockSize-1. */
- float32_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/
- uint16_t maxDelay; /**< maximum offset specified by the pTapDelay array. */
- int32_t *pTapDelay; /**< points to the array of delay values. The array is of length numTaps. */
- } arm_fir_sparse_instance_f32;
-
- /**
- * @brief Instance structure for the Q31 sparse FIR filter.
- */
- typedef struct
- {
- uint16_t numTaps; /**< number of coefficients in the filter. */
- uint16_t stateIndex; /**< state buffer index. Points to the oldest sample in the state buffer. */
- q31_t *pState; /**< points to the state buffer array. The array is of length maxDelay+blockSize-1. */
- q31_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/
- uint16_t maxDelay; /**< maximum offset specified by the pTapDelay array. */
- int32_t *pTapDelay; /**< points to the array of delay values. The array is of length numTaps. */
- } arm_fir_sparse_instance_q31;
-
- /**
- * @brief Instance structure for the Q15 sparse FIR filter.
- */
- typedef struct
- {
- uint16_t numTaps; /**< number of coefficients in the filter. */
- uint16_t stateIndex; /**< state buffer index. Points to the oldest sample in the state buffer. */
- q15_t *pState; /**< points to the state buffer array. The array is of length maxDelay+blockSize-1. */
- q15_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/
- uint16_t maxDelay; /**< maximum offset specified by the pTapDelay array. */
- int32_t *pTapDelay; /**< points to the array of delay values. The array is of length numTaps. */
- } arm_fir_sparse_instance_q15;
-
- /**
- * @brief Instance structure for the Q7 sparse FIR filter.
- */
- typedef struct
- {
- uint16_t numTaps; /**< number of coefficients in the filter. */
- uint16_t stateIndex; /**< state buffer index. Points to the oldest sample in the state buffer. */
- q7_t *pState; /**< points to the state buffer array. The array is of length maxDelay+blockSize-1. */
- q7_t *pCoeffs; /**< points to the coefficient array. The array is of length numTaps.*/
- uint16_t maxDelay; /**< maximum offset specified by the pTapDelay array. */
- int32_t *pTapDelay; /**< points to the array of delay values. The array is of length numTaps. */
- } arm_fir_sparse_instance_q7;
-
-
- /**
- * @brief Processing function for the floating-point sparse FIR filter.
- * @param[in] S points to an instance of the floating-point sparse FIR structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data
- * @param[in] pScratchIn points to a temporary buffer of size blockSize.
- * @param[in] blockSize number of input samples to process per call.
- */
- void arm_fir_sparse_f32(
- arm_fir_sparse_instance_f32 * S,
- float32_t * pSrc,
- float32_t * pDst,
- float32_t * pScratchIn,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the floating-point sparse FIR filter.
- * @param[in,out] S points to an instance of the floating-point sparse FIR structure.
- * @param[in] numTaps number of nonzero coefficients in the filter.
- * @param[in] pCoeffs points to the array of filter coefficients.
- * @param[in] pState points to the state buffer.
- * @param[in] pTapDelay points to the array of offset times.
- * @param[in] maxDelay maximum offset time supported.
- * @param[in] blockSize number of samples that will be processed per block.
- */
- void arm_fir_sparse_init_f32(
- arm_fir_sparse_instance_f32 * S,
- uint16_t numTaps,
- float32_t * pCoeffs,
- float32_t * pState,
- int32_t * pTapDelay,
- uint16_t maxDelay,
- uint32_t blockSize);
-
-
- /**
- * @brief Processing function for the Q31 sparse FIR filter.
- * @param[in] S points to an instance of the Q31 sparse FIR structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data
- * @param[in] pScratchIn points to a temporary buffer of size blockSize.
- * @param[in] blockSize number of input samples to process per call.
- */
- void arm_fir_sparse_q31(
- arm_fir_sparse_instance_q31 * S,
- q31_t * pSrc,
- q31_t * pDst,
- q31_t * pScratchIn,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the Q31 sparse FIR filter.
- * @param[in,out] S points to an instance of the Q31 sparse FIR structure.
- * @param[in] numTaps number of nonzero coefficients in the filter.
- * @param[in] pCoeffs points to the array of filter coefficients.
- * @param[in] pState points to the state buffer.
- * @param[in] pTapDelay points to the array of offset times.
- * @param[in] maxDelay maximum offset time supported.
- * @param[in] blockSize number of samples that will be processed per block.
- */
- void arm_fir_sparse_init_q31(
- arm_fir_sparse_instance_q31 * S,
- uint16_t numTaps,
- q31_t * pCoeffs,
- q31_t * pState,
- int32_t * pTapDelay,
- uint16_t maxDelay,
- uint32_t blockSize);
-
-
- /**
- * @brief Processing function for the Q15 sparse FIR filter.
- * @param[in] S points to an instance of the Q15 sparse FIR structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data
- * @param[in] pScratchIn points to a temporary buffer of size blockSize.
- * @param[in] pScratchOut points to a temporary buffer of size blockSize.
- * @param[in] blockSize number of input samples to process per call.
- */
- void arm_fir_sparse_q15(
- arm_fir_sparse_instance_q15 * S,
- q15_t * pSrc,
- q15_t * pDst,
- q15_t * pScratchIn,
- q31_t * pScratchOut,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the Q15 sparse FIR filter.
- * @param[in,out] S points to an instance of the Q15 sparse FIR structure.
- * @param[in] numTaps number of nonzero coefficients in the filter.
- * @param[in] pCoeffs points to the array of filter coefficients.
- * @param[in] pState points to the state buffer.
- * @param[in] pTapDelay points to the array of offset times.
- * @param[in] maxDelay maximum offset time supported.
- * @param[in] blockSize number of samples that will be processed per block.
- */
- void arm_fir_sparse_init_q15(
- arm_fir_sparse_instance_q15 * S,
- uint16_t numTaps,
- q15_t * pCoeffs,
- q15_t * pState,
- int32_t * pTapDelay,
- uint16_t maxDelay,
- uint32_t blockSize);
-
-
- /**
- * @brief Processing function for the Q7 sparse FIR filter.
- * @param[in] S points to an instance of the Q7 sparse FIR structure.
- * @param[in] pSrc points to the block of input data.
- * @param[out] pDst points to the block of output data
- * @param[in] pScratchIn points to a temporary buffer of size blockSize.
- * @param[in] pScratchOut points to a temporary buffer of size blockSize.
- * @param[in] blockSize number of input samples to process per call.
- */
- void arm_fir_sparse_q7(
- arm_fir_sparse_instance_q7 * S,
- q7_t * pSrc,
- q7_t * pDst,
- q7_t * pScratchIn,
- q31_t * pScratchOut,
- uint32_t blockSize);
-
-
- /**
- * @brief Initialization function for the Q7 sparse FIR filter.
- * @param[in,out] S points to an instance of the Q7 sparse FIR structure.
- * @param[in] numTaps number of nonzero coefficients in the filter.
- * @param[in] pCoeffs points to the array of filter coefficients.
- * @param[in] pState points to the state buffer.
- * @param[in] pTapDelay points to the array of offset times.
- * @param[in] maxDelay maximum offset time supported.
- * @param[in] blockSize number of samples that will be processed per block.
- */
- void arm_fir_sparse_init_q7(
- arm_fir_sparse_instance_q7 * S,
- uint16_t numTaps,
- q7_t * pCoeffs,
- q7_t * pState,
- int32_t * pTapDelay,
- uint16_t maxDelay,
- uint32_t blockSize);
-
-
- /**
- * @brief Floating-point sin_cos function.
- * @param[in] theta input value in degrees
- * @param[out] pSinVal points to the processed sine output.
- * @param[out] pCosVal points to the processed cos output.
- */
- void arm_sin_cos_f32(
- float32_t theta,
- float32_t * pSinVal,
- float32_t * pCosVal);
-
-
- /**
- * @brief Q31 sin_cos function.
- * @param[in] theta scaled input value in degrees
- * @param[out] pSinVal points to the processed sine output.
- * @param[out] pCosVal points to the processed cosine output.
- */
- void arm_sin_cos_q31(
- q31_t theta,
- q31_t * pSinVal,
- q31_t * pCosVal);
-
-
- /**
- * @brief Floating-point complex conjugate.
- * @param[in] pSrc points to the input vector
- * @param[out] pDst points to the output vector
- * @param[in] numSamples number of complex samples in each vector
- */
- void arm_cmplx_conj_f32(
- float32_t * pSrc,
- float32_t * pDst,
- uint32_t numSamples);
-
- /**
- * @brief Q31 complex conjugate.
- * @param[in] pSrc points to the input vector
- * @param[out] pDst points to the output vector
- * @param[in] numSamples number of complex samples in each vector
- */
- void arm_cmplx_conj_q31(
- q31_t * pSrc,
- q31_t * pDst,
- uint32_t numSamples);
-
-
- /**
- * @brief Q15 complex conjugate.
- * @param[in] pSrc points to the input vector
- * @param[out] pDst points to the output vector
- * @param[in] numSamples number of complex samples in each vector
- */
- void arm_cmplx_conj_q15(
- q15_t * pSrc,
- q15_t * pDst,
- uint32_t numSamples);
-
-
- /**
- * @brief Floating-point complex magnitude squared
- * @param[in] pSrc points to the complex input vector
- * @param[out] pDst points to the real output vector
- * @param[in] numSamples number of complex samples in the input vector
- */
- void arm_cmplx_mag_squared_f32(
- float32_t * pSrc,
- float32_t * pDst,
- uint32_t numSamples);
-
-
- /**
- * @brief Q31 complex magnitude squared
- * @param[in] pSrc points to the complex input vector
- * @param[out] pDst points to the real output vector
- * @param[in] numSamples number of complex samples in the input vector
- */
- void arm_cmplx_mag_squared_q31(
- q31_t * pSrc,
- q31_t * pDst,
- uint32_t numSamples);
-
-
- /**
- * @brief Q15 complex magnitude squared
- * @param[in] pSrc points to the complex input vector
- * @param[out] pDst points to the real output vector
- * @param[in] numSamples number of complex samples in the input vector
- */
- void arm_cmplx_mag_squared_q15(
- q15_t * pSrc,
- q15_t * pDst,
- uint32_t numSamples);
-
-
- /**
- * @ingroup groupController
- */
-
- /**
- * @defgroup PID PID Motor Control
- *
- * A Proportional Integral Derivative (PID) controller is a generic feedback control
- * loop mechanism widely used in industrial control systems.
- * A PID controller is the most commonly used type of feedback controller.
- *
- * This set of functions implements (PID) controllers
- * for Q15, Q31, and floating-point data types. The functions operate on a single sample
- * of data and each call to the function returns a single processed value.
- * S points to an instance of the PID control data structure. in
- * is the input sample value. The functions return the output value.
- *
- * \par Algorithm:
- *
- *
- * \par
- * where \c Kp is proportional constant, \c Ki is Integral constant and \c Kd is Derivative constant
- *
- * \par
- * \image html PID.gif "Proportional Integral Derivative Controller"
- *
- * \par
- * The PID controller calculates an "error" value as the difference between
- * the measured output and the reference input.
- * The controller attempts to minimize the error by adjusting the process control inputs.
- * The proportional value determines the reaction to the current error,
- * the integral value determines the reaction based on the sum of recent errors,
- * and the derivative value determines the reaction based on the rate at which the error has been changing.
- *
- * \par Instance Structure
- * The Gains A0, A1, A2 and state variables for a PID controller are stored together in an instance data structure.
- * A separate instance structure must be defined for each PID Controller.
- * There are separate instance structure declarations for each of the 3 supported data types.
- *
- * \par Reset Functions
- * There is also an associated reset function for each data type which clears the state array.
- *
- * \par Initialization Functions
- * There is also an associated initialization function for each data type.
- * The initialization function performs the following operations:
- * - Initializes the Gains A0, A1, A2 from Kp,Ki, Kd gains.
- * - Zeros out the values in the state buffer.
- *
- * \par
- * Instance structure cannot be placed into a const data section and it is recommended to use the initialization function.
- *
- * \par Fixed-Point Behavior
- * Care must be taken when using the fixed-point versions of the PID Controller functions.
- * In particular, the overflow and saturation behavior of the accumulator used in each function must be considered.
- * Refer to the function specific documentation below for usage guidelines.
- */
-
- /**
- * @addtogroup PID
- * @{
- */
-
- /**
- * @brief Process function for the floating-point PID Control.
- * @param[in,out] S is an instance of the floating-point PID Control structure
- * @param[in] in input sample to process
- * @return out processed output sample.
- */
- CMSIS_INLINE __STATIC_INLINE float32_t arm_pid_f32(
- arm_pid_instance_f32 * S,
- float32_t in)
- {
- float32_t out;
-
- /* y[n] = y[n-1] + A0 * x[n] + A1 * x[n-1] + A2 * x[n-2] */
- out = (S->A0 * in) +
- (S->A1 * S->state[0]) + (S->A2 * S->state[1]) + (S->state[2]);
-
- /* Update state */
- S->state[1] = S->state[0];
- S->state[0] = in;
- S->state[2] = out;
-
- /* return to application */
- return (out);
-
- }
-
- /**
- * @brief Process function for the Q31 PID Control.
- * @param[in,out] S points to an instance of the Q31 PID Control structure
- * @param[in] in input sample to process
- * @return out processed output sample.
- *
- * Scaling and Overflow Behavior:
- * \par
- * The function is implemented using an internal 64-bit accumulator.
- * The accumulator has a 2.62 format and maintains full precision of the intermediate multiplication results but provides only a single guard bit.
- * Thus, if the accumulator result overflows it wraps around rather than clip.
- * In order to avoid overflows completely the input signal must be scaled down by 2 bits as there are four additions.
- * After all multiply-accumulates are performed, the 2.62 accumulator is truncated to 1.32 format and then saturated to 1.31 format.
- */
- CMSIS_INLINE __STATIC_INLINE q31_t arm_pid_q31(
- arm_pid_instance_q31 * S,
- q31_t in)
- {
- q63_t acc;
- q31_t out;
-
- /* acc = A0 * x[n] */
- acc = (q63_t) S->A0 * in;
-
- /* acc += A1 * x[n-1] */
- acc += (q63_t) S->A1 * S->state[0];
-
- /* acc += A2 * x[n-2] */
- acc += (q63_t) S->A2 * S->state[1];
-
- /* convert output to 1.31 format to add y[n-1] */
- out = (q31_t) (acc >> 31U);
-
- /* out += y[n-1] */
- out += S->state[2];
-
- /* Update state */
- S->state[1] = S->state[0];
- S->state[0] = in;
- S->state[2] = out;
-
- /* return to application */
- return (out);
- }
-
-
- /**
- * @brief Process function for the Q15 PID Control.
- * @param[in,out] S points to an instance of the Q15 PID Control structure
- * @param[in] in input sample to process
- * @return out processed output sample.
- *
- * Scaling and Overflow Behavior:
- * \par
- * The function is implemented using a 64-bit internal accumulator.
- * Both Gains and state variables are represented in 1.15 format and multiplications yield a 2.30 result.
- * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format.
- * There is no risk of internal overflow with this approach and the full precision of intermediate multiplications is preserved.
- * After all additions have been performed, the accumulator is truncated to 34.15 format by discarding low 15 bits.
- * Lastly, the accumulator is saturated to yield a result in 1.15 format.
- */
- CMSIS_INLINE __STATIC_INLINE q15_t arm_pid_q15(
- arm_pid_instance_q15 * S,
- q15_t in)
- {
- q63_t acc;
- q15_t out;
-
-#if defined (ARM_MATH_DSP)
- __SIMD32_TYPE *vstate;
-
- /* Implementation of PID controller */
-
- /* acc = A0 * x[n] */
- acc = (q31_t) __SMUAD((uint32_t)S->A0, (uint32_t)in);
-
- /* acc += A1 * x[n-1] + A2 * x[n-2] */
- vstate = __SIMD32_CONST(S->state);
- acc = (q63_t)__SMLALD((uint32_t)S->A1, (uint32_t)*vstate, (uint64_t)acc);
-#else
- /* acc = A0 * x[n] */
- acc = ((q31_t) S->A0) * in;
-
- /* acc += A1 * x[n-1] + A2 * x[n-2] */
- acc += (q31_t) S->A1 * S->state[0];
- acc += (q31_t) S->A2 * S->state[1];
-#endif
-
- /* acc += y[n-1] */
- acc += (q31_t) S->state[2] << 15;
-
- /* saturate the output */
- out = (q15_t) (__SSAT((acc >> 15), 16));
-
- /* Update state */
- S->state[1] = S->state[0];
- S->state[0] = in;
- S->state[2] = out;
-
- /* return to application */
- return (out);
- }
-
- /**
- * @} end of PID group
- */
-
-
- /**
- * @brief Floating-point matrix inverse.
- * @param[in] src points to the instance of the input floating-point matrix structure.
- * @param[out] dst points to the instance of the output floating-point matrix structure.
- * @return The function returns ARM_MATH_SIZE_MISMATCH, if the dimensions do not match.
- * If the input matrix is singular (does not have an inverse), then the algorithm terminates and returns error status ARM_MATH_SINGULAR.
- */
- arm_status arm_mat_inverse_f32(
- const arm_matrix_instance_f32 * src,
- arm_matrix_instance_f32 * dst);
-
-
- /**
- * @brief Floating-point matrix inverse.
- * @param[in] src points to the instance of the input floating-point matrix structure.
- * @param[out] dst points to the instance of the output floating-point matrix structure.
- * @return The function returns ARM_MATH_SIZE_MISMATCH, if the dimensions do not match.
- * If the input matrix is singular (does not have an inverse), then the algorithm terminates and returns error status ARM_MATH_SINGULAR.
- */
- arm_status arm_mat_inverse_f64(
- const arm_matrix_instance_f64 * src,
- arm_matrix_instance_f64 * dst);
-
-
-
- /**
- * @ingroup groupController
- */
-
- /**
- * @defgroup clarke Vector Clarke Transform
- * Forward Clarke transform converts the instantaneous stator phases into a two-coordinate time invariant vector.
- * Generally the Clarke transform uses three-phase currents Ia, Ib and Ic to calculate currents
- * in the two-phase orthogonal stator axis Ialpha and Ibeta.
- * When Ialpha is superposed with Ia as shown in the figure below
- * \image html clarke.gif Stator current space vector and its components in (a,b).
- * and Ia + Ib + Ic = 0, in this condition Ialpha and Ibeta
- * can be calculated using only Ia and Ib.
- *
- * The function operates on a single sample of data and each call to the function returns the processed output.
- * The library provides separate functions for Q31 and floating-point data types.
- * \par Algorithm
- * \image html clarkeFormula.gif
- * where Ia and Ib are the instantaneous stator phases and
- * pIalpha and pIbeta are the two coordinates of time invariant vector.
- * \par Fixed-Point Behavior
- * Care must be taken when using the Q31 version of the Clarke transform.
- * In particular, the overflow and saturation behavior of the accumulator used must be considered.
- * Refer to the function specific documentation below for usage guidelines.
- */
-
- /**
- * @addtogroup clarke
- * @{
- */
-
- /**
- *
- * @brief Floating-point Clarke transform
- * @param[in] Ia input three-phase coordinate a
- * @param[in] Ib input three-phase coordinate b
- * @param[out] pIalpha points to output two-phase orthogonal vector axis alpha
- * @param[out] pIbeta points to output two-phase orthogonal vector axis beta
- */
- CMSIS_INLINE __STATIC_INLINE void arm_clarke_f32(
- float32_t Ia,
- float32_t Ib,
- float32_t * pIalpha,
- float32_t * pIbeta)
- {
- /* Calculate pIalpha using the equation, pIalpha = Ia */
- *pIalpha = Ia;
-
- /* Calculate pIbeta using the equation, pIbeta = (1/sqrt(3)) * Ia + (2/sqrt(3)) * Ib */
- *pIbeta = ((float32_t) 0.57735026919 * Ia + (float32_t) 1.15470053838 * Ib);
- }
-
-
- /**
- * @brief Clarke transform for Q31 version
- * @param[in] Ia input three-phase coordinate a
- * @param[in] Ib input three-phase coordinate b
- * @param[out] pIalpha points to output two-phase orthogonal vector axis alpha
- * @param[out] pIbeta points to output two-phase orthogonal vector axis beta
- *
- * Scaling and Overflow Behavior:
- * \par
- * The function is implemented using an internal 32-bit accumulator.
- * The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format.
- * There is saturation on the addition, hence there is no risk of overflow.
- */
- CMSIS_INLINE __STATIC_INLINE void arm_clarke_q31(
- q31_t Ia,
- q31_t Ib,
- q31_t * pIalpha,
- q31_t * pIbeta)
- {
- q31_t product1, product2; /* Temporary variables used to store intermediate results */
-
- /* Calculating pIalpha from Ia by equation pIalpha = Ia */
- *pIalpha = Ia;
-
- /* Intermediate product is calculated by (1/(sqrt(3)) * Ia) */
- product1 = (q31_t) (((q63_t) Ia * 0x24F34E8B) >> 30);
-
- /* Intermediate product is calculated by (2/sqrt(3) * Ib) */
- product2 = (q31_t) (((q63_t) Ib * 0x49E69D16) >> 30);
-
- /* pIbeta is calculated by adding the intermediate products */
- *pIbeta = __QADD(product1, product2);
- }
-
- /**
- * @} end of clarke group
- */
-
- /**
- * @brief Converts the elements of the Q7 vector to Q31 vector.
- * @param[in] pSrc input pointer
- * @param[out] pDst output pointer
- * @param[in] blockSize number of samples to process
- */
- void arm_q7_to_q31(
- q7_t * pSrc,
- q31_t * pDst,
- uint32_t blockSize);
-
-
-
- /**
- * @ingroup groupController
- */
-
- /**
- * @defgroup inv_clarke Vector Inverse Clarke Transform
- * Inverse Clarke transform converts the two-coordinate time invariant vector into instantaneous stator phases.
- *
- * The function operates on a single sample of data and each call to the function returns the processed output.
- * The library provides separate functions for Q31 and floating-point data types.
- * \par Algorithm
- * \image html clarkeInvFormula.gif
- * where pIa and pIb are the instantaneous stator phases and
- * Ialpha and Ibeta are the two coordinates of time invariant vector.
- * \par Fixed-Point Behavior
- * Care must be taken when using the Q31 version of the Clarke transform.
- * In particular, the overflow and saturation behavior of the accumulator used must be considered.
- * Refer to the function specific documentation below for usage guidelines.
- */
-
- /**
- * @addtogroup inv_clarke
- * @{
- */
-
- /**
- * @brief Floating-point Inverse Clarke transform
- * @param[in] Ialpha input two-phase orthogonal vector axis alpha
- * @param[in] Ibeta input two-phase orthogonal vector axis beta
- * @param[out] pIa points to output three-phase coordinate a
- * @param[out] pIb points to output three-phase coordinate b
- */
- CMSIS_INLINE __STATIC_INLINE void arm_inv_clarke_f32(
- float32_t Ialpha,
- float32_t Ibeta,
- float32_t * pIa,
- float32_t * pIb)
- {
- /* Calculating pIa from Ialpha by equation pIa = Ialpha */
- *pIa = Ialpha;
-
- /* Calculating pIb from Ialpha and Ibeta by equation pIb = -(1/2) * Ialpha + (sqrt(3)/2) * Ibeta */
- *pIb = -0.5f * Ialpha + 0.8660254039f * Ibeta;
- }
-
-
- /**
- * @brief Inverse Clarke transform for Q31 version
- * @param[in] Ialpha input two-phase orthogonal vector axis alpha
- * @param[in] Ibeta input two-phase orthogonal vector axis beta
- * @param[out] pIa points to output three-phase coordinate a
- * @param[out] pIb points to output three-phase coordinate b
- *
- * Scaling and Overflow Behavior:
- * \par
- * The function is implemented using an internal 32-bit accumulator.
- * The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format.
- * There is saturation on the subtraction, hence there is no risk of overflow.
- */
- CMSIS_INLINE __STATIC_INLINE void arm_inv_clarke_q31(
- q31_t Ialpha,
- q31_t Ibeta,
- q31_t * pIa,
- q31_t * pIb)
- {
- q31_t product1, product2; /* Temporary variables used to store intermediate results */
-
- /* Calculating pIa from Ialpha by equation pIa = Ialpha */
- *pIa = Ialpha;
-
- /* Intermediate product is calculated by (1/(2*sqrt(3)) * Ia) */
- product1 = (q31_t) (((q63_t) (Ialpha) * (0x40000000)) >> 31);
-
- /* Intermediate product is calculated by (1/sqrt(3) * pIb) */
- product2 = (q31_t) (((q63_t) (Ibeta) * (0x6ED9EBA1)) >> 31);
-
- /* pIb is calculated by subtracting the products */
- *pIb = __QSUB(product2, product1);
- }
-
- /**
- * @} end of inv_clarke group
- */
-
- /**
- * @brief Converts the elements of the Q7 vector to Q15 vector.
- * @param[in] pSrc input pointer
- * @param[out] pDst output pointer
- * @param[in] blockSize number of samples to process
- */
- void arm_q7_to_q15(
- q7_t * pSrc,
- q15_t * pDst,
- uint32_t blockSize);
-
-
-
- /**
- * @ingroup groupController
- */
-
- /**
- * @defgroup park Vector Park Transform
- *
- * Forward Park transform converts the input two-coordinate vector to flux and torque components.
- * The Park transform can be used to realize the transformation of the Ialpha and the Ibeta currents
- * from the stationary to the moving reference frame and control the spatial relationship between
- * the stator vector current and rotor flux vector.
- * If we consider the d axis aligned with the rotor flux, the diagram below shows the
- * current vector and the relationship from the two reference frames:
- * \image html park.gif "Stator current space vector and its component in (a,b) and in the d,q rotating reference frame"
- *
- * The function operates on a single sample of data and each call to the function returns the processed output.
- * The library provides separate functions for Q31 and floating-point data types.
- * \par Algorithm
- * \image html parkFormula.gif
- * where Ialpha and Ibeta are the stator vector components,
- * pId and pIq are rotor vector components and cosVal and sinVal are the
- * cosine and sine values of theta (rotor flux position).
- * \par Fixed-Point Behavior
- * Care must be taken when using the Q31 version of the Park transform.
- * In particular, the overflow and saturation behavior of the accumulator used must be considered.
- * Refer to the function specific documentation below for usage guidelines.
- */
-
- /**
- * @addtogroup park
- * @{
- */
-
- /**
- * @brief Floating-point Park transform
- * @param[in] Ialpha input two-phase vector coordinate alpha
- * @param[in] Ibeta input two-phase vector coordinate beta
- * @param[out] pId points to output rotor reference frame d
- * @param[out] pIq points to output rotor reference frame q
- * @param[in] sinVal sine value of rotation angle theta
- * @param[in] cosVal cosine value of rotation angle theta
- *
- * The function implements the forward Park transform.
- *
- */
- CMSIS_INLINE __STATIC_INLINE void arm_park_f32(
- float32_t Ialpha,
- float32_t Ibeta,
- float32_t * pId,
- float32_t * pIq,
- float32_t sinVal,
- float32_t cosVal)
- {
- /* Calculate pId using the equation, pId = Ialpha * cosVal + Ibeta * sinVal */
- *pId = Ialpha * cosVal + Ibeta * sinVal;
-
- /* Calculate pIq using the equation, pIq = - Ialpha * sinVal + Ibeta * cosVal */
- *pIq = -Ialpha * sinVal + Ibeta * cosVal;
- }
-
-
- /**
- * @brief Park transform for Q31 version
- * @param[in] Ialpha input two-phase vector coordinate alpha
- * @param[in] Ibeta input two-phase vector coordinate beta
- * @param[out] pId points to output rotor reference frame d
- * @param[out] pIq points to output rotor reference frame q
- * @param[in] sinVal sine value of rotation angle theta
- * @param[in] cosVal cosine value of rotation angle theta
- *
- * Scaling and Overflow Behavior:
- * \par
- * The function is implemented using an internal 32-bit accumulator.
- * The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format.
- * There is saturation on the addition and subtraction, hence there is no risk of overflow.
- */
- CMSIS_INLINE __STATIC_INLINE void arm_park_q31(
- q31_t Ialpha,
- q31_t Ibeta,
- q31_t * pId,
- q31_t * pIq,
- q31_t sinVal,
- q31_t cosVal)
- {
- q31_t product1, product2; /* Temporary variables used to store intermediate results */
- q31_t product3, product4; /* Temporary variables used to store intermediate results */
-
- /* Intermediate product is calculated by (Ialpha * cosVal) */
- product1 = (q31_t) (((q63_t) (Ialpha) * (cosVal)) >> 31);
-
- /* Intermediate product is calculated by (Ibeta * sinVal) */
- product2 = (q31_t) (((q63_t) (Ibeta) * (sinVal)) >> 31);
-
-
- /* Intermediate product is calculated by (Ialpha * sinVal) */
- product3 = (q31_t) (((q63_t) (Ialpha) * (sinVal)) >> 31);
-
- /* Intermediate product is calculated by (Ibeta * cosVal) */
- product4 = (q31_t) (((q63_t) (Ibeta) * (cosVal)) >> 31);
-
- /* Calculate pId by adding the two intermediate products 1 and 2 */
- *pId = __QADD(product1, product2);
-
- /* Calculate pIq by subtracting the two intermediate products 3 from 4 */
- *pIq = __QSUB(product4, product3);
- }
-
- /**
- * @} end of park group
- */
-
- /**
- * @brief Converts the elements of the Q7 vector to floating-point vector.
- * @param[in] pSrc is input pointer
- * @param[out] pDst is output pointer
- * @param[in] blockSize is the number of samples to process
- */
- void arm_q7_to_float(
- q7_t * pSrc,
- float32_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @ingroup groupController
- */
-
- /**
- * @defgroup inv_park Vector Inverse Park transform
- * Inverse Park transform converts the input flux and torque components to two-coordinate vector.
- *
- * The function operates on a single sample of data and each call to the function returns the processed output.
- * The library provides separate functions for Q31 and floating-point data types.
- * \par Algorithm
- * \image html parkInvFormula.gif
- * where pIalpha and pIbeta are the stator vector components,
- * Id and Iq are rotor vector components and cosVal and sinVal are the
- * cosine and sine values of theta (rotor flux position).
- * \par Fixed-Point Behavior
- * Care must be taken when using the Q31 version of the Park transform.
- * In particular, the overflow and saturation behavior of the accumulator used must be considered.
- * Refer to the function specific documentation below for usage guidelines.
- */
-
- /**
- * @addtogroup inv_park
- * @{
- */
-
- /**
- * @brief Floating-point Inverse Park transform
- * @param[in] Id input coordinate of rotor reference frame d
- * @param[in] Iq input coordinate of rotor reference frame q
- * @param[out] pIalpha points to output two-phase orthogonal vector axis alpha
- * @param[out] pIbeta points to output two-phase orthogonal vector axis beta
- * @param[in] sinVal sine value of rotation angle theta
- * @param[in] cosVal cosine value of rotation angle theta
- */
- CMSIS_INLINE __STATIC_INLINE void arm_inv_park_f32(
- float32_t Id,
- float32_t Iq,
- float32_t * pIalpha,
- float32_t * pIbeta,
- float32_t sinVal,
- float32_t cosVal)
- {
- /* Calculate pIalpha using the equation, pIalpha = Id * cosVal - Iq * sinVal */
- *pIalpha = Id * cosVal - Iq * sinVal;
-
- /* Calculate pIbeta using the equation, pIbeta = Id * sinVal + Iq * cosVal */
- *pIbeta = Id * sinVal + Iq * cosVal;
- }
-
-
- /**
- * @brief Inverse Park transform for Q31 version
- * @param[in] Id input coordinate of rotor reference frame d
- * @param[in] Iq input coordinate of rotor reference frame q
- * @param[out] pIalpha points to output two-phase orthogonal vector axis alpha
- * @param[out] pIbeta points to output two-phase orthogonal vector axis beta
- * @param[in] sinVal sine value of rotation angle theta
- * @param[in] cosVal cosine value of rotation angle theta
- *
- * Scaling and Overflow Behavior:
- * \par
- * The function is implemented using an internal 32-bit accumulator.
- * The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format.
- * There is saturation on the addition, hence there is no risk of overflow.
- */
- CMSIS_INLINE __STATIC_INLINE void arm_inv_park_q31(
- q31_t Id,
- q31_t Iq,
- q31_t * pIalpha,
- q31_t * pIbeta,
- q31_t sinVal,
- q31_t cosVal)
- {
- q31_t product1, product2; /* Temporary variables used to store intermediate results */
- q31_t product3, product4; /* Temporary variables used to store intermediate results */
-
- /* Intermediate product is calculated by (Id * cosVal) */
- product1 = (q31_t) (((q63_t) (Id) * (cosVal)) >> 31);
-
- /* Intermediate product is calculated by (Iq * sinVal) */
- product2 = (q31_t) (((q63_t) (Iq) * (sinVal)) >> 31);
-
-
- /* Intermediate product is calculated by (Id * sinVal) */
- product3 = (q31_t) (((q63_t) (Id) * (sinVal)) >> 31);
-
- /* Intermediate product is calculated by (Iq * cosVal) */
- product4 = (q31_t) (((q63_t) (Iq) * (cosVal)) >> 31);
-
- /* Calculate pIalpha by using the two intermediate products 1 and 2 */
- *pIalpha = __QSUB(product1, product2);
-
- /* Calculate pIbeta by using the two intermediate products 3 and 4 */
- *pIbeta = __QADD(product4, product3);
- }
-
- /**
- * @} end of Inverse park group
- */
-
-
- /**
- * @brief Converts the elements of the Q31 vector to floating-point vector.
- * @param[in] pSrc is input pointer
- * @param[out] pDst is output pointer
- * @param[in] blockSize is the number of samples to process
- */
- void arm_q31_to_float(
- q31_t * pSrc,
- float32_t * pDst,
- uint32_t blockSize);
-
- /**
- * @ingroup groupInterpolation
- */
-
- /**
- * @defgroup LinearInterpolate Linear Interpolation
- *
- * Linear interpolation is a method of curve fitting using linear polynomials.
- * Linear interpolation works by effectively drawing a straight line between two neighboring samples and returning the appropriate point along that line
- *
- * \par
- * \image html LinearInterp.gif "Linear interpolation"
- *
- * \par
- * A Linear Interpolate function calculates an output value(y), for the input(x)
- * using linear interpolation of the input values x0, x1( nearest input values) and the output values y0 and y1(nearest output values)
- *
- * \par Algorithm:
- *
- * y = y0 + (x - x0) * ((y1 - y0)/(x1-x0))
- * where x0, x1 are nearest values of input x
- * y0, y1 are nearest values to output y
- *
- *
- * \par
- * This set of functions implements Linear interpolation process
- * for Q7, Q15, Q31, and floating-point data types. The functions operate on a single
- * sample of data and each call to the function returns a single processed value.
- * S points to an instance of the Linear Interpolate function data structure.
- * x is the input sample value. The functions returns the output value.
- *
- * \par
- * if x is outside of the table boundary, Linear interpolation returns first value of the table
- * if x is below input range and returns last value of table if x is above range.
- */
-
- /**
- * @addtogroup LinearInterpolate
- * @{
- */
-
- /**
- * @brief Process function for the floating-point Linear Interpolation Function.
- * @param[in,out] S is an instance of the floating-point Linear Interpolation structure
- * @param[in] x input sample to process
- * @return y processed output sample.
- *
- */
- CMSIS_INLINE __STATIC_INLINE float32_t arm_linear_interp_f32(
- arm_linear_interp_instance_f32 * S,
- float32_t x)
- {
- float32_t y;
- float32_t x0, x1; /* Nearest input values */
- float32_t y0, y1; /* Nearest output values */
- float32_t xSpacing = S->xSpacing; /* spacing between input values */
- int32_t i; /* Index variable */
- float32_t *pYData = S->pYData; /* pointer to output table */
-
- /* Calculation of index */
- i = (int32_t) ((x - S->x1) / xSpacing);
-
- if (i < 0)
- {
- /* Iniatilize output for below specified range as least output value of table */
- y = pYData[0];
- }
- else if ((uint32_t)i >= S->nValues)
- {
- /* Iniatilize output for above specified range as last output value of table */
- y = pYData[S->nValues - 1];
- }
- else
- {
- /* Calculation of nearest input values */
- x0 = S->x1 + i * xSpacing;
- x1 = S->x1 + (i + 1) * xSpacing;
-
- /* Read of nearest output values */
- y0 = pYData[i];
- y1 = pYData[i + 1];
-
- /* Calculation of output */
- y = y0 + (x - x0) * ((y1 - y0) / (x1 - x0));
-
- }
-
- /* returns output value */
- return (y);
- }
-
-
- /**
- *
- * @brief Process function for the Q31 Linear Interpolation Function.
- * @param[in] pYData pointer to Q31 Linear Interpolation table
- * @param[in] x input sample to process
- * @param[in] nValues number of table values
- * @return y processed output sample.
- *
- * \par
- * Input sample x is in 12.20 format which contains 12 bits for table index and 20 bits for fractional part.
- * This function can support maximum of table size 2^12.
- *
- */
- CMSIS_INLINE __STATIC_INLINE q31_t arm_linear_interp_q31(
- q31_t * pYData,
- q31_t x,
- uint32_t nValues)
- {
- q31_t y; /* output */
- q31_t y0, y1; /* Nearest output values */
- q31_t fract; /* fractional part */
- int32_t index; /* Index to read nearest output values */
-
- /* Input is in 12.20 format */
- /* 12 bits for the table index */
- /* Index value calculation */
- index = ((x & (q31_t)0xFFF00000) >> 20);
-
- if (index >= (int32_t)(nValues - 1))
- {
- return (pYData[nValues - 1]);
- }
- else if (index < 0)
- {
- return (pYData[0]);
- }
- else
- {
- /* 20 bits for the fractional part */
- /* shift left by 11 to keep fract in 1.31 format */
- fract = (x & 0x000FFFFF) << 11;
-
- /* Read two nearest output values from the index in 1.31(q31) format */
- y0 = pYData[index];
- y1 = pYData[index + 1];
-
- /* Calculation of y0 * (1-fract) and y is in 2.30 format */
- y = ((q31_t) ((q63_t) y0 * (0x7FFFFFFF - fract) >> 32));
-
- /* Calculation of y0 * (1-fract) + y1 *fract and y is in 2.30 format */
- y += ((q31_t) (((q63_t) y1 * fract) >> 32));
-
- /* Convert y to 1.31 format */
- return (y << 1U);
- }
- }
-
-
- /**
- *
- * @brief Process function for the Q15 Linear Interpolation Function.
- * @param[in] pYData pointer to Q15 Linear Interpolation table
- * @param[in] x input sample to process
- * @param[in] nValues number of table values
- * @return y processed output sample.
- *
- * \par
- * Input sample x is in 12.20 format which contains 12 bits for table index and 20 bits for fractional part.
- * This function can support maximum of table size 2^12.
- *
- */
- CMSIS_INLINE __STATIC_INLINE q15_t arm_linear_interp_q15(
- q15_t * pYData,
- q31_t x,
- uint32_t nValues)
- {
- q63_t y; /* output */
- q15_t y0, y1; /* Nearest output values */
- q31_t fract; /* fractional part */
- int32_t index; /* Index to read nearest output values */
-
- /* Input is in 12.20 format */
- /* 12 bits for the table index */
- /* Index value calculation */
- index = ((x & (int32_t)0xFFF00000) >> 20);
-
- if (index >= (int32_t)(nValues - 1))
- {
- return (pYData[nValues - 1]);
- }
- else if (index < 0)
- {
- return (pYData[0]);
- }
- else
- {
- /* 20 bits for the fractional part */
- /* fract is in 12.20 format */
- fract = (x & 0x000FFFFF);
-
- /* Read two nearest output values from the index */
- y0 = pYData[index];
- y1 = pYData[index + 1];
-
- /* Calculation of y0 * (1-fract) and y is in 13.35 format */
- y = ((q63_t) y0 * (0xFFFFF - fract));
-
- /* Calculation of (y0 * (1-fract) + y1 * fract) and y is in 13.35 format */
- y += ((q63_t) y1 * (fract));
-
- /* convert y to 1.15 format */
- return (q15_t) (y >> 20);
- }
- }
-
-
- /**
- *
- * @brief Process function for the Q7 Linear Interpolation Function.
- * @param[in] pYData pointer to Q7 Linear Interpolation table
- * @param[in] x input sample to process
- * @param[in] nValues number of table values
- * @return y processed output sample.
- *
- * \par
- * Input sample x is in 12.20 format which contains 12 bits for table index and 20 bits for fractional part.
- * This function can support maximum of table size 2^12.
- */
- CMSIS_INLINE __STATIC_INLINE q7_t arm_linear_interp_q7(
- q7_t * pYData,
- q31_t x,
- uint32_t nValues)
- {
- q31_t y; /* output */
- q7_t y0, y1; /* Nearest output values */
- q31_t fract; /* fractional part */
- uint32_t index; /* Index to read nearest output values */
-
- /* Input is in 12.20 format */
- /* 12 bits for the table index */
- /* Index value calculation */
- if (x < 0)
- {
- return (pYData[0]);
- }
- index = (x >> 20) & 0xfff;
-
- if (index >= (nValues - 1))
- {
- return (pYData[nValues - 1]);
- }
- else
- {
- /* 20 bits for the fractional part */
- /* fract is in 12.20 format */
- fract = (x & 0x000FFFFF);
-
- /* Read two nearest output values from the index and are in 1.7(q7) format */
- y0 = pYData[index];
- y1 = pYData[index + 1];
-
- /* Calculation of y0 * (1-fract ) and y is in 13.27(q27) format */
- y = ((y0 * (0xFFFFF - fract)));
-
- /* Calculation of y1 * fract + y0 * (1-fract) and y is in 13.27(q27) format */
- y += (y1 * fract);
-
- /* convert y to 1.7(q7) format */
- return (q7_t) (y >> 20);
- }
- }
-
- /**
- * @} end of LinearInterpolate group
- */
-
- /**
- * @brief Fast approximation to the trigonometric sine function for floating-point data.
- * @param[in] x input value in radians.
- * @return sin(x).
- */
- float32_t arm_sin_f32(
- float32_t x);
-
-
- /**
- * @brief Fast approximation to the trigonometric sine function for Q31 data.
- * @param[in] x Scaled input value in radians.
- * @return sin(x).
- */
- q31_t arm_sin_q31(
- q31_t x);
-
-
- /**
- * @brief Fast approximation to the trigonometric sine function for Q15 data.
- * @param[in] x Scaled input value in radians.
- * @return sin(x).
- */
- q15_t arm_sin_q15(
- q15_t x);
-
-
- /**
- * @brief Fast approximation to the trigonometric cosine function for floating-point data.
- * @param[in] x input value in radians.
- * @return cos(x).
- */
- float32_t arm_cos_f32(
- float32_t x);
-
-
- /**
- * @brief Fast approximation to the trigonometric cosine function for Q31 data.
- * @param[in] x Scaled input value in radians.
- * @return cos(x).
- */
- q31_t arm_cos_q31(
- q31_t x);
-
-
- /**
- * @brief Fast approximation to the trigonometric cosine function for Q15 data.
- * @param[in] x Scaled input value in radians.
- * @return cos(x).
- */
- q15_t arm_cos_q15(
- q15_t x);
-
-
- /**
- * @ingroup groupFastMath
- */
-
-
- /**
- * @defgroup SQRT Square Root
- *
- * Computes the square root of a number.
- * There are separate functions for Q15, Q31, and floating-point data types.
- * The square root function is computed using the Newton-Raphson algorithm.
- * This is an iterative algorithm of the form:
- *
- * x1 = x0 - f(x0)/f'(x0)
- *
- * where x1 is the current estimate,
- * x0 is the previous estimate, and
- * f'(x0) is the derivative of f() evaluated at x0.
- * For the square root function, the algorithm reduces to:
- *
- */
-
-
- /**
- * @addtogroup SQRT
- * @{
- */
-
- /**
- * @brief Floating-point square root function.
- * @param[in] in input value.
- * @param[out] pOut square root of input value.
- * @return The function returns ARM_MATH_SUCCESS if input value is positive value or ARM_MATH_ARGUMENT_ERROR if
- * in is negative value and returns zero output for negative values.
- */
- CMSIS_INLINE __STATIC_INLINE arm_status arm_sqrt_f32(
- float32_t in,
- float32_t * pOut)
- {
- if (in >= 0.0f)
- {
-
-#if (__FPU_USED == 1) && defined ( __CC_ARM )
- *pOut = __sqrtf(in);
-#elif (__FPU_USED == 1) && (defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050))
- *pOut = __builtin_sqrtf(in);
-#elif (__FPU_USED == 1) && defined(__GNUC__)
- *pOut = __builtin_sqrtf(in);
-#elif (__FPU_USED == 1) && defined ( __ICCARM__ ) && (__VER__ >= 6040000)
- __ASM("VSQRT.F32 %0,%1" : "=t"(*pOut) : "t"(in));
-#else
- *pOut = sqrtf(in);
-#endif
-
- return (ARM_MATH_SUCCESS);
- }
- else
- {
- *pOut = 0.0f;
- return (ARM_MATH_ARGUMENT_ERROR);
- }
- }
-
-
- /**
- * @brief Q31 square root function.
- * @param[in] in input value. The range of the input value is [0 +1) or 0x00000000 to 0x7FFFFFFF.
- * @param[out] pOut square root of input value.
- * @return The function returns ARM_MATH_SUCCESS if input value is positive value or ARM_MATH_ARGUMENT_ERROR if
- * in is negative value and returns zero output for negative values.
- */
- arm_status arm_sqrt_q31(
- q31_t in,
- q31_t * pOut);
-
-
- /**
- * @brief Q15 square root function.
- * @param[in] in input value. The range of the input value is [0 +1) or 0x0000 to 0x7FFF.
- * @param[out] pOut square root of input value.
- * @return The function returns ARM_MATH_SUCCESS if input value is positive value or ARM_MATH_ARGUMENT_ERROR if
- * in is negative value and returns zero output for negative values.
- */
- arm_status arm_sqrt_q15(
- q15_t in,
- q15_t * pOut);
-
- /**
- * @} end of SQRT group
- */
-
-
- /**
- * @brief floating-point Circular write function.
- */
- CMSIS_INLINE __STATIC_INLINE void arm_circularWrite_f32(
- int32_t * circBuffer,
- int32_t L,
- uint16_t * writeOffset,
- int32_t bufferInc,
- const int32_t * src,
- int32_t srcInc,
- uint32_t blockSize)
- {
- uint32_t i = 0U;
- int32_t wOffset;
-
- /* Copy the value of Index pointer that points
- * to the current location where the input samples to be copied */
- wOffset = *writeOffset;
-
- /* Loop over the blockSize */
- i = blockSize;
-
- while (i > 0U)
- {
- /* copy the input sample to the circular buffer */
- circBuffer[wOffset] = *src;
-
- /* Update the input pointer */
- src += srcInc;
-
- /* Circularly update wOffset. Watch out for positive and negative value */
- wOffset += bufferInc;
- if (wOffset >= L)
- wOffset -= L;
-
- /* Decrement the loop counter */
- i--;
- }
-
- /* Update the index pointer */
- *writeOffset = (uint16_t)wOffset;
- }
-
-
-
- /**
- * @brief floating-point Circular Read function.
- */
- CMSIS_INLINE __STATIC_INLINE void arm_circularRead_f32(
- int32_t * circBuffer,
- int32_t L,
- int32_t * readOffset,
- int32_t bufferInc,
- int32_t * dst,
- int32_t * dst_base,
- int32_t dst_length,
- int32_t dstInc,
- uint32_t blockSize)
- {
- uint32_t i = 0U;
- int32_t rOffset, dst_end;
-
- /* Copy the value of Index pointer that points
- * to the current location from where the input samples to be read */
- rOffset = *readOffset;
- dst_end = (int32_t) (dst_base + dst_length);
-
- /* Loop over the blockSize */
- i = blockSize;
-
- while (i > 0U)
- {
- /* copy the sample from the circular buffer to the destination buffer */
- *dst = circBuffer[rOffset];
-
- /* Update the input pointer */
- dst += dstInc;
-
- if (dst == (int32_t *) dst_end)
- {
- dst = dst_base;
- }
-
- /* Circularly update rOffset. Watch out for positive and negative value */
- rOffset += bufferInc;
-
- if (rOffset >= L)
- {
- rOffset -= L;
- }
-
- /* Decrement the loop counter */
- i--;
- }
-
- /* Update the index pointer */
- *readOffset = rOffset;
- }
-
-
- /**
- * @brief Q15 Circular write function.
- */
- CMSIS_INLINE __STATIC_INLINE void arm_circularWrite_q15(
- q15_t * circBuffer,
- int32_t L,
- uint16_t * writeOffset,
- int32_t bufferInc,
- const q15_t * src,
- int32_t srcInc,
- uint32_t blockSize)
- {
- uint32_t i = 0U;
- int32_t wOffset;
-
- /* Copy the value of Index pointer that points
- * to the current location where the input samples to be copied */
- wOffset = *writeOffset;
-
- /* Loop over the blockSize */
- i = blockSize;
-
- while (i > 0U)
- {
- /* copy the input sample to the circular buffer */
- circBuffer[wOffset] = *src;
-
- /* Update the input pointer */
- src += srcInc;
-
- /* Circularly update wOffset. Watch out for positive and negative value */
- wOffset += bufferInc;
- if (wOffset >= L)
- wOffset -= L;
-
- /* Decrement the loop counter */
- i--;
- }
-
- /* Update the index pointer */
- *writeOffset = (uint16_t)wOffset;
- }
-
-
- /**
- * @brief Q15 Circular Read function.
- */
- CMSIS_INLINE __STATIC_INLINE void arm_circularRead_q15(
- q15_t * circBuffer,
- int32_t L,
- int32_t * readOffset,
- int32_t bufferInc,
- q15_t * dst,
- q15_t * dst_base,
- int32_t dst_length,
- int32_t dstInc,
- uint32_t blockSize)
- {
- uint32_t i = 0;
- int32_t rOffset, dst_end;
-
- /* Copy the value of Index pointer that points
- * to the current location from where the input samples to be read */
- rOffset = *readOffset;
-
- dst_end = (int32_t) (dst_base + dst_length);
-
- /* Loop over the blockSize */
- i = blockSize;
-
- while (i > 0U)
- {
- /* copy the sample from the circular buffer to the destination buffer */
- *dst = circBuffer[rOffset];
-
- /* Update the input pointer */
- dst += dstInc;
-
- if (dst == (q15_t *) dst_end)
- {
- dst = dst_base;
- }
-
- /* Circularly update wOffset. Watch out for positive and negative value */
- rOffset += bufferInc;
-
- if (rOffset >= L)
- {
- rOffset -= L;
- }
-
- /* Decrement the loop counter */
- i--;
- }
-
- /* Update the index pointer */
- *readOffset = rOffset;
- }
-
-
- /**
- * @brief Q7 Circular write function.
- */
- CMSIS_INLINE __STATIC_INLINE void arm_circularWrite_q7(
- q7_t * circBuffer,
- int32_t L,
- uint16_t * writeOffset,
- int32_t bufferInc,
- const q7_t * src,
- int32_t srcInc,
- uint32_t blockSize)
- {
- uint32_t i = 0U;
- int32_t wOffset;
-
- /* Copy the value of Index pointer that points
- * to the current location where the input samples to be copied */
- wOffset = *writeOffset;
-
- /* Loop over the blockSize */
- i = blockSize;
-
- while (i > 0U)
- {
- /* copy the input sample to the circular buffer */
- circBuffer[wOffset] = *src;
-
- /* Update the input pointer */
- src += srcInc;
-
- /* Circularly update wOffset. Watch out for positive and negative value */
- wOffset += bufferInc;
- if (wOffset >= L)
- wOffset -= L;
-
- /* Decrement the loop counter */
- i--;
- }
-
- /* Update the index pointer */
- *writeOffset = (uint16_t)wOffset;
- }
-
-
- /**
- * @brief Q7 Circular Read function.
- */
- CMSIS_INLINE __STATIC_INLINE void arm_circularRead_q7(
- q7_t * circBuffer,
- int32_t L,
- int32_t * readOffset,
- int32_t bufferInc,
- q7_t * dst,
- q7_t * dst_base,
- int32_t dst_length,
- int32_t dstInc,
- uint32_t blockSize)
- {
- uint32_t i = 0;
- int32_t rOffset, dst_end;
-
- /* Copy the value of Index pointer that points
- * to the current location from where the input samples to be read */
- rOffset = *readOffset;
-
- dst_end = (int32_t) (dst_base + dst_length);
-
- /* Loop over the blockSize */
- i = blockSize;
-
- while (i > 0U)
- {
- /* copy the sample from the circular buffer to the destination buffer */
- *dst = circBuffer[rOffset];
-
- /* Update the input pointer */
- dst += dstInc;
-
- if (dst == (q7_t *) dst_end)
- {
- dst = dst_base;
- }
-
- /* Circularly update rOffset. Watch out for positive and negative value */
- rOffset += bufferInc;
-
- if (rOffset >= L)
- {
- rOffset -= L;
- }
-
- /* Decrement the loop counter */
- i--;
- }
-
- /* Update the index pointer */
- *readOffset = rOffset;
- }
-
-
- /**
- * @brief Sum of the squares of the elements of a Q31 vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] pResult is output value.
- */
- void arm_power_q31(
- q31_t * pSrc,
- uint32_t blockSize,
- q63_t * pResult);
-
-
- /**
- * @brief Sum of the squares of the elements of a floating-point vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] pResult is output value.
- */
- void arm_power_f32(
- float32_t * pSrc,
- uint32_t blockSize,
- float32_t * pResult);
-
-
- /**
- * @brief Sum of the squares of the elements of a Q15 vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] pResult is output value.
- */
- void arm_power_q15(
- q15_t * pSrc,
- uint32_t blockSize,
- q63_t * pResult);
-
-
- /**
- * @brief Sum of the squares of the elements of a Q7 vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] pResult is output value.
- */
- void arm_power_q7(
- q7_t * pSrc,
- uint32_t blockSize,
- q31_t * pResult);
-
-
- /**
- * @brief Mean value of a Q7 vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] pResult is output value.
- */
- void arm_mean_q7(
- q7_t * pSrc,
- uint32_t blockSize,
- q7_t * pResult);
-
-
- /**
- * @brief Mean value of a Q15 vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] pResult is output value.
- */
- void arm_mean_q15(
- q15_t * pSrc,
- uint32_t blockSize,
- q15_t * pResult);
-
-
- /**
- * @brief Mean value of a Q31 vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] pResult is output value.
- */
- void arm_mean_q31(
- q31_t * pSrc,
- uint32_t blockSize,
- q31_t * pResult);
-
-
- /**
- * @brief Mean value of a floating-point vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] pResult is output value.
- */
- void arm_mean_f32(
- float32_t * pSrc,
- uint32_t blockSize,
- float32_t * pResult);
-
-
- /**
- * @brief Variance of the elements of a floating-point vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] pResult is output value.
- */
- void arm_var_f32(
- float32_t * pSrc,
- uint32_t blockSize,
- float32_t * pResult);
-
-
- /**
- * @brief Variance of the elements of a Q31 vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] pResult is output value.
- */
- void arm_var_q31(
- q31_t * pSrc,
- uint32_t blockSize,
- q31_t * pResult);
-
-
- /**
- * @brief Variance of the elements of a Q15 vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] pResult is output value.
- */
- void arm_var_q15(
- q15_t * pSrc,
- uint32_t blockSize,
- q15_t * pResult);
-
-
- /**
- * @brief Root Mean Square of the elements of a floating-point vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] pResult is output value.
- */
- void arm_rms_f32(
- float32_t * pSrc,
- uint32_t blockSize,
- float32_t * pResult);
-
-
- /**
- * @brief Root Mean Square of the elements of a Q31 vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] pResult is output value.
- */
- void arm_rms_q31(
- q31_t * pSrc,
- uint32_t blockSize,
- q31_t * pResult);
-
-
- /**
- * @brief Root Mean Square of the elements of a Q15 vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] pResult is output value.
- */
- void arm_rms_q15(
- q15_t * pSrc,
- uint32_t blockSize,
- q15_t * pResult);
-
-
- /**
- * @brief Standard deviation of the elements of a floating-point vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] pResult is output value.
- */
- void arm_std_f32(
- float32_t * pSrc,
- uint32_t blockSize,
- float32_t * pResult);
-
-
- /**
- * @brief Standard deviation of the elements of a Q31 vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] pResult is output value.
- */
- void arm_std_q31(
- q31_t * pSrc,
- uint32_t blockSize,
- q31_t * pResult);
-
-
- /**
- * @brief Standard deviation of the elements of a Q15 vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] pResult is output value.
- */
- void arm_std_q15(
- q15_t * pSrc,
- uint32_t blockSize,
- q15_t * pResult);
-
-
- /**
- * @brief Floating-point complex magnitude
- * @param[in] pSrc points to the complex input vector
- * @param[out] pDst points to the real output vector
- * @param[in] numSamples number of complex samples in the input vector
- */
- void arm_cmplx_mag_f32(
- float32_t * pSrc,
- float32_t * pDst,
- uint32_t numSamples);
-
-
- /**
- * @brief Q31 complex magnitude
- * @param[in] pSrc points to the complex input vector
- * @param[out] pDst points to the real output vector
- * @param[in] numSamples number of complex samples in the input vector
- */
- void arm_cmplx_mag_q31(
- q31_t * pSrc,
- q31_t * pDst,
- uint32_t numSamples);
-
-
- /**
- * @brief Q15 complex magnitude
- * @param[in] pSrc points to the complex input vector
- * @param[out] pDst points to the real output vector
- * @param[in] numSamples number of complex samples in the input vector
- */
- void arm_cmplx_mag_q15(
- q15_t * pSrc,
- q15_t * pDst,
- uint32_t numSamples);
-
-
- /**
- * @brief Q15 complex dot product
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[in] numSamples number of complex samples in each vector
- * @param[out] realResult real part of the result returned here
- * @param[out] imagResult imaginary part of the result returned here
- */
- void arm_cmplx_dot_prod_q15(
- q15_t * pSrcA,
- q15_t * pSrcB,
- uint32_t numSamples,
- q31_t * realResult,
- q31_t * imagResult);
-
-
- /**
- * @brief Q31 complex dot product
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[in] numSamples number of complex samples in each vector
- * @param[out] realResult real part of the result returned here
- * @param[out] imagResult imaginary part of the result returned here
- */
- void arm_cmplx_dot_prod_q31(
- q31_t * pSrcA,
- q31_t * pSrcB,
- uint32_t numSamples,
- q63_t * realResult,
- q63_t * imagResult);
-
-
- /**
- * @brief Floating-point complex dot product
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[in] numSamples number of complex samples in each vector
- * @param[out] realResult real part of the result returned here
- * @param[out] imagResult imaginary part of the result returned here
- */
- void arm_cmplx_dot_prod_f32(
- float32_t * pSrcA,
- float32_t * pSrcB,
- uint32_t numSamples,
- float32_t * realResult,
- float32_t * imagResult);
-
-
- /**
- * @brief Q15 complex-by-real multiplication
- * @param[in] pSrcCmplx points to the complex input vector
- * @param[in] pSrcReal points to the real input vector
- * @param[out] pCmplxDst points to the complex output vector
- * @param[in] numSamples number of samples in each vector
- */
- void arm_cmplx_mult_real_q15(
- q15_t * pSrcCmplx,
- q15_t * pSrcReal,
- q15_t * pCmplxDst,
- uint32_t numSamples);
-
-
- /**
- * @brief Q31 complex-by-real multiplication
- * @param[in] pSrcCmplx points to the complex input vector
- * @param[in] pSrcReal points to the real input vector
- * @param[out] pCmplxDst points to the complex output vector
- * @param[in] numSamples number of samples in each vector
- */
- void arm_cmplx_mult_real_q31(
- q31_t * pSrcCmplx,
- q31_t * pSrcReal,
- q31_t * pCmplxDst,
- uint32_t numSamples);
-
-
- /**
- * @brief Floating-point complex-by-real multiplication
- * @param[in] pSrcCmplx points to the complex input vector
- * @param[in] pSrcReal points to the real input vector
- * @param[out] pCmplxDst points to the complex output vector
- * @param[in] numSamples number of samples in each vector
- */
- void arm_cmplx_mult_real_f32(
- float32_t * pSrcCmplx,
- float32_t * pSrcReal,
- float32_t * pCmplxDst,
- uint32_t numSamples);
-
-
- /**
- * @brief Minimum value of a Q7 vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] result is output pointer
- * @param[in] index is the array index of the minimum value in the input buffer.
- */
- void arm_min_q7(
- q7_t * pSrc,
- uint32_t blockSize,
- q7_t * result,
- uint32_t * index);
-
-
- /**
- * @brief Minimum value of a Q15 vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] pResult is output pointer
- * @param[in] pIndex is the array index of the minimum value in the input buffer.
- */
- void arm_min_q15(
- q15_t * pSrc,
- uint32_t blockSize,
- q15_t * pResult,
- uint32_t * pIndex);
-
-
- /**
- * @brief Minimum value of a Q31 vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] pResult is output pointer
- * @param[out] pIndex is the array index of the minimum value in the input buffer.
- */
- void arm_min_q31(
- q31_t * pSrc,
- uint32_t blockSize,
- q31_t * pResult,
- uint32_t * pIndex);
-
-
- /**
- * @brief Minimum value of a floating-point vector.
- * @param[in] pSrc is input pointer
- * @param[in] blockSize is the number of samples to process
- * @param[out] pResult is output pointer
- * @param[out] pIndex is the array index of the minimum value in the input buffer.
- */
- void arm_min_f32(
- float32_t * pSrc,
- uint32_t blockSize,
- float32_t * pResult,
- uint32_t * pIndex);
-
-
-/**
- * @brief Maximum value of a Q7 vector.
- * @param[in] pSrc points to the input buffer
- * @param[in] blockSize length of the input vector
- * @param[out] pResult maximum value returned here
- * @param[out] pIndex index of maximum value returned here
- */
- void arm_max_q7(
- q7_t * pSrc,
- uint32_t blockSize,
- q7_t * pResult,
- uint32_t * pIndex);
-
-
-/**
- * @brief Maximum value of a Q15 vector.
- * @param[in] pSrc points to the input buffer
- * @param[in] blockSize length of the input vector
- * @param[out] pResult maximum value returned here
- * @param[out] pIndex index of maximum value returned here
- */
- void arm_max_q15(
- q15_t * pSrc,
- uint32_t blockSize,
- q15_t * pResult,
- uint32_t * pIndex);
-
-
-/**
- * @brief Maximum value of a Q31 vector.
- * @param[in] pSrc points to the input buffer
- * @param[in] blockSize length of the input vector
- * @param[out] pResult maximum value returned here
- * @param[out] pIndex index of maximum value returned here
- */
- void arm_max_q31(
- q31_t * pSrc,
- uint32_t blockSize,
- q31_t * pResult,
- uint32_t * pIndex);
-
-
-/**
- * @brief Maximum value of a floating-point vector.
- * @param[in] pSrc points to the input buffer
- * @param[in] blockSize length of the input vector
- * @param[out] pResult maximum value returned here
- * @param[out] pIndex index of maximum value returned here
- */
- void arm_max_f32(
- float32_t * pSrc,
- uint32_t blockSize,
- float32_t * pResult,
- uint32_t * pIndex);
-
-
- /**
- * @brief Q15 complex-by-complex multiplication
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[out] pDst points to the output vector
- * @param[in] numSamples number of complex samples in each vector
- */
- void arm_cmplx_mult_cmplx_q15(
- q15_t * pSrcA,
- q15_t * pSrcB,
- q15_t * pDst,
- uint32_t numSamples);
-
-
- /**
- * @brief Q31 complex-by-complex multiplication
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[out] pDst points to the output vector
- * @param[in] numSamples number of complex samples in each vector
- */
- void arm_cmplx_mult_cmplx_q31(
- q31_t * pSrcA,
- q31_t * pSrcB,
- q31_t * pDst,
- uint32_t numSamples);
-
-
- /**
- * @brief Floating-point complex-by-complex multiplication
- * @param[in] pSrcA points to the first input vector
- * @param[in] pSrcB points to the second input vector
- * @param[out] pDst points to the output vector
- * @param[in] numSamples number of complex samples in each vector
- */
- void arm_cmplx_mult_cmplx_f32(
- float32_t * pSrcA,
- float32_t * pSrcB,
- float32_t * pDst,
- uint32_t numSamples);
-
-
- /**
- * @brief Converts the elements of the floating-point vector to Q31 vector.
- * @param[in] pSrc points to the floating-point input vector
- * @param[out] pDst points to the Q31 output vector
- * @param[in] blockSize length of the input vector
- */
- void arm_float_to_q31(
- float32_t * pSrc,
- q31_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Converts the elements of the floating-point vector to Q15 vector.
- * @param[in] pSrc points to the floating-point input vector
- * @param[out] pDst points to the Q15 output vector
- * @param[in] blockSize length of the input vector
- */
- void arm_float_to_q15(
- float32_t * pSrc,
- q15_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Converts the elements of the floating-point vector to Q7 vector.
- * @param[in] pSrc points to the floating-point input vector
- * @param[out] pDst points to the Q7 output vector
- * @param[in] blockSize length of the input vector
- */
- void arm_float_to_q7(
- float32_t * pSrc,
- q7_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Converts the elements of the Q31 vector to Q15 vector.
- * @param[in] pSrc is input pointer
- * @param[out] pDst is output pointer
- * @param[in] blockSize is the number of samples to process
- */
- void arm_q31_to_q15(
- q31_t * pSrc,
- q15_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Converts the elements of the Q31 vector to Q7 vector.
- * @param[in] pSrc is input pointer
- * @param[out] pDst is output pointer
- * @param[in] blockSize is the number of samples to process
- */
- void arm_q31_to_q7(
- q31_t * pSrc,
- q7_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Converts the elements of the Q15 vector to floating-point vector.
- * @param[in] pSrc is input pointer
- * @param[out] pDst is output pointer
- * @param[in] blockSize is the number of samples to process
- */
- void arm_q15_to_float(
- q15_t * pSrc,
- float32_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Converts the elements of the Q15 vector to Q31 vector.
- * @param[in] pSrc is input pointer
- * @param[out] pDst is output pointer
- * @param[in] blockSize is the number of samples to process
- */
- void arm_q15_to_q31(
- q15_t * pSrc,
- q31_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @brief Converts the elements of the Q15 vector to Q7 vector.
- * @param[in] pSrc is input pointer
- * @param[out] pDst is output pointer
- * @param[in] blockSize is the number of samples to process
- */
- void arm_q15_to_q7(
- q15_t * pSrc,
- q7_t * pDst,
- uint32_t blockSize);
-
-
- /**
- * @ingroup groupInterpolation
- */
-
- /**
- * @defgroup BilinearInterpolate Bilinear Interpolation
- *
- * Bilinear interpolation is an extension of linear interpolation applied to a two dimensional grid.
- * The underlying function f(x, y) is sampled on a regular grid and the interpolation process
- * determines values between the grid points.
- * Bilinear interpolation is equivalent to two step linear interpolation, first in the x-dimension and then in the y-dimension.
- * Bilinear interpolation is often used in image processing to rescale images.
- * The CMSIS DSP library provides bilinear interpolation functions for Q7, Q15, Q31, and floating-point data types.
- *
- * Algorithm
- * \par
- * The instance structure used by the bilinear interpolation functions describes a two dimensional data table.
- * For floating-point, the instance structure is defined as:
- *
- *
- * \par
- * where numRows specifies the number of rows in the table;
- * numCols specifies the number of columns in the table;
- * and pData points to an array of size numRows*numCols values.
- * The data table pTable is organized in row order and the supplied data values fall on integer indexes.
- * That is, table element (x,y) is located at pTable[x + y*numCols] where x and y are integers.
- *
- * \par
- * Let (x, y) specify the desired interpolation point. Then define:
- *
- * XF = floor(x)
- * YF = floor(y)
- *
- * \par
- * The interpolated output point is computed as:
- *
- * Note that the coordinates (x, y) contain integer and fractional components.
- * The integer components specify which portion of the table to use while the
- * fractional components control the interpolation processor.
- *
- * \par
- * if (x,y) are outside of the table boundary, Bilinear interpolation returns zero output.
- */
-
- /**
- * @addtogroup BilinearInterpolate
- * @{
- */
-
-
- /**
- *
- * @brief Floating-point bilinear interpolation.
- * @param[in,out] S points to an instance of the interpolation structure.
- * @param[in] X interpolation coordinate.
- * @param[in] Y interpolation coordinate.
- * @return out interpolated value.
- */
- CMSIS_INLINE __STATIC_INLINE float32_t arm_bilinear_interp_f32(
- const arm_bilinear_interp_instance_f32 * S,
- float32_t X,
- float32_t Y)
- {
- float32_t out;
- float32_t f00, f01, f10, f11;
- float32_t *pData = S->pData;
- int32_t xIndex, yIndex, index;
- float32_t xdiff, ydiff;
- float32_t b1, b2, b3, b4;
-
- xIndex = (int32_t) X;
- yIndex = (int32_t) Y;
-
- /* Care taken for table outside boundary */
- /* Returns zero output when values are outside table boundary */
- if (xIndex < 0 || xIndex > (S->numRows - 1) || yIndex < 0 || yIndex > (S->numCols - 1))
- {
- return (0);
- }
-
- /* Calculation of index for two nearest points in X-direction */
- index = (xIndex - 1) + (yIndex - 1) * S->numCols;
-
-
- /* Read two nearest points in X-direction */
- f00 = pData[index];
- f01 = pData[index + 1];
-
- /* Calculation of index for two nearest points in Y-direction */
- index = (xIndex - 1) + (yIndex) * S->numCols;
-
-
- /* Read two nearest points in Y-direction */
- f10 = pData[index];
- f11 = pData[index + 1];
-
- /* Calculation of intermediate values */
- b1 = f00;
- b2 = f01 - f00;
- b3 = f10 - f00;
- b4 = f00 - f01 - f10 + f11;
-
- /* Calculation of fractional part in X */
- xdiff = X - xIndex;
-
- /* Calculation of fractional part in Y */
- ydiff = Y - yIndex;
-
- /* Calculation of bi-linear interpolated output */
- out = b1 + b2 * xdiff + b3 * ydiff + b4 * xdiff * ydiff;
-
- /* return to application */
- return (out);
- }
-
-
- /**
- *
- * @brief Q31 bilinear interpolation.
- * @param[in,out] S points to an instance of the interpolation structure.
- * @param[in] X interpolation coordinate in 12.20 format.
- * @param[in] Y interpolation coordinate in 12.20 format.
- * @return out interpolated value.
- */
- CMSIS_INLINE __STATIC_INLINE q31_t arm_bilinear_interp_q31(
- arm_bilinear_interp_instance_q31 * S,
- q31_t X,
- q31_t Y)
- {
- q31_t out; /* Temporary output */
- q31_t acc = 0; /* output */
- q31_t xfract, yfract; /* X, Y fractional parts */
- q31_t x1, x2, y1, y2; /* Nearest output values */
- int32_t rI, cI; /* Row and column indices */
- q31_t *pYData = S->pData; /* pointer to output table values */
- uint32_t nCols = S->numCols; /* num of rows */
-
- /* Input is in 12.20 format */
- /* 12 bits for the table index */
- /* Index value calculation */
- rI = ((X & (q31_t)0xFFF00000) >> 20);
-
- /* Input is in 12.20 format */
- /* 12 bits for the table index */
- /* Index value calculation */
- cI = ((Y & (q31_t)0xFFF00000) >> 20);
-
- /* Care taken for table outside boundary */
- /* Returns zero output when values are outside table boundary */
- if (rI < 0 || rI > (S->numRows - 1) || cI < 0 || cI > (S->numCols - 1))
- {
- return (0);
- }
-
- /* 20 bits for the fractional part */
- /* shift left xfract by 11 to keep 1.31 format */
- xfract = (X & 0x000FFFFF) << 11U;
-
- /* Read two nearest output values from the index */
- x1 = pYData[(rI) + (int32_t)nCols * (cI) ];
- x2 = pYData[(rI) + (int32_t)nCols * (cI) + 1];
-
- /* 20 bits for the fractional part */
- /* shift left yfract by 11 to keep 1.31 format */
- yfract = (Y & 0x000FFFFF) << 11U;
-
- /* Read two nearest output values from the index */
- y1 = pYData[(rI) + (int32_t)nCols * (cI + 1) ];
- y2 = pYData[(rI) + (int32_t)nCols * (cI + 1) + 1];
-
- /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 3.29(q29) format */
- out = ((q31_t) (((q63_t) x1 * (0x7FFFFFFF - xfract)) >> 32));
- acc = ((q31_t) (((q63_t) out * (0x7FFFFFFF - yfract)) >> 32));
-
- /* x2 * (xfract) * (1-yfract) in 3.29(q29) and adding to acc */
- out = ((q31_t) ((q63_t) x2 * (0x7FFFFFFF - yfract) >> 32));
- acc += ((q31_t) ((q63_t) out * (xfract) >> 32));
-
- /* y1 * (1 - xfract) * (yfract) in 3.29(q29) and adding to acc */
- out = ((q31_t) ((q63_t) y1 * (0x7FFFFFFF - xfract) >> 32));
- acc += ((q31_t) ((q63_t) out * (yfract) >> 32));
-
- /* y2 * (xfract) * (yfract) in 3.29(q29) and adding to acc */
- out = ((q31_t) ((q63_t) y2 * (xfract) >> 32));
- acc += ((q31_t) ((q63_t) out * (yfract) >> 32));
-
- /* Convert acc to 1.31(q31) format */
- return ((q31_t)(acc << 2));
- }
-
-
- /**
- * @brief Q15 bilinear interpolation.
- * @param[in,out] S points to an instance of the interpolation structure.
- * @param[in] X interpolation coordinate in 12.20 format.
- * @param[in] Y interpolation coordinate in 12.20 format.
- * @return out interpolated value.
- */
- CMSIS_INLINE __STATIC_INLINE q15_t arm_bilinear_interp_q15(
- arm_bilinear_interp_instance_q15 * S,
- q31_t X,
- q31_t Y)
- {
- q63_t acc = 0; /* output */
- q31_t out; /* Temporary output */
- q15_t x1, x2, y1, y2; /* Nearest output values */
- q31_t xfract, yfract; /* X, Y fractional parts */
- int32_t rI, cI; /* Row and column indices */
- q15_t *pYData = S->pData; /* pointer to output table values */
- uint32_t nCols = S->numCols; /* num of rows */
-
- /* Input is in 12.20 format */
- /* 12 bits for the table index */
- /* Index value calculation */
- rI = ((X & (q31_t)0xFFF00000) >> 20);
-
- /* Input is in 12.20 format */
- /* 12 bits for the table index */
- /* Index value calculation */
- cI = ((Y & (q31_t)0xFFF00000) >> 20);
-
- /* Care taken for table outside boundary */
- /* Returns zero output when values are outside table boundary */
- if (rI < 0 || rI > (S->numRows - 1) || cI < 0 || cI > (S->numCols - 1))
- {
- return (0);
- }
-
- /* 20 bits for the fractional part */
- /* xfract should be in 12.20 format */
- xfract = (X & 0x000FFFFF);
-
- /* Read two nearest output values from the index */
- x1 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI) ];
- x2 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI) + 1];
-
- /* 20 bits for the fractional part */
- /* yfract should be in 12.20 format */
- yfract = (Y & 0x000FFFFF);
-
- /* Read two nearest output values from the index */
- y1 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI + 1) ];
- y2 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI + 1) + 1];
-
- /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 13.51 format */
-
- /* x1 is in 1.15(q15), xfract in 12.20 format and out is in 13.35 format */
- /* convert 13.35 to 13.31 by right shifting and out is in 1.31 */
- out = (q31_t) (((q63_t) x1 * (0xFFFFF - xfract)) >> 4U);
- acc = ((q63_t) out * (0xFFFFF - yfract));
-
- /* x2 * (xfract) * (1-yfract) in 1.51 and adding to acc */
- out = (q31_t) (((q63_t) x2 * (0xFFFFF - yfract)) >> 4U);
- acc += ((q63_t) out * (xfract));
-
- /* y1 * (1 - xfract) * (yfract) in 1.51 and adding to acc */
- out = (q31_t) (((q63_t) y1 * (0xFFFFF - xfract)) >> 4U);
- acc += ((q63_t) out * (yfract));
-
- /* y2 * (xfract) * (yfract) in 1.51 and adding to acc */
- out = (q31_t) (((q63_t) y2 * (xfract)) >> 4U);
- acc += ((q63_t) out * (yfract));
-
- /* acc is in 13.51 format and down shift acc by 36 times */
- /* Convert out to 1.15 format */
- return ((q15_t)(acc >> 36));
- }
-
-
- /**
- * @brief Q7 bilinear interpolation.
- * @param[in,out] S points to an instance of the interpolation structure.
- * @param[in] X interpolation coordinate in 12.20 format.
- * @param[in] Y interpolation coordinate in 12.20 format.
- * @return out interpolated value.
- */
- CMSIS_INLINE __STATIC_INLINE q7_t arm_bilinear_interp_q7(
- arm_bilinear_interp_instance_q7 * S,
- q31_t X,
- q31_t Y)
- {
- q63_t acc = 0; /* output */
- q31_t out; /* Temporary output */
- q31_t xfract, yfract; /* X, Y fractional parts */
- q7_t x1, x2, y1, y2; /* Nearest output values */
- int32_t rI, cI; /* Row and column indices */
- q7_t *pYData = S->pData; /* pointer to output table values */
- uint32_t nCols = S->numCols; /* num of rows */
-
- /* Input is in 12.20 format */
- /* 12 bits for the table index */
- /* Index value calculation */
- rI = ((X & (q31_t)0xFFF00000) >> 20);
-
- /* Input is in 12.20 format */
- /* 12 bits for the table index */
- /* Index value calculation */
- cI = ((Y & (q31_t)0xFFF00000) >> 20);
-
- /* Care taken for table outside boundary */
- /* Returns zero output when values are outside table boundary */
- if (rI < 0 || rI > (S->numRows - 1) || cI < 0 || cI > (S->numCols - 1))
- {
- return (0);
- }
-
- /* 20 bits for the fractional part */
- /* xfract should be in 12.20 format */
- xfract = (X & (q31_t)0x000FFFFF);
-
- /* Read two nearest output values from the index */
- x1 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI) ];
- x2 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI) + 1];
-
- /* 20 bits for the fractional part */
- /* yfract should be in 12.20 format */
- yfract = (Y & (q31_t)0x000FFFFF);
-
- /* Read two nearest output values from the index */
- y1 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI + 1) ];
- y2 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI + 1) + 1];
-
- /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 16.47 format */
- out = ((x1 * (0xFFFFF - xfract)));
- acc = (((q63_t) out * (0xFFFFF - yfract)));
-
- /* x2 * (xfract) * (1-yfract) in 2.22 and adding to acc */
- out = ((x2 * (0xFFFFF - yfract)));
- acc += (((q63_t) out * (xfract)));
-
- /* y1 * (1 - xfract) * (yfract) in 2.22 and adding to acc */
- out = ((y1 * (0xFFFFF - xfract)));
- acc += (((q63_t) out * (yfract)));
-
- /* y2 * (xfract) * (yfract) in 2.22 and adding to acc */
- out = ((y2 * (yfract)));
- acc += (((q63_t) out * (xfract)));
-
- /* acc in 16.47 format and down shift by 40 to convert to 1.7 format */
- return ((q7_t)(acc >> 40));
- }
-
- /**
- * @} end of BilinearInterpolate group
- */
-
-
-/* SMMLAR */
-#define multAcc_32x32_keep32_R(a, x, y) \
- a = (q31_t) (((((q63_t) a) << 32) + ((q63_t) x * y) + 0x80000000LL ) >> 32)
-
-/* SMMLSR */
-#define multSub_32x32_keep32_R(a, x, y) \
- a = (q31_t) (((((q63_t) a) << 32) - ((q63_t) x * y) + 0x80000000LL ) >> 32)
-
-/* SMMULR */
-#define mult_32x32_keep32_R(a, x, y) \
- a = (q31_t) (((q63_t) x * y + 0x80000000LL ) >> 32)
-
-/* SMMLA */
-#define multAcc_32x32_keep32(a, x, y) \
- a += (q31_t) (((q63_t) x * y) >> 32)
-
-/* SMMLS */
-#define multSub_32x32_keep32(a, x, y) \
- a -= (q31_t) (((q63_t) x * y) >> 32)
-
-/* SMMUL */
-#define mult_32x32_keep32(a, x, y) \
- a = (q31_t) (((q63_t) x * y ) >> 32)
-
-
-#if defined ( __CC_ARM )
- /* Enter low optimization region - place directly above function definition */
- #if defined( ARM_MATH_CM4 ) || defined( ARM_MATH_CM7)
- #define LOW_OPTIMIZATION_ENTER \
- _Pragma ("push") \
- _Pragma ("O1")
- #else
- #define LOW_OPTIMIZATION_ENTER
- #endif
-
- /* Exit low optimization region - place directly after end of function definition */
- #if defined ( ARM_MATH_CM4 ) || defined ( ARM_MATH_CM7 )
- #define LOW_OPTIMIZATION_EXIT \
- _Pragma ("pop")
- #else
- #define LOW_OPTIMIZATION_EXIT
- #endif
-
- /* Enter low optimization region - place directly above function definition */
- #define IAR_ONLY_LOW_OPTIMIZATION_ENTER
-
- /* Exit low optimization region - place directly after end of function definition */
- #define IAR_ONLY_LOW_OPTIMIZATION_EXIT
-
-#elif defined (__ARMCC_VERSION ) && ( __ARMCC_VERSION >= 6010050 )
- #define LOW_OPTIMIZATION_ENTER
- #define LOW_OPTIMIZATION_EXIT
- #define IAR_ONLY_LOW_OPTIMIZATION_ENTER
- #define IAR_ONLY_LOW_OPTIMIZATION_EXIT
-
-#elif defined ( __GNUC__ )
- #define LOW_OPTIMIZATION_ENTER \
- __attribute__(( optimize("-O1") ))
- #define LOW_OPTIMIZATION_EXIT
- #define IAR_ONLY_LOW_OPTIMIZATION_ENTER
- #define IAR_ONLY_LOW_OPTIMIZATION_EXIT
-
-#elif defined ( __ICCARM__ )
- /* Enter low optimization region - place directly above function definition */
- #if defined ( ARM_MATH_CM4 ) || defined ( ARM_MATH_CM7 )
- #define LOW_OPTIMIZATION_ENTER \
- _Pragma ("optimize=low")
- #else
- #define LOW_OPTIMIZATION_ENTER
- #endif
-
- /* Exit low optimization region - place directly after end of function definition */
- #define LOW_OPTIMIZATION_EXIT
-
- /* Enter low optimization region - place directly above function definition */
- #if defined ( ARM_MATH_CM4 ) || defined ( ARM_MATH_CM7 )
- #define IAR_ONLY_LOW_OPTIMIZATION_ENTER \
- _Pragma ("optimize=low")
- #else
- #define IAR_ONLY_LOW_OPTIMIZATION_ENTER
- #endif
-
- /* Exit low optimization region - place directly after end of function definition */
- #define IAR_ONLY_LOW_OPTIMIZATION_EXIT
-
-#elif defined ( __TI_ARM__ )
- #define LOW_OPTIMIZATION_ENTER
- #define LOW_OPTIMIZATION_EXIT
- #define IAR_ONLY_LOW_OPTIMIZATION_ENTER
- #define IAR_ONLY_LOW_OPTIMIZATION_EXIT
-
-#elif defined ( __CSMC__ )
- #define LOW_OPTIMIZATION_ENTER
- #define LOW_OPTIMIZATION_EXIT
- #define IAR_ONLY_LOW_OPTIMIZATION_ENTER
- #define IAR_ONLY_LOW_OPTIMIZATION_EXIT
-
-#elif defined ( __TASKING__ )
- #define LOW_OPTIMIZATION_ENTER
- #define LOW_OPTIMIZATION_EXIT
- #define IAR_ONLY_LOW_OPTIMIZATION_ENTER
- #define IAR_ONLY_LOW_OPTIMIZATION_EXIT
-
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/* Compiler specific diagnostic adjustment */
-#if defined ( __CC_ARM )
-
-#elif defined ( __ARMCC_VERSION ) && ( __ARMCC_VERSION >= 6010050 )
-
-#elif defined ( __GNUC__ )
-#pragma GCC diagnostic pop
-
-#elif defined ( __ICCARM__ )
-
-#elif defined ( __TI_ARM__ )
-
-#elif defined ( __CSMC__ )
-
-#elif defined ( __TASKING__ )
-
-#else
- #error Unknown compiler
-#endif
-
-#endif /* _ARM_MATH_H */
-
-/**
- *
- * End of file.
- */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Include/cmsis_compiler.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Include/cmsis_compiler.h
deleted file mode 100644
index 94212eb..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Include/cmsis_compiler.h
+++ /dev/null
@@ -1,266 +0,0 @@
-/**************************************************************************//**
- * @file cmsis_compiler.h
- * @brief CMSIS compiler generic header file
- * @version V5.0.4
- * @date 10. January 2018
- ******************************************************************************/
-/*
- * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __CMSIS_COMPILER_H
-#define __CMSIS_COMPILER_H
-
-#include
-
-/*
- * Arm Compiler 4/5
- */
-#if defined ( __CC_ARM )
- #include "cmsis_armcc.h"
-
-
-/*
- * Arm Compiler 6 (armclang)
- */
-#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
- #include "cmsis_armclang.h"
-
-
-/*
- * GNU Compiler
- */
-#elif defined ( __GNUC__ )
- #include "cmsis_gcc.h"
-
-
-/*
- * IAR Compiler
- */
-#elif defined ( __ICCARM__ )
- #include
-
-
-/*
- * TI Arm Compiler
- */
-#elif defined ( __TI_ARM__ )
- #include
-
- #ifndef __ASM
- #define __ASM __asm
- #endif
- #ifndef __INLINE
- #define __INLINE inline
- #endif
- #ifndef __STATIC_INLINE
- #define __STATIC_INLINE static inline
- #endif
- #ifndef __STATIC_FORCEINLINE
- #define __STATIC_FORCEINLINE __STATIC_INLINE
- #endif
- #ifndef __NO_RETURN
- #define __NO_RETURN __attribute__((noreturn))
- #endif
- #ifndef __USED
- #define __USED __attribute__((used))
- #endif
- #ifndef __WEAK
- #define __WEAK __attribute__((weak))
- #endif
- #ifndef __PACKED
- #define __PACKED __attribute__((packed))
- #endif
- #ifndef __PACKED_STRUCT
- #define __PACKED_STRUCT struct __attribute__((packed))
- #endif
- #ifndef __PACKED_UNION
- #define __PACKED_UNION union __attribute__((packed))
- #endif
- #ifndef __UNALIGNED_UINT32 /* deprecated */
- struct __attribute__((packed)) T_UINT32 { uint32_t v; };
- #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
- #endif
- #ifndef __UNALIGNED_UINT16_WRITE
- __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
- #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void*)(addr))->v) = (val))
- #endif
- #ifndef __UNALIGNED_UINT16_READ
- __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
- #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v)
- #endif
- #ifndef __UNALIGNED_UINT32_WRITE
- __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
- #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val))
- #endif
- #ifndef __UNALIGNED_UINT32_READ
- __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
- #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v)
- #endif
- #ifndef __ALIGNED
- #define __ALIGNED(x) __attribute__((aligned(x)))
- #endif
- #ifndef __RESTRICT
- #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored.
- #define __RESTRICT
- #endif
-
-
-/*
- * TASKING Compiler
- */
-#elif defined ( __TASKING__ )
- /*
- * The CMSIS functions have been implemented as intrinsics in the compiler.
- * Please use "carm -?i" to get an up to date list of all intrinsics,
- * Including the CMSIS ones.
- */
-
- #ifndef __ASM
- #define __ASM __asm
- #endif
- #ifndef __INLINE
- #define __INLINE inline
- #endif
- #ifndef __STATIC_INLINE
- #define __STATIC_INLINE static inline
- #endif
- #ifndef __STATIC_FORCEINLINE
- #define __STATIC_FORCEINLINE __STATIC_INLINE
- #endif
- #ifndef __NO_RETURN
- #define __NO_RETURN __attribute__((noreturn))
- #endif
- #ifndef __USED
- #define __USED __attribute__((used))
- #endif
- #ifndef __WEAK
- #define __WEAK __attribute__((weak))
- #endif
- #ifndef __PACKED
- #define __PACKED __packed__
- #endif
- #ifndef __PACKED_STRUCT
- #define __PACKED_STRUCT struct __packed__
- #endif
- #ifndef __PACKED_UNION
- #define __PACKED_UNION union __packed__
- #endif
- #ifndef __UNALIGNED_UINT32 /* deprecated */
- struct __packed__ T_UINT32 { uint32_t v; };
- #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
- #endif
- #ifndef __UNALIGNED_UINT16_WRITE
- __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
- #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val))
- #endif
- #ifndef __UNALIGNED_UINT16_READ
- __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
- #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v)
- #endif
- #ifndef __UNALIGNED_UINT32_WRITE
- __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
- #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val))
- #endif
- #ifndef __UNALIGNED_UINT32_READ
- __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
- #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v)
- #endif
- #ifndef __ALIGNED
- #define __ALIGNED(x) __align(x)
- #endif
- #ifndef __RESTRICT
- #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored.
- #define __RESTRICT
- #endif
-
-
-/*
- * COSMIC Compiler
- */
-#elif defined ( __CSMC__ )
- #include
-
- #ifndef __ASM
- #define __ASM _asm
- #endif
- #ifndef __INLINE
- #define __INLINE inline
- #endif
- #ifndef __STATIC_INLINE
- #define __STATIC_INLINE static inline
- #endif
- #ifndef __STATIC_FORCEINLINE
- #define __STATIC_FORCEINLINE __STATIC_INLINE
- #endif
- #ifndef __NO_RETURN
- // NO RETURN is automatically detected hence no warning here
- #define __NO_RETURN
- #endif
- #ifndef __USED
- #warning No compiler specific solution for __USED. __USED is ignored.
- #define __USED
- #endif
- #ifndef __WEAK
- #define __WEAK __weak
- #endif
- #ifndef __PACKED
- #define __PACKED @packed
- #endif
- #ifndef __PACKED_STRUCT
- #define __PACKED_STRUCT @packed struct
- #endif
- #ifndef __PACKED_UNION
- #define __PACKED_UNION @packed union
- #endif
- #ifndef __UNALIGNED_UINT32 /* deprecated */
- @packed struct T_UINT32 { uint32_t v; };
- #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
- #endif
- #ifndef __UNALIGNED_UINT16_WRITE
- __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
- #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val))
- #endif
- #ifndef __UNALIGNED_UINT16_READ
- __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
- #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v)
- #endif
- #ifndef __UNALIGNED_UINT32_WRITE
- __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
- #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val))
- #endif
- #ifndef __UNALIGNED_UINT32_READ
- __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
- #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v)
- #endif
- #ifndef __ALIGNED
- #warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored.
- #define __ALIGNED(x)
- #endif
- #ifndef __RESTRICT
- #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored.
- #define __RESTRICT
- #endif
-
-
-#else
- #error Unknown compiler.
-#endif
-
-
-#endif /* __CMSIS_COMPILER_H */
-
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Include/cmsis_gcc.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Include/cmsis_gcc.h
deleted file mode 100644
index 2d9db15..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Include/cmsis_gcc.h
+++ /dev/null
@@ -1,2085 +0,0 @@
-/**************************************************************************//**
- * @file cmsis_gcc.h
- * @brief CMSIS compiler GCC header file
- * @version V5.0.4
- * @date 09. April 2018
- ******************************************************************************/
-/*
- * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __CMSIS_GCC_H
-#define __CMSIS_GCC_H
-
-/* ignore some GCC warnings */
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wsign-conversion"
-#pragma GCC diagnostic ignored "-Wconversion"
-#pragma GCC diagnostic ignored "-Wunused-parameter"
-
-/* Fallback for __has_builtin */
-#ifndef __has_builtin
- #define __has_builtin(x) (0)
-#endif
-
-/* CMSIS compiler specific defines */
-#ifndef __ASM
- #define __ASM __asm
-#endif
-#ifndef __INLINE
- #define __INLINE inline
-#endif
-#ifndef __STATIC_INLINE
- #define __STATIC_INLINE static inline
-#endif
-#ifndef __STATIC_FORCEINLINE
- #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline
-#endif
-#ifndef __NO_RETURN
- #define __NO_RETURN __attribute__((__noreturn__))
-#endif
-#ifndef __USED
- #define __USED __attribute__((used))
-#endif
-#ifndef __WEAK
- #define __WEAK __attribute__((weak))
-#endif
-#ifndef __PACKED
- #define __PACKED __attribute__((packed, aligned(1)))
-#endif
-#ifndef __PACKED_STRUCT
- #define __PACKED_STRUCT struct __attribute__((packed, aligned(1)))
-#endif
-#ifndef __PACKED_UNION
- #define __PACKED_UNION union __attribute__((packed, aligned(1)))
-#endif
-#ifndef __UNALIGNED_UINT32 /* deprecated */
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wpacked"
- #pragma GCC diagnostic ignored "-Wattributes"
- struct __attribute__((packed)) T_UINT32 { uint32_t v; };
- #pragma GCC diagnostic pop
- #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
-#endif
-#ifndef __UNALIGNED_UINT16_WRITE
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wpacked"
- #pragma GCC diagnostic ignored "-Wattributes"
- __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
- #pragma GCC diagnostic pop
- #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val))
-#endif
-#ifndef __UNALIGNED_UINT16_READ
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wpacked"
- #pragma GCC diagnostic ignored "-Wattributes"
- __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
- #pragma GCC diagnostic pop
- #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v)
-#endif
-#ifndef __UNALIGNED_UINT32_WRITE
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wpacked"
- #pragma GCC diagnostic ignored "-Wattributes"
- __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
- #pragma GCC diagnostic pop
- #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val))
-#endif
-#ifndef __UNALIGNED_UINT32_READ
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wpacked"
- #pragma GCC diagnostic ignored "-Wattributes"
- __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
- #pragma GCC diagnostic pop
- #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v)
-#endif
-#ifndef __ALIGNED
- #define __ALIGNED(x) __attribute__((aligned(x)))
-#endif
-#ifndef __RESTRICT
- #define __RESTRICT __restrict
-#endif
-
-
-/* ########################### Core Function Access ########################### */
-/** \ingroup CMSIS_Core_FunctionInterface
- \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions
- @{
- */
-
-/**
- \brief Enable IRQ Interrupts
- \details Enables IRQ interrupts by clearing the I-bit in the CPSR.
- Can only be executed in Privileged modes.
- */
-__STATIC_FORCEINLINE void __enable_irq(void)
-{
- __ASM volatile ("cpsie i" : : : "memory");
-}
-
-
-/**
- \brief Disable IRQ Interrupts
- \details Disables IRQ interrupts by setting the I-bit in the CPSR.
- Can only be executed in Privileged modes.
- */
-__STATIC_FORCEINLINE void __disable_irq(void)
-{
- __ASM volatile ("cpsid i" : : : "memory");
-}
-
-
-/**
- \brief Get Control Register
- \details Returns the content of the Control Register.
- \return Control Register value
- */
-__STATIC_FORCEINLINE uint32_t __get_CONTROL(void)
-{
- uint32_t result;
-
- __ASM volatile ("MRS %0, control" : "=r" (result) );
- return(result);
-}
-
-
-#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
-/**
- \brief Get Control Register (non-secure)
- \details Returns the content of the non-secure Control Register when in secure mode.
- \return non-secure Control Register value
- */
-__STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void)
-{
- uint32_t result;
-
- __ASM volatile ("MRS %0, control_ns" : "=r" (result) );
- return(result);
-}
-#endif
-
-
-/**
- \brief Set Control Register
- \details Writes the given value to the Control Register.
- \param [in] control Control Register value to set
- */
-__STATIC_FORCEINLINE void __set_CONTROL(uint32_t control)
-{
- __ASM volatile ("MSR control, %0" : : "r" (control) : "memory");
-}
-
-
-#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
-/**
- \brief Set Control Register (non-secure)
- \details Writes the given value to the non-secure Control Register when in secure state.
- \param [in] control Control Register value to set
- */
-__STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control)
-{
- __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory");
-}
-#endif
-
-
-/**
- \brief Get IPSR Register
- \details Returns the content of the IPSR Register.
- \return IPSR Register value
- */
-__STATIC_FORCEINLINE uint32_t __get_IPSR(void)
-{
- uint32_t result;
-
- __ASM volatile ("MRS %0, ipsr" : "=r" (result) );
- return(result);
-}
-
-
-/**
- \brief Get APSR Register
- \details Returns the content of the APSR Register.
- \return APSR Register value
- */
-__STATIC_FORCEINLINE uint32_t __get_APSR(void)
-{
- uint32_t result;
-
- __ASM volatile ("MRS %0, apsr" : "=r" (result) );
- return(result);
-}
-
-
-/**
- \brief Get xPSR Register
- \details Returns the content of the xPSR Register.
- \return xPSR Register value
- */
-__STATIC_FORCEINLINE uint32_t __get_xPSR(void)
-{
- uint32_t result;
-
- __ASM volatile ("MRS %0, xpsr" : "=r" (result) );
- return(result);
-}
-
-
-/**
- \brief Get Process Stack Pointer
- \details Returns the current value of the Process Stack Pointer (PSP).
- \return PSP Register value
- */
-__STATIC_FORCEINLINE uint32_t __get_PSP(void)
-{
- uint32_t result;
-
- __ASM volatile ("MRS %0, psp" : "=r" (result) );
- return(result);
-}
-
-
-#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
-/**
- \brief Get Process Stack Pointer (non-secure)
- \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure state.
- \return PSP Register value
- */
-__STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void)
-{
- uint32_t result;
-
- __ASM volatile ("MRS %0, psp_ns" : "=r" (result) );
- return(result);
-}
-#endif
-
-
-/**
- \brief Set Process Stack Pointer
- \details Assigns the given value to the Process Stack Pointer (PSP).
- \param [in] topOfProcStack Process Stack Pointer value to set
- */
-__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack)
-{
- __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : );
-}
-
-
-#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
-/**
- \brief Set Process Stack Pointer (non-secure)
- \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure state.
- \param [in] topOfProcStack Process Stack Pointer value to set
- */
-__STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack)
-{
- __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : );
-}
-#endif
-
-
-/**
- \brief Get Main Stack Pointer
- \details Returns the current value of the Main Stack Pointer (MSP).
- \return MSP Register value
- */
-__STATIC_FORCEINLINE uint32_t __get_MSP(void)
-{
- uint32_t result;
-
- __ASM volatile ("MRS %0, msp" : "=r" (result) );
- return(result);
-}
-
-
-#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
-/**
- \brief Get Main Stack Pointer (non-secure)
- \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure state.
- \return MSP Register value
- */
-__STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void)
-{
- uint32_t result;
-
- __ASM volatile ("MRS %0, msp_ns" : "=r" (result) );
- return(result);
-}
-#endif
-
-
-/**
- \brief Set Main Stack Pointer
- \details Assigns the given value to the Main Stack Pointer (MSP).
- \param [in] topOfMainStack Main Stack Pointer value to set
- */
-__STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack)
-{
- __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : );
-}
-
-
-#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
-/**
- \brief Set Main Stack Pointer (non-secure)
- \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state.
- \param [in] topOfMainStack Main Stack Pointer value to set
- */
-__STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack)
-{
- __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : );
-}
-#endif
-
-
-#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
-/**
- \brief Get Stack Pointer (non-secure)
- \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state.
- \return SP Register value
- */
-__STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void)
-{
- uint32_t result;
-
- __ASM volatile ("MRS %0, sp_ns" : "=r" (result) );
- return(result);
-}
-
-
-/**
- \brief Set Stack Pointer (non-secure)
- \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state.
- \param [in] topOfStack Stack Pointer value to set
- */
-__STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack)
-{
- __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : );
-}
-#endif
-
-
-/**
- \brief Get Priority Mask
- \details Returns the current state of the priority mask bit from the Priority Mask Register.
- \return Priority Mask value
- */
-__STATIC_FORCEINLINE uint32_t __get_PRIMASK(void)
-{
- uint32_t result;
-
- __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
- return(result);
-}
-
-
-#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
-/**
- \brief Get Priority Mask (non-secure)
- \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state.
- \return Priority Mask value
- */
-__STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void)
-{
- uint32_t result;
-
- __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory");
- return(result);
-}
-#endif
-
-
-/**
- \brief Set Priority Mask
- \details Assigns the given value to the Priority Mask Register.
- \param [in] priMask Priority Mask
- */
-__STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask)
-{
- __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
-}
-
-
-#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
-/**
- \brief Set Priority Mask (non-secure)
- \details Assigns the given value to the non-secure Priority Mask Register when in secure state.
- \param [in] priMask Priority Mask
- */
-__STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask)
-{
- __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory");
-}
-#endif
-
-
-#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
- (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
- (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) )
-/**
- \brief Enable FIQ
- \details Enables FIQ interrupts by clearing the F-bit in the CPSR.
- Can only be executed in Privileged modes.
- */
-__STATIC_FORCEINLINE void __enable_fault_irq(void)
-{
- __ASM volatile ("cpsie f" : : : "memory");
-}
-
-
-/**
- \brief Disable FIQ
- \details Disables FIQ interrupts by setting the F-bit in the CPSR.
- Can only be executed in Privileged modes.
- */
-__STATIC_FORCEINLINE void __disable_fault_irq(void)
-{
- __ASM volatile ("cpsid f" : : : "memory");
-}
-
-
-/**
- \brief Get Base Priority
- \details Returns the current value of the Base Priority register.
- \return Base Priority register value
- */
-__STATIC_FORCEINLINE uint32_t __get_BASEPRI(void)
-{
- uint32_t result;
-
- __ASM volatile ("MRS %0, basepri" : "=r" (result) );
- return(result);
-}
-
-
-#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
-/**
- \brief Get Base Priority (non-secure)
- \details Returns the current value of the non-secure Base Priority register when in secure state.
- \return Base Priority register value
- */
-__STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void)
-{
- uint32_t result;
-
- __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) );
- return(result);
-}
-#endif
-
-
-/**
- \brief Set Base Priority
- \details Assigns the given value to the Base Priority register.
- \param [in] basePri Base Priority value to set
- */
-__STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri)
-{
- __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory");
-}
-
-
-#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
-/**
- \brief Set Base Priority (non-secure)
- \details Assigns the given value to the non-secure Base Priority register when in secure state.
- \param [in] basePri Base Priority value to set
- */
-__STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri)
-{
- __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory");
-}
-#endif
-
-
-/**
- \brief Set Base Priority with condition
- \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled,
- or the new value increases the BASEPRI priority level.
- \param [in] basePri Base Priority value to set
- */
-__STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri)
-{
- __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory");
-}
-
-
-/**
- \brief Get Fault Mask
- \details Returns the current value of the Fault Mask register.
- \return Fault Mask register value
- */
-__STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void)
-{
- uint32_t result;
-
- __ASM volatile ("MRS %0, faultmask" : "=r" (result) );
- return(result);
-}
-
-
-#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
-/**
- \brief Get Fault Mask (non-secure)
- \details Returns the current value of the non-secure Fault Mask register when in secure state.
- \return Fault Mask register value
- */
-__STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void)
-{
- uint32_t result;
-
- __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) );
- return(result);
-}
-#endif
-
-
-/**
- \brief Set Fault Mask
- \details Assigns the given value to the Fault Mask register.
- \param [in] faultMask Fault Mask value to set
- */
-__STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask)
-{
- __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory");
-}
-
-
-#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
-/**
- \brief Set Fault Mask (non-secure)
- \details Assigns the given value to the non-secure Fault Mask register when in secure state.
- \param [in] faultMask Fault Mask value to set
- */
-__STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask)
-{
- __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory");
-}
-#endif
-
-#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
- (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
- (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */
-
-
-#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
- (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) )
-
-/**
- \brief Get Process Stack Pointer Limit
- Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
- Stack Pointer Limit register hence zero is returned always in non-secure
- mode.
-
- \details Returns the current value of the Process Stack Pointer Limit (PSPLIM).
- \return PSPLIM Register value
- */
-__STATIC_FORCEINLINE uint32_t __get_PSPLIM(void)
-{
-#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
- (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
- // without main extensions, the non-secure PSPLIM is RAZ/WI
- return 0U;
-#else
- uint32_t result;
- __ASM volatile ("MRS %0, psplim" : "=r" (result) );
- return result;
-#endif
-}
-
-#if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3))
-/**
- \brief Get Process Stack Pointer Limit (non-secure)
- Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
- Stack Pointer Limit register hence zero is returned always.
-
- \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state.
- \return PSPLIM Register value
- */
-__STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void)
-{
-#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
- // without main extensions, the non-secure PSPLIM is RAZ/WI
- return 0U;
-#else
- uint32_t result;
- __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) );
- return result;
-#endif
-}
-#endif
-
-
-/**
- \brief Set Process Stack Pointer Limit
- Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
- Stack Pointer Limit register hence the write is silently ignored in non-secure
- mode.
-
- \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM).
- \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set
- */
-__STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit)
-{
-#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
- (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
- // without main extensions, the non-secure PSPLIM is RAZ/WI
- (void)ProcStackPtrLimit;
-#else
- __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit));
-#endif
-}
-
-
-#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
-/**
- \brief Set Process Stack Pointer (non-secure)
- Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
- Stack Pointer Limit register hence the write is silently ignored.
-
- \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state.
- \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set
- */
-__STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit)
-{
-#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
- // without main extensions, the non-secure PSPLIM is RAZ/WI
- (void)ProcStackPtrLimit;
-#else
- __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit));
-#endif
-}
-#endif
-
-
-/**
- \brief Get Main Stack Pointer Limit
- Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
- Stack Pointer Limit register hence zero is returned always in non-secure
- mode.
-
- \details Returns the current value of the Main Stack Pointer Limit (MSPLIM).
- \return MSPLIM Register value
- */
-__STATIC_FORCEINLINE uint32_t __get_MSPLIM(void)
-{
-#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
- (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
- // without main extensions, the non-secure MSPLIM is RAZ/WI
- return 0U;
-#else
- uint32_t result;
- __ASM volatile ("MRS %0, msplim" : "=r" (result) );
- return result;
-#endif
-}
-
-
-#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
-/**
- \brief Get Main Stack Pointer Limit (non-secure)
- Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
- Stack Pointer Limit register hence zero is returned always.
-
- \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in secure state.
- \return MSPLIM Register value
- */
-__STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void)
-{
-#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
- // without main extensions, the non-secure MSPLIM is RAZ/WI
- return 0U;
-#else
- uint32_t result;
- __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) );
- return result;
-#endif
-}
-#endif
-
-
-/**
- \brief Set Main Stack Pointer Limit
- Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
- Stack Pointer Limit register hence the write is silently ignored in non-secure
- mode.
-
- \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM).
- \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set
- */
-__STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit)
-{
-#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
- (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
- // without main extensions, the non-secure MSPLIM is RAZ/WI
- (void)MainStackPtrLimit;
-#else
- __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit));
-#endif
-}
-
-
-#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
-/**
- \brief Set Main Stack Pointer Limit (non-secure)
- Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
- Stack Pointer Limit register hence the write is silently ignored.
-
- \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secure state.
- \param [in] MainStackPtrLimit Main Stack Pointer value to set
- */
-__STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit)
-{
-#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
- // without main extensions, the non-secure MSPLIM is RAZ/WI
- (void)MainStackPtrLimit;
-#else
- __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit));
-#endif
-}
-#endif
-
-#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
- (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */
-
-
-/**
- \brief Get FPSCR
- \details Returns the current value of the Floating Point Status/Control register.
- \return Floating Point Status/Control register value
- */
-__STATIC_FORCEINLINE uint32_t __get_FPSCR(void)
-{
-#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \
- (defined (__FPU_USED ) && (__FPU_USED == 1U)) )
-#if __has_builtin(__builtin_arm_get_fpscr)
-// Re-enable using built-in when GCC has been fixed
-// || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
- /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
- return __builtin_arm_get_fpscr();
-#else
- uint32_t result;
-
- __ASM volatile ("VMRS %0, fpscr" : "=r" (result) );
- return(result);
-#endif
-#else
- return(0U);
-#endif
-}
-
-
-/**
- \brief Set FPSCR
- \details Assigns the given value to the Floating Point Status/Control register.
- \param [in] fpscr Floating Point Status/Control value to set
- */
-__STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr)
-{
-#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \
- (defined (__FPU_USED ) && (__FPU_USED == 1U)) )
-#if __has_builtin(__builtin_arm_set_fpscr)
-// Re-enable using built-in when GCC has been fixed
-// || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
- /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
- __builtin_arm_set_fpscr(fpscr);
-#else
- __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory");
-#endif
-#else
- (void)fpscr;
-#endif
-}
-
-
-/*@} end of CMSIS_Core_RegAccFunctions */
-
-
-/* ########################## Core Instruction Access ######################### */
-/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface
- Access to dedicated instructions
- @{
-*/
-
-/* Define macros for porting to both thumb1 and thumb2.
- * For thumb1, use low register (r0-r7), specified by constraint "l"
- * Otherwise, use general registers, specified by constraint "r" */
-#if defined (__thumb__) && !defined (__thumb2__)
-#define __CMSIS_GCC_OUT_REG(r) "=l" (r)
-#define __CMSIS_GCC_RW_REG(r) "+l" (r)
-#define __CMSIS_GCC_USE_REG(r) "l" (r)
-#else
-#define __CMSIS_GCC_OUT_REG(r) "=r" (r)
-#define __CMSIS_GCC_RW_REG(r) "+r" (r)
-#define __CMSIS_GCC_USE_REG(r) "r" (r)
-#endif
-
-/**
- \brief No Operation
- \details No Operation does nothing. This instruction can be used for code alignment purposes.
- */
-#define __NOP() __ASM volatile ("nop")
-
-/**
- \brief Wait For Interrupt
- \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs.
- */
-#define __WFI() __ASM volatile ("wfi")
-
-
-/**
- \brief Wait For Event
- \details Wait For Event is a hint instruction that permits the processor to enter
- a low-power state until one of a number of events occurs.
- */
-#define __WFE() __ASM volatile ("wfe")
-
-
-/**
- \brief Send Event
- \details Send Event is a hint instruction. It causes an event to be signaled to the CPU.
- */
-#define __SEV() __ASM volatile ("sev")
-
-
-/**
- \brief Instruction Synchronization Barrier
- \details Instruction Synchronization Barrier flushes the pipeline in the processor,
- so that all instructions following the ISB are fetched from cache or memory,
- after the instruction has been completed.
- */
-__STATIC_FORCEINLINE void __ISB(void)
-{
- __ASM volatile ("isb 0xF":::"memory");
-}
-
-
-/**
- \brief Data Synchronization Barrier
- \details Acts as a special kind of Data Memory Barrier.
- It completes when all explicit memory accesses before this instruction complete.
- */
-__STATIC_FORCEINLINE void __DSB(void)
-{
- __ASM volatile ("dsb 0xF":::"memory");
-}
-
-
-/**
- \brief Data Memory Barrier
- \details Ensures the apparent order of the explicit memory operations before
- and after the instruction, without ensuring their completion.
- */
-__STATIC_FORCEINLINE void __DMB(void)
-{
- __ASM volatile ("dmb 0xF":::"memory");
-}
-
-
-/**
- \brief Reverse byte order (32 bit)
- \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412.
- \param [in] value Value to reverse
- \return Reversed value
- */
-__STATIC_FORCEINLINE uint32_t __REV(uint32_t value)
-{
-#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
- return __builtin_bswap32(value);
-#else
- uint32_t result;
-
- __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
- return result;
-#endif
-}
-
-
-/**
- \brief Reverse byte order (16 bit)
- \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856.
- \param [in] value Value to reverse
- \return Reversed value
- */
-__STATIC_FORCEINLINE uint32_t __REV16(uint32_t value)
-{
- uint32_t result;
-
- __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
- return result;
-}
-
-
-/**
- \brief Reverse byte order (16 bit)
- \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000.
- \param [in] value Value to reverse
- \return Reversed value
- */
-__STATIC_FORCEINLINE int16_t __REVSH(int16_t value)
-{
-#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
- return (int16_t)__builtin_bswap16(value);
-#else
- int16_t result;
-
- __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
- return result;
-#endif
-}
-
-
-/**
- \brief Rotate Right in unsigned value (32 bit)
- \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits.
- \param [in] op1 Value to rotate
- \param [in] op2 Number of Bits to rotate
- \return Rotated value
- */
-__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2)
-{
- op2 %= 32U;
- if (op2 == 0U)
- {
- return op1;
- }
- return (op1 >> op2) | (op1 << (32U - op2));
-}
-
-
-/**
- \brief Breakpoint
- \details Causes the processor to enter Debug state.
- Debug tools can use this to investigate system state when the instruction at a particular address is reached.
- \param [in] value is ignored by the processor.
- If required, a debugger can use it to store additional information about the breakpoint.
- */
-#define __BKPT(value) __ASM volatile ("bkpt "#value)
-
-
-/**
- \brief Reverse bit order of value
- \details Reverses the bit order of the given value.
- \param [in] value Value to reverse
- \return Reversed value
- */
-__STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value)
-{
- uint32_t result;
-
-#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
- (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
- (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) )
- __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) );
-#else
- uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */
-
- result = value; /* r will be reversed bits of v; first get LSB of v */
- for (value >>= 1U; value != 0U; value >>= 1U)
- {
- result <<= 1U;
- result |= value & 1U;
- s--;
- }
- result <<= s; /* shift when v's highest bits are zero */
-#endif
- return result;
-}
-
-
-/**
- \brief Count leading zeros
- \details Counts the number of leading zeros of a data value.
- \param [in] value Value to count the leading zeros
- \return number of leading zeros in value
- */
-#define __CLZ (uint8_t)__builtin_clz
-
-
-#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
- (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
- (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
- (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) )
-/**
- \brief LDR Exclusive (8 bit)
- \details Executes a exclusive LDR instruction for 8 bit value.
- \param [in] ptr Pointer to data
- \return value of type uint8_t at (*ptr)
- */
-__STATIC_FORCEINLINE uint8_t __LDREXB(volatile uint8_t *addr)
-{
- uint32_t result;
-
-#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
- __ASM volatile ("ldrexb %0, %1" : "=r" (result) : "Q" (*addr) );
-#else
- /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not
- accepted by assembler. So has to use following less efficient pattern.
- */
- __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) : "memory" );
-#endif
- return ((uint8_t) result); /* Add explicit type cast here */
-}
-
-
-/**
- \brief LDR Exclusive (16 bit)
- \details Executes a exclusive LDR instruction for 16 bit values.
- \param [in] ptr Pointer to data
- \return value of type uint16_t at (*ptr)
- */
-__STATIC_FORCEINLINE uint16_t __LDREXH(volatile uint16_t *addr)
-{
- uint32_t result;
-
-#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
- __ASM volatile ("ldrexh %0, %1" : "=r" (result) : "Q" (*addr) );
-#else
- /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not
- accepted by assembler. So has to use following less efficient pattern.
- */
- __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) : "memory" );
-#endif
- return ((uint16_t) result); /* Add explicit type cast here */
-}
-
-
-/**
- \brief LDR Exclusive (32 bit)
- \details Executes a exclusive LDR instruction for 32 bit values.
- \param [in] ptr Pointer to data
- \return value of type uint32_t at (*ptr)
- */
-__STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr)
-{
- uint32_t result;
-
- __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
- return(result);
-}
-
-
-/**
- \brief STR Exclusive (8 bit)
- \details Executes a exclusive STR instruction for 8 bit values.
- \param [in] value Value to store
- \param [in] ptr Pointer to location
- \return 0 Function succeeded
- \return 1 Function failed
- */
-__STATIC_FORCEINLINE uint32_t __STREXB(uint8_t value, volatile uint8_t *addr)
-{
- uint32_t result;
-
- __ASM volatile ("strexb %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) );
- return(result);
-}
-
-
-/**
- \brief STR Exclusive (16 bit)
- \details Executes a exclusive STR instruction for 16 bit values.
- \param [in] value Value to store
- \param [in] ptr Pointer to location
- \return 0 Function succeeded
- \return 1 Function failed
- */
-__STATIC_FORCEINLINE uint32_t __STREXH(uint16_t value, volatile uint16_t *addr)
-{
- uint32_t result;
-
- __ASM volatile ("strexh %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) );
- return(result);
-}
-
-
-/**
- \brief STR Exclusive (32 bit)
- \details Executes a exclusive STR instruction for 32 bit values.
- \param [in] value Value to store
- \param [in] ptr Pointer to location
- \return 0 Function succeeded
- \return 1 Function failed
- */
-__STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr)
-{
- uint32_t result;
-
- __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
- return(result);
-}
-
-
-/**
- \brief Remove the exclusive lock
- \details Removes the exclusive lock which is created by LDREX.
- */
-__STATIC_FORCEINLINE void __CLREX(void)
-{
- __ASM volatile ("clrex" ::: "memory");
-}
-
-#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
- (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
- (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
- (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */
-
-
-#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
- (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
- (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) )
-/**
- \brief Signed Saturate
- \details Saturates a signed value.
- \param [in] ARG1 Value to be saturated
- \param [in] ARG2 Bit position to saturate to (1..32)
- \return Saturated value
- */
-#define __SSAT(ARG1,ARG2) \
-__extension__ \
-({ \
- int32_t __RES, __ARG1 = (ARG1); \
- __ASM ("ssat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \
- __RES; \
- })
-
-
-/**
- \brief Unsigned Saturate
- \details Saturates an unsigned value.
- \param [in] ARG1 Value to be saturated
- \param [in] ARG2 Bit position to saturate to (0..31)
- \return Saturated value
- */
-#define __USAT(ARG1,ARG2) \
- __extension__ \
-({ \
- uint32_t __RES, __ARG1 = (ARG1); \
- __ASM ("usat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \
- __RES; \
- })
-
-
-/**
- \brief Rotate Right with Extend (32 bit)
- \details Moves each bit of a bitstring right by one bit.
- The carry input is shifted in at the left end of the bitstring.
- \param [in] value Value to rotate
- \return Rotated value
- */
-__STATIC_FORCEINLINE uint32_t __RRX(uint32_t value)
-{
- uint32_t result;
-
- __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
- return(result);
-}
-
-
-/**
- \brief LDRT Unprivileged (8 bit)
- \details Executes a Unprivileged LDRT instruction for 8 bit value.
- \param [in] ptr Pointer to data
- \return value of type uint8_t at (*ptr)
- */
-__STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr)
-{
- uint32_t result;
-
-#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
- __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) );
-#else
- /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not
- accepted by assembler. So has to use following less efficient pattern.
- */
- __ASM volatile ("ldrbt %0, [%1]" : "=r" (result) : "r" (ptr) : "memory" );
-#endif
- return ((uint8_t) result); /* Add explicit type cast here */
-}
-
-
-/**
- \brief LDRT Unprivileged (16 bit)
- \details Executes a Unprivileged LDRT instruction for 16 bit values.
- \param [in] ptr Pointer to data
- \return value of type uint16_t at (*ptr)
- */
-__STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr)
-{
- uint32_t result;
-
-#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
- __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) );
-#else
- /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not
- accepted by assembler. So has to use following less efficient pattern.
- */
- __ASM volatile ("ldrht %0, [%1]" : "=r" (result) : "r" (ptr) : "memory" );
-#endif
- return ((uint16_t) result); /* Add explicit type cast here */
-}
-
-
-/**
- \brief LDRT Unprivileged (32 bit)
- \details Executes a Unprivileged LDRT instruction for 32 bit values.
- \param [in] ptr Pointer to data
- \return value of type uint32_t at (*ptr)
- */
-__STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr)
-{
- uint32_t result;
-
- __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) );
- return(result);
-}
-
-
-/**
- \brief STRT Unprivileged (8 bit)
- \details Executes a Unprivileged STRT instruction for 8 bit values.
- \param [in] value Value to store
- \param [in] ptr Pointer to location
- */
-__STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr)
-{
- __ASM volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) );
-}
-
-
-/**
- \brief STRT Unprivileged (16 bit)
- \details Executes a Unprivileged STRT instruction for 16 bit values.
- \param [in] value Value to store
- \param [in] ptr Pointer to location
- */
-__STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr)
-{
- __ASM volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) );
-}
-
-
-/**
- \brief STRT Unprivileged (32 bit)
- \details Executes a Unprivileged STRT instruction for 32 bit values.
- \param [in] value Value to store
- \param [in] ptr Pointer to location
- */
-__STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr)
-{
- __ASM volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) );
-}
-
-#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
- (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
- (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */
-
-/**
- \brief Signed Saturate
- \details Saturates a signed value.
- \param [in] value Value to be saturated
- \param [in] sat Bit position to saturate to (1..32)
- \return Saturated value
- */
-__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat)
-{
- if ((sat >= 1U) && (sat <= 32U))
- {
- const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U);
- const int32_t min = -1 - max ;
- if (val > max)
- {
- return max;
- }
- else if (val < min)
- {
- return min;
- }
- }
- return val;
-}
-
-/**
- \brief Unsigned Saturate
- \details Saturates an unsigned value.
- \param [in] value Value to be saturated
- \param [in] sat Bit position to saturate to (0..31)
- \return Saturated value
- */
-__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat)
-{
- if (sat <= 31U)
- {
- const uint32_t max = ((1U << sat) - 1U);
- if (val > (int32_t)max)
- {
- return max;
- }
- else if (val < 0)
- {
- return 0U;
- }
- }
- return (uint32_t)val;
-}
-
-#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
- (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
- (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */
-
-
-#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
- (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) )
-/**
- \brief Load-Acquire (8 bit)
- \details Executes a LDAB instruction for 8 bit value.
- \param [in] ptr Pointer to data
- \return value of type uint8_t at (*ptr)
- */
-__STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr)
-{
- uint32_t result;
-
- __ASM volatile ("ldab %0, %1" : "=r" (result) : "Q" (*ptr) );
- return ((uint8_t) result);
-}
-
-
-/**
- \brief Load-Acquire (16 bit)
- \details Executes a LDAH instruction for 16 bit values.
- \param [in] ptr Pointer to data
- \return value of type uint16_t at (*ptr)
- */
-__STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr)
-{
- uint32_t result;
-
- __ASM volatile ("ldah %0, %1" : "=r" (result) : "Q" (*ptr) );
- return ((uint16_t) result);
-}
-
-
-/**
- \brief Load-Acquire (32 bit)
- \details Executes a LDA instruction for 32 bit values.
- \param [in] ptr Pointer to data
- \return value of type uint32_t at (*ptr)
- */
-__STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr)
-{
- uint32_t result;
-
- __ASM volatile ("lda %0, %1" : "=r" (result) : "Q" (*ptr) );
- return(result);
-}
-
-
-/**
- \brief Store-Release (8 bit)
- \details Executes a STLB instruction for 8 bit values.
- \param [in] value Value to store
- \param [in] ptr Pointer to location
- */
-__STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr)
-{
- __ASM volatile ("stlb %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) );
-}
-
-
-/**
- \brief Store-Release (16 bit)
- \details Executes a STLH instruction for 16 bit values.
- \param [in] value Value to store
- \param [in] ptr Pointer to location
- */
-__STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr)
-{
- __ASM volatile ("stlh %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) );
-}
-
-
-/**
- \brief Store-Release (32 bit)
- \details Executes a STL instruction for 32 bit values.
- \param [in] value Value to store
- \param [in] ptr Pointer to location
- */
-__STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr)
-{
- __ASM volatile ("stl %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) );
-}
-
-
-/**
- \brief Load-Acquire Exclusive (8 bit)
- \details Executes a LDAB exclusive instruction for 8 bit value.
- \param [in] ptr Pointer to data
- \return value of type uint8_t at (*ptr)
- */
-__STATIC_FORCEINLINE uint8_t __LDAEXB(volatile uint8_t *ptr)
-{
- uint32_t result;
-
- __ASM volatile ("ldaexb %0, %1" : "=r" (result) : "Q" (*ptr) );
- return ((uint8_t) result);
-}
-
-
-/**
- \brief Load-Acquire Exclusive (16 bit)
- \details Executes a LDAH exclusive instruction for 16 bit values.
- \param [in] ptr Pointer to data
- \return value of type uint16_t at (*ptr)
- */
-__STATIC_FORCEINLINE uint16_t __LDAEXH(volatile uint16_t *ptr)
-{
- uint32_t result;
-
- __ASM volatile ("ldaexh %0, %1" : "=r" (result) : "Q" (*ptr) );
- return ((uint16_t) result);
-}
-
-
-/**
- \brief Load-Acquire Exclusive (32 bit)
- \details Executes a LDA exclusive instruction for 32 bit values.
- \param [in] ptr Pointer to data
- \return value of type uint32_t at (*ptr)
- */
-__STATIC_FORCEINLINE uint32_t __LDAEX(volatile uint32_t *ptr)
-{
- uint32_t result;
-
- __ASM volatile ("ldaex %0, %1" : "=r" (result) : "Q" (*ptr) );
- return(result);
-}
-
-
-/**
- \brief Store-Release Exclusive (8 bit)
- \details Executes a STLB exclusive instruction for 8 bit values.
- \param [in] value Value to store
- \param [in] ptr Pointer to location
- \return 0 Function succeeded
- \return 1 Function failed
- */
-__STATIC_FORCEINLINE uint32_t __STLEXB(uint8_t value, volatile uint8_t *ptr)
-{
- uint32_t result;
-
- __ASM volatile ("stlexb %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) );
- return(result);
-}
-
-
-/**
- \brief Store-Release Exclusive (16 bit)
- \details Executes a STLH exclusive instruction for 16 bit values.
- \param [in] value Value to store
- \param [in] ptr Pointer to location
- \return 0 Function succeeded
- \return 1 Function failed
- */
-__STATIC_FORCEINLINE uint32_t __STLEXH(uint16_t value, volatile uint16_t *ptr)
-{
- uint32_t result;
-
- __ASM volatile ("stlexh %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) );
- return(result);
-}
-
-
-/**
- \brief Store-Release Exclusive (32 bit)
- \details Executes a STL exclusive instruction for 32 bit values.
- \param [in] value Value to store
- \param [in] ptr Pointer to location
- \return 0 Function succeeded
- \return 1 Function failed
- */
-__STATIC_FORCEINLINE uint32_t __STLEX(uint32_t value, volatile uint32_t *ptr)
-{
- uint32_t result;
-
- __ASM volatile ("stlex %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) );
- return(result);
-}
-
-#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
- (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */
-
-/*@}*/ /* end of group CMSIS_Core_InstructionInterface */
-
-
-/* ################### Compiler specific Intrinsics ########################### */
-/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics
- Access to dedicated SIMD instructions
- @{
-*/
-
-#if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1))
-
-__STATIC_FORCEINLINE uint32_t __SADD8(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("sadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __QADD8(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("qadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __SHADD8(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("shadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __UADD8(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("uadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __UQADD8(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("uqadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __UHADD8(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("uhadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-
-__STATIC_FORCEINLINE uint32_t __SSUB8(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("ssub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __QSUB8(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("qsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __SHSUB8(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("shsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __USUB8(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("usub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __UQSUB8(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("uqsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __UHSUB8(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("uhsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-
-__STATIC_FORCEINLINE uint32_t __SADD16(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("sadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __QADD16(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("qadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __SHADD16(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("shadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __UADD16(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("uadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __UQADD16(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("uqadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __UHADD16(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("uhadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __SSUB16(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("ssub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __QSUB16(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("qsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __SHSUB16(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("shsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __USUB16(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("usub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __UQSUB16(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("uqsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __UHSUB16(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("uhsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __SASX(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("sasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __QASX(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("qasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __SHASX(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("shasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __UASX(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("uasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __UQASX(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("uqasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __UHASX(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("uhasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __SSAX(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("ssax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __QSAX(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("qsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __SHSAX(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("shsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __USAX(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("usax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __UQSAX(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("uqsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __UHSAX(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("uhsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __USAD8(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("usad8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __USADA8(uint32_t op1, uint32_t op2, uint32_t op3)
-{
- uint32_t result;
-
- __ASM volatile ("usada8 %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) );
- return(result);
-}
-
-#define __SSAT16(ARG1,ARG2) \
-({ \
- int32_t __RES, __ARG1 = (ARG1); \
- __ASM ("ssat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \
- __RES; \
- })
-
-#define __USAT16(ARG1,ARG2) \
-({ \
- uint32_t __RES, __ARG1 = (ARG1); \
- __ASM ("usat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \
- __RES; \
- })
-
-__STATIC_FORCEINLINE uint32_t __UXTB16(uint32_t op1)
-{
- uint32_t result;
-
- __ASM volatile ("uxtb16 %0, %1" : "=r" (result) : "r" (op1));
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __UXTAB16(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("uxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __SXTB16(uint32_t op1)
-{
- uint32_t result;
-
- __ASM volatile ("sxtb16 %0, %1" : "=r" (result) : "r" (op1));
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __SXTAB16(uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("sxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __SMUAD (uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("smuad %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __SMUADX (uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("smuadx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __SMLAD (uint32_t op1, uint32_t op2, uint32_t op3)
-{
- uint32_t result;
-
- __ASM volatile ("smlad %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __SMLADX (uint32_t op1, uint32_t op2, uint32_t op3)
-{
- uint32_t result;
-
- __ASM volatile ("smladx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint64_t __SMLALD (uint32_t op1, uint32_t op2, uint64_t acc)
-{
- union llreg_u{
- uint32_t w32[2];
- uint64_t w64;
- } llr;
- llr.w64 = acc;
-
-#ifndef __ARMEB__ /* Little endian */
- __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) );
-#else /* Big endian */
- __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) );
-#endif
-
- return(llr.w64);
-}
-
-__STATIC_FORCEINLINE uint64_t __SMLALDX (uint32_t op1, uint32_t op2, uint64_t acc)
-{
- union llreg_u{
- uint32_t w32[2];
- uint64_t w64;
- } llr;
- llr.w64 = acc;
-
-#ifndef __ARMEB__ /* Little endian */
- __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) );
-#else /* Big endian */
- __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) );
-#endif
-
- return(llr.w64);
-}
-
-__STATIC_FORCEINLINE uint32_t __SMUSD (uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("smusd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __SMUSDX (uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("smusdx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __SMLSD (uint32_t op1, uint32_t op2, uint32_t op3)
-{
- uint32_t result;
-
- __ASM volatile ("smlsd %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint32_t __SMLSDX (uint32_t op1, uint32_t op2, uint32_t op3)
-{
- uint32_t result;
-
- __ASM volatile ("smlsdx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) );
- return(result);
-}
-
-__STATIC_FORCEINLINE uint64_t __SMLSLD (uint32_t op1, uint32_t op2, uint64_t acc)
-{
- union llreg_u{
- uint32_t w32[2];
- uint64_t w64;
- } llr;
- llr.w64 = acc;
-
-#ifndef __ARMEB__ /* Little endian */
- __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) );
-#else /* Big endian */
- __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) );
-#endif
-
- return(llr.w64);
-}
-
-__STATIC_FORCEINLINE uint64_t __SMLSLDX (uint32_t op1, uint32_t op2, uint64_t acc)
-{
- union llreg_u{
- uint32_t w32[2];
- uint64_t w64;
- } llr;
- llr.w64 = acc;
-
-#ifndef __ARMEB__ /* Little endian */
- __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) );
-#else /* Big endian */
- __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) );
-#endif
-
- return(llr.w64);
-}
-
-__STATIC_FORCEINLINE uint32_t __SEL (uint32_t op1, uint32_t op2)
-{
- uint32_t result;
-
- __ASM volatile ("sel %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE int32_t __QADD( int32_t op1, int32_t op2)
-{
- int32_t result;
-
- __ASM volatile ("qadd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-__STATIC_FORCEINLINE int32_t __QSUB( int32_t op1, int32_t op2)
-{
- int32_t result;
-
- __ASM volatile ("qsub %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
- return(result);
-}
-
-#if 0
-#define __PKHBT(ARG1,ARG2,ARG3) \
-({ \
- uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \
- __ASM ("pkhbt %0, %1, %2, lsl %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \
- __RES; \
- })
-
-#define __PKHTB(ARG1,ARG2,ARG3) \
-({ \
- uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \
- if (ARG3 == 0) \
- __ASM ("pkhtb %0, %1, %2" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2) ); \
- else \
- __ASM ("pkhtb %0, %1, %2, asr %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \
- __RES; \
- })
-#endif
-
-#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \
- ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) )
-
-#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \
- ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) )
-
-__STATIC_FORCEINLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3)
-{
- int32_t result;
-
- __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) );
- return(result);
-}
-
-#endif /* (__ARM_FEATURE_DSP == 1) */
-/*@} end of group CMSIS_SIMD_intrinsics */
-
-
-#pragma GCC diagnostic pop
-
-#endif /* __CMSIS_GCC_H */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Include/cmsis_version.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Include/cmsis_version.h
deleted file mode 100644
index 3b6bae4..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Include/cmsis_version.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/**************************************************************************//**
- * @file cmsis_version.h
- * @brief CMSIS Core(M) Version definitions
- * @version V5.4.0
- * @date 19. April 2017
- ******************************************************************************/
-/*
- * Copyright (c) 2009-2017 ARM Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#if defined ( __ICCARM__ )
- #pragma system_include /* treat file as system include file for MISRA check */
-#elif defined (__clang__)
- #pragma clang system_header /* treat file as system include file */
-#endif
-
-#ifndef __CMSIS_VERSION_H
-#define __CMSIS_VERSION_H
-
-/* CMSIS Version definitions */
-#define __CM_CMSIS_VERSION_MAIN ( 5U) /*!< [31:16] CMSIS Core(M) main version */
-#define __CM_CMSIS_VERSION_SUB ( 1U) /*!< [15:0] CMSIS Core(M) sub version */
-#define __CM_CMSIS_VERSION ((__CM_CMSIS_VERSION_MAIN << 16U) | \
- __CM_CMSIS_VERSION_SUB ) /*!< CMSIS Core(M) version number */
-#endif
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Include/core_cm0plus.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Include/core_cm0plus.h
deleted file mode 100644
index 424011a..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Include/core_cm0plus.h
+++ /dev/null
@@ -1,1083 +0,0 @@
-/**************************************************************************//**
- * @file core_cm0plus.h
- * @brief CMSIS Cortex-M0+ Core Peripheral Access Layer Header File
- * @version V5.0.6
- * @date 28. May 2018
- ******************************************************************************/
-/*
- * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#if defined ( __ICCARM__ )
- #pragma system_include /* treat file as system include file for MISRA check */
-#elif defined (__clang__)
- #pragma clang system_header /* treat file as system include file */
-#endif
-
-#ifndef __CORE_CM0PLUS_H_GENERIC
-#define __CORE_CM0PLUS_H_GENERIC
-
-#include
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/**
- \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions
- CMSIS violates the following MISRA-C:2004 rules:
-
- \li Required Rule 8.5, object/function definition in header file.
- Function definitions in header files are used to allow 'inlining'.
-
- \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
- Unions are used for effective representation of core registers.
-
- \li Advisory Rule 19.7, Function-like macro defined.
- Function-like macros are used to allow more efficient code.
- */
-
-
-/*******************************************************************************
- * CMSIS definitions
- ******************************************************************************/
-/**
- \ingroup Cortex-M0+
- @{
- */
-
-#include "cmsis_version.h"
-
-/* CMSIS CM0+ definitions */
-#define __CM0PLUS_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */
-#define __CM0PLUS_CMSIS_VERSION_SUB (__CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */
-#define __CM0PLUS_CMSIS_VERSION ((__CM0PLUS_CMSIS_VERSION_MAIN << 16U) | \
- __CM0PLUS_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */
-
-#define __CORTEX_M (0U) /*!< Cortex-M Core */
-
-/** __FPU_USED indicates whether an FPU is used or not.
- This core does not support an FPU at all
-*/
-#define __FPU_USED 0U
-
-#if defined ( __CC_ARM )
- #if defined __TARGET_FPU_VFP
- #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
- #endif
-
-#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
- #if defined __ARM_PCS_VFP
- #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
- #endif
-
-#elif defined ( __GNUC__ )
- #if defined (__VFP_FP__) && !defined(__SOFTFP__)
- #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
- #endif
-
-#elif defined ( __ICCARM__ )
- #if defined __ARMVFP__
- #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
- #endif
-
-#elif defined ( __TI_ARM__ )
- #if defined __TI_VFP_SUPPORT__
- #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
- #endif
-
-#elif defined ( __TASKING__ )
- #if defined __FPU_VFP__
- #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
- #endif
-
-#elif defined ( __CSMC__ )
- #if ( __CSMC__ & 0x400U)
- #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
- #endif
-
-#endif
-
-#include "cmsis_compiler.h" /* CMSIS compiler specific defines */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __CORE_CM0PLUS_H_GENERIC */
-
-#ifndef __CMSIS_GENERIC
-
-#ifndef __CORE_CM0PLUS_H_DEPENDANT
-#define __CORE_CM0PLUS_H_DEPENDANT
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* check device defines and use defaults */
-#if defined __CHECK_DEVICE_DEFINES
- #ifndef __CM0PLUS_REV
- #define __CM0PLUS_REV 0x0000U
- #warning "__CM0PLUS_REV not defined in device header file; using default!"
- #endif
-
- #ifndef __MPU_PRESENT
- #define __MPU_PRESENT 0U
- #warning "__MPU_PRESENT not defined in device header file; using default!"
- #endif
-
- #ifndef __VTOR_PRESENT
- #define __VTOR_PRESENT 0U
- #warning "__VTOR_PRESENT not defined in device header file; using default!"
- #endif
-
- #ifndef __NVIC_PRIO_BITS
- #define __NVIC_PRIO_BITS 2U
- #warning "__NVIC_PRIO_BITS not defined in device header file; using default!"
- #endif
-
- #ifndef __Vendor_SysTickConfig
- #define __Vendor_SysTickConfig 0U
- #warning "__Vendor_SysTickConfig not defined in device header file; using default!"
- #endif
-#endif
-
-/* IO definitions (access restrictions to peripheral registers) */
-/**
- \defgroup CMSIS_glob_defs CMSIS Global Defines
-
- IO Type Qualifiers are used
- \li to specify the access to peripheral variables.
- \li for automatic generation of peripheral register debug information.
-*/
-#ifdef __cplusplus
- #define __I volatile /*!< Defines 'read only' permissions */
-#else
- #define __I volatile const /*!< Defines 'read only' permissions */
-#endif
-#define __O volatile /*!< Defines 'write only' permissions */
-#define __IO volatile /*!< Defines 'read / write' permissions */
-
-/* following defines should be used for structure members */
-#define __IM volatile const /*! Defines 'read only' structure member permissions */
-#define __OM volatile /*! Defines 'write only' structure member permissions */
-#define __IOM volatile /*! Defines 'read / write' structure member permissions */
-
-/*@} end of group Cortex-M0+ */
-
-
-
-/*******************************************************************************
- * Register Abstraction
- Core Register contain:
- - Core Register
- - Core NVIC Register
- - Core SCB Register
- - Core SysTick Register
- - Core MPU Register
- ******************************************************************************/
-/**
- \defgroup CMSIS_core_register Defines and Type Definitions
- \brief Type definitions and defines for Cortex-M processor based devices.
-*/
-
-/**
- \ingroup CMSIS_core_register
- \defgroup CMSIS_CORE Status and Control Registers
- \brief Core Register type definitions.
- @{
- */
-
-/**
- \brief Union type to access the Application Program Status Register (APSR).
- */
-typedef union
-{
- struct
- {
- uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */
- uint32_t V:1; /*!< bit: 28 Overflow condition code flag */
- uint32_t C:1; /*!< bit: 29 Carry condition code flag */
- uint32_t Z:1; /*!< bit: 30 Zero condition code flag */
- uint32_t N:1; /*!< bit: 31 Negative condition code flag */
- } b; /*!< Structure used for bit access */
- uint32_t w; /*!< Type used for word access */
-} APSR_Type;
-
-/* APSR Register Definitions */
-#define APSR_N_Pos 31U /*!< APSR: N Position */
-#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */
-
-#define APSR_Z_Pos 30U /*!< APSR: Z Position */
-#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */
-
-#define APSR_C_Pos 29U /*!< APSR: C Position */
-#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */
-
-#define APSR_V_Pos 28U /*!< APSR: V Position */
-#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */
-
-
-/**
- \brief Union type to access the Interrupt Program Status Register (IPSR).
- */
-typedef union
-{
- struct
- {
- uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */
- uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */
- } b; /*!< Structure used for bit access */
- uint32_t w; /*!< Type used for word access */
-} IPSR_Type;
-
-/* IPSR Register Definitions */
-#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */
-#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */
-
-
-/**
- \brief Union type to access the Special-Purpose Program Status Registers (xPSR).
- */
-typedef union
-{
- struct
- {
- uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */
- uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */
- uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */
- uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */
- uint32_t V:1; /*!< bit: 28 Overflow condition code flag */
- uint32_t C:1; /*!< bit: 29 Carry condition code flag */
- uint32_t Z:1; /*!< bit: 30 Zero condition code flag */
- uint32_t N:1; /*!< bit: 31 Negative condition code flag */
- } b; /*!< Structure used for bit access */
- uint32_t w; /*!< Type used for word access */
-} xPSR_Type;
-
-/* xPSR Register Definitions */
-#define xPSR_N_Pos 31U /*!< xPSR: N Position */
-#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */
-
-#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */
-#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */
-
-#define xPSR_C_Pos 29U /*!< xPSR: C Position */
-#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */
-
-#define xPSR_V_Pos 28U /*!< xPSR: V Position */
-#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */
-
-#define xPSR_T_Pos 24U /*!< xPSR: T Position */
-#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */
-
-#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */
-#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */
-
-
-/**
- \brief Union type to access the Control Registers (CONTROL).
- */
-typedef union
-{
- struct
- {
- uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */
- uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */
- uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */
- } b; /*!< Structure used for bit access */
- uint32_t w; /*!< Type used for word access */
-} CONTROL_Type;
-
-/* CONTROL Register Definitions */
-#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */
-#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */
-
-#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */
-#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */
-
-/*@} end of group CMSIS_CORE */
-
-
-/**
- \ingroup CMSIS_core_register
- \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC)
- \brief Type definitions for the NVIC Registers
- @{
- */
-
-/**
- \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC).
- */
-typedef struct
-{
- __IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */
- uint32_t RESERVED0[31U];
- __IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */
- uint32_t RSERVED1[31U];
- __IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */
- uint32_t RESERVED2[31U];
- __IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */
- uint32_t RESERVED3[31U];
- uint32_t RESERVED4[64U];
- __IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */
-} NVIC_Type;
-
-/*@} end of group CMSIS_NVIC */
-
-
-/**
- \ingroup CMSIS_core_register
- \defgroup CMSIS_SCB System Control Block (SCB)
- \brief Type definitions for the System Control Block Registers
- @{
- */
-
-/**
- \brief Structure type to access the System Control Block (SCB).
- */
-typedef struct
-{
- __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */
- __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */
-#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U)
- __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */
-#else
- uint32_t RESERVED0;
-#endif
- __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */
- __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */
- __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */
- uint32_t RESERVED1;
- __IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */
- __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */
-} SCB_Type;
-
-/* SCB CPUID Register Definitions */
-#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */
-#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */
-
-#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */
-#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */
-
-#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */
-#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */
-
-#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */
-#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */
-
-#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */
-#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */
-
-/* SCB Interrupt Control State Register Definitions */
-#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */
-#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */
-
-#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */
-#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */
-
-#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */
-#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */
-
-#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */
-#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */
-
-#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */
-#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */
-
-#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */
-#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */
-
-#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */
-#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */
-
-#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */
-#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */
-
-#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */
-#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */
-
-#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U)
-/* SCB Interrupt Control State Register Definitions */
-#define SCB_VTOR_TBLOFF_Pos 8U /*!< SCB VTOR: TBLOFF Position */
-#define SCB_VTOR_TBLOFF_Msk (0xFFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */
-#endif
-
-/* SCB Application Interrupt and Reset Control Register Definitions */
-#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */
-#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */
-
-#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */
-#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */
-
-#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */
-#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */
-
-#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */
-#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */
-
-#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */
-#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */
-
-/* SCB System Control Register Definitions */
-#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */
-#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */
-
-#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */
-#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */
-
-#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */
-#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */
-
-/* SCB Configuration Control Register Definitions */
-#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */
-#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */
-
-#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */
-#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */
-
-/* SCB System Handler Control and State Register Definitions */
-#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */
-#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */
-
-/*@} end of group CMSIS_SCB */
-
-
-/**
- \ingroup CMSIS_core_register
- \defgroup CMSIS_SysTick System Tick Timer (SysTick)
- \brief Type definitions for the System Timer Registers.
- @{
- */
-
-/**
- \brief Structure type to access the System Timer (SysTick).
- */
-typedef struct
-{
- __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */
- __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */
- __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */
- __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */
-} SysTick_Type;
-
-/* SysTick Control / Status Register Definitions */
-#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */
-#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */
-
-#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */
-#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */
-
-#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */
-#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */
-
-#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */
-#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */
-
-/* SysTick Reload Register Definitions */
-#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */
-#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */
-
-/* SysTick Current Register Definitions */
-#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */
-#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */
-
-/* SysTick Calibration Register Definitions */
-#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */
-#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */
-
-#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */
-#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */
-
-#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */
-#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */
-
-/*@} end of group CMSIS_SysTick */
-
-#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U)
-/**
- \ingroup CMSIS_core_register
- \defgroup CMSIS_MPU Memory Protection Unit (MPU)
- \brief Type definitions for the Memory Protection Unit (MPU)
- @{
- */
-
-/**
- \brief Structure type to access the Memory Protection Unit (MPU).
- */
-typedef struct
-{
- __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */
- __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */
- __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */
- __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */
- __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */
-} MPU_Type;
-
-#define MPU_TYPE_RALIASES 1U
-
-/* MPU Type Register Definitions */
-#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */
-#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */
-
-#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */
-#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */
-
-#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */
-#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */
-
-/* MPU Control Register Definitions */
-#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */
-#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */
-
-#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */
-#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */
-
-#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */
-#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */
-
-/* MPU Region Number Register Definitions */
-#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */
-#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */
-
-/* MPU Region Base Address Register Definitions */
-#define MPU_RBAR_ADDR_Pos 8U /*!< MPU RBAR: ADDR Position */
-#define MPU_RBAR_ADDR_Msk (0xFFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */
-
-#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */
-#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */
-
-#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */
-#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */
-
-/* MPU Region Attribute and Size Register Definitions */
-#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */
-#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */
-
-#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */
-#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */
-
-#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */
-#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */
-
-#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */
-#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */
-
-#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */
-#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */
-
-#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */
-#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */
-
-#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */
-#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */
-
-#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */
-#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */
-
-#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */
-#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */
-
-#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */
-#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */
-
-/*@} end of group CMSIS_MPU */
-#endif
-
-
-/**
- \ingroup CMSIS_core_register
- \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug)
- \brief Cortex-M0+ Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor.
- Therefore they are not covered by the Cortex-M0+ header file.
- @{
- */
-/*@} end of group CMSIS_CoreDebug */
-
-
-/**
- \ingroup CMSIS_core_register
- \defgroup CMSIS_core_bitfield Core register bit field macros
- \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk).
- @{
- */
-
-/**
- \brief Mask and shift a bit field value for use in a register bit range.
- \param[in] field Name of the register bit field.
- \param[in] value Value of the bit field. This parameter is interpreted as an uint32_t type.
- \return Masked and shifted value.
-*/
-#define _VAL2FLD(field, value) (((uint32_t)(value) << field ## _Pos) & field ## _Msk)
-
-/**
- \brief Mask and shift a register value to extract a bit filed value.
- \param[in] field Name of the register bit field.
- \param[in] value Value of register. This parameter is interpreted as an uint32_t type.
- \return Masked and shifted bit field value.
-*/
-#define _FLD2VAL(field, value) (((uint32_t)(value) & field ## _Msk) >> field ## _Pos)
-
-/*@} end of group CMSIS_core_bitfield */
-
-
-/**
- \ingroup CMSIS_core_register
- \defgroup CMSIS_core_base Core Definitions
- \brief Definitions for base addresses, unions, and structures.
- @{
- */
-
-/* Memory mapping of Core Hardware */
-#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */
-#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */
-#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */
-#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */
-
-#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */
-#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */
-#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */
-
-#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U)
- #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */
- #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */
-#endif
-
-/*@} */
-
-
-
-/*******************************************************************************
- * Hardware Abstraction Layer
- Core Function Interface contains:
- - Core NVIC Functions
- - Core SysTick Functions
- - Core Register Access Functions
- ******************************************************************************/
-/**
- \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference
-*/
-
-
-
-/* ########################## NVIC functions #################################### */
-/**
- \ingroup CMSIS_Core_FunctionInterface
- \defgroup CMSIS_Core_NVICFunctions NVIC Functions
- \brief Functions that manage interrupts and exceptions via the NVIC.
- @{
- */
-
-#ifdef CMSIS_NVIC_VIRTUAL
- #ifndef CMSIS_NVIC_VIRTUAL_HEADER_FILE
- #define CMSIS_NVIC_VIRTUAL_HEADER_FILE "cmsis_nvic_virtual.h"
- #endif
- #include CMSIS_NVIC_VIRTUAL_HEADER_FILE
-#else
- #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping
- #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping
- #define NVIC_EnableIRQ __NVIC_EnableIRQ
- #define NVIC_GetEnableIRQ __NVIC_GetEnableIRQ
- #define NVIC_DisableIRQ __NVIC_DisableIRQ
- #define NVIC_GetPendingIRQ __NVIC_GetPendingIRQ
- #define NVIC_SetPendingIRQ __NVIC_SetPendingIRQ
- #define NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ
-/*#define NVIC_GetActive __NVIC_GetActive not available for Cortex-M0+ */
- #define NVIC_SetPriority __NVIC_SetPriority
- #define NVIC_GetPriority __NVIC_GetPriority
- #define NVIC_SystemReset __NVIC_SystemReset
-#endif /* CMSIS_NVIC_VIRTUAL */
-
-#ifdef CMSIS_VECTAB_VIRTUAL
- #ifndef CMSIS_VECTAB_VIRTUAL_HEADER_FILE
- #define CMSIS_VECTAB_VIRTUAL_HEADER_FILE "cmsis_vectab_virtual.h"
- #endif
- #include CMSIS_VECTAB_VIRTUAL_HEADER_FILE
-#else
- #define NVIC_SetVector __NVIC_SetVector
- #define NVIC_GetVector __NVIC_GetVector
-#endif /* (CMSIS_VECTAB_VIRTUAL) */
-
-#define NVIC_USER_IRQ_OFFSET 16
-
-
-/* The following EXC_RETURN values are saved the LR on exception entry */
-#define EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */
-#define EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */
-#define EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */
-
-
-/* Interrupt Priorities are WORD accessible only under Armv6-M */
-/* The following MACROS handle generation of the register offset and byte masks */
-#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL)
-#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) )
-#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) )
-
-#define __NVIC_SetPriorityGrouping(X) (void)(X)
-#define __NVIC_GetPriorityGrouping() (0U)
-
-/**
- \brief Enable Interrupt
- \details Enables a device specific interrupt in the NVIC interrupt controller.
- \param [in] IRQn Device specific interrupt number.
- \note IRQn must not be negative.
- */
-__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn)
-{
- if ((int32_t)(IRQn) >= 0)
- {
- NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
- }
-}
-
-
-/**
- \brief Get Interrupt Enable status
- \details Returns a device specific interrupt enable status from the NVIC interrupt controller.
- \param [in] IRQn Device specific interrupt number.
- \return 0 Interrupt is not enabled.
- \return 1 Interrupt is enabled.
- \note IRQn must not be negative.
- */
-__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn)
-{
- if ((int32_t)(IRQn) >= 0)
- {
- return((uint32_t)(((NVIC->ISER[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL));
- }
- else
- {
- return(0U);
- }
-}
-
-
-/**
- \brief Disable Interrupt
- \details Disables a device specific interrupt in the NVIC interrupt controller.
- \param [in] IRQn Device specific interrupt number.
- \note IRQn must not be negative.
- */
-__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn)
-{
- if ((int32_t)(IRQn) >= 0)
- {
- NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
- __DSB();
- __ISB();
- }
-}
-
-
-/**
- \brief Get Pending Interrupt
- \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt.
- \param [in] IRQn Device specific interrupt number.
- \return 0 Interrupt status is not pending.
- \return 1 Interrupt status is pending.
- \note IRQn must not be negative.
- */
-__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn)
-{
- if ((int32_t)(IRQn) >= 0)
- {
- return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL));
- }
- else
- {
- return(0U);
- }
-}
-
-
-/**
- \brief Set Pending Interrupt
- \details Sets the pending bit of a device specific interrupt in the NVIC pending register.
- \param [in] IRQn Device specific interrupt number.
- \note IRQn must not be negative.
- */
-__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn)
-{
- if ((int32_t)(IRQn) >= 0)
- {
- NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
- }
-}
-
-
-/**
- \brief Clear Pending Interrupt
- \details Clears the pending bit of a device specific interrupt in the NVIC pending register.
- \param [in] IRQn Device specific interrupt number.
- \note IRQn must not be negative.
- */
-__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn)
-{
- if ((int32_t)(IRQn) >= 0)
- {
- NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
- }
-}
-
-
-/**
- \brief Set Interrupt Priority
- \details Sets the priority of a device specific interrupt or a processor exception.
- The interrupt number can be positive to specify a device specific interrupt,
- or negative to specify a processor exception.
- \param [in] IRQn Interrupt number.
- \param [in] priority Priority to set.
- \note The priority cannot be set for every processor exception.
- */
-__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
-{
- if ((int32_t)(IRQn) >= 0)
- {
- NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
- (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn)));
- }
- else
- {
- SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
- (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn)));
- }
-}
-
-
-/**
- \brief Get Interrupt Priority
- \details Reads the priority of a device specific interrupt or a processor exception.
- The interrupt number can be positive to specify a device specific interrupt,
- or negative to specify a processor exception.
- \param [in] IRQn Interrupt number.
- \return Interrupt Priority.
- Value is aligned automatically to the implemented priority bits of the microcontroller.
- */
-__STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn)
-{
-
- if ((int32_t)(IRQn) >= 0)
- {
- return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS)));
- }
- else
- {
- return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS)));
- }
-}
-
-
-/**
- \brief Encode Priority
- \details Encodes the priority for an interrupt with the given priority group,
- preemptive priority value, and subpriority value.
- In case of a conflict between priority grouping and available
- priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set.
- \param [in] PriorityGroup Used priority group.
- \param [in] PreemptPriority Preemptive priority value (starting from 0).
- \param [in] SubPriority Subpriority value (starting from 0).
- \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority().
- */
-__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)
-{
- uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
- uint32_t PreemptPriorityBits;
- uint32_t SubPriorityBits;
-
- PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp);
- SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS));
-
- return (
- ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
- ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL)))
- );
-}
-
-
-/**
- \brief Decode Priority
- \details Decodes an interrupt priority value with a given priority group to
- preemptive priority value and subpriority value.
- In case of a conflict between priority grouping and available
- priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set.
- \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority().
- \param [in] PriorityGroup Used priority group.
- \param [out] pPreemptPriority Preemptive priority value (starting from 0).
- \param [out] pSubPriority Subpriority value (starting from 0).
- */
-__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority)
-{
- uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
- uint32_t PreemptPriorityBits;
- uint32_t SubPriorityBits;
-
- PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp);
- SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS));
-
- *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL);
- *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL);
-}
-
-
-/**
- \brief Set Interrupt Vector
- \details Sets an interrupt vector in SRAM based interrupt vector table.
- The interrupt number can be positive to specify a device specific interrupt,
- or negative to specify a processor exception.
- VTOR must been relocated to SRAM before.
- If VTOR is not present address 0 must be mapped to SRAM.
- \param [in] IRQn Interrupt number
- \param [in] vector Address of interrupt handler function
- */
-__STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector)
-{
-#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U)
- uint32_t *vectors = (uint32_t *)SCB->VTOR;
-#else
- uint32_t *vectors = (uint32_t *)0x0U;
-#endif
- vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET] = vector;
-}
-
-
-/**
- \brief Get Interrupt Vector
- \details Reads an interrupt vector from interrupt vector table.
- The interrupt number can be positive to specify a device specific interrupt,
- or negative to specify a processor exception.
- \param [in] IRQn Interrupt number.
- \return Address of interrupt handler function
- */
-__STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn)
-{
-#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U)
- uint32_t *vectors = (uint32_t *)SCB->VTOR;
-#else
- uint32_t *vectors = (uint32_t *)0x0U;
-#endif
- return vectors[(int32_t)IRQn + NVIC_USER_IRQ_OFFSET];
-
-}
-
-
-/**
- \brief System Reset
- \details Initiates a system reset request to reset the MCU.
- */
-__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void)
-{
- __DSB(); /* Ensure all outstanding memory accesses included
- buffered write are completed before reset */
- SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
- SCB_AIRCR_SYSRESETREQ_Msk);
- __DSB(); /* Ensure completion of memory access */
-
- for(;;) /* wait until reset */
- {
- __NOP();
- }
-}
-
-/*@} end of CMSIS_Core_NVICFunctions */
-
-/* ########################## MPU functions #################################### */
-
-#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1U)
-
-#include "mpu_armv7.h"
-
-#endif
-
-/* ########################## FPU functions #################################### */
-/**
- \ingroup CMSIS_Core_FunctionInterface
- \defgroup CMSIS_Core_FpuFunctions FPU Functions
- \brief Function that provides FPU type.
- @{
- */
-
-/**
- \brief get FPU type
- \details returns the FPU type
- \returns
- - \b 0: No FPU
- - \b 1: Single precision FPU
- - \b 2: Double + Single precision FPU
- */
-__STATIC_INLINE uint32_t SCB_GetFPUType(void)
-{
- return 0U; /* No FPU */
-}
-
-
-/*@} end of CMSIS_Core_FpuFunctions */
-
-
-
-/* ################################## SysTick function ############################################ */
-/**
- \ingroup CMSIS_Core_FunctionInterface
- \defgroup CMSIS_Core_SysTickFunctions SysTick Functions
- \brief Functions that configure the System.
- @{
- */
-
-#if defined (__Vendor_SysTickConfig) && (__Vendor_SysTickConfig == 0U)
-
-/**
- \brief System Tick Configuration
- \details Initializes the System Timer and its interrupt, and starts the System Tick Timer.
- Counter is in free running mode to generate periodic interrupts.
- \param [in] ticks Number of ticks between two interrupts.
- \return 0 Function succeeded.
- \return 1 Function failed.
- \note When the variable __Vendor_SysTickConfig is set to 1, then the
- function SysTick_Config is not included. In this case, the file device.h
- must contain a vendor-specific implementation of this function.
- */
-__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
-{
- if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk)
- {
- return (1UL); /* Reload value impossible */
- }
-
- SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */
- NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */
- SysTick->VAL = 0UL; /* Load the SysTick Counter Value */
- SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
- SysTick_CTRL_TICKINT_Msk |
- SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */
- return (0UL); /* Function successful */
-}
-
-#endif
-
-/*@} end of CMSIS_Core_SysTickFunctions */
-
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __CORE_CM0PLUS_H_DEPENDANT */
-
-#endif /* __CMSIS_GENERIC */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Include/mpu_armv7.h b/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Include/mpu_armv7.h
deleted file mode 100644
index 0142203..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Include/mpu_armv7.h
+++ /dev/null
@@ -1,270 +0,0 @@
-/******************************************************************************
- * @file mpu_armv7.h
- * @brief CMSIS MPU API for Armv7-M MPU
- * @version V5.0.4
- * @date 10. January 2018
- ******************************************************************************/
-/*
- * Copyright (c) 2017-2018 Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#if defined ( __ICCARM__ )
- #pragma system_include /* treat file as system include file for MISRA check */
-#elif defined (__clang__)
- #pragma clang system_header /* treat file as system include file */
-#endif
-
-#ifndef ARM_MPU_ARMV7_H
-#define ARM_MPU_ARMV7_H
-
-#define ARM_MPU_REGION_SIZE_32B ((uint8_t)0x04U) ///!< MPU Region Size 32 Bytes
-#define ARM_MPU_REGION_SIZE_64B ((uint8_t)0x05U) ///!< MPU Region Size 64 Bytes
-#define ARM_MPU_REGION_SIZE_128B ((uint8_t)0x06U) ///!< MPU Region Size 128 Bytes
-#define ARM_MPU_REGION_SIZE_256B ((uint8_t)0x07U) ///!< MPU Region Size 256 Bytes
-#define ARM_MPU_REGION_SIZE_512B ((uint8_t)0x08U) ///!< MPU Region Size 512 Bytes
-#define ARM_MPU_REGION_SIZE_1KB ((uint8_t)0x09U) ///!< MPU Region Size 1 KByte
-#define ARM_MPU_REGION_SIZE_2KB ((uint8_t)0x0AU) ///!< MPU Region Size 2 KBytes
-#define ARM_MPU_REGION_SIZE_4KB ((uint8_t)0x0BU) ///!< MPU Region Size 4 KBytes
-#define ARM_MPU_REGION_SIZE_8KB ((uint8_t)0x0CU) ///!< MPU Region Size 8 KBytes
-#define ARM_MPU_REGION_SIZE_16KB ((uint8_t)0x0DU) ///!< MPU Region Size 16 KBytes
-#define ARM_MPU_REGION_SIZE_32KB ((uint8_t)0x0EU) ///!< MPU Region Size 32 KBytes
-#define ARM_MPU_REGION_SIZE_64KB ((uint8_t)0x0FU) ///!< MPU Region Size 64 KBytes
-#define ARM_MPU_REGION_SIZE_128KB ((uint8_t)0x10U) ///!< MPU Region Size 128 KBytes
-#define ARM_MPU_REGION_SIZE_256KB ((uint8_t)0x11U) ///!< MPU Region Size 256 KBytes
-#define ARM_MPU_REGION_SIZE_512KB ((uint8_t)0x12U) ///!< MPU Region Size 512 KBytes
-#define ARM_MPU_REGION_SIZE_1MB ((uint8_t)0x13U) ///!< MPU Region Size 1 MByte
-#define ARM_MPU_REGION_SIZE_2MB ((uint8_t)0x14U) ///!< MPU Region Size 2 MBytes
-#define ARM_MPU_REGION_SIZE_4MB ((uint8_t)0x15U) ///!< MPU Region Size 4 MBytes
-#define ARM_MPU_REGION_SIZE_8MB ((uint8_t)0x16U) ///!< MPU Region Size 8 MBytes
-#define ARM_MPU_REGION_SIZE_16MB ((uint8_t)0x17U) ///!< MPU Region Size 16 MBytes
-#define ARM_MPU_REGION_SIZE_32MB ((uint8_t)0x18U) ///!< MPU Region Size 32 MBytes
-#define ARM_MPU_REGION_SIZE_64MB ((uint8_t)0x19U) ///!< MPU Region Size 64 MBytes
-#define ARM_MPU_REGION_SIZE_128MB ((uint8_t)0x1AU) ///!< MPU Region Size 128 MBytes
-#define ARM_MPU_REGION_SIZE_256MB ((uint8_t)0x1BU) ///!< MPU Region Size 256 MBytes
-#define ARM_MPU_REGION_SIZE_512MB ((uint8_t)0x1CU) ///!< MPU Region Size 512 MBytes
-#define ARM_MPU_REGION_SIZE_1GB ((uint8_t)0x1DU) ///!< MPU Region Size 1 GByte
-#define ARM_MPU_REGION_SIZE_2GB ((uint8_t)0x1EU) ///!< MPU Region Size 2 GBytes
-#define ARM_MPU_REGION_SIZE_4GB ((uint8_t)0x1FU) ///!< MPU Region Size 4 GBytes
-
-#define ARM_MPU_AP_NONE 0U ///!< MPU Access Permission no access
-#define ARM_MPU_AP_PRIV 1U ///!< MPU Access Permission privileged access only
-#define ARM_MPU_AP_URO 2U ///!< MPU Access Permission unprivileged access read-only
-#define ARM_MPU_AP_FULL 3U ///!< MPU Access Permission full access
-#define ARM_MPU_AP_PRO 5U ///!< MPU Access Permission privileged access read-only
-#define ARM_MPU_AP_RO 6U ///!< MPU Access Permission read-only access
-
-/** MPU Region Base Address Register Value
-*
-* \param Region The region to be configured, number 0 to 15.
-* \param BaseAddress The base address for the region.
-*/
-#define ARM_MPU_RBAR(Region, BaseAddress) \
- (((BaseAddress) & MPU_RBAR_ADDR_Msk) | \
- ((Region) & MPU_RBAR_REGION_Msk) | \
- (MPU_RBAR_VALID_Msk))
-
-/**
-* MPU Memory Access Attributes
-*
-* \param TypeExtField Type extension field, allows you to configure memory access type, for example strongly ordered, peripheral.
-* \param IsShareable Region is shareable between multiple bus masters.
-* \param IsCacheable Region is cacheable, i.e. its value may be kept in cache.
-* \param IsBufferable Region is bufferable, i.e. using write-back caching. Cacheable but non-bufferable regions use write-through policy.
-*/
-#define ARM_MPU_ACCESS_(TypeExtField, IsShareable, IsCacheable, IsBufferable) \
- ((((TypeExtField ) << MPU_RASR_TEX_Pos) & MPU_RASR_TEX_Msk) | \
- (((IsShareable ) << MPU_RASR_S_Pos) & MPU_RASR_S_Msk) | \
- (((IsCacheable ) << MPU_RASR_C_Pos) & MPU_RASR_C_Msk) | \
- (((IsBufferable ) << MPU_RASR_B_Pos) & MPU_RASR_B_Msk))
-
-/**
-* MPU Region Attribute and Size Register Value
-*
-* \param DisableExec Instruction access disable bit, 1= disable instruction fetches.
-* \param AccessPermission Data access permissions, allows you to configure read/write access for User and Privileged mode.
-* \param AccessAttributes Memory access attribution, see \ref ARM_MPU_ACCESS_.
-* \param SubRegionDisable Sub-region disable field.
-* \param Size Region size of the region to be configured, for example 4K, 8K.
-*/
-#define ARM_MPU_RASR_EX(DisableExec, AccessPermission, AccessAttributes, SubRegionDisable, Size) \
- ((((DisableExec ) << MPU_RASR_XN_Pos) & MPU_RASR_XN_Msk) | \
- (((AccessPermission) << MPU_RASR_AP_Pos) & MPU_RASR_AP_Msk) | \
- (((AccessAttributes) ) & (MPU_RASR_TEX_Msk | MPU_RASR_S_Msk | MPU_RASR_C_Msk | MPU_RASR_B_Msk)))
-
-/**
-* MPU Region Attribute and Size Register Value
-*
-* \param DisableExec Instruction access disable bit, 1= disable instruction fetches.
-* \param AccessPermission Data access permissions, allows you to configure read/write access for User and Privileged mode.
-* \param TypeExtField Type extension field, allows you to configure memory access type, for example strongly ordered, peripheral.
-* \param IsShareable Region is shareable between multiple bus masters.
-* \param IsCacheable Region is cacheable, i.e. its value may be kept in cache.
-* \param IsBufferable Region is bufferable, i.e. using write-back caching. Cacheable but non-bufferable regions use write-through policy.
-* \param SubRegionDisable Sub-region disable field.
-* \param Size Region size of the region to be configured, for example 4K, 8K.
-*/
-#define ARM_MPU_RASR(DisableExec, AccessPermission, TypeExtField, IsShareable, IsCacheable, IsBufferable, SubRegionDisable, Size) \
- ARM_MPU_RASR_EX(DisableExec, AccessPermission, ARM_MPU_ACCESS_(TypeExtField, IsShareable, IsCacheable, IsBufferable), SubRegionDisable, Size)
-
-/**
-* MPU Memory Access Attribute for strongly ordered memory.
-* - TEX: 000b
-* - Shareable
-* - Non-cacheable
-* - Non-bufferable
-*/
-#define ARM_MPU_ACCESS_ORDERED ARM_MPU_ACCESS_(0U, 1U, 0U, 0U)
-
-/**
-* MPU Memory Access Attribute for device memory.
-* - TEX: 000b (if non-shareable) or 010b (if shareable)
-* - Shareable or non-shareable
-* - Non-cacheable
-* - Bufferable (if shareable) or non-bufferable (if non-shareable)
-*
-* \param IsShareable Configures the device memory as shareable or non-shareable.
-*/
-#define ARM_MPU_ACCESS_DEVICE(IsShareable) ((IsShareable) ? ARM_MPU_ACCESS_(0U, 1U, 0U, 1U) : ARM_MPU_ACCESS_(2U, 0U, 0U, 0U))
-
-/**
-* MPU Memory Access Attribute for normal memory.
-* - TEX: 1BBb (reflecting outer cacheability rules)
-* - Shareable or non-shareable
-* - Cacheable or non-cacheable (reflecting inner cacheability rules)
-* - Bufferable or non-bufferable (reflecting inner cacheability rules)
-*
-* \param OuterCp Configures the outer cache policy.
-* \param InnerCp Configures the inner cache policy.
-* \param IsShareable Configures the memory as shareable or non-shareable.
-*/
-#define ARM_MPU_ACCESS_NORMAL(OuterCp, InnerCp, IsShareable) ARM_MPU_ACCESS_((4U | (OuterCp)), IsShareable, ((InnerCp) & 2U), ((InnerCp) & 1U))
-
-/**
-* MPU Memory Access Attribute non-cacheable policy.
-*/
-#define ARM_MPU_CACHEP_NOCACHE 0U
-
-/**
-* MPU Memory Access Attribute write-back, write and read allocate policy.
-*/
-#define ARM_MPU_CACHEP_WB_WRA 1U
-
-/**
-* MPU Memory Access Attribute write-through, no write allocate policy.
-*/
-#define ARM_MPU_CACHEP_WT_NWA 2U
-
-/**
-* MPU Memory Access Attribute write-back, no write allocate policy.
-*/
-#define ARM_MPU_CACHEP_WB_NWA 3U
-
-
-/**
-* Struct for a single MPU Region
-*/
-typedef struct {
- uint32_t RBAR; //!< The region base address register value (RBAR)
- uint32_t RASR; //!< The region attribute and size register value (RASR) \ref MPU_RASR
-} ARM_MPU_Region_t;
-
-/** Enable the MPU.
-* \param MPU_Control Default access permissions for unconfigured regions.
-*/
-__STATIC_INLINE void ARM_MPU_Enable(uint32_t MPU_Control)
-{
- __DSB();
- __ISB();
- MPU->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk;
-#ifdef SCB_SHCSR_MEMFAULTENA_Msk
- SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk;
-#endif
-}
-
-/** Disable the MPU.
-*/
-__STATIC_INLINE void ARM_MPU_Disable(void)
-{
- __DSB();
- __ISB();
-#ifdef SCB_SHCSR_MEMFAULTENA_Msk
- SCB->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk;
-#endif
- MPU->CTRL &= ~MPU_CTRL_ENABLE_Msk;
-}
-
-/** Clear and disable the given MPU region.
-* \param rnr Region number to be cleared.
-*/
-__STATIC_INLINE void ARM_MPU_ClrRegion(uint32_t rnr)
-{
- MPU->RNR = rnr;
- MPU->RASR = 0U;
-}
-
-/** Configure an MPU region.
-* \param rbar Value for RBAR register.
-* \param rsar Value for RSAR register.
-*/
-__STATIC_INLINE void ARM_MPU_SetRegion(uint32_t rbar, uint32_t rasr)
-{
- MPU->RBAR = rbar;
- MPU->RASR = rasr;
-}
-
-/** Configure the given MPU region.
-* \param rnr Region number to be configured.
-* \param rbar Value for RBAR register.
-* \param rsar Value for RSAR register.
-*/
-__STATIC_INLINE void ARM_MPU_SetRegionEx(uint32_t rnr, uint32_t rbar, uint32_t rasr)
-{
- MPU->RNR = rnr;
- MPU->RBAR = rbar;
- MPU->RASR = rasr;
-}
-
-/** Memcopy with strictly ordered memory access, e.g. for register targets.
-* \param dst Destination data is copied to.
-* \param src Source data is copied from.
-* \param len Amount of data words to be copied.
-*/
-__STATIC_INLINE void orderedCpy(volatile uint32_t* dst, const uint32_t* __RESTRICT src, uint32_t len)
-{
- uint32_t i;
- for (i = 0U; i < len; ++i)
- {
- dst[i] = src[i];
- }
-}
-
-/** Load the given number of MPU regions from a table.
-* \param table Pointer to the MPU configuration table.
-* \param cnt Amount of regions to be configured.
-*/
-__STATIC_INLINE void ARM_MPU_Load(ARM_MPU_Region_t const* table, uint32_t cnt)
-{
- const uint32_t rowWordSize = sizeof(ARM_MPU_Region_t)/4U;
- while (cnt > MPU_TYPE_RALIASES) {
- orderedCpy(&(MPU->RBAR), &(table->RBAR), MPU_TYPE_RALIASES*rowWordSize);
- table += MPU_TYPE_RALIASES;
- cnt -= MPU_TYPE_RALIASES;
- }
- orderedCpy(&(MPU->RBAR), &(table->RBAR), cnt*rowWordSize);
-}
-
-#endif
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Lib/GCC/libarm_cortexM0l_math.a b/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Lib/GCC/libarm_cortexM0l_math.a
deleted file mode 100644
index c91de9d..0000000
Binary files a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Lib/GCC/libarm_cortexM0l_math.a and /dev/null differ
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Lib/license.txt b/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Lib/license.txt
deleted file mode 100644
index 139c1ff..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/Lib/license.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-All pre-build libraries contained in the folders "ARM" and "GCC"
-are guided by the following license:
-
-Copyright (C) 2009-2014 ARM Limited.
-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 ARM nor the names of its 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 COPYRIGHT HOLDERS AND 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.
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/README.txt b/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/README.txt
deleted file mode 100644
index e42a543..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/ASF/thirdparty/CMSIS/README.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-* -------------------------------------------------------------------
-* Copyright (C) 2011-2014 ARM Limited. All rights reserved.
-*
-* Date: 17 February 2014
-* Revision: V4.00
-*
-* Project: Cortex Microcontroller Software Interface Standard (CMSIS)
-* Title: Release Note for CMSIS
-*
-* -------------------------------------------------------------------
-
-
-NOTE - Open the index.html file to access CMSIS documentation
-
-
-The Cortex Microcontroller Software Interface Standard (CMSIS) provides a single standard across all
-Cortex-Mx processor series vendors. It enables code re-use and code sharing across software projects
-and reduces time-to-market for new embedded applications.
-
-CMSIS is released under the terms of the end user license agreement ("CMSIS_END_USER_LICENCE_AGREEMENT.pdf").
-Any user of the software package is bound to the terms and conditions of the end user license agreement.
-
-
-You will find the following sub-directories:
-
-Documentation - Contains CMSIS documentation.
-
-DSP_Lib - MDK project files, Examples and source files etc.. to build the
- CMSIS DSP Software Library for Cortex-M0, Cortex-M3, Cortex-M4 processors.
-
-Include - CMSIS Core Support and CMSIS DSP Include Files.
-
-Lib - CMSIS DSP Libraries.
-
-RTOS - CMSIS RTOS API template header file.
-
-Driver - CMSIS Peripheral Driver Interface.
-
-Pack - CMSIS Software Packs.
- Mechanism to install software, device support, APIs, and example projects.
-
-SVD - CMSIS SVD Schema files and Conversion Utility.
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/asf.h b/EXTINT_QUICK_START_CALLBACK1/src/asf.h
deleted file mode 100644
index 35724fc..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/asf.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * \file
- *
- * \brief Autogenerated API include file for the Atmel Software Framework (ASF)
- *
- * Copyright (c) 2012 Atmel Corporation. All rights reserved.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an
- * Atmel microcontroller product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL 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.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef ASF_H
-#define ASF_H
-
-/*
- * This file includes all API header files for the selected drivers from ASF.
- * Note: There might be duplicate includes required by more than one driver.
- *
- * The file is automatically generated and will be re-written when
- * running the ASF driver selector tool. Any changes will be discarded.
- */
-
-// From module: Common SAM0 compiler driver
-#include
-#include
-
-// From module: EXTINT - External Interrupt (Callback APIs)
-#include
-#include
-
-// From module: Generic board support
-#include
-
-// From module: Interrupt management - SAM implementation
-#include
-
-// From module: PORT - GPIO Pin Control
-#include
-
-// From module: Part identification macros
-#include
-
-// From module: SYSTEM - Clock Management for SAMD21/R21/DA/HA
-#include
-#include
-
-// From module: SYSTEM - Core System Driver
-#include
-
-// From module: SYSTEM - I/O Pin Multiplexer
-#include
-
-// From module: SYSTEM - Interrupt Driver
-#include
-
-// From module: SYSTEM - Power Management for SAM D20/D21/R21/D09/D10/D11/DA/HA
-#include
-
-// From module: SYSTEM - Reset Management for SAM D20/D21/R21/D09/D10/D11/DA/HA
-#include
-
-#endif // ASF_H
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/config/conf_board.h b/EXTINT_QUICK_START_CALLBACK1/src/config/conf_board.h
deleted file mode 100644
index a6e9c29..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/config/conf_board.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * \file
- *
- * \brief SAM D21 Xplained Pro board configuration.
- *
- * Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef CONF_BOARD_H_INCLUDED
-#define CONF_BOARD_H_INCLUDED
-
-#endif /* CONF_BOARD_H_INCLUDED */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/config/conf_clocks.h b/EXTINT_QUICK_START_CALLBACK1/src/config/conf_clocks.h
deleted file mode 100644
index bf2dca1..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/config/conf_clocks.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/**
- * \file
- *
- * \brief SAM D21 Clock configuration
- *
- * Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#include
-
-#ifndef CONF_CLOCKS_H_INCLUDED
-# define CONF_CLOCKS_H_INCLUDED
-
-/* System clock bus configuration */
-# define CONF_CLOCK_CPU_CLOCK_FAILURE_DETECT false
-# define CONF_CLOCK_FLASH_WAIT_STATES 0
-# define CONF_CLOCK_CPU_DIVIDER SYSTEM_MAIN_CLOCK_DIV_1
-# define CONF_CLOCK_APBA_DIVIDER SYSTEM_MAIN_CLOCK_DIV_1
-# define CONF_CLOCK_APBB_DIVIDER SYSTEM_MAIN_CLOCK_DIV_1
-# define CONF_CLOCK_APBC_DIVIDER SYSTEM_MAIN_CLOCK_DIV_1
-
-/* SYSTEM_CLOCK_SOURCE_OSC8M configuration - Internal 8MHz oscillator */
-# define CONF_CLOCK_OSC8M_PRESCALER SYSTEM_OSC8M_DIV_1
-# define CONF_CLOCK_OSC8M_ON_DEMAND true
-# define CONF_CLOCK_OSC8M_RUN_IN_STANDBY false
-
-/* SYSTEM_CLOCK_SOURCE_XOSC configuration - External clock/oscillator */
-# define CONF_CLOCK_XOSC_ENABLE false
-# define CONF_CLOCK_XOSC_EXTERNAL_CRYSTAL SYSTEM_CLOCK_EXTERNAL_CRYSTAL
-# define CONF_CLOCK_XOSC_EXTERNAL_FREQUENCY 12000000UL
-# define CONF_CLOCK_XOSC_STARTUP_TIME SYSTEM_XOSC_STARTUP_32768
-# define CONF_CLOCK_XOSC_AUTO_GAIN_CONTROL true
-# define CONF_CLOCK_XOSC_ON_DEMAND true
-# define CONF_CLOCK_XOSC_RUN_IN_STANDBY false
-
-/* SYSTEM_CLOCK_SOURCE_XOSC32K configuration - External 32KHz crystal/clock oscillator */
-# define CONF_CLOCK_XOSC32K_ENABLE false
-# define CONF_CLOCK_XOSC32K_EXTERNAL_CRYSTAL SYSTEM_CLOCK_EXTERNAL_CRYSTAL
-# define CONF_CLOCK_XOSC32K_STARTUP_TIME SYSTEM_XOSC32K_STARTUP_65536
-# define CONF_CLOCK_XOSC32K_AUTO_AMPLITUDE_CONTROL false
-# define CONF_CLOCK_XOSC32K_ENABLE_1KHZ_OUPUT false
-# define CONF_CLOCK_XOSC32K_ENABLE_32KHZ_OUTPUT true
-# define CONF_CLOCK_XOSC32K_ON_DEMAND true
-# define CONF_CLOCK_XOSC32K_RUN_IN_STANDBY false
-
-/* SYSTEM_CLOCK_SOURCE_OSC32K configuration - Internal 32KHz oscillator */
-# define CONF_CLOCK_OSC32K_ENABLE false
-# define CONF_CLOCK_OSC32K_STARTUP_TIME SYSTEM_OSC32K_STARTUP_130
-# define CONF_CLOCK_OSC32K_ENABLE_1KHZ_OUTPUT true
-# define CONF_CLOCK_OSC32K_ENABLE_32KHZ_OUTPUT true
-# define CONF_CLOCK_OSC32K_ON_DEMAND true
-# define CONF_CLOCK_OSC32K_RUN_IN_STANDBY false
-
-/* SYSTEM_CLOCK_SOURCE_DFLL configuration - Digital Frequency Locked Loop */
-# define CONF_CLOCK_DFLL_ENABLE false
-# define CONF_CLOCK_DFLL_LOOP_MODE SYSTEM_CLOCK_DFLL_LOOP_MODE_OPEN
-# define CONF_CLOCK_DFLL_ON_DEMAND false
-
-/* DFLL open loop mode configuration */
-# define CONF_CLOCK_DFLL_FINE_VALUE (512)
-
-/* DFLL closed loop mode configuration */
-# define CONF_CLOCK_DFLL_SOURCE_GCLK_GENERATOR GCLK_GENERATOR_1
-# define CONF_CLOCK_DFLL_MULTIPLY_FACTOR 6
-# define CONF_CLOCK_DFLL_QUICK_LOCK true
-# define CONF_CLOCK_DFLL_TRACK_AFTER_FINE_LOCK true
-# define CONF_CLOCK_DFLL_KEEP_LOCK_ON_WAKEUP true
-# define CONF_CLOCK_DFLL_ENABLE_CHILL_CYCLE true
-# define CONF_CLOCK_DFLL_MAX_COARSE_STEP_SIZE (0x1f / 4)
-# define CONF_CLOCK_DFLL_MAX_FINE_STEP_SIZE (0xff / 4)
-
-/* SYSTEM_CLOCK_SOURCE_DPLL configuration - Digital Phase-Locked Loop */
-# define CONF_CLOCK_DPLL_ENABLE false
-# define CONF_CLOCK_DPLL_ON_DEMAND true
-# define CONF_CLOCK_DPLL_RUN_IN_STANDBY false
-# define CONF_CLOCK_DPLL_LOCK_BYPASS false
-# define CONF_CLOCK_DPLL_WAKE_UP_FAST false
-# define CONF_CLOCK_DPLL_LOW_POWER_ENABLE false
-
-# define CONF_CLOCK_DPLL_LOCK_TIME SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_DEFAULT
-# define CONF_CLOCK_DPLL_REFERENCE_CLOCK SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_XOSC32K
-# define CONF_CLOCK_DPLL_FILTER SYSTEM_CLOCK_SOURCE_DPLL_FILTER_DEFAULT
-
-# define CONF_CLOCK_DPLL_REFERENCE_FREQUENCY 32768
-# define CONF_CLOCK_DPLL_REFERENCE_DIVIDER 1
-# define CONF_CLOCK_DPLL_OUTPUT_FREQUENCY 48000000
-
-/* DPLL GCLK reference configuration */
-# define CONF_CLOCK_DPLL_REFERENCE_GCLK_GENERATOR GCLK_GENERATOR_1
-/* DPLL GCLK lock timer configuration */
-# define CONF_CLOCK_DPLL_LOCK_GCLK_GENERATOR GCLK_GENERATOR_1
-
-/* Set this to true to configure the GCLK when running clocks_init. If set to
- * false, none of the GCLK generators will be configured in clocks_init(). */
-# define CONF_CLOCK_CONFIGURE_GCLK true
-
-/* Configure GCLK generator 0 (Main Clock) */
-# define CONF_CLOCK_GCLK_0_ENABLE true
-# define CONF_CLOCK_GCLK_0_RUN_IN_STANDBY false
-# define CONF_CLOCK_GCLK_0_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_OSC8M
-# define CONF_CLOCK_GCLK_0_PRESCALER 1
-# define CONF_CLOCK_GCLK_0_OUTPUT_ENABLE false
-
-/* Configure GCLK generator 1 */
-# define CONF_CLOCK_GCLK_1_ENABLE false
-# define CONF_CLOCK_GCLK_1_RUN_IN_STANDBY false
-# define CONF_CLOCK_GCLK_1_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_OSC8M
-# define CONF_CLOCK_GCLK_1_PRESCALER 1
-# define CONF_CLOCK_GCLK_1_OUTPUT_ENABLE false
-
-/* Configure GCLK generator 2 (RTC) */
-# define CONF_CLOCK_GCLK_2_ENABLE false
-# define CONF_CLOCK_GCLK_2_RUN_IN_STANDBY false
-# define CONF_CLOCK_GCLK_2_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_OSC32K
-# define CONF_CLOCK_GCLK_2_PRESCALER 32
-# define CONF_CLOCK_GCLK_2_OUTPUT_ENABLE false
-
-/* Configure GCLK generator 3 */
-# define CONF_CLOCK_GCLK_3_ENABLE false
-# define CONF_CLOCK_GCLK_3_RUN_IN_STANDBY false
-# define CONF_CLOCK_GCLK_3_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_OSC8M
-# define CONF_CLOCK_GCLK_3_PRESCALER 1
-# define CONF_CLOCK_GCLK_3_OUTPUT_ENABLE false
-
-/* Configure GCLK generator 4 */
-# define CONF_CLOCK_GCLK_4_ENABLE false
-# define CONF_CLOCK_GCLK_4_RUN_IN_STANDBY false
-# define CONF_CLOCK_GCLK_4_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_OSC8M
-# define CONF_CLOCK_GCLK_4_PRESCALER 1
-# define CONF_CLOCK_GCLK_4_OUTPUT_ENABLE false
-
-/* Configure GCLK generator 5 */
-# define CONF_CLOCK_GCLK_5_ENABLE false
-# define CONF_CLOCK_GCLK_5_RUN_IN_STANDBY false
-# define CONF_CLOCK_GCLK_5_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_OSC8M
-# define CONF_CLOCK_GCLK_5_PRESCALER 1
-# define CONF_CLOCK_GCLK_5_OUTPUT_ENABLE false
-
-/* Configure GCLK generator 6 */
-# define CONF_CLOCK_GCLK_6_ENABLE false
-# define CONF_CLOCK_GCLK_6_RUN_IN_STANDBY false
-# define CONF_CLOCK_GCLK_6_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_OSC8M
-# define CONF_CLOCK_GCLK_6_PRESCALER 1
-# define CONF_CLOCK_GCLK_6_OUTPUT_ENABLE false
-
-/* Configure GCLK generator 7 */
-# define CONF_CLOCK_GCLK_7_ENABLE false
-# define CONF_CLOCK_GCLK_7_RUN_IN_STANDBY false
-# define CONF_CLOCK_GCLK_7_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_OSC8M
-# define CONF_CLOCK_GCLK_7_PRESCALER 1
-# define CONF_CLOCK_GCLK_7_OUTPUT_ENABLE false
-
-/* Configure GCLK generator 8 */
-# define CONF_CLOCK_GCLK_8_ENABLE false
-# define CONF_CLOCK_GCLK_8_RUN_IN_STANDBY false
-# define CONF_CLOCK_GCLK_8_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_OSC8M
-# define CONF_CLOCK_GCLK_8_PRESCALER 1
-# define CONF_CLOCK_GCLK_8_OUTPUT_ENABLE false
-
-#endif /* CONF_CLOCKS_H_INCLUDED */
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/config/conf_extint.h b/EXTINT_QUICK_START_CALLBACK1/src/config/conf_extint.h
deleted file mode 100644
index c2d3f6f..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/config/conf_extint.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * \file
- *
- * \brief SAM D21 External Interrupt Driver Configuration Header
- *
- * Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef CONF_EXTINT_H_INCLUDED
-#define CONF_EXTINT_H_INCLUDED
-
-# define EXTINT_CLOCK_SOURCE GCLK_GENERATOR_0
-
-#endif
diff --git a/EXTINT_QUICK_START_CALLBACK1/src/qs_extint_callback.c b/EXTINT_QUICK_START_CALLBACK1/src/qs_extint_callback.c
deleted file mode 100644
index 784d942..0000000
--- a/EXTINT_QUICK_START_CALLBACK1/src/qs_extint_callback.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/**
- * \file
- *
- * \brief SAM External Interrupt Driver Quick Start
- *
- * Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#include
-
-void configure_extint_channel(void);
-void configure_extint_callbacks(void);
-void extint_detection_callback(void);
-
-//! [setup]
-void configure_extint_channel(void)
-{
-//! [setup_1]
- struct extint_chan_conf config_extint_chan;
-//! [setup_1]
-//! [setup_2]
- extint_chan_get_config_defaults(&config_extint_chan);
-//! [setup_2]
-
-//! [setup_3]
- config_extint_chan.gpio_pin = BUTTON_0_EIC_PIN;
- config_extint_chan.gpio_pin_mux = BUTTON_0_EIC_MUX;
- config_extint_chan.gpio_pin_pull = EXTINT_PULL_UP;
- config_extint_chan.detection_criteria = EXTINT_DETECT_BOTH;
-//! [setup_3]
-//! [setup_4]
- extint_chan_set_config(BUTTON_0_EIC_LINE, &config_extint_chan);
-//! [setup_4]
-}
-
-void configure_extint_callbacks(void)
-{
-//! [setup_5]
- extint_register_callback(extint_detection_callback,
- BUTTON_0_EIC_LINE,
- EXTINT_CALLBACK_TYPE_DETECT);
-//! [setup_5]
-//! [setup_6]
- extint_chan_enable_callback(BUTTON_0_EIC_LINE,
- EXTINT_CALLBACK_TYPE_DETECT);
-//! [setup_6]
-}
-
-//! [setup_7]
-void extint_detection_callback(void)
-{
- bool pin_state = port_pin_get_input_level(BUTTON_0_PIN);
- port_pin_set_output_level(LED_0_PIN, pin_state);
-}
-//! [setup_7]
-//! [setup]
-
-int main(void)
-{
- system_init();
-
- //! [setup_init]
- configure_extint_channel();
- configure_extint_callbacks();
-
- system_interrupt_enable_global();
- //! [setup_init]
-
- //! [main]
- while (true) {
- /* Do nothing - EXTINT will fire callback asynchronously */
- }
- //! [main]
-}
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/I2C_QUICK_START_MASTER_BASIC_USE1.componentinfo.xml b/I2C_QUICK_START_MASTER_BASIC_USE1/I2C_QUICK_START_MASTER_BASIC_USE1.componentinfo.xml
deleted file mode 100644
index e275755..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/I2C_QUICK_START_MASTER_BASIC_USE1.componentinfo.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/I2C_QUICK_START_MASTER_BASIC_USE1.cproj b/I2C_QUICK_START_MASTER_BASIC_USE1/I2C_QUICK_START_MASTER_BASIC_USE1.cproj
deleted file mode 100644
index ab7bceb..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/I2C_QUICK_START_MASTER_BASIC_USE1.cproj
+++ /dev/null
@@ -1,1155 +0,0 @@
-
-
-
- 2.0
- 7.0
- com.Atmel.ARMGCC.C
- {e52303c3-c485-40ee-a63e-d74df61aa0e1}
- ATSAMD21J18A
- samd21
- Executable
- C
- $(MSBuildProjectName)
- .elf
- $(MSBuildProjectDirectory)\$(Configuration)
- I2C_QUICK_START_MASTER_BASIC_USE1
- I2C_QUICK_START_MASTER_BASIC_USE1
- I2C_QUICK_START_MASTER_BASIC_USE1
- Native
- true
- false
- true
- true
-
-
- true
-
- 2
- 0
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- True
- True
- True
- True
- True
-
-
- NDEBUG
- BOARD=SAMD21_XPLAINED_PRO
- __SAMD21J18A__
- ARM_MATH_CM0PLUS=true
- I2C_MASTER_CALLBACK_MODE=false
-
-
-
-
- ../src/ASF/sam0/boards/samd21_xplained_pro
- ../src/ASF/sam0/boards
- ../src/ASF/sam0/utils/cmsis/samd21/include
- ../src/ASF/sam0/utils/cmsis/samd21/source
- ../src/ASF/sam0/utils
- ../src/ASF/sam0/utils/header_files
- ../src/ASF/sam0/utils/preprocessor
- ../src/ASF/thirdparty/CMSIS/Include
- ../src/ASF/thirdparty/CMSIS/Lib/GCC
- ../src/ASF/common/utils
- ../src/ASF/common/boards
- ../src/ASF/sam0/drivers/port
- ../src/ASF/sam0/drivers/system/pinmux
- ../src/ASF/sam0/drivers/sercom/i2c
- ../src/ASF/sam0/drivers/sercom
- ../src/ASF/sam0/drivers/system
- ../src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1
- ../src/ASF/sam0/drivers/system/clock
- ../src/ASF/sam0/drivers/system/interrupt
- ../src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21
- ../src/ASF/sam0/drivers/system/power
- ../src/ASF/sam0/drivers/system/power/power_sam_d_r_h
- ../src/ASF/sam0/drivers/system/reset
- ../src/ASF/sam0/drivers/system/reset/reset_sam_d_r_h
- ../src
- ../src/config
-
-
- Optimize for size (-Os)
- -fdata-sections
- True
- True
- -pipe -fno-strict-aliasing -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror-implicit-function-declaration -Wpointer-arith -std=gnu99 -ffunction-sections -fdata-sections -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int -Wmain -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused -Wuninitialized -Wunknown-pragmas -Wfloat-equal -Wundef -Wshadow -Wbad-function-cast -Wwrite-strings -Wsign-compare -Waggregate-return -Wmissing-declarations -Wformat -Wmissing-format-attribute -Wno-deprecated-declarations -Wpacked -Wredundant-decls -Wnested-externs -Wlong-long -Wunreachable-code -Wcast-align --param max-inline-insns-single=500
- True
-
-
- libarm_cortexM0l_math
- libm
-
-
-
-
- ../src/ASF/thirdparty/CMSIS/Lib/GCC
-
-
- True
- -Wl,--entry=Reset_Handler -Wl,--cref -mthumb -T../src/ASF/sam0/utils/linker_scripts/samd21/gcc/samd21j18a_flash.ld
-
-
- ../src/ASF/sam0/boards/samd21_xplained_pro
- ../src/ASF/sam0/boards
- ../src/ASF/sam0/utils/cmsis/samd21/include
- ../src/ASF/sam0/utils/cmsis/samd21/source
- ../src/ASF/sam0/utils
- ../src/ASF/sam0/utils/header_files
- ../src/ASF/sam0/utils/preprocessor
- ../src/ASF/thirdparty/CMSIS/Include
- ../src/ASF/thirdparty/CMSIS/Lib/GCC
- ../src/ASF/common/utils
- ../src/ASF/common/boards
- ../src/ASF/sam0/drivers/port
- ../src/ASF/sam0/drivers/system/pinmux
- ../src/ASF/sam0/drivers/sercom/i2c
- ../src/ASF/sam0/drivers/sercom
- ../src/ASF/sam0/drivers/system
- ../src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1
- ../src/ASF/sam0/drivers/system/clock
- ../src/ASF/sam0/drivers/system/interrupt
- ../src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21
- ../src/ASF/sam0/drivers/system/power
- ../src/ASF/sam0/drivers/system/power/power_sam_d_r_h
- ../src/ASF/sam0/drivers/system/reset
- ../src/ASF/sam0/drivers/system/reset/reset_sam_d_r_h
- ../src
- ../src/config
-
-
- -DARM_MATH_CM0PLUS=true -DBOARD=SAMD21_XPLAINED_PRO -DI2C_MASTER_CALLBACK_MODE=false -D__SAMD21J18A__
-
-
- ../src/ASF/sam0/boards/samd21_xplained_pro
- ../src/ASF/sam0/boards
- ../src/ASF/sam0/utils/cmsis/samd21/include
- ../src/ASF/sam0/utils/cmsis/samd21/source
- ../src/ASF/sam0/utils
- ../src/ASF/sam0/utils/header_files
- ../src/ASF/sam0/utils/preprocessor
- ../src/ASF/thirdparty/CMSIS/Include
- ../src/ASF/thirdparty/CMSIS/Lib/GCC
- ../src/ASF/common/utils
- ../src/ASF/common/boards
- ../src/ASF/sam0/drivers/port
- ../src/ASF/sam0/drivers/system/pinmux
- ../src/ASF/sam0/drivers/sercom/i2c
- ../src/ASF/sam0/drivers/sercom
- ../src/ASF/sam0/drivers/system
- ../src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1
- ../src/ASF/sam0/drivers/system/clock
- ../src/ASF/sam0/drivers/system/interrupt
- ../src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21
- ../src/ASF/sam0/drivers/system/power
- ../src/ASF/sam0/drivers/system/power/power_sam_d_r_h
- ../src/ASF/sam0/drivers/system/reset
- ../src/ASF/sam0/drivers/system/reset/reset_sam_d_r_h
- ../src
- ../src/config
-
-
-
-
-
-
-
-
- True
- True
- True
- True
- True
-
-
- DEBUG
- BOARD=SAMD21_XPLAINED_PRO
- __SAMD21J18A__
- ARM_MATH_CM0PLUS=true
- I2C_MASTER_CALLBACK_MODE=false
-
-
-
-
- ../src/ASF/sam0/boards/samd21_xplained_pro
- ../src/ASF/sam0/boards
- ../src/ASF/sam0/utils/cmsis/samd21/include
- ../src/ASF/sam0/utils/cmsis/samd21/source
- ../src/ASF/sam0/utils
- ../src/ASF/sam0/utils/header_files
- ../src/ASF/sam0/utils/preprocessor
- ../src/ASF/thirdparty/CMSIS/Include
- ../src/ASF/thirdparty/CMSIS/Lib/GCC
- ../src/ASF/common/utils
- ../src/ASF/common/boards
- ../src/ASF/sam0/drivers/port
- ../src/ASF/sam0/drivers/system/pinmux
- ../src/ASF/sam0/drivers/sercom/i2c
- ../src/ASF/sam0/drivers/sercom
- ../src/ASF/sam0/drivers/system
- ../src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1
- ../src/ASF/sam0/drivers/system/clock
- ../src/ASF/sam0/drivers/system/interrupt
- ../src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21
- ../src/ASF/sam0/drivers/system/power
- ../src/ASF/sam0/drivers/system/power/power_sam_d_r_h
- ../src/ASF/sam0/drivers/system/reset
- ../src/ASF/sam0/drivers/system/reset/reset_sam_d_r_h
- ../src
- ../src/config
-
-
- Optimize (-O1)
- -fdata-sections
- True
- Maximum (-g3)
- True
- -pipe -fno-strict-aliasing -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror-implicit-function-declaration -Wpointer-arith -std=gnu99 -ffunction-sections -fdata-sections -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int -Wmain -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused -Wuninitialized -Wunknown-pragmas -Wfloat-equal -Wundef -Wshadow -Wbad-function-cast -Wwrite-strings -Wsign-compare -Waggregate-return -Wmissing-declarations -Wformat -Wmissing-format-attribute -Wno-deprecated-declarations -Wpacked -Wredundant-decls -Wnested-externs -Wlong-long -Wunreachable-code -Wcast-align --param max-inline-insns-single=500
- True
-
-
- libarm_cortexM0l_math
- libm
-
-
-
-
- ../src/ASF/thirdparty/CMSIS/Lib/GCC
-
-
- True
- -Wl,--entry=Reset_Handler -Wl,--cref -mthumb -T../src/ASF/sam0/utils/linker_scripts/samd21/gcc/samd21j18a_flash.ld
-
-
- ../src/ASF/sam0/boards/samd21_xplained_pro
- ../src/ASF/sam0/boards
- ../src/ASF/sam0/utils/cmsis/samd21/include
- ../src/ASF/sam0/utils/cmsis/samd21/source
- ../src/ASF/sam0/utils
- ../src/ASF/sam0/utils/header_files
- ../src/ASF/sam0/utils/preprocessor
- ../src/ASF/thirdparty/CMSIS/Include
- ../src/ASF/thirdparty/CMSIS/Lib/GCC
- ../src/ASF/common/utils
- ../src/ASF/common/boards
- ../src/ASF/sam0/drivers/port
- ../src/ASF/sam0/drivers/system/pinmux
- ../src/ASF/sam0/drivers/sercom/i2c
- ../src/ASF/sam0/drivers/sercom
- ../src/ASF/sam0/drivers/system
- ../src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1
- ../src/ASF/sam0/drivers/system/clock
- ../src/ASF/sam0/drivers/system/interrupt
- ../src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21
- ../src/ASF/sam0/drivers/system/power
- ../src/ASF/sam0/drivers/system/power/power_sam_d_r_h
- ../src/ASF/sam0/drivers/system/reset
- ../src/ASF/sam0/drivers/system/reset/reset_sam_d_r_h
- ../src
- ../src/config
-
-
- Default (-g)
- -DARM_MATH_CM0PLUS=true -DBOARD=SAMD21_XPLAINED_PRO -DI2C_MASTER_CALLBACK_MODE=false -D__SAMD21J18A__
-
-
- ../src/ASF/sam0/boards/samd21_xplained_pro
- ../src/ASF/sam0/boards
- ../src/ASF/sam0/utils/cmsis/samd21/include
- ../src/ASF/sam0/utils/cmsis/samd21/source
- ../src/ASF/sam0/utils
- ../src/ASF/sam0/utils/header_files
- ../src/ASF/sam0/utils/preprocessor
- ../src/ASF/thirdparty/CMSIS/Include
- ../src/ASF/thirdparty/CMSIS/Lib/GCC
- ../src/ASF/common/utils
- ../src/ASF/common/boards
- ../src/ASF/sam0/drivers/port
- ../src/ASF/sam0/drivers/system/pinmux
- ../src/ASF/sam0/drivers/sercom/i2c
- ../src/ASF/sam0/drivers/sercom
- ../src/ASF/sam0/drivers/system
- ../src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1
- ../src/ASF/sam0/drivers/system/clock
- ../src/ASF/sam0/drivers/system/interrupt
- ../src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21
- ../src/ASF/sam0/drivers/system/power
- ../src/ASF/sam0/drivers/system/power/power_sam_d_r_h
- ../src/ASF/sam0/drivers/system/reset
- ../src/ASF/sam0/drivers/system/reset/reset_sam_d_r_h
- ../src
- ../src/config
-
-
- Default (-Wa,-g)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
- compile
-
-
-
-
\ No newline at end of file
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/common/boards/board.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/common/boards/board.h
deleted file mode 100644
index f6b0c32..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/common/boards/board.h
+++ /dev/null
@@ -1,453 +0,0 @@
-/**
- * \file
- *
- * \brief Standard board header file.
- *
- * This file includes the appropriate board header file according to the
- * defined board (parameter BOARD).
- *
- * Copyright (c) 2009-2020 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef _BOARD_H_
-#define _BOARD_H_
-
-/**
- * \defgroup group_common_boards Generic board support
- *
- * The generic board support module includes board-specific definitions
- * and function prototypes, such as the board initialization function.
- *
- * \{
- */
-
-#include "compiler.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*! \name Base Boards
- */
-//! @{
-#define EVK1100 1 //!< AT32UC3A EVK1100 board.
-#define EVK1101 2 //!< AT32UC3B EVK1101 board.
-#define UC3C_EK 3 //!< AT32UC3C UC3C-EK board.
-#define EVK1104 4 //!< AT32UC3A3 EVK1104 board.
-#define EVK1105 5 //!< AT32UC3A EVK1105 board.
-#define STK600_RCUC3L0 6 //!< STK600 RCUC3L0 board.
-#define UC3L_EK 7 //!< AT32UC3L-EK board.
-#define XPLAIN 8 //!< ATxmega128A1 Xplain board.
-#define STK600_RC064X 10 //!< ATxmega256A3 STK600 board.
-#define STK600_RC100X 11 //!< ATxmega128A1 STK600 board.
-#define UC3_A3_XPLAINED 13 //!< ATUC3A3 UC3-A3 Xplained board.
-#define UC3_L0_XPLAINED 15 //!< ATUC3L0 UC3-L0 Xplained board.
-#define STK600_RCUC3D 16 //!< STK600 RCUC3D board.
-#define STK600_RCUC3C0 17 //!< STK600 RCUC3C board.
-#define XMEGA_B1_XPLAINED 18 //!< ATxmega128B1 Xplained board.
-#define XMEGA_A1_XPLAINED 19 //!< ATxmega128A1 Xplain-A1 board.
-#define XMEGA_A1U_XPLAINED_PRO 20 //!< ATxmega128A1U XMEGA-A1U Xplained Pro board.
-#define STK600_RCUC3L4 21 //!< ATUCL4 STK600 board.
-#define UC3_L0_XPLAINED_BC 22 //!< ATUC3L0 UC3-L0 Xplained board controller board.
-#define MEGA1284P_XPLAINED_BC 23 //!< ATmega1284P-Xplained board controller board.
-#define STK600_RC044X 24 //!< STK600 with RC044X routing card board.
-#define STK600_RCUC3B0 25 //!< STK600 RCUC3B0 board.
-#define UC3_L0_QT600 26 //!< QT600 UC3L0 MCU board.
-#define XMEGA_A3BU_XPLAINED 27 //!< ATxmega256A3BU Xplained board.
-#define STK600_RC064X_LCDX 28 //!< XMEGAB3 STK600 RC064X LCDX board.
-#define STK600_RC100X_LCDX 29 //!< XMEGAB1 STK600 RC100X LCDX board.
-#define UC3B_BOARD_CONTROLLER 30 //!< AT32UC3B1 board controller for Atmel boards.
-#define RZ600 31 //!< AT32UC3A RZ600 MCU board.
-#define SAM3S_EK 32 //!< SAM3S-EK board.
-#define SAM3U_EK 33 //!< SAM3U-EK board.
-#define SAM3X_EK 34 //!< SAM3X-EK board.
-#define SAM3N_EK 35 //!< SAM3N-EK board.
-#define SAM3S_EK2 36 //!< SAM3S-EK2 board.
-#define SAM4S_EK 37 //!< SAM4S-EK board.
-#define STK600_RCUC3A0 38 //!< STK600 RCUC3A0 board.
-#define STK600_MEGA 39 //!< STK600 MEGA board.
-#define MEGA_1284P_XPLAINED 40 //!< ATmega1284P Xplained board.
-#define SAM4S_XPLAINED 41 //!< SAM4S Xplained board.
-#define ATXMEGA128A1_QT600 42 //!< QT600 ATXMEGA128A1 MCU board.
-#define ARDUINO_DUE_X 43 //!< Arduino Due/X board.
-#define STK600_RCUC3L3 44 //!< ATUCL3 STK600 board.
-#define SAM4L_EK 45 //!< SAM4L-EK board.
-#define STK600_MEGA_RF 46 //!< STK600 MEGA RF EVK board.
-#define XMEGA_C3_XPLAINED 47 //!< ATxmega384C3 Xplained board.
-#define STK600_RC032X 48 //!< STK600 with RC032X routing card board.
-#define SAM4S_EK2 49 //!< SAM4S-EK2 board.
-#define XMEGA_E5_XPLAINED 50 //!< ATxmega32E5 Xplained board.
-#define SAM4E_EK 51 //!< SAM4E-EK board.
-#define ATMEGA256RFR2_XPLAINED_PRO 52 //!< ATmega256RFR2 Xplained Pro board.
-#define SAM4S_XPLAINED_PRO 53 //!< SAM4S Xplained Pro board.
-#define SAM4L_XPLAINED_PRO 54 //!< SAM4L Xplained Pro board.
-#define ATMEGA256RFR2_ZIGBIT 55 //!< ATmega256RFR2 zigbit.
-#define XMEGA_RF233_ZIGBIT 56 //!< ATxmega256A3U with AT86RF233 Zigbit.
-#define XMEGA_RF212B_ZIGBIT 57 //!< ATxmega256A3U with AT86RF212B Zigbit.
-#define SAM4S_WPIR_RD 58 //!< SAM4S-WPIR-RD board.
-#define SAMD20_XPLAINED_PRO 59 //!< SAM D20 Xplained Pro board.
-#define SAM4L8_XPLAINED_PRO 60 //!< SAM4L8 Xplained Pro board.
-#define SAM4N_XPLAINED_PRO 61 //!< SAM4N Xplained Pro board.
-#define XMEGA_A3_REB_CBB 62 //!< XMEGA REB Controller Base board.
-#define ATMEGARFX_RCB 63 //!< RFR2 & RFA1 RCB.
-#define SAM4C_EK 64 //!< SAM4C-EK board.
-#define RCB256RFR2_XPRO 65 //!< RFR2 RCB Xplained Pro board.
-#define SAMG53_XPLAINED_PRO 66 //!< SAMG53 Xplained Pro board.
-#define SAM4CP16BMB 67 //!< SAM4CP16BMB board.
-#define SAM4E_XPLAINED_PRO 68 //!< SAM4E Xplained Pro board.
-#define SAMD21_XPLAINED_PRO 69 //!< SAM D21 Xplained Pro board.
-#define SAMR21_XPLAINED_PRO 70 //!< SAM R21 Xplained Pro board.
-#define SAM4CMP_DB 71 //!< SAM4CMP demo board.
-#define SAM4CMS_DB 72 //!< SAM4CMS demo board.
-#define ATPL230AMB 73 //!< ATPL230AMB board.
-#define SAMD11_XPLAINED_PRO 74 //!< SAM D11 Xplained Pro board.
-#define SAMG55_XPLAINED_PRO 75 //!< SAMG55 Xplained Pro board.
-#define SAML21_XPLAINED_PRO 76 //!< SAM L21 Xplained Pro board.
-#define SAMD10_XPLAINED_MINI 77 //!< SAM D10 Xplained Mini board.
-#define SAMDA1_XPLAINED_PRO 78 //!< SAM DA1 Xplained Pro board.
-#define SAMW25_XPLAINED_PRO 79 //!< SAMW25 Xplained Pro board.
-#define SAMC21_XPLAINED_PRO 80 //!< SAM C21 Xplained Pro board.
-#define SAMV71_XPLAINED_ULTRA 81 //!< SAMV71 Xplained Ultra board.
-#define ATMEGA328P_XPLAINED_MINI 82 //!< ATMEGA328P Xplained MINI board.
-#define ATMEGA328PB_XPLAINED_MINI 83 //!< ATMEGA328PB Xplained MINI board.
-#define SAMB11_XPLAINED_PRO 84 //!< SAM B11 Xplained Pro board.
-#define SAME70_XPLAINED 85 //!< SAME70 Xplained board.
-#define SAML22_XPLAINED_PRO 86 //!< SAM L22 Xplained Pro board.
-#define SAML22_XPLAINED_PRO_B 87 //!< SAM L22 Xplained Pro board.
-#define SAMR21ZLL_EK 88 //!< SAMR21ZLL-EK board.
-#define ATMEGA168PB_XPLAINED_MINI 89 //!< ATMEGA168PB Xplained MINI board.
-#define ATMEGA324PB_XPLAINED_PRO 90 //!< ATMEGA324PB Xplained Pro board.
-#define SAMB11ZR_XPLAINED_PRO 92 //!< SAM B11 ZR Xplained Pro board.
-#define SAMR30_XPLAINED_PRO 93 //!< SAM R30 Xplained Pro board.
-#define SAMHA1G16A_XPLAINED_PRO 94 //!< SAM HA1G16A Xplained Pro board.
-#define SAMR34_XPLAINED_PRO 95 //!< SAM R34 Xplained Pro board.
-#define SIMULATOR_XMEGA_A1 97 //!< Simulator for XMEGA A1 devices.
-#define AVR_SIMULATOR_UC3 98 //!< Simulator for the AVR UC3 device family.
-#define USER_BOARD 99 //!< User-reserved board (if any).
-#define DUMMY_BOARD 100 //!< Dummy board to support board-independent applications (e.g. bootloader).
-#define SAMB11ZR_SENSOR_TAG 101 //!< SAMB11ZR sensor tag board
-#define SAMR30_MODULE_XPLAINED_PRO 102 //!< SAM R30 Module Xplained Pro board.
-#define SAMR21G18_MODULE 103 //!< SAMR21G18-MR210UA Module.
-#define SAMR21B18_MODULE 104 //!< SAMR21B18-MZ210PA Module.
-#define WLR089_XPLAINED_PRO 105 //!< WLR089_XPLAINED_PRO board.
-//! @}
-
-/*! \name Extension Boards
- */
-//! @{
-#define EXT1102 1 //!< AT32UC3B EXT1102 board
-#define MC300 2 //!< AT32UC3 MC300 board
-#define SENSORS_XPLAINED_INERTIAL_1 3 //!< Xplained inertial sensor board 1
-#define SENSORS_XPLAINED_INERTIAL_2 4 //!< Xplained inertial sensor board 2
-#define SENSORS_XPLAINED_PRESSURE_1 5 //!< Xplained pressure sensor board
-#define SENSORS_XPLAINED_LIGHTPROX_1 6 //!< Xplained light & proximity sensor board
-#define SENSORS_XPLAINED_INERTIAL_A1 7 //!< Xplained inertial sensor board "A"
-#define RZ600_AT86RF231 8 //!< AT86RF231 RF board in RZ600
-#define RZ600_AT86RF230B 9 //!< AT86RF230B RF board in RZ600
-#define RZ600_AT86RF212 10 //!< AT86RF212 RF board in RZ600
-#define SENSORS_XPLAINED_BREADBOARD 11 //!< Xplained sensor development breadboard
-#define SECURITY_XPLAINED 12 //!< Xplained ATSHA204 board
-#define USER_EXT_BOARD 99 //!< User-reserved extension board (if any).
-//! @}
-
-#if BOARD == EVK1100
-# include "evk1100/evk1100.h"
-#elif BOARD == EVK1101
-# include "evk1101/evk1101.h"
-#elif BOARD == UC3C_EK
-# include "uc3c_ek/uc3c_ek.h"
-#elif BOARD == EVK1104
-# include "evk1104/evk1104.h"
-#elif BOARD == EVK1105
-# include "evk1105/evk1105.h"
-#elif BOARD == STK600_RCUC3L0
-# include "stk600/rcuc3l0/stk600_rcuc3l0.h"
-#elif BOARD == UC3L_EK
-# include "uc3l_ek/uc3l_ek.h"
-#elif BOARD == STK600_RCUC3L4
-# include "stk600/rcuc3l4/stk600_rcuc3l4.h"
-#elif BOARD == XPLAIN
-# include "xplain/xplain.h"
-#elif BOARD == STK600_MEGA
- /*No header-file to include*/
-#elif BOARD == STK600_MEGA_RF
-# include "stk600.h"
-#elif BOARD == ATMEGA256RFR2_XPLAINED_PRO
-# include "atmega256rfr2_xplained_pro/atmega256rfr2_xplained_pro.h"
-#elif BOARD == ATMEGA256RFR2_ZIGBIT
-# include "atmega256rfr2_zigbit/atmega256rfr2_zigbit.h"
-#elif BOARD == STK600_RC032X
-# include "stk600/rc032x/stk600_rc032x.h"
-#elif BOARD == STK600_RC044X
-# include "stk600/rc044x/stk600_rc044x.h"
-#elif BOARD == STK600_RC064X
-# include "stk600/rc064x/stk600_rc064x.h"
-#elif BOARD == STK600_RC100X
-# include "stk600/rc100x/stk600_rc100x.h"
-#elif BOARD == UC3_A3_XPLAINED
-# include "uc3_a3_xplained/uc3_a3_xplained.h"
-#elif BOARD == UC3_L0_XPLAINED
-# include "uc3_l0_xplained/uc3_l0_xplained.h"
-#elif BOARD == STK600_RCUC3B0
-# include "stk600/rcuc3b0/stk600_rcuc3b0.h"
-#elif BOARD == STK600_RCUC3D
-# include "stk600/rcuc3d/stk600_rcuc3d.h"
-#elif BOARD == STK600_RCUC3C0
-# include "stk600/rcuc3c0/stk600_rcuc3c0.h"
-#elif BOARD == SAMG53_XPLAINED_PRO
-# include "samg53_xplained_pro/samg53_xplained_pro.h"
-#elif BOARD == SAMG55_XPLAINED_PRO
-# include "samg55_xplained_pro/samg55_xplained_pro.h"
-#elif BOARD == XMEGA_B1_XPLAINED
-# include "xmega_b1_xplained/xmega_b1_xplained.h"
-#elif BOARD == STK600_RC064X_LCDX
-# include "stk600/rc064x_lcdx/stk600_rc064x_lcdx.h"
-#elif BOARD == STK600_RC100X_LCDX
-# include "stk600/rc100x_lcdx/stk600_rc100x_lcdx.h"
-#elif BOARD == XMEGA_A1_XPLAINED
-# include "xmega_a1_xplained/xmega_a1_xplained.h"
-#elif BOARD == XMEGA_A1U_XPLAINED_PRO
-# include "xmega_a1u_xplained_pro/xmega_a1u_xplained_pro.h"
-#elif BOARD == UC3_L0_XPLAINED_BC
-# include "uc3_l0_xplained_bc/uc3_l0_xplained_bc.h"
-#elif BOARD == SAM3S_EK
-# include "sam3s_ek/sam3s_ek.h"
-# include "system_sam3s.h"
-#elif BOARD == SAM3S_EK2
-# include "sam3s_ek2/sam3s_ek2.h"
-# include "system_sam3sd8.h"
-#elif BOARD == SAM3U_EK
-# include "sam3u_ek/sam3u_ek.h"
-# include "system_sam3u.h"
-#elif BOARD == SAM3X_EK
-# include "sam3x_ek/sam3x_ek.h"
-# include "system_sam3x.h"
-#elif BOARD == SAM3N_EK
-# include "sam3n_ek/sam3n_ek.h"
-# include "system_sam3n.h"
-#elif BOARD == SAM4S_EK
-# include "sam4s_ek/sam4s_ek.h"
-# include "system_sam4s.h"
-#elif BOARD == SAM4S_WPIR_RD
-# include "sam4s_wpir_rd/sam4s_wpir_rd.h"
-# include "system_sam4s.h"
-#elif BOARD == SAM4S_XPLAINED
-# include "sam4s_xplained/sam4s_xplained.h"
-# include "system_sam4s.h"
-#elif BOARD == SAM4S_EK2
-# include "sam4s_ek2/sam4s_ek2.h"
-# include "system_sam4s.h"
-#elif BOARD == MEGA_1284P_XPLAINED
- /*No header-file to include*/
-#elif BOARD == ARDUINO_DUE_X
-# include "arduino_due_x/arduino_due_x.h"
-# include "system_sam3x.h"
-#elif BOARD == SAM4L_EK
-# include "sam4l_ek/sam4l_ek.h"
-#elif BOARD == SAM4E_EK
-# include "sam4e_ek/sam4e_ek.h"
-#elif BOARD == SAMD20_XPLAINED_PRO
-# include "samd20_xplained_pro/samd20_xplained_pro.h"
-#elif BOARD == SAMD21_XPLAINED_PRO
-# include "samd21_xplained_pro/samd21_xplained_pro.h"
-#elif BOARD == SAMR21_XPLAINED_PRO
-# include "samr21_xplained_pro/samr21_xplained_pro.h"
-#elif BOARD == SAMR30_XPLAINED_PRO && defined(__SAMR30G18A__)
-# include "samr30_xplained_pro/samr30_xplained_pro.h"
-#elif BOARD == SAMR30_MODULE_XPLAINED_PRO && defined(__SAMR30E18A__)
-# include "samr30_module_xplained_pro/samr30_module_xplained_pro.h"
-#elif BOARD == SAMR21ZLL_EK
-# include "samr21zll_ek/samr21zll_ek.h"
-#elif BOARD == SAMD11_XPLAINED_PRO
-# include "samd11_xplained_pro/samd11_xplained_pro.h"
-#elif BOARD == SAML21_XPLAINED_PRO && defined(__SAML21J18A__)
-# include "saml21_xplained_pro/saml21_xplained_pro.h"
-#elif BOARD == SAML22_XPLAINED_PRO
-# include "saml22_xplained_pro/saml22_xplained_pro.h"
-#elif BOARD == SAML22_XPLAINED_PRO_B
-# include "saml22_xplained_pro_b/saml22_xplained_pro_b.h"
-#elif BOARD == SAML21_XPLAINED_PRO && defined(__SAML21J18B__)
-# include "saml21_xplained_pro_b/saml21_xplained_pro.h"
-#elif BOARD == SAMD10_XPLAINED_MINI
-# include "samd10_xplained_mini/samd10_xplained_mini.h"
-#elif BOARD == SAMDA1_XPLAINED_PRO
-# include "samda1_xplained_pro/samda1_xplained_pro.h"
-#elif BOARD == SAMHA1G16A_XPLAINED_PRO
-# include "samha1g16a_xplained_pro/samha1g16a_xplained_pro.h"
-#elif BOARD == SAMC21_XPLAINED_PRO
-# include "samc21_xplained_pro/samc21_xplained_pro.h"
-#elif BOARD == SAM4N_XPLAINED_PRO
-# include "sam4n_xplained_pro/sam4n_xplained_pro.h"
-#elif BOARD == SAMW25_XPLAINED_PRO
-# include "samw25_xplained_pro/samw25_xplained_pro.h"
-#elif BOARD == SAMV71_XPLAINED_ULTRA
-# include "samv71_xplained_ultra/samv71_xplained_ultra.h"
-#elif BOARD == MEGA1284P_XPLAINED_BC
-# include "mega1284p_xplained_bc/mega1284p_xplained_bc.h"
-#elif BOARD == UC3_L0_QT600
-# include "uc3_l0_qt600/uc3_l0_qt600.h"
-#elif BOARD == XMEGA_A3BU_XPLAINED
-# include "xmega_a3bu_xplained/xmega_a3bu_xplained.h"
-#elif BOARD == XMEGA_E5_XPLAINED
-# include "xmega_e5_xplained/xmega_e5_xplained.h"
-#elif BOARD == UC3B_BOARD_CONTROLLER
-# include "uc3b_board_controller/uc3b_board_controller.h"
-#elif BOARD == RZ600
-# include "rz600/rz600.h"
-#elif BOARD == STK600_RCUC3A0
-# include "stk600/rcuc3a0/stk600_rcuc3a0.h"
-#elif BOARD == ATXMEGA128A1_QT600
-# include "atxmega128a1_qt600/atxmega128a1_qt600.h"
-#elif BOARD == STK600_RCUC3L3
-# include "stk600/rcuc3l3/stk600_rcuc3l3.h"
-#elif BOARD == SAM4S_XPLAINED_PRO
-# include "sam4s_xplained_pro/sam4s_xplained_pro.h"
-#elif BOARD == SAM4L_XPLAINED_PRO
-# include "sam4l_xplained_pro/sam4l_xplained_pro.h"
-#elif BOARD == SAM4L8_XPLAINED_PRO
-# include "sam4l8_xplained_pro/sam4l8_xplained_pro.h"
-#elif BOARD == SAM4C_EK
-# include "sam4c_ek/sam4c_ek.h"
-#elif BOARD == SAM4CMP_DB
-# include "sam4cmp_db/sam4cmp_db.h"
-#elif BOARD == SAM4CMS_DB
-# include "sam4cms_db/sam4cms_db.h"
-#elif BOARD == SAM4CP16BMB
-# include "sam4cp16bmb/sam4cp16bmb.h"
-#elif BOARD == ATPL230AMB
-# include "atpl230amb/atpl230amb.h"
-#elif BOARD == XMEGA_C3_XPLAINED
-# include "xmega_c3_xplained/xmega_c3_xplained.h"
-#elif BOARD == XMEGA_RF233_ZIGBIT
-# include "xmega_rf233_zigbit/xmega_rf233_zigbit.h"
-#elif BOARD == XMEGA_A3_REB_CBB
-# include "xmega_a3_reb_cbb/xmega_a3_reb_cbb.h"
-#elif BOARD == ATMEGARFX_RCB
-# include "atmegarfx_rcb/atmegarfx_rcb.h"
-#elif BOARD == RCB256RFR2_XPRO
-# include "atmega256rfr2_rcb_xpro/atmega256rfr2_rcb_xpro.h"
-#elif BOARD == XMEGA_RF212B_ZIGBIT
-# include "xmega_rf212b_zigbit/xmega_rf212b_zigbit.h"
-#elif BOARD == SAM4E_XPLAINED_PRO
-# include "sam4e_xplained_pro/sam4e_xplained_pro.h"
-#elif BOARD == ATMEGA328P_XPLAINED_MINI
-# include "atmega328p_xplained_mini/atmega328p_xplained_mini.h"
-#elif BOARD == ATMEGA328PB_XPLAINED_MINI
-# include "atmega328pb_xplained_mini/atmega328pb_xplained_mini.h"
-#elif BOARD == SAMB11_XPLAINED_PRO
-# include "samb11_xplained_pro/samb11_xplained_pro.h"
-#elif BOARD == SAME70_XPLAINED
-# include "same70_xplained/same70_xplained.h"
-#elif BOARD == ATMEGA168PB_XPLAINED_MINI
-# include "atmega168pb_xplained_mini/atmega168pb_xplained_mini.h"
-#elif BOARD == ATMEGA324PB_XPLAINED_PRO
-# include "atmega324pb_xplained_pro/atmega324pb_xplained_pro.h"
-#elif BOARD == SAMB11ZR_XPLAINED_PRO
-# include "samb11zr_xplained_pro/samb11zr_xplained_pro.h"
-#elif BOARD == SIMULATOR_XMEGA_A1
-# include "simulator/xmega_a1/simulator_xmega_a1.h"
-#elif BOARD == AVR_SIMULATOR_UC3
-# include "avr_simulator_uc3/avr_simulator_uc3.h"
-#elif BOARD == SAMR21G18_MODULE
-# include "samr21g18_module/samr21g18_module.h"
-#elif BOARD == SAMR21B18_MODULE
-# include "samr21b18_module/samr21b18_module.h"
-#elif BOARD == SAMR34_XPLAINED_PRO && defined(__SAMR34J18B__)
-# include "samr34_xplained_pro/samr34_xplained_pro.h"
-#elif BOARD == WLR089_XPLAINED_PRO && defined(__WLR089U0__)
-# include "wlr089_xplained_pro/wlr089_xplained_pro.h"
-#elif BOARD == USER_BOARD
-// User-reserved area: #include the header file of your board here (if any).
-# include "user_board.h"
-#elif BOARD == DUMMY_BOARD
-# include "dummy/dummy_board.h"
-#elif BOARD == SAMB11ZR_SENSOR_TAG
-# include "samb11zr_sensor_tag/samb11zr_sensor_tag.h"
-#else
-# error No known Atmel board defined
-#endif
-
-#if (defined EXT_BOARD)
-# if EXT_BOARD == MC300
-# include "mc300/mc300.h"
-# elif (EXT_BOARD == SENSORS_XPLAINED_INERTIAL_1) || \
- (EXT_BOARD == SENSORS_XPLAINED_INERTIAL_2) || \
- (EXT_BOARD == SENSORS_XPLAINED_INERTIAL_A1) || \
- (EXT_BOARD == SENSORS_XPLAINED_PRESSURE_1) || \
- (EXT_BOARD == SENSORS_XPLAINED_LIGHTPROX_1) || \
- (EXT_BOARD == SENSORS_XPLAINED_BREADBOARD)
-# include "sensors_xplained/sensors_xplained.h"
-# elif EXT_BOARD == RZ600_AT86RF231
-# include "at86rf231/at86rf231.h"
-# elif EXT_BOARD == RZ600_AT86RF230B
-# include "at86rf230b/at86rf230b.h"
-# elif EXT_BOARD == RZ600_AT86RF212
-# include "at86rf212/at86rf212.h"
-# elif EXT_BOARD == SECURITY_XPLAINED
-# include "security_xplained.h"
-# elif EXT_BOARD == USER_EXT_BOARD
- // User-reserved area: #include the header file of your extension board here
- // (if any).
-# endif
-#endif
-
-
-#if (defined(__GNUC__) && defined(__AVR32__)) || (defined(__ICCAVR32__) || defined(__AAVR32__))
-#ifdef __AVR32_ABI_COMPILER__ // Automatically defined when compiling for AVR32, not when assembling.
-
-/*! \brief This function initializes the board target resources
- *
- * This function should be called to ensure proper initialization of the target
- * board hardware connected to the part.
- */
-extern void board_init(void);
-
-#endif // #ifdef __AVR32_ABI_COMPILER__
-#else
-/*! \brief This function initializes the board target resources
- *
- * This function should be called to ensure proper initialization of the target
- * board hardware connected to the part.
- */
-extern void board_init(void);
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-/**
- * \}
- */
-
-#endif // _BOARD_H_
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/common/utils/interrupt.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/common/utils/interrupt.h
deleted file mode 100644
index 450d0f9..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/common/utils/interrupt.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/**
- * \file
- *
- * \brief Global interrupt management for 8- and 32-bit AVR
- *
- * Copyright (c) 2010-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef UTILS_INTERRUPT_H
-#define UTILS_INTERRUPT_H
-
-#include
-
-#if XMEGA || MEGA
-# include "interrupt/interrupt_avr8.h"
-#elif UC3
-# include "interrupt/interrupt_avr32.h"
-#elif SAM || SAMB
-# include "interrupt/interrupt_sam_nvic.h"
-#else
-# error Unsupported device.
-#endif
-
-/**
- * \defgroup interrupt_group Global interrupt management
- *
- * This is a driver for global enabling and disabling of interrupts.
- *
- * @{
- */
-
-#if defined(__DOXYGEN__)
-/**
- * \def CONFIG_INTERRUPT_FORCE_INTC
- * \brief Force usage of the ASF INTC driver
- *
- * Predefine this symbol when preprocessing to force the use of the ASF INTC driver.
- * This is useful to ensure compatibility across compilers and shall be used only when required
- * by the application needs.
- */
-# define CONFIG_INTERRUPT_FORCE_INTC
-#endif
-
-//! \name Global interrupt flags
-//@{
-/**
- * \typedef irqflags_t
- * \brief Type used for holding state of interrupt flag
- */
-
-/**
- * \def cpu_irq_enable
- * \brief Enable interrupts globally
- */
-
-/**
- * \def cpu_irq_disable
- * \brief Disable interrupts globally
- */
-
-/**
- * \fn irqflags_t cpu_irq_save(void)
- * \brief Get and clear the global interrupt flags
- *
- * Use in conjunction with \ref cpu_irq_restore.
- *
- * \return Current state of interrupt flags.
- *
- * \note This function leaves interrupts disabled.
- */
-
-/**
- * \fn void cpu_irq_restore(irqflags_t flags)
- * \brief Restore global interrupt flags
- *
- * Use in conjunction with \ref cpu_irq_save.
- *
- * \param flags State to set interrupt flag to.
- */
-
-/**
- * \fn bool cpu_irq_is_enabled_flags(irqflags_t flags)
- * \brief Check if interrupts are globally enabled in supplied flags
- *
- * \param flags Currents state of interrupt flags.
- *
- * \return True if interrupts are enabled.
- */
-
-/**
- * \def cpu_irq_is_enabled
- * \brief Check if interrupts are globally enabled
- *
- * \return True if interrupts are enabled.
- */
-//@}
-
-//! @}
-
-/**
- * \ingroup interrupt_group
- * \defgroup interrupt_deprecated_group Deprecated interrupt definitions
- */
-
-#endif /* UTILS_INTERRUPT_H */
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/common/utils/interrupt/interrupt_sam_nvic.c b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/common/utils/interrupt/interrupt_sam_nvic.c
deleted file mode 100644
index 269b4ce..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/common/utils/interrupt/interrupt_sam_nvic.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/**
- * \file
- *
- * \brief Global interrupt management for SAM D20, SAM3 and SAM4 (NVIC based)
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#include "interrupt_sam_nvic.h"
-
-#if !defined(__DOXYGEN__)
-/* Deprecated - global flag to determine the global interrupt state. Required by
- * QTouch library, however new applications should use cpu_irq_is_enabled()
- * which probes the true global interrupt state from the CPU special registers.
- */
-volatile bool g_interrupt_enabled = true;
-#endif
-
-void cpu_irq_enter_critical(void)
-{
- if (cpu_irq_critical_section_counter == 0) {
- if (cpu_irq_is_enabled()) {
- cpu_irq_disable();
- cpu_irq_prev_interrupt_state = true;
- } else {
- /* Make sure the to save the prev state as false */
- cpu_irq_prev_interrupt_state = false;
- }
-
- }
-
- cpu_irq_critical_section_counter++;
-}
-
-void cpu_irq_leave_critical(void)
-{
- /* Check if the user is trying to leave a critical section when not in a critical section */
- Assert(cpu_irq_critical_section_counter > 0);
-
- cpu_irq_critical_section_counter--;
-
- /* Only enable global interrupts when the counter reaches 0 and the state of the global interrupt flag
- was enabled when entering critical state */
- if ((cpu_irq_critical_section_counter == 0) && (cpu_irq_prev_interrupt_state)) {
- cpu_irq_enable();
- }
-}
-
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/common/utils/interrupt/interrupt_sam_nvic.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/common/utils/interrupt/interrupt_sam_nvic.h
deleted file mode 100644
index 7d215cf..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/common/utils/interrupt/interrupt_sam_nvic.h
+++ /dev/null
@@ -1,179 +0,0 @@
-/**
- * \file
- *
- * \brief Global interrupt management for SAM D20, SAM3 and SAM4 (NVIC based)
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef UTILS_INTERRUPT_INTERRUPT_H
-#define UTILS_INTERRUPT_INTERRUPT_H
-
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \weakgroup interrupt_group
- *
- * @{
- */
-
-/**
- * \name Interrupt Service Routine definition
- *
- * @{
- */
-
-/**
- * \brief Define service routine
- *
- * \note For NVIC devices the interrupt service routines are predefined to
- * add to vector table in binary generation, so there is no service
- * register at run time. The routine collections are in exceptions.h.
- *
- * Usage:
- * \code
- ISR(foo_irq_handler)
- {
- // Function definition
- ...
- }
-\endcode
- *
- * \param func Name for the function.
- */
-# define ISR(func) \
- void func (void)
-
-/**
- * \brief Initialize interrupt vectors
- *
- * For NVIC the interrupt vectors are put in vector table. So nothing
- * to do to initialize them, except defined the vector function with
- * right name.
- *
- * This must be called prior to \ref irq_register_handler.
- */
-# define irq_initialize_vectors() \
- do { \
- } while(0)
-
-/**
- * \brief Register handler for interrupt
- *
- * For NVIC the interrupt vectors are put in vector table. So nothing
- * to do to register them, except defined the vector function with
- * right name.
- *
- * Usage:
- * \code
- irq_initialize_vectors();
- irq_register_handler(foo_irq_handler);
-\endcode
- *
- * \note The function \a func must be defined with the \ref ISR macro.
- * \note The functions prototypes can be found in the device exception header
- * files (exceptions.h).
- */
-# define irq_register_handler(int_num, int_prio) \
- NVIC_ClearPendingIRQ( (IRQn_Type)int_num); \
- NVIC_SetPriority( (IRQn_Type)int_num, int_prio); \
- NVIC_EnableIRQ( (IRQn_Type)int_num); \
-
-//@}
-
-# define cpu_irq_enable() \
- do { \
- g_interrupt_enabled = true; \
- __DMB(); \
- __enable_irq(); \
- } while (0)
-# define cpu_irq_disable() \
- do { \
- __disable_irq(); \
- __DMB(); \
- g_interrupt_enabled = false; \
- } while (0)
-
-typedef uint32_t irqflags_t;
-
-#if !defined(__DOXYGEN__)
-extern volatile bool g_interrupt_enabled;
-#endif
-
-#define cpu_irq_is_enabled() (__get_PRIMASK() == 0)
-
-static volatile uint32_t cpu_irq_critical_section_counter;
-static volatile bool cpu_irq_prev_interrupt_state;
-
-static inline irqflags_t cpu_irq_save(void)
-{
- volatile irqflags_t flags = cpu_irq_is_enabled();
- cpu_irq_disable();
- return flags;
-}
-
-static inline bool cpu_irq_is_enabled_flags(irqflags_t flags)
-{
- return (flags);
-}
-
-static inline void cpu_irq_restore(irqflags_t flags)
-{
- if (cpu_irq_is_enabled_flags(flags))
- cpu_irq_enable();
-}
-
-void cpu_irq_enter_critical(void);
-void cpu_irq_leave_critical(void);
-
-/**
- * \weakgroup interrupt_deprecated_group
- * @{
- */
-
-#define Enable_global_interrupt() cpu_irq_enable()
-#define Disable_global_interrupt() cpu_irq_disable()
-#define Is_global_interrupt_enabled() cpu_irq_is_enabled()
-
-//@}
-
-//@}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* UTILS_INTERRUPT_INTERRUPT_H */
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/common/utils/parts.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/common/utils/parts.h
deleted file mode 100644
index 85689a8..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/common/utils/parts.h
+++ /dev/null
@@ -1,1768 +0,0 @@
-/**
- * \file
- *
- * \brief Atmel part identification macros
- *
- * Copyright (c) 2012-2020 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef ATMEL_PARTS_H
-#define ATMEL_PARTS_H
-
-/**
- * \defgroup part_macros_group Atmel part identification macros
- *
- * This collection of macros identify which series and families that the various
- * Atmel parts belong to. These can be used to select part-dependent sections of
- * code at compile time.
- *
- * @{
- */
-
-/**
- * \name Convenience macros for part checking
- * @{
- */
-/* ! Check GCC and IAR part definition for 8-bit AVR */
-#define AVR8_PART_IS_DEFINED(part) \
- (defined(__ ## part ## __) || defined(__AVR_ ## part ## __))
-
-/* ! Check GCC and IAR part definition for 32-bit AVR */
-#define AVR32_PART_IS_DEFINED(part) \
- (defined(__AT32 ## part ## __) || defined(__AVR32_ ## part ## __))
-
-/* ! Check GCC and IAR part definition for SAM */
-#define SAM_PART_IS_DEFINED(part) (defined(__ ## part ## __))
-/** @} */
-
-/**
- * \defgroup uc3_part_macros_group AVR UC3 parts
- * @{
- */
-
-/**
- * \name AVR UC3 A series
- * @{
- */
-#define UC3A0 ( \
- AVR32_PART_IS_DEFINED(UC3A0128) || \
- AVR32_PART_IS_DEFINED(UC3A0256) || \
- AVR32_PART_IS_DEFINED(UC3A0512) \
- )
-
-#define UC3A1 ( \
- AVR32_PART_IS_DEFINED(UC3A1128) || \
- AVR32_PART_IS_DEFINED(UC3A1256) || \
- AVR32_PART_IS_DEFINED(UC3A1512) \
- )
-
-#define UC3A3 ( \
- AVR32_PART_IS_DEFINED(UC3A364) || \
- AVR32_PART_IS_DEFINED(UC3A364S) || \
- AVR32_PART_IS_DEFINED(UC3A3128) || \
- AVR32_PART_IS_DEFINED(UC3A3128S) || \
- AVR32_PART_IS_DEFINED(UC3A3256) || \
- AVR32_PART_IS_DEFINED(UC3A3256S) \
- )
-
-#define UC3A4 ( \
- AVR32_PART_IS_DEFINED(UC3A464) || \
- AVR32_PART_IS_DEFINED(UC3A464S) || \
- AVR32_PART_IS_DEFINED(UC3A4128) || \
- AVR32_PART_IS_DEFINED(UC3A4128S) || \
- AVR32_PART_IS_DEFINED(UC3A4256) || \
- AVR32_PART_IS_DEFINED(UC3A4256S) \
- )
-/** @} */
-
-/**
- * \name AVR UC3 B series
- * @{
- */
-#define UC3B0 ( \
- AVR32_PART_IS_DEFINED(UC3B064) || \
- AVR32_PART_IS_DEFINED(UC3B0128) || \
- AVR32_PART_IS_DEFINED(UC3B0256) || \
- AVR32_PART_IS_DEFINED(UC3B0512) \
- )
-
-#define UC3B1 ( \
- AVR32_PART_IS_DEFINED(UC3B164) || \
- AVR32_PART_IS_DEFINED(UC3B1128) || \
- AVR32_PART_IS_DEFINED(UC3B1256) || \
- AVR32_PART_IS_DEFINED(UC3B1512) \
- )
-/** @} */
-
-/**
- * \name AVR UC3 C series
- * @{
- */
-#define UC3C0 ( \
- AVR32_PART_IS_DEFINED(UC3C064C) || \
- AVR32_PART_IS_DEFINED(UC3C0128C) || \
- AVR32_PART_IS_DEFINED(UC3C0256C) || \
- AVR32_PART_IS_DEFINED(UC3C0512C) \
- )
-
-#define UC3C1 ( \
- AVR32_PART_IS_DEFINED(UC3C164C) || \
- AVR32_PART_IS_DEFINED(UC3C1128C) || \
- AVR32_PART_IS_DEFINED(UC3C1256C) || \
- AVR32_PART_IS_DEFINED(UC3C1512C) \
- )
-
-#define UC3C2 ( \
- AVR32_PART_IS_DEFINED(UC3C264C) || \
- AVR32_PART_IS_DEFINED(UC3C2128C) || \
- AVR32_PART_IS_DEFINED(UC3C2256C) || \
- AVR32_PART_IS_DEFINED(UC3C2512C) \
- )
-/** @} */
-
-/**
- * \name AVR UC3 D series
- * @{
- */
-#define UC3D3 ( \
- AVR32_PART_IS_DEFINED(UC64D3) || \
- AVR32_PART_IS_DEFINED(UC128D3) \
- )
-
-#define UC3D4 ( \
- AVR32_PART_IS_DEFINED(UC64D4) || \
- AVR32_PART_IS_DEFINED(UC128D4) \
- )
-/** @} */
-
-/**
- * \name AVR UC3 L series
- * @{
- */
-#define UC3L0 ( \
- AVR32_PART_IS_DEFINED(UC3L016) || \
- AVR32_PART_IS_DEFINED(UC3L032) || \
- AVR32_PART_IS_DEFINED(UC3L064) \
- )
-
-#define UC3L0128 ( \
- AVR32_PART_IS_DEFINED(UC3L0128) \
- )
-
-#define UC3L0256 ( \
- AVR32_PART_IS_DEFINED(UC3L0256) \
- )
-
-#define UC3L3 ( \
- AVR32_PART_IS_DEFINED(UC64L3U) || \
- AVR32_PART_IS_DEFINED(UC128L3U) || \
- AVR32_PART_IS_DEFINED(UC256L3U) \
- )
-
-#define UC3L4 ( \
- AVR32_PART_IS_DEFINED(UC64L4U) || \
- AVR32_PART_IS_DEFINED(UC128L4U) || \
- AVR32_PART_IS_DEFINED(UC256L4U) \
- )
-
-#define UC3L3_L4 (UC3L3 || UC3L4)
-/** @} */
-
-/**
- * \name AVR UC3 families
- * @{
- */
-/** AVR UC3 A family */
-#define UC3A (UC3A0 || UC3A1 || UC3A3 || UC3A4)
-
-/** AVR UC3 B family */
-#define UC3B (UC3B0 || UC3B1)
-
-/** AVR UC3 C family */
-#define UC3C (UC3C0 || UC3C1 || UC3C2)
-
-/** AVR UC3 D family */
-#define UC3D (UC3D3 || UC3D4)
-
-/** AVR UC3 L family */
-#define UC3L (UC3L0 || UC3L0128 || UC3L0256 || UC3L3_L4)
-/** @} */
-
-/** AVR UC3 product line */
-#define UC3 (UC3A || UC3B || UC3C || UC3D || UC3L)
-
-/** @} */
-
-/**
- * \defgroup xmega_part_macros_group AVR XMEGA parts
- * @{
- */
-
-/**
- * \name AVR XMEGA A series
- * @{
- */
-#define XMEGA_A1 ( \
- AVR8_PART_IS_DEFINED(ATxmega64A1) || \
- AVR8_PART_IS_DEFINED(ATxmega128A1) \
- )
-
-#define XMEGA_A3 ( \
- AVR8_PART_IS_DEFINED(ATxmega64A3) || \
- AVR8_PART_IS_DEFINED(ATxmega128A3) || \
- AVR8_PART_IS_DEFINED(ATxmega192A3) || \
- AVR8_PART_IS_DEFINED(ATxmega256A3) \
- )
-
-#define XMEGA_A3B ( \
- AVR8_PART_IS_DEFINED(ATxmega256A3B) \
- )
-
-#define XMEGA_A4 ( \
- AVR8_PART_IS_DEFINED(ATxmega16A4) || \
- AVR8_PART_IS_DEFINED(ATxmega32A4) \
- )
-/** @} */
-
-/**
- * \name AVR XMEGA AU series
- * @{
- */
-#define XMEGA_A1U ( \
- AVR8_PART_IS_DEFINED(ATxmega64A1U) || \
- AVR8_PART_IS_DEFINED(ATxmega128A1U) \
- )
-
-#define XMEGA_A3U ( \
- AVR8_PART_IS_DEFINED(ATxmega64A3U) || \
- AVR8_PART_IS_DEFINED(ATxmega128A3U) || \
- AVR8_PART_IS_DEFINED(ATxmega192A3U) || \
- AVR8_PART_IS_DEFINED(ATxmega256A3U) \
- )
-
-#define XMEGA_A3BU ( \
- AVR8_PART_IS_DEFINED(ATxmega256A3BU) \
- )
-
-#define XMEGA_A4U ( \
- AVR8_PART_IS_DEFINED(ATxmega16A4U) || \
- AVR8_PART_IS_DEFINED(ATxmega32A4U) || \
- AVR8_PART_IS_DEFINED(ATxmega64A4U) || \
- AVR8_PART_IS_DEFINED(ATxmega128A4U) \
- )
-/** @} */
-
-/**
- * \name AVR XMEGA B series
- * @{
- */
-#define XMEGA_B1 ( \
- AVR8_PART_IS_DEFINED(ATxmega64B1) || \
- AVR8_PART_IS_DEFINED(ATxmega128B1) \
- )
-
-#define XMEGA_B3 ( \
- AVR8_PART_IS_DEFINED(ATxmega64B3) || \
- AVR8_PART_IS_DEFINED(ATxmega128B3) \
- )
-/** @} */
-
-/**
- * \name AVR XMEGA C series
- * @{
- */
-#define XMEGA_C3 ( \
- AVR8_PART_IS_DEFINED(ATxmega384C3) || \
- AVR8_PART_IS_DEFINED(ATxmega256C3) || \
- AVR8_PART_IS_DEFINED(ATxmega192C3) || \
- AVR8_PART_IS_DEFINED(ATxmega128C3) || \
- AVR8_PART_IS_DEFINED(ATxmega64C3) || \
- AVR8_PART_IS_DEFINED(ATxmega32C3) \
- )
-
-#define XMEGA_C4 ( \
- AVR8_PART_IS_DEFINED(ATxmega32C4) || \
- AVR8_PART_IS_DEFINED(ATxmega16C4) \
- )
-/** @} */
-
-/**
- * \name AVR XMEGA D series
- * @{
- */
-#define XMEGA_D3 ( \
- AVR8_PART_IS_DEFINED(ATxmega32D3) || \
- AVR8_PART_IS_DEFINED(ATxmega64D3) || \
- AVR8_PART_IS_DEFINED(ATxmega128D3) || \
- AVR8_PART_IS_DEFINED(ATxmega192D3) || \
- AVR8_PART_IS_DEFINED(ATxmega256D3) || \
- AVR8_PART_IS_DEFINED(ATxmega384D3) \
- )
-
-#define XMEGA_D4 ( \
- AVR8_PART_IS_DEFINED(ATxmega16D4) || \
- AVR8_PART_IS_DEFINED(ATxmega32D4) || \
- AVR8_PART_IS_DEFINED(ATxmega64D4) || \
- AVR8_PART_IS_DEFINED(ATxmega128D4) \
- )
-/** @} */
-
-/**
- * \name AVR XMEGA E series
- * @{
- */
-#define XMEGA_E5 ( \
- AVR8_PART_IS_DEFINED(ATxmega8E5) || \
- AVR8_PART_IS_DEFINED(ATxmega16E5) || \
- AVR8_PART_IS_DEFINED(ATxmega32E5) \
- )
-/** @} */
-
-
-/**
- * \name AVR XMEGA families
- * @{
- */
-/** AVR XMEGA A family */
-#define XMEGA_A (XMEGA_A1 || XMEGA_A3 || XMEGA_A3B || XMEGA_A4)
-
-/** AVR XMEGA AU family */
-#define XMEGA_AU (XMEGA_A1U || XMEGA_A3U || XMEGA_A3BU || XMEGA_A4U)
-
-/** AVR XMEGA B family */
-#define XMEGA_B (XMEGA_B1 || XMEGA_B3)
-
-/** AVR XMEGA C family */
-#define XMEGA_C (XMEGA_C3 || XMEGA_C4)
-
-/** AVR XMEGA D family */
-#define XMEGA_D (XMEGA_D3 || XMEGA_D4)
-
-/** AVR XMEGA E family */
-#define XMEGA_E (XMEGA_E5)
-/** @} */
-
-
-/** AVR XMEGA product line */
-#define XMEGA (XMEGA_A || XMEGA_AU || XMEGA_B || XMEGA_C || XMEGA_D || XMEGA_E)
-
-/** @} */
-
-/**
- * \defgroup mega_part_macros_group megaAVR parts
- *
- * \note These megaAVR groupings are based on the groups in AVR Libc for the
- * part header files. They are not names of official megaAVR device series or
- * families.
- *
- * @{
- */
-
-/**
- * \name ATmegaxx0/xx1 subgroups
- * @{
- */
-#define MEGA_XX0 ( \
- AVR8_PART_IS_DEFINED(ATmega640) || \
- AVR8_PART_IS_DEFINED(ATmega1280) || \
- AVR8_PART_IS_DEFINED(ATmega2560) \
- )
-
-#define MEGA_XX1 ( \
- AVR8_PART_IS_DEFINED(ATmega1281) || \
- AVR8_PART_IS_DEFINED(ATmega2561) \
- )
-/** @} */
-
-/**
- * \name megaAVR groups
- * @{
- */
-/** ATmegaxx0/xx1 group */
-#define MEGA_XX0_1 (MEGA_XX0 || MEGA_XX1)
-
-/** ATmegaxx4 group */
-#define MEGA_XX4 ( \
- AVR8_PART_IS_DEFINED(ATmega164A) || \
- AVR8_PART_IS_DEFINED(ATmega164PA) || \
- AVR8_PART_IS_DEFINED(ATmega324A) || \
- AVR8_PART_IS_DEFINED(ATmega324PA) || \
- AVR8_PART_IS_DEFINED(ATmega324PB) || \
- AVR8_PART_IS_DEFINED(ATmega644) || \
- AVR8_PART_IS_DEFINED(ATmega644A) || \
- AVR8_PART_IS_DEFINED(ATmega644PA) || \
- AVR8_PART_IS_DEFINED(ATmega1284P) || \
- AVR8_PART_IS_DEFINED(ATmega128RFA1) \
- )
-
-/** ATmegaxx4 group */
-#define MEGA_XX4_A ( \
- AVR8_PART_IS_DEFINED(ATmega164A) || \
- AVR8_PART_IS_DEFINED(ATmega164PA) || \
- AVR8_PART_IS_DEFINED(ATmega324A) || \
- AVR8_PART_IS_DEFINED(ATmega324PA) || \
- AVR8_PART_IS_DEFINED(ATmega644A) || \
- AVR8_PART_IS_DEFINED(ATmega644PA) || \
- AVR8_PART_IS_DEFINED(ATmega1284P) \
- )
-
-/** ATmegaxx8 group */
-#define MEGA_XX8 ( \
- AVR8_PART_IS_DEFINED(ATmega48) || \
- AVR8_PART_IS_DEFINED(ATmega48A) || \
- AVR8_PART_IS_DEFINED(ATmega48PA) || \
- AVR8_PART_IS_DEFINED(ATmega48PB) || \
- AVR8_PART_IS_DEFINED(ATmega88) || \
- AVR8_PART_IS_DEFINED(ATmega88A) || \
- AVR8_PART_IS_DEFINED(ATmega88PA) || \
- AVR8_PART_IS_DEFINED(ATmega88PB) || \
- AVR8_PART_IS_DEFINED(ATmega168) || \
- AVR8_PART_IS_DEFINED(ATmega168A) || \
- AVR8_PART_IS_DEFINED(ATmega168PA) || \
- AVR8_PART_IS_DEFINED(ATmega168PB) || \
- AVR8_PART_IS_DEFINED(ATmega328) || \
- AVR8_PART_IS_DEFINED(ATmega328P) || \
- AVR8_PART_IS_DEFINED(ATmega328PB) \
- )
-
-/** ATmegaxx8A/P/PA group */
-#define MEGA_XX8_A ( \
- AVR8_PART_IS_DEFINED(ATmega48A) || \
- AVR8_PART_IS_DEFINED(ATmega48PA) || \
- AVR8_PART_IS_DEFINED(ATmega88A) || \
- AVR8_PART_IS_DEFINED(ATmega88PA) || \
- AVR8_PART_IS_DEFINED(ATmega168A) || \
- AVR8_PART_IS_DEFINED(ATmega168PA) || \
- AVR8_PART_IS_DEFINED(ATmega328P) \
- )
-
-/** ATmegaxx group */
-#define MEGA_XX ( \
- AVR8_PART_IS_DEFINED(ATmega16) || \
- AVR8_PART_IS_DEFINED(ATmega16A) || \
- AVR8_PART_IS_DEFINED(ATmega32) || \
- AVR8_PART_IS_DEFINED(ATmega32A) || \
- AVR8_PART_IS_DEFINED(ATmega64) || \
- AVR8_PART_IS_DEFINED(ATmega64A) || \
- AVR8_PART_IS_DEFINED(ATmega128) || \
- AVR8_PART_IS_DEFINED(ATmega128A) \
- )
-
-/** ATmegaxxA/P/PA group */
-#define MEGA_XX_A ( \
- AVR8_PART_IS_DEFINED(ATmega16A) || \
- AVR8_PART_IS_DEFINED(ATmega32A) || \
- AVR8_PART_IS_DEFINED(ATmega64A) || \
- AVR8_PART_IS_DEFINED(ATmega128A) \
- )
-/** ATmegaxxRFA1 group */
-#define MEGA_RFA1 ( \
- AVR8_PART_IS_DEFINED(ATmega128RFA1) \
- )
-
-/** ATmegaxxRFR2 group */
-#define MEGA_RFR2 ( \
- AVR8_PART_IS_DEFINED(ATmega64RFR2) || \
- AVR8_PART_IS_DEFINED(ATmega128RFR2) || \
- AVR8_PART_IS_DEFINED(ATmega256RFR2) || \
- AVR8_PART_IS_DEFINED(ATmega644RFR2) || \
- AVR8_PART_IS_DEFINED(ATmega1284RFR2) || \
- AVR8_PART_IS_DEFINED(ATmega2564RFR2) \
- )
-
-
-/** ATmegaxxRFxx group */
-#define MEGA_RF (MEGA_RFA1 || MEGA_RFR2)
-
-/**
- * \name ATmegaxx_un0/un1/un2 subgroups
- * @{
- */
-#define MEGA_XX_UN0 ( \
- AVR8_PART_IS_DEFINED(ATmega16) || \
- AVR8_PART_IS_DEFINED(ATmega16A) || \
- AVR8_PART_IS_DEFINED(ATmega32) || \
- AVR8_PART_IS_DEFINED(ATmega32A) \
- )
-
-/** ATmegaxx group without power reduction and
- * And interrupt sense register.
- */
-#define MEGA_XX_UN1 ( \
- AVR8_PART_IS_DEFINED(ATmega64) || \
- AVR8_PART_IS_DEFINED(ATmega64A) || \
- AVR8_PART_IS_DEFINED(ATmega128) || \
- AVR8_PART_IS_DEFINED(ATmega128A) \
- )
-
-/** ATmegaxx group without power reduction and
- * And interrupt sense register.
- */
-#define MEGA_XX_UN2 ( \
- AVR8_PART_IS_DEFINED(ATmega169P) || \
- AVR8_PART_IS_DEFINED(ATmega169PA) || \
- AVR8_PART_IS_DEFINED(ATmega329P) || \
- AVR8_PART_IS_DEFINED(ATmega329PA) \
- )
-
-/** Devices added to complete megaAVR offering.
- * Please do not use this group symbol as it is not intended
- * to be permanent: the devices should be regrouped.
- */
-#define MEGA_UNCATEGORIZED ( \
- AVR8_PART_IS_DEFINED(AT90CAN128) || \
- AVR8_PART_IS_DEFINED(AT90CAN32) || \
- AVR8_PART_IS_DEFINED(AT90CAN64) || \
- AVR8_PART_IS_DEFINED(AT90PWM1) || \
- AVR8_PART_IS_DEFINED(AT90PWM216) || \
- AVR8_PART_IS_DEFINED(AT90PWM2B) || \
- AVR8_PART_IS_DEFINED(AT90PWM316) || \
- AVR8_PART_IS_DEFINED(AT90PWM3B) || \
- AVR8_PART_IS_DEFINED(AT90PWM81) || \
- AVR8_PART_IS_DEFINED(AT90USB1286) || \
- AVR8_PART_IS_DEFINED(AT90USB1287) || \
- AVR8_PART_IS_DEFINED(AT90USB162) || \
- AVR8_PART_IS_DEFINED(AT90USB646) || \
- AVR8_PART_IS_DEFINED(AT90USB647) || \
- AVR8_PART_IS_DEFINED(AT90USB82) || \
- AVR8_PART_IS_DEFINED(ATmega1284) || \
- AVR8_PART_IS_DEFINED(ATmega162) || \
- AVR8_PART_IS_DEFINED(ATmega164P) || \
- AVR8_PART_IS_DEFINED(ATmega165A) || \
- AVR8_PART_IS_DEFINED(ATmega165P) || \
- AVR8_PART_IS_DEFINED(ATmega165PA) || \
- AVR8_PART_IS_DEFINED(ATmega168P) || \
- AVR8_PART_IS_DEFINED(ATmega169A) || \
- AVR8_PART_IS_DEFINED(ATmega16M1) || \
- AVR8_PART_IS_DEFINED(ATmega16U2) || \
- AVR8_PART_IS_DEFINED(ATmega16U4) || \
- AVR8_PART_IS_DEFINED(ATmega256RFA2) || \
- AVR8_PART_IS_DEFINED(ATmega324P) || \
- AVR8_PART_IS_DEFINED(ATmega325) || \
- AVR8_PART_IS_DEFINED(ATmega3250) || \
- AVR8_PART_IS_DEFINED(ATmega3250A) || \
- AVR8_PART_IS_DEFINED(ATmega3250P) || \
- AVR8_PART_IS_DEFINED(ATmega3250PA) || \
- AVR8_PART_IS_DEFINED(ATmega325A) || \
- AVR8_PART_IS_DEFINED(ATmega325P) || \
- AVR8_PART_IS_DEFINED(ATmega325PA) || \
- AVR8_PART_IS_DEFINED(ATmega329) || \
- AVR8_PART_IS_DEFINED(ATmega3290) || \
- AVR8_PART_IS_DEFINED(ATmega3290A) || \
- AVR8_PART_IS_DEFINED(ATmega3290P) || \
- AVR8_PART_IS_DEFINED(ATmega3290PA) || \
- AVR8_PART_IS_DEFINED(ATmega329A) || \
- AVR8_PART_IS_DEFINED(ATmega32M1) || \
- AVR8_PART_IS_DEFINED(ATmega32U2) || \
- AVR8_PART_IS_DEFINED(ATmega32U4) || \
- AVR8_PART_IS_DEFINED(ATmega48P) || \
- AVR8_PART_IS_DEFINED(ATmega644P) || \
- AVR8_PART_IS_DEFINED(ATmega645) || \
- AVR8_PART_IS_DEFINED(ATmega6450) || \
- AVR8_PART_IS_DEFINED(ATmega6450A) || \
- AVR8_PART_IS_DEFINED(ATmega6450P) || \
- AVR8_PART_IS_DEFINED(ATmega645A) || \
- AVR8_PART_IS_DEFINED(ATmega645P) || \
- AVR8_PART_IS_DEFINED(ATmega649) || \
- AVR8_PART_IS_DEFINED(ATmega6490) || \
- AVR8_PART_IS_DEFINED(ATmega6490A) || \
- AVR8_PART_IS_DEFINED(ATmega6490P) || \
- AVR8_PART_IS_DEFINED(ATmega649A) || \
- AVR8_PART_IS_DEFINED(ATmega649P) || \
- AVR8_PART_IS_DEFINED(ATmega64M1) || \
- AVR8_PART_IS_DEFINED(ATmega64RFA2) || \
- AVR8_PART_IS_DEFINED(ATmega8) || \
- AVR8_PART_IS_DEFINED(ATmega8515) || \
- AVR8_PART_IS_DEFINED(ATmega8535) || \
- AVR8_PART_IS_DEFINED(ATmega88P) || \
- AVR8_PART_IS_DEFINED(ATmega8A) || \
- AVR8_PART_IS_DEFINED(ATmega8U2) \
- )
-
-/** Unspecified group */
-#define MEGA_UNSPECIFIED (MEGA_XX_UN0 || MEGA_XX_UN1 || MEGA_XX_UN2 || \
- MEGA_UNCATEGORIZED)
-
-/** @} */
-
-/** megaAVR product line */
-#define MEGA (MEGA_XX0_1 || MEGA_XX4 || MEGA_XX8 || MEGA_XX || MEGA_RF || \
- MEGA_UNSPECIFIED)
-
-/** @} */
-
-/**
- * \defgroup sam_part_macros_group SAM parts
- * @{
- */
-
-/**
- * \name SAM3S series
- * @{
- */
-#define SAM3S1 ( \
- SAM_PART_IS_DEFINED(SAM3S1A) || \
- SAM_PART_IS_DEFINED(SAM3S1B) || \
- SAM_PART_IS_DEFINED(SAM3S1C) \
- )
-
-#define SAM3S2 ( \
- SAM_PART_IS_DEFINED(SAM3S2A) || \
- SAM_PART_IS_DEFINED(SAM3S2B) || \
- SAM_PART_IS_DEFINED(SAM3S2C) \
- )
-
-#define SAM3S4 ( \
- SAM_PART_IS_DEFINED(SAM3S4A) || \
- SAM_PART_IS_DEFINED(SAM3S4B) || \
- SAM_PART_IS_DEFINED(SAM3S4C) \
- )
-
-#define SAM3S8 ( \
- SAM_PART_IS_DEFINED(SAM3S8B) || \
- SAM_PART_IS_DEFINED(SAM3S8C) \
- )
-
-#define SAM3SD8 ( \
- SAM_PART_IS_DEFINED(SAM3SD8B) || \
- SAM_PART_IS_DEFINED(SAM3SD8C) \
- )
-/** @} */
-
-/**
- * \name SAM3U series
- * @{
- */
-#define SAM3U1 ( \
- SAM_PART_IS_DEFINED(SAM3U1C) || \
- SAM_PART_IS_DEFINED(SAM3U1E) \
- )
-
-#define SAM3U2 ( \
- SAM_PART_IS_DEFINED(SAM3U2C) || \
- SAM_PART_IS_DEFINED(SAM3U2E) \
- )
-
-#define SAM3U4 ( \
- SAM_PART_IS_DEFINED(SAM3U4C) || \
- SAM_PART_IS_DEFINED(SAM3U4E) \
- )
-/** @} */
-
-/**
- * \name SAM3N series
- * @{
- */
-#define SAM3N00 ( \
- SAM_PART_IS_DEFINED(SAM3N00A) || \
- SAM_PART_IS_DEFINED(SAM3N00B) \
- )
-
-#define SAM3N0 ( \
- SAM_PART_IS_DEFINED(SAM3N0A) || \
- SAM_PART_IS_DEFINED(SAM3N0B) || \
- SAM_PART_IS_DEFINED(SAM3N0C) \
- )
-
-#define SAM3N1 ( \
- SAM_PART_IS_DEFINED(SAM3N1A) || \
- SAM_PART_IS_DEFINED(SAM3N1B) || \
- SAM_PART_IS_DEFINED(SAM3N1C) \
- )
-
-#define SAM3N2 ( \
- SAM_PART_IS_DEFINED(SAM3N2A) || \
- SAM_PART_IS_DEFINED(SAM3N2B) || \
- SAM_PART_IS_DEFINED(SAM3N2C) \
- )
-
-#define SAM3N4 ( \
- SAM_PART_IS_DEFINED(SAM3N4A) || \
- SAM_PART_IS_DEFINED(SAM3N4B) || \
- SAM_PART_IS_DEFINED(SAM3N4C) \
- )
-/** @} */
-
-/**
- * \name SAM3X series
- * @{
- */
-#define SAM3X4 ( \
- SAM_PART_IS_DEFINED(SAM3X4C) || \
- SAM_PART_IS_DEFINED(SAM3X4E) \
- )
-
-#define SAM3X8 ( \
- SAM_PART_IS_DEFINED(SAM3X8C) || \
- SAM_PART_IS_DEFINED(SAM3X8E) || \
- SAM_PART_IS_DEFINED(SAM3X8H) \
- )
-/** @} */
-
-/**
- * \name SAM3A series
- * @{
- */
-#define SAM3A4 ( \
- SAM_PART_IS_DEFINED(SAM3A4C) \
- )
-
-#define SAM3A8 ( \
- SAM_PART_IS_DEFINED(SAM3A8C) \
- )
-/** @} */
-
-/**
- * \name SAM4S series
- * @{
- */
-#define SAM4S2 ( \
- SAM_PART_IS_DEFINED(SAM4S2A) || \
- SAM_PART_IS_DEFINED(SAM4S2B) || \
- SAM_PART_IS_DEFINED(SAM4S2C) \
- )
-
-#define SAM4S4 ( \
- SAM_PART_IS_DEFINED(SAM4S4A) || \
- SAM_PART_IS_DEFINED(SAM4S4B) || \
- SAM_PART_IS_DEFINED(SAM4S4C) \
- )
-
-#define SAM4S8 ( \
- SAM_PART_IS_DEFINED(SAM4S8B) || \
- SAM_PART_IS_DEFINED(SAM4S8C) \
- )
-
-#define SAM4S16 ( \
- SAM_PART_IS_DEFINED(SAM4S16B) || \
- SAM_PART_IS_DEFINED(SAM4S16C) \
- )
-
-#define SAM4SA16 ( \
- SAM_PART_IS_DEFINED(SAM4SA16B) || \
- SAM_PART_IS_DEFINED(SAM4SA16C) \
- )
-
-#define SAM4SD16 ( \
- SAM_PART_IS_DEFINED(SAM4SD16B) || \
- SAM_PART_IS_DEFINED(SAM4SD16C) \
- )
-
-#define SAM4SD32 ( \
- SAM_PART_IS_DEFINED(SAM4SD32B) || \
- SAM_PART_IS_DEFINED(SAM4SD32C) \
- )
-/** @} */
-
-/**
- * \name SAM4L series
- * @{
- */
-#define SAM4LS ( \
- SAM_PART_IS_DEFINED(SAM4LS2A) || \
- SAM_PART_IS_DEFINED(SAM4LS2B) || \
- SAM_PART_IS_DEFINED(SAM4LS2C) || \
- SAM_PART_IS_DEFINED(SAM4LS4A) || \
- SAM_PART_IS_DEFINED(SAM4LS4B) || \
- SAM_PART_IS_DEFINED(SAM4LS4C) || \
- SAM_PART_IS_DEFINED(SAM4LS8A) || \
- SAM_PART_IS_DEFINED(SAM4LS8B) || \
- SAM_PART_IS_DEFINED(SAM4LS8C) \
- )
-
-#define SAM4LC ( \
- SAM_PART_IS_DEFINED(SAM4LC2A) || \
- SAM_PART_IS_DEFINED(SAM4LC2B) || \
- SAM_PART_IS_DEFINED(SAM4LC2C) || \
- SAM_PART_IS_DEFINED(SAM4LC4A) || \
- SAM_PART_IS_DEFINED(SAM4LC4B) || \
- SAM_PART_IS_DEFINED(SAM4LC4C) || \
- SAM_PART_IS_DEFINED(SAM4LC8A) || \
- SAM_PART_IS_DEFINED(SAM4LC8B) || \
- SAM_PART_IS_DEFINED(SAM4LC8C) \
- )
-/** @} */
-
-/**
- * \name SAMD20 series
- * @{
- */
-#define SAMD20J ( \
- SAM_PART_IS_DEFINED(SAMD20J14) || \
- SAM_PART_IS_DEFINED(SAMD20J15) || \
- SAM_PART_IS_DEFINED(SAMD20J16) || \
- SAM_PART_IS_DEFINED(SAMD20J14B) || \
- SAM_PART_IS_DEFINED(SAMD20J15B) || \
- SAM_PART_IS_DEFINED(SAMD20J16B) || \
- SAM_PART_IS_DEFINED(SAMD20J17) || \
- SAM_PART_IS_DEFINED(SAMD20J18) \
- )
-
-#define SAMD20G ( \
- SAM_PART_IS_DEFINED(SAMD20G14) || \
- SAM_PART_IS_DEFINED(SAMD20G15) || \
- SAM_PART_IS_DEFINED(SAMD20G16) || \
- SAM_PART_IS_DEFINED(SAMD20G14B) || \
- SAM_PART_IS_DEFINED(SAMD20G15B) || \
- SAM_PART_IS_DEFINED(SAMD20G16B) || \
- SAM_PART_IS_DEFINED(SAMD20G17) || \
- SAM_PART_IS_DEFINED(SAMD20G17U) || \
- SAM_PART_IS_DEFINED(SAMD20G18) || \
- SAM_PART_IS_DEFINED(SAMD20G18U) \
- )
-
-#define SAMD20E ( \
- SAM_PART_IS_DEFINED(SAMD20E14) || \
- SAM_PART_IS_DEFINED(SAMD20E15) || \
- SAM_PART_IS_DEFINED(SAMD20E16) || \
- SAM_PART_IS_DEFINED(SAMD20E14B) || \
- SAM_PART_IS_DEFINED(SAMD20E15B) || \
- SAM_PART_IS_DEFINED(SAMD20E16B) || \
- SAM_PART_IS_DEFINED(SAMD20E17) || \
- SAM_PART_IS_DEFINED(SAMD20E18) \
- )
-
-/** @} */
-
-/**
- * \name SAMD21 series
- * @{
- */
-#define SAMD21J ( \
- SAM_PART_IS_DEFINED(SAMD21J15A) || \
- SAM_PART_IS_DEFINED(SAMD21J16A) || \
- SAM_PART_IS_DEFINED(SAMD21J17A) || \
- SAM_PART_IS_DEFINED(SAMD21J18A) || \
- SAM_PART_IS_DEFINED(SAMD21J15B) || \
- SAM_PART_IS_DEFINED(SAMD21J16B) || \
- SAM_PART_IS_DEFINED(SAMD21J17D) \
- )
-
-#define SAMD21G ( \
- SAM_PART_IS_DEFINED(SAMD21G15A) || \
- SAM_PART_IS_DEFINED(SAMD21G16A) || \
- SAM_PART_IS_DEFINED(SAMD21G17A) || \
- SAM_PART_IS_DEFINED(SAMD21G17AU) || \
- SAM_PART_IS_DEFINED(SAMD21G18A) || \
- SAM_PART_IS_DEFINED(SAMD21G18AU) || \
- SAM_PART_IS_DEFINED(SAMD21G15B) || \
- SAM_PART_IS_DEFINED(SAMD21G16B) || \
- SAM_PART_IS_DEFINED(SAMD21G15L) || \
- SAM_PART_IS_DEFINED(SAMD21G16L) || \
- SAM_PART_IS_DEFINED(SAMD21G17D) || \
- SAM_PART_IS_DEFINED(SAMD21G17L) \
- )
-
-#define SAMD21GXXL ( \
- SAM_PART_IS_DEFINED(SAMD21G15L) || \
- SAM_PART_IS_DEFINED(SAMD21G16L) || \
- SAM_PART_IS_DEFINED(SAMD21G17L) \
- )
-
-#define SAMD21E ( \
- SAM_PART_IS_DEFINED(SAMD21E15A) || \
- SAM_PART_IS_DEFINED(SAMD21E16A) || \
- SAM_PART_IS_DEFINED(SAMD21E17A) || \
- SAM_PART_IS_DEFINED(SAMD21E18A) || \
- SAM_PART_IS_DEFINED(SAMD21E15B) || \
- SAM_PART_IS_DEFINED(SAMD21E15BU) || \
- SAM_PART_IS_DEFINED(SAMD21E16B) || \
- SAM_PART_IS_DEFINED(SAMD21E16BU) || \
- SAM_PART_IS_DEFINED(SAMD21E15L) || \
- SAM_PART_IS_DEFINED(SAMD21E16L) || \
- SAM_PART_IS_DEFINED(SAMD21E17D) || \
- SAM_PART_IS_DEFINED(SAMD21E17DU) || \
- SAM_PART_IS_DEFINED(SAMD21E17L) \
- )
-
-#define SAMD21EXXL ( \
- SAM_PART_IS_DEFINED(SAMD21E15L) || \
- SAM_PART_IS_DEFINED(SAMD21E16L) || \
- SAM_PART_IS_DEFINED(SAMD21E17L) \
- )
-
-/** @} */
-
-/**
- * \name SAMR21 series
- * @{
- */
-#define SAMR21G ( \
- SAM_PART_IS_DEFINED(SAMR21G16A) || \
- SAM_PART_IS_DEFINED(SAMR21G17A) || \
- SAM_PART_IS_DEFINED(SAMR21G18A) \
- )
-
-#define SAMR21E ( \
- SAM_PART_IS_DEFINED(SAMR21E16A) || \
- SAM_PART_IS_DEFINED(SAMR21E17A) || \
- SAM_PART_IS_DEFINED(SAMR21E18A) || \
- SAM_PART_IS_DEFINED(SAMR21E19A) \
- )
-/** @} */
-
-/**
- * \name SAMR30 series
- * @{
- */
-#define SAMR30G ( \
- SAM_PART_IS_DEFINED(SAMR30G18A) \
- )
-
-#define SAMR30E ( \
- SAM_PART_IS_DEFINED(SAMR30E18A) \
- )
-/** @} */
-
-/**
- * \name SAMR34 series
- * @{
- */
-#define SAMR34J ( \
- SAM_PART_IS_DEFINED(SAMR34J18A) || \
- SAM_PART_IS_DEFINED(SAMR34J17A) || \
- SAM_PART_IS_DEFINED(SAMR34J16A) || \
- SAM_PART_IS_DEFINED(SAMR34J18B) || \
- SAM_PART_IS_DEFINED(SAMR34J17B) || \
- SAM_PART_IS_DEFINED(SAMR34J16B) \
- )
-
-/* Group for SAMR34 A variant: SAMR34J [16/17/18]A */
-#define SAMR34JXXA ( \
- SAM_PART_IS_DEFINED(SAMR34J18A) || \
- SAM_PART_IS_DEFINED(SAMR34J17A) || \
- SAM_PART_IS_DEFINED(SAMR34J16A) \
-)
-/* Group for SAMR34 B variant: SAMR34J [16/17/18]B */
-#define SAMR34JXXB ( \
- SAM_PART_IS_DEFINED(SAMR34J18B) || \
- SAM_PART_IS_DEFINED(SAMR34J17B) || \
- SAM_PART_IS_DEFINED(SAMR34J16B) \
-)
-
-/* Group for SAMR35 B variant: SAMR35J [16/17/18]B */
-#define SAMR35J ( \
- SAM_PART_IS_DEFINED(SAMR35J18B) || \
- SAM_PART_IS_DEFINED(SAMR35J17B) || \
- SAM_PART_IS_DEFINED(SAMR35J16B) \
-)
-
-/* Group for SAMR35 B variant: SAMR35J [16/17/18]B */
-#define SAMR35JXXB ( \
- SAM_PART_IS_DEFINED(SAMR35J18B) || \
- SAM_PART_IS_DEFINED(SAMR35J17B) || \
- SAM_PART_IS_DEFINED(SAMR35J16B) \
-)
-
-/* Group for SAMR35 B variant: SAMR35J [16/17/18]B */
-#define WLR089U ( \
- SAM_PART_IS_DEFINED(WLR089U0) \
-)
-
-/* Group for WLR089U variant: SAMR35U [0] */
-#define WLR089U0 ( \
- SAM_PART_IS_DEFINED(WLR089U0) \
-)
-
-/**
- * \name SAMB11 series
- * @{
- */
-#define SAMB11G ( \
- SAM_PART_IS_DEFINED(SAMB11G18A) || \
- SAM_PART_IS_DEFINED(SAMB11ZR) \
- )
-#define BTLC1000 ( \
- SAM_PART_IS_DEFINED(BTLC1000WLCSP) \
- )
-
-/** @} */
-
-/**
- * \name SAMD09 series
- * @{
- */
-#define SAMD09C ( \
- SAM_PART_IS_DEFINED(SAMD09C13A) \
- )
-
-#define SAMD09D ( \
- SAM_PART_IS_DEFINED(SAMD09D14A) \
- )
-/** @} */
-
-/**
- * \name SAMD10 series
- * @{
- */
-#define SAMD10C ( \
- SAM_PART_IS_DEFINED(SAMD10C12A) || \
- SAM_PART_IS_DEFINED(SAMD10C13A) || \
- SAM_PART_IS_DEFINED(SAMD10C14A) \
- )
-
-#define SAMD10DS ( \
- SAM_PART_IS_DEFINED(SAMD10D12AS) || \
- SAM_PART_IS_DEFINED(SAMD10D13AS) || \
- SAM_PART_IS_DEFINED(SAMD10D14AS) \
- )
-
-#define SAMD10DM ( \
- SAM_PART_IS_DEFINED(SAMD10D12AM) || \
- SAM_PART_IS_DEFINED(SAMD10D13AM) || \
- SAM_PART_IS_DEFINED(SAMD10D14AM) \
- )
-
-#define SAMD10DU ( \
- SAM_PART_IS_DEFINED(SAMD10D14AU) \
- )
-/** @} */
-
-/**
- * \name SAMD11 series
- * @{
- */
-#define SAMD11C ( \
- SAM_PART_IS_DEFINED(SAMD11C14A) \
- )
-
-#define SAMD11DS ( \
- SAM_PART_IS_DEFINED(SAMD11D14AS) \
- )
-
-#define SAMD11DM ( \
- SAM_PART_IS_DEFINED(SAMD11D14AM) \
- )
-
-#define SAMD11DU ( \
- SAM_PART_IS_DEFINED(SAMD11D14AU) \
- )
-/** @} */
-
-/**
- * \name SAML21 series
- * @{
- */
-#define SAML21E ( \
- SAM_PART_IS_DEFINED(SAML21E18A) || \
- SAM_PART_IS_DEFINED(SAML21E15B) || \
- SAM_PART_IS_DEFINED(SAML21E16B) || \
- SAM_PART_IS_DEFINED(SAML21E17B) || \
- SAM_PART_IS_DEFINED(SAML21E18B) \
- )
-
-#define SAML21G ( \
- SAM_PART_IS_DEFINED(SAML21G18A) || \
- SAM_PART_IS_DEFINED(SAML21G16B) || \
- SAM_PART_IS_DEFINED(SAML21G17B) || \
- SAM_PART_IS_DEFINED(SAML21G18B) \
- )
-
-#define SAML21J ( \
- SAM_PART_IS_DEFINED(SAML21J18A) || \
- SAM_PART_IS_DEFINED(SAML21J16B) || \
- SAM_PART_IS_DEFINED(SAML21J17B) || \
- SAM_PART_IS_DEFINED(SAML21J18B) \
- )
-
-/* Group for SAML21 A variant: SAML21[E/G/J][18]A */
-#define SAML21XXXA ( \
- SAM_PART_IS_DEFINED(SAML21E18A) || \
- SAM_PART_IS_DEFINED(SAML21G18A) || \
- SAM_PART_IS_DEFINED(SAML21J18A) \
- )
-
-/* Group for SAML21 B variant: SAML21[E/G/J][15/16/1718]B */
-#define SAML21XXXB ( \
- SAM_PART_IS_DEFINED(SAML21E15B) || \
- SAM_PART_IS_DEFINED(SAML21E16B) || \
- SAM_PART_IS_DEFINED(SAML21E17B) || \
- SAM_PART_IS_DEFINED(SAML21E18B) || \
- SAM_PART_IS_DEFINED(SAML21G16B) || \
- SAM_PART_IS_DEFINED(SAML21G17B) || \
- SAM_PART_IS_DEFINED(SAML21G18B) || \
- SAM_PART_IS_DEFINED(SAML21J16B) || \
- SAM_PART_IS_DEFINED(SAML21J17B) || \
- SAM_PART_IS_DEFINED(SAML21J18B) \
- )
-
-/** @} */
-
-/**
- * \name SAML22 series
- * @{
- */
-#define SAML22N ( \
- SAM_PART_IS_DEFINED(SAML22N16A) || \
- SAM_PART_IS_DEFINED(SAML22N17A) || \
- SAM_PART_IS_DEFINED(SAML22N18A) \
- )
-
-#define SAML22G ( \
- SAM_PART_IS_DEFINED(SAML22G16A) || \
- SAM_PART_IS_DEFINED(SAML22G17A) || \
- SAM_PART_IS_DEFINED(SAML22G18A) \
- )
-
-#define SAML22J ( \
- SAM_PART_IS_DEFINED(SAML22J16A) || \
- SAM_PART_IS_DEFINED(SAML22J17A) || \
- SAM_PART_IS_DEFINED(SAML22J18A) \
- )
-/** @} */
-
-/**
- * \name SAMDA1 series
- * @{
- */
-#define SAMDA1J ( \
- SAM_PART_IS_DEFINED(SAMDA1J14A) || \
- SAM_PART_IS_DEFINED(SAMDA1J15B) || \
- SAM_PART_IS_DEFINED(SAMDA1J15A) || \
- SAM_PART_IS_DEFINED(SAMDA1J15B) || \
- SAM_PART_IS_DEFINED(SAMDA1J16A) || \
- SAM_PART_IS_DEFINED(SAMDA1J16B) \
- )
-
-#define SAMDA1G ( \
- SAM_PART_IS_DEFINED(SAMDA1G14A) || \
- SAM_PART_IS_DEFINED(SAMDA1G14B) || \
- SAM_PART_IS_DEFINED(SAMDA1G15A) || \
- SAM_PART_IS_DEFINED(SAMDA1G15B) || \
- SAM_PART_IS_DEFINED(SAMDA1G16A) || \
- SAM_PART_IS_DEFINED(SAMDA1G16B) \
- )
-
-#define SAMDA1E ( \
- SAM_PART_IS_DEFINED(SAMDA1E14A) || \
- SAM_PART_IS_DEFINED(SAMDA1E14B) || \
- SAM_PART_IS_DEFINED(SAMDA1E15A) || \
- SAM_PART_IS_DEFINED(SAMDA1E15B) || \
- SAM_PART_IS_DEFINED(SAMDA1E16A) || \
- SAM_PART_IS_DEFINED(SAMDA1E16B) \
- )
-/** @} */
-
-/**
- * \name SAMHA1 series
- * @{
- */
-#define SAMHA1G ( \
- SAM_PART_IS_DEFINED(SAMHA1G14A) || \
- SAM_PART_IS_DEFINED(SAMHA1G15A) || \
- SAM_PART_IS_DEFINED(SAMHA1G16A) || \
- SAM_PART_IS_DEFINED(SAMHA1G14AB) || \
- SAM_PART_IS_DEFINED(SAMHA1G15AB) || \
- SAM_PART_IS_DEFINED(SAMHA1G16AB) \
- )
-
-#define SAMHA1E ( \
- SAM_PART_IS_DEFINED(SAMHA1E14A) || \
- SAM_PART_IS_DEFINED(SAMHA1E15A) || \
- SAM_PART_IS_DEFINED(SAMHA1E16A) || \
- SAM_PART_IS_DEFINED(SAMHA1E14AB) || \
- SAM_PART_IS_DEFINED(SAMHA1E15AB) || \
- SAM_PART_IS_DEFINED(SAMHA1E16AB) \
- )
-
-/** @} */
-
-/**
- * \name SAMHA0 series
- * @{
- */
-#define SAMHA0G ( \
- SAM_PART_IS_DEFINED(SAMHA0G14AB) || \
- SAM_PART_IS_DEFINED(SAMHA0G15AB) || \
- SAM_PART_IS_DEFINED(SAMHA0G16AB) \
- )
-
-#define SAMHA0E ( \
- SAM_PART_IS_DEFINED(SAMHA0E14AB) || \
- SAM_PART_IS_DEFINED(SAMHA0E15AB) || \
- SAM_PART_IS_DEFINED(SAMHA0E16AB) \
- )
-
-/** @} */
-
-/**
- * \name SAMC20 series
- * @{
- */
-#define SAMC20E ( \
- SAM_PART_IS_DEFINED(SAMC20E15A) || \
- SAM_PART_IS_DEFINED(SAMC20E16A) || \
- SAM_PART_IS_DEFINED(SAMC20E17A) || \
- SAM_PART_IS_DEFINED(SAMC20E18A) \
- )
-
-#define SAMC20G ( \
- SAM_PART_IS_DEFINED(SAMC20G15A) || \
- SAM_PART_IS_DEFINED(SAMC20G16A) || \
- SAM_PART_IS_DEFINED(SAMC20G17A) || \
- SAM_PART_IS_DEFINED(SAMC20G18A) \
- )
-
-#define SAMC20J ( \
- SAM_PART_IS_DEFINED(SAMC20J15A) || \
- SAM_PART_IS_DEFINED(SAMC20J16A) || \
- SAM_PART_IS_DEFINED(SAMC20J17A) || \
- SAM_PART_IS_DEFINED(SAMC20J18A) \
- )
-/** @} */
-
-/**
- * \name SAMC21 series
- * @{
- */
-#define SAMC21E ( \
- SAM_PART_IS_DEFINED(SAMC21E15A) || \
- SAM_PART_IS_DEFINED(SAMC21E16A) || \
- SAM_PART_IS_DEFINED(SAMC21E17A) || \
- SAM_PART_IS_DEFINED(SAMC21E18A) \
- )
-
-#define SAMC21G ( \
- SAM_PART_IS_DEFINED(SAMC21G15A) || \
- SAM_PART_IS_DEFINED(SAMC21G16A) || \
- SAM_PART_IS_DEFINED(SAMC21G17A) || \
- SAM_PART_IS_DEFINED(SAMC21G18A) \
- )
-
-#define SAMC21J ( \
- SAM_PART_IS_DEFINED(SAMC21J15A) || \
- SAM_PART_IS_DEFINED(SAMC21J16A) || \
- SAM_PART_IS_DEFINED(SAMC21J17A) || \
- SAM_PART_IS_DEFINED(SAMC21J18A) \
- )
-/** @} */
-
-/**
- * \name SAM4E series
- * @{
- */
-#define SAM4E8 ( \
- SAM_PART_IS_DEFINED(SAM4E8C) || \
- SAM_PART_IS_DEFINED(SAM4E8CB) || \
- SAM_PART_IS_DEFINED(SAM4E8E) \
- )
-
-#define SAM4E16 ( \
- SAM_PART_IS_DEFINED(SAM4E16C) || \
- SAM_PART_IS_DEFINED(SAM4E16CB) || \
- SAM_PART_IS_DEFINED(SAM4E16E) \
- )
-/** @} */
-
-/**
- * \name SAM4N series
- * @{
- */
-#define SAM4N8 ( \
- SAM_PART_IS_DEFINED(SAM4N8A) || \
- SAM_PART_IS_DEFINED(SAM4N8B) || \
- SAM_PART_IS_DEFINED(SAM4N8C) \
- )
-
-#define SAM4N16 ( \
- SAM_PART_IS_DEFINED(SAM4N16B) || \
- SAM_PART_IS_DEFINED(SAM4N16C) \
- )
-/** @} */
-
-/**
- * \name SAM4C series
- * @{
- */
-#define SAM4C4_0 ( \
- SAM_PART_IS_DEFINED(SAM4C4C_0) \
- )
-
-#define SAM4C4_1 ( \
- SAM_PART_IS_DEFINED(SAM4C4C_1) \
- )
-
-#define SAM4C4 (SAM4C4_0 || SAM4C4_1)
-
-#define SAM4C8_0 ( \
- SAM_PART_IS_DEFINED(SAM4C8C_0) \
- )
-
-#define SAM4C8_1 ( \
- SAM_PART_IS_DEFINED(SAM4C8C_1) \
- )
-
-#define SAM4C8 (SAM4C8_0 || SAM4C8_1)
-
-#define SAM4C16_0 ( \
- SAM_PART_IS_DEFINED(SAM4C16C_0) \
- )
-
-#define SAM4C16_1 ( \
- SAM_PART_IS_DEFINED(SAM4C16C_1) \
- )
-
-#define SAM4C16 (SAM4C16_0 || SAM4C16_1)
-
-#define SAM4C32_0 ( \
- SAM_PART_IS_DEFINED(SAM4C32C_0) ||\
- SAM_PART_IS_DEFINED(SAM4C32E_0) \
- )
-
-#define SAM4C32_1 ( \
- SAM_PART_IS_DEFINED(SAM4C32C_1) ||\
- SAM_PART_IS_DEFINED(SAM4C32E_1) \
- )
-
-
-#define SAM4C32 (SAM4C32_0 || SAM4C32_1)
-
-/** @} */
-
-/**
- * \name SAM4CM series
- * @{
- */
-#define SAM4CMP8_0 ( \
- SAM_PART_IS_DEFINED(SAM4CMP8C_0) \
- )
-
-#define SAM4CMP8_1 ( \
- SAM_PART_IS_DEFINED(SAM4CMP8C_1) \
- )
-
-#define SAM4CMP8 (SAM4CMP8_0 || SAM4CMP8_1)
-
-#define SAM4CMP16_0 ( \
- SAM_PART_IS_DEFINED(SAM4CMP16C_0) \
- )
-
-#define SAM4CMP16_1 ( \
- SAM_PART_IS_DEFINED(SAM4CMP16C_1) \
- )
-
-#define SAM4CMP16 (SAM4CMP16_0 || SAM4CMP16_1)
-
-#define SAM4CMP32_0 ( \
- SAM_PART_IS_DEFINED(SAM4CMP32C_0) \
- )
-
-#define SAM4CMP32_1 ( \
- SAM_PART_IS_DEFINED(SAM4CMP32C_1) \
- )
-
-#define SAM4CMP32 (SAM4CMP32_0 || SAM4CMP32_1)
-
-#define SAM4CMS4_0 ( \
- SAM_PART_IS_DEFINED(SAM4CMS4C_0) \
- )
-
-#define SAM4CMS4_1 ( \
- SAM_PART_IS_DEFINED(SAM4CMS4C_1) \
- )
-
-#define SAM4CMS4 (SAM4CMS4_0 || SAM4CMS4_1)
-
-#define SAM4CMS8_0 ( \
- SAM_PART_IS_DEFINED(SAM4CMS8C_0) \
- )
-
-#define SAM4CMS8_1 ( \
- SAM_PART_IS_DEFINED(SAM4CMS8C_1) \
- )
-
-#define SAM4CMS8 (SAM4CMS8_0 || SAM4CMS8_1)
-
-#define SAM4CMS16_0 ( \
- SAM_PART_IS_DEFINED(SAM4CMS16C_0) \
- )
-
-#define SAM4CMS16_1 ( \
- SAM_PART_IS_DEFINED(SAM4CMS16C_1) \
- )
-
-#define SAM4CMS16 (SAM4CMS16_0 || SAM4CMS16_1)
-
-#define SAM4CMS32_0 ( \
- SAM_PART_IS_DEFINED(SAM4CMS32C_0) \
- )
-
-#define SAM4CMS32_1 ( \
- SAM_PART_IS_DEFINED(SAM4CMS32C_1) \
- )
-
-#define SAM4CMS32 (SAM4CMS32_0 || SAM4CMS32_1)
-
-/** @} */
-
-/**
- * \name SAM4CP series
- * @{
- */
-#define SAM4CP16_0 ( \
- SAM_PART_IS_DEFINED(SAM4CP16B_0) \
- )
-
-#define SAM4CP16_1 ( \
- SAM_PART_IS_DEFINED(SAM4CP16B_1) \
- )
-
-#define SAM4CP16 (SAM4CP16_0 || SAM4CP16_1)
-/** @} */
-
-/**
- * \name SAMG series
- * @{
- */
-#define SAMG51 ( \
- SAM_PART_IS_DEFINED(SAMG51G18) \
- )
-
-#define SAMG53 ( \
- SAM_PART_IS_DEFINED(SAMG53G19) ||\
- SAM_PART_IS_DEFINED(SAMG53N19) \
- )
-
-#define SAMG54 ( \
- SAM_PART_IS_DEFINED(SAMG54G19) ||\
- SAM_PART_IS_DEFINED(SAMG54J19) ||\
- SAM_PART_IS_DEFINED(SAMG54N19) \
- )
-
-#define SAMG55 ( \
- SAM_PART_IS_DEFINED(SAMG55G18) ||\
- SAM_PART_IS_DEFINED(SAMG55G19) ||\
- SAM_PART_IS_DEFINED(SAMG55J18) ||\
- SAM_PART_IS_DEFINED(SAMG55J19) ||\
- SAM_PART_IS_DEFINED(SAMG55N19) \
- )
-/** @} */
-
-/**
- * \name SAMV71 series
- * @{
- */
-#define SAMV71J ( \
- SAM_PART_IS_DEFINED(SAMV71J19) || \
- SAM_PART_IS_DEFINED(SAMV71J20) || \
- SAM_PART_IS_DEFINED(SAMV71J21) \
- )
-
-#define SAMV71JB ( \
- SAM_PART_IS_DEFINED(SAMV71J19B) || \
- SAM_PART_IS_DEFINED(SAMV71J20B) || \
- SAM_PART_IS_DEFINED(SAMV71J21B) \
- )
-
-#define SAMV71N ( \
- SAM_PART_IS_DEFINED(SAMV71N19) || \
- SAM_PART_IS_DEFINED(SAMV71N20) || \
- SAM_PART_IS_DEFINED(SAMV71N21) \
- )
-
-#define SAMV71NB ( \
- SAM_PART_IS_DEFINED(SAMV71N19B) || \
- SAM_PART_IS_DEFINED(SAMV71N20B) || \
- SAM_PART_IS_DEFINED(SAMV71N21B) \
- )
-
-#define SAMV71Q ( \
- SAM_PART_IS_DEFINED(SAMV71Q19) || \
- SAM_PART_IS_DEFINED(SAMV71Q20) || \
- SAM_PART_IS_DEFINED(SAMV71Q21) \
- )
-
-#define SAMV71QB ( \
- SAM_PART_IS_DEFINED(SAMV71Q19B) || \
- SAM_PART_IS_DEFINED(SAMV71Q20B) || \
- SAM_PART_IS_DEFINED(SAMV71Q21B) \
- )
-
-/** @} */
-
-/**
- * \name SAMV70 series
- * @{
- */
-#define SAMV70J ( \
- SAM_PART_IS_DEFINED(SAMV70J19) || \
- SAM_PART_IS_DEFINED(SAMV70J20) \
- )
-
-#define SAMV70JB ( \
- SAM_PART_IS_DEFINED(SAMV70J19B) || \
- SAM_PART_IS_DEFINED(SAMV70J20B) \
- )
-
-#define SAMV70N ( \
- SAM_PART_IS_DEFINED(SAMV70N19) || \
- SAM_PART_IS_DEFINED(SAMV70N20) \
- )
-
-#define SAMV70NB ( \
- SAM_PART_IS_DEFINED(SAMV70N19B) || \
- SAM_PART_IS_DEFINED(SAMV70N20B) \
- )
-
-#define SAMV70Q ( \
- SAM_PART_IS_DEFINED(SAMV70Q19) || \
- SAM_PART_IS_DEFINED(SAMV70Q20) \
- )
-#define SAMV70QB ( \
- SAM_PART_IS_DEFINED(SAMV70Q19B) || \
- SAM_PART_IS_DEFINED(SAMV70Q20B) \
- )
-/** @} */
-
-/**
- * \name SAMS70 series
- * @{
- */
-#define SAMS70J ( \
- SAM_PART_IS_DEFINED(SAMS70J19) || \
- SAM_PART_IS_DEFINED(SAMS70J20) || \
- SAM_PART_IS_DEFINED(SAMS70J21) \
- )
-
-#define SAMS70JB ( \
- SAM_PART_IS_DEFINED(SAMS70J19B) || \
- SAM_PART_IS_DEFINED(SAMS70J20B) || \
- SAM_PART_IS_DEFINED(SAMS70J21B) \
- )
-
-#define SAMS70N ( \
- SAM_PART_IS_DEFINED(SAMS70N19) || \
- SAM_PART_IS_DEFINED(SAMS70N20) || \
- SAM_PART_IS_DEFINED(SAMS70N21) \
- )
-
-#define SAMS70NB ( \
- SAM_PART_IS_DEFINED(SAMS70N19B) || \
- SAM_PART_IS_DEFINED(SAMS70N20B) || \
- SAM_PART_IS_DEFINED(SAMS70N21B) \
- )
-
-#define SAMS70Q ( \
- SAM_PART_IS_DEFINED(SAMS70Q19) || \
- SAM_PART_IS_DEFINED(SAMS70Q20) || \
- SAM_PART_IS_DEFINED(SAMS70Q21) \
- )
-
-#define SAMS70QB ( \
- SAM_PART_IS_DEFINED(SAMS70Q19B) || \
- SAM_PART_IS_DEFINED(SAMS70Q20B) || \
- SAM_PART_IS_DEFINED(SAMS70Q21B) \
- )
-/** @} */
-
-/**
- * \name SAME70 series
- * @{
- */
-#define SAME70J ( \
- SAM_PART_IS_DEFINED(SAME70J19) || \
- SAM_PART_IS_DEFINED(SAME70J20) || \
- SAM_PART_IS_DEFINED(SAME70J21) \
- )
-
-#define SAME70JB ( \
- SAM_PART_IS_DEFINED(SAME70J19B) || \
- SAM_PART_IS_DEFINED(SAME70J20B) || \
- SAM_PART_IS_DEFINED(SAME70J21B) \
- )
-
-#define SAME70N ( \
- SAM_PART_IS_DEFINED(SAME70N19) || \
- SAM_PART_IS_DEFINED(SAME70N20) || \
- SAM_PART_IS_DEFINED(SAME70N21) \
- )
-
-#define SAME70NB ( \
- SAM_PART_IS_DEFINED(SAME70N19B) || \
- SAM_PART_IS_DEFINED(SAME70N20B) || \
- SAM_PART_IS_DEFINED(SAME70N21B) \
- )
-
-#define SAME70Q ( \
- SAM_PART_IS_DEFINED(SAME70Q19) || \
- SAM_PART_IS_DEFINED(SAME70Q20) || \
- SAM_PART_IS_DEFINED(SAME70Q21) \
- )
-
-#define SAME70QB ( \
- SAM_PART_IS_DEFINED(SAME70Q19B) || \
- SAM_PART_IS_DEFINED(SAME70Q20B) || \
- SAM_PART_IS_DEFINED(SAME70Q21B) \
- )
-/** @} */
-
-/**
- * \name SAM families
- * @{
- */
-/** SAM3S Family */
-#define SAM3S (SAM3S1 || SAM3S2 || SAM3S4 || SAM3S8 || SAM3SD8)
-
-/** SAM3U Family */
-#define SAM3U (SAM3U1 || SAM3U2 || SAM3U4)
-
-/** SAM3N Family */
-#define SAM3N (SAM3N00 || SAM3N0 || SAM3N1 || SAM3N2 || SAM3N4)
-
-/** SAM3XA Family */
-#define SAM3XA (SAM3X4 || SAM3X8 || SAM3A4 || SAM3A8)
-
-/** SAM4S Family */
-#define SAM4S (SAM4S2 || SAM4S4 || SAM4S8 || SAM4S16 || SAM4SA16 || SAM4SD16 || SAM4SD32)
-
-/** SAM4L Family */
-#define SAM4L (SAM4LS || SAM4LC)
-
-/** SAMD20 Family */
-#define SAMD20 (SAMD20J || SAMD20G || SAMD20E)
-
-/** SAMD21 Family */
-#define SAMD21 (SAMD21J || SAMD21G || SAMD21E)
-
-/** SAMD09 Family */
-#define SAMD09 (SAMD09C || SAMD09D)
-
-/** SAMD10 Family */
-#define SAMD10 (SAMD10C || SAMD10DS || SAMD10DM || SAMD10DU)
-
-/** SAMD11 Family */
-#define SAMD11 (SAMD11C || SAMD11DS || SAMD11DM || SAMD11DU)
-
-/** SAMDA1 Family */
-#define SAMDA1 (SAMDA1J || SAMDA1G || SAMDA1E)
-
-/** SAMHA1 Family */
-#define SAMHA1 (SAMHA1G || SAMHA1E)
-
-/** SAMHA0 Family */
-#define SAMHA0 (SAMHA0G || SAMHA0E)
-
-/** SAMD Family */
-#define SAMD (SAMD20 || SAMD21 || SAMD09 || SAMD10 || SAMD11 || SAMDA1)
-
-/** SAMR21 Family */
-#define SAMR21 (SAMR21G || SAMR21E)
-
-/** SAMR30 Family */
-#define SAMR30 (SAMR30G || SAMR30E)
-
-/** SAMR34 Family */
-#define SAMR34 (SAMR34J)
-
-/** SAMR35 Family */
-#define SAMR35 (SAMR35J)
-
-/** SAMR35 Family */
-#define WLR089 (WLR089U)
-
-/** SAMB11 Family */
-#define SAMB11 (SAMB11G || BTLC1000)
-
-/** SAML21 Family */
-#define SAML21 (SAML21J || SAML21G || SAML21E)
-
-/** SAML22 Family */
-#define SAML22 (SAML22J || SAML22G || SAML22N)
-/** SAMC20 Family */
-#define SAMC20 (SAMC20J || SAMC20G || SAMC20E)
-
-/** SAMC21 Family */
-#define SAMC21 (SAMC21J || SAMC21G || SAMC21E)
-
-/** SAM4E Family */
-#define SAM4E (SAM4E8 || SAM4E16)
-
-/** SAM4N Family */
-#define SAM4N (SAM4N8 || SAM4N16)
-
-/** SAM4C Family */
-#define SAM4C_0 (SAM4C4_0 || SAM4C8_0 || SAM4C16_0 || SAM4C32_0)
-#define SAM4C_1 (SAM4C4_1 || SAM4C8_1 || SAM4C16_1 || SAM4C32_1)
-#define SAM4C (SAM4C4 || SAM4C8 || SAM4C16 || SAM4C32)
-
-/** SAM4CM Family */
-#define SAM4CM_0 (SAM4CMP8_0 || SAM4CMP16_0 || SAM4CMP32_0 || \
- SAM4CMS4_0 || SAM4CMS8_0 || SAM4CMS16_0 || SAM4CMS32_0)
-#define SAM4CM_1 (SAM4CMP8_1 || SAM4CMP16_1 || SAM4CMP32_1 || \
- SAM4CMS4_1 || SAM4CMS8_1 || SAM4CMS16_1 || SAM4CMS32_1)
-#define SAM4CM (SAM4CMP8 || SAM4CMP16 || SAM4CMP32 || \
- SAM4CMS4 || SAM4CMS8 || SAM4CMS16 || SAM4CMS32)
-
-/** SAM4CP Family */
-#define SAM4CP_0 (SAM4CP16_0)
-#define SAM4CP_1 (SAM4CP16_1)
-#define SAM4CP (SAM4CP16)
-
-/** SAMG Family */
-#define SAMG (SAMG51 || SAMG53 || SAMG54 || SAMG55)
-
-/** SAMB Family */
-#define SAMB (SAMB11)
-
-/** SAMV71 Family */
-#define SAMV71 (SAMV71J || SAMV71N || SAMV71Q || SAMV71JB || SAMV71NB || SAMV71QB)
-#define SAMV71B (SAMV71JB || SAMV71NB || SAMV71QB)
-
-/** SAMV70 Family */
-#define SAMV70 (SAMV70J || SAMV70N || SAMV70Q || SAMV70JB || SAMV70NB || SAMV70QB)
-#define SAMV70B (SAMV70JB || SAMV70NB || SAMV70QB)
-
-/** SAME70 Family */
-#define SAME70 (SAME70J || SAME70N || SAME70Q || SAME70JB || SAME70NB || SAME70QB)
-#define SAME70B (SAME70JB || SAME70NB || SAME70QB)
-
-/** SAMS70 Family */
-#define SAMS70 (SAMS70J || SAMS70N || SAMS70Q || SAMS70JB || SAMS70NB || SAMS70QB)
-#define SAMS70B (SAMS70JB || SAMS70NB || SAMS70QB)
-
-/** SAM0 product line (cortex-m0+) */
-#define SAM0 (SAMD20 || SAMD21 || SAMR21 || SAMD10 || SAMD11 || SAML21 ||\
- SAMDA1 || SAMC20 || SAMC21 || SAML22 || SAMD09 || SAMR30 || SAMHA1 ||\
- SAMHA0 || SAMR34 || SAMR35 || WLR089)
-
-/** @} */
-
-/** SAM product line */
-#define SAM (SAM3S || SAM3U || SAM3N || SAM3XA || SAM4S || SAM4L || SAM4E || \
- SAM0 || SAM4N || SAM4C || SAM4CM || SAM4CP || SAMG || SAMV71 || SAMV70 || SAME70 || SAMS70)
-
-/** @} */
-
-/** @} */
-
-/** @} */
-
-#endif /* ATMEL_PARTS_H */
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/boards/samd21_xplained_pro/board_init.c b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/boards/samd21_xplained_pro/board_init.c
deleted file mode 100644
index 2d36580..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/boards/samd21_xplained_pro/board_init.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
- * \file
- *
- * \brief SAM D21 Xplained Pro board initialization
- *
- * Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#include
-#include
-#include
-#include
-
-#if defined(__GNUC__)
-void board_init(void) WEAK __attribute__((alias("system_board_init")));
-#elif defined(__ICCARM__)
-void board_init(void);
-# pragma weak board_init=system_board_init
-#endif
-
-void system_board_init(void)
-{
- struct port_config pin_conf;
- port_get_config_defaults(&pin_conf);
-
- /* Configure LEDs as outputs, turn them off */
- pin_conf.direction = PORT_PIN_DIR_OUTPUT;
- port_pin_set_config(LED_0_PIN, &pin_conf);
- port_pin_set_output_level(LED_0_PIN, LED_0_INACTIVE);
-
- /* Set buttons as inputs */
- pin_conf.direction = PORT_PIN_DIR_INPUT;
- pin_conf.input_pull = PORT_PIN_PULL_UP;
- port_pin_set_config(BUTTON_0_PIN, &pin_conf);
-
-#ifdef CONF_BOARD_AT86RFX
- port_get_config_defaults(&pin_conf);
- pin_conf.direction = PORT_PIN_DIR_OUTPUT;
- port_pin_set_config(AT86RFX_SPI_SCK, &pin_conf);
- port_pin_set_config(AT86RFX_SPI_MOSI, &pin_conf);
- port_pin_set_config(AT86RFX_SPI_CS, &pin_conf);
- port_pin_set_config(AT86RFX_RST_PIN, &pin_conf);
- port_pin_set_config(AT86RFX_SLP_PIN, &pin_conf);
- port_pin_set_output_level(AT86RFX_SPI_SCK, true);
- port_pin_set_output_level(AT86RFX_SPI_MOSI, true);
- port_pin_set_output_level(AT86RFX_SPI_CS, true);
- port_pin_set_output_level(AT86RFX_RST_PIN, true);
- port_pin_set_output_level(AT86RFX_SLP_PIN, true);
- pin_conf.direction = PORT_PIN_DIR_INPUT;
- port_pin_set_config(AT86RFX_SPI_MISO, &pin_conf);
-#endif
-}
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/boards/samd21_xplained_pro/samd21_xplained_pro.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/boards/samd21_xplained_pro/samd21_xplained_pro.h
deleted file mode 100644
index f166cde..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/boards/samd21_xplained_pro/samd21_xplained_pro.h
+++ /dev/null
@@ -1,699 +0,0 @@
-/**
- * \file
- *
- * \brief SAM D21 Xplained Pro board definition
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef SAMD21_XPLAINED_PRO_H_INCLUDED
-#define SAMD21_XPLAINED_PRO_H_INCLUDED
-
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \ingroup group_common_boards
- * \defgroup samd21_xplained_pro_group SAM D21 Xplained Pro board
- *
- * @{
- */
-
-void system_board_init(void);
-
-/**
- * \defgroup samd21_xplained_pro_features_group Features
- *
- * Symbols that describe features and capabilities of the board.
- *
- * @{
- */
-
-/** Name string macro */
-#define BOARD_NAME "SAMD21_XPLAINED_PRO"
-
-/** \name Resonator definitions
- * @{ */
-#define BOARD_FREQ_SLCK_XTAL (32768U)
-#define BOARD_FREQ_SLCK_BYPASS (32768U)
-#define BOARD_FREQ_MAINCK_XTAL 0 /* Not Mounted */
-#define BOARD_FREQ_MAINCK_BYPASS 0 /* Not Mounted */
-#define BOARD_MCK CHIP_FREQ_CPU_MAX
-#define BOARD_OSC_STARTUP_US 15625
-/** @} */
-
-/** \name LED0 definitions
- * @{ */
-#define LED0_PIN PIN_PB30
-#define LED0_ACTIVE false
-#define LED0_INACTIVE !LED0_ACTIVE
-/** @} */
-
-/** \name SW0 definitions
- * @{ */
-#define SW0_PIN PIN_PA15
-#define SW0_ACTIVE false
-#define SW0_INACTIVE !SW0_ACTIVE
-#define SW0_EIC_PIN PIN_PA15A_EIC_EXTINT15
-#define SW0_EIC_MUX MUX_PA15A_EIC_EXTINT15
-#define SW0_EIC_PINMUX PINMUX_PA15A_EIC_EXTINT15
-#define SW0_EIC_LINE 15
-/** @} */
-
-/**
- * \name LED #0 definitions
- *
- * Wrapper macros for LED0, to ensure common naming across all Xplained Pro
- * boards.
- *
- * @{ */
-#define LED_0_NAME "LED0 (yellow)"
-#define LED_0_PIN LED0_PIN
-#define LED_0_ACTIVE LED0_ACTIVE
-#define LED_0_INACTIVE LED0_INACTIVE
-#define LED0_GPIO LED0_PIN
-#define LED0 LED0_PIN
-
-#define LED_0_PWM4CTRL_MODULE TCC0
-#define LED_0_PWM4CTRL_CHANNEL 0
-#define LED_0_PWM4CTRL_OUTPUT 0
-#define LED_0_PWM4CTRL_PIN PIN_PB30E_TCC0_WO0
-#define LED_0_PWM4CTRL_MUX MUX_PB30E_TCC0_WO0
-#define LED_0_PWM4CTRL_PINMUX PINMUX_PB30E_TCC0_WO0
-/** @} */
-
-/** Number of on-board LEDs */
-#define LED_COUNT 1
-
-/**
- * \name Serialflash definitions
- *
- * On board Serialflash definitions.
- *
- * @{ */
-#define SERIALFLASH_SPI_MODULE SERCOM5
-#define SERIALFLASH_SPI_MUX_SETTING SPI_SIGNAL_MUX_SETTING_E
-#define SERIALFLASH_SPI_PINMUX_PAD0 PINMUX_PB16C_SERCOM5_PAD0
-#define SERIALFLASH_SPI_PINMUX_PAD1 PINMUX_UNUSED
-#define SERIALFLASH_SPI_PINMUX_PAD2 PINMUX_PB22D_SERCOM5_PAD2
-#define SERIALFLASH_SPI_PINMUX_PAD3 PINMUX_PB23D_SERCOM5_PAD3
-#define SERIALFLASH_SPI_CS PIN_PA13
-/** @} */
-
-/**
- * \name Button #0 definitions
- *
- * Wrapper macros for SW0, to ensure common naming across all Xplained Pro
- * boards.
- *
- * @{ */
-#define BUTTON_0_NAME "SW0"
-#define BUTTON_0_PIN SW0_PIN
-#define BUTTON_0_ACTIVE SW0_ACTIVE
-#define BUTTON_0_INACTIVE SW0_INACTIVE
-#define BUTTON_0_EIC_PIN SW0_EIC_PIN
-#define BUTTON_0_EIC_MUX SW0_EIC_MUX
-#define BUTTON_0_EIC_PINMUX SW0_EIC_PINMUX
-#define BUTTON_0_EIC_LINE SW0_EIC_LINE
-/** @} */
-
-/** Number of on-board buttons */
-#define BUTTON_COUNT 1
-
-/** \name Extension header #1 pin definitions
- * @{
- */
-#define EXT1_PIN_3 PIN_PB00
-#define EXT1_PIN_4 PIN_PB01
-#define EXT1_PIN_5 PIN_PB06
-#define EXT1_PIN_6 PIN_PB07
-#define EXT1_PIN_7 PIN_PB02
-#define EXT1_PIN_8 PIN_PB03
-#define EXT1_PIN_9 PIN_PB04
-#define EXT1_PIN_10 PIN_PB05
-#define EXT1_PIN_11 PIN_PA08
-#define EXT1_PIN_12 PIN_PA09
-#define EXT1_PIN_13 PIN_PB09
-#define EXT1_PIN_14 PIN_PB08
-#define EXT1_PIN_15 PIN_PA05
-#define EXT1_PIN_16 PIN_PA06
-#define EXT1_PIN_17 PIN_PA04
-#define EXT1_PIN_18 PIN_PA07
-/** @} */
-
-/** \name Extension header #1 pin definitions by function
- * @{
- */
-#define EXT1_PIN_ADC_0 EXT1_PIN_3
-#define EXT1_PIN_ADC_1 EXT1_PIN_4
-#define EXT1_PIN_GPIO_0 EXT1_PIN_5
-#define EXT1_PIN_GPIO_1 EXT1_PIN_6
-#define EXT1_PIN_PWM_0 EXT1_PIN_7
-#define EXT1_PIN_PWM_1 EXT1_PIN_8
-#define EXT1_PIN_IRQ EXT1_PIN_9
-#define EXT1_PIN_I2C_SDA EXT1_PIN_11
-#define EXT1_PIN_I2C_SCL EXT1_PIN_12
-#define EXT1_PIN_UART_RX EXT1_PIN_13
-#define EXT1_PIN_UART_TX EXT1_PIN_14
-#define EXT1_PIN_SPI_SS_1 EXT1_PIN_10
-#define EXT1_PIN_SPI_SS_0 EXT1_PIN_15
-#define EXT1_PIN_SPI_MOSI EXT1_PIN_16
-#define EXT1_PIN_SPI_MISO EXT1_PIN_17
-#define EXT1_PIN_SPI_SCK EXT1_PIN_18
-/** @} */
-
-/** \name Extension header #1 ADC definitions
- * @{
- */
-#define EXT1_ADC_MODULE ADC
-#define EXT1_ADC_0_CHANNEL 8
-#define EXT1_ADC_0_PIN PIN_PB00B_ADC_AIN8
-#define EXT1_ADC_0_MUX MUX_PB00B_ADC_AIN8
-#define EXT1_ADC_0_PINMUX PINMUX_PB00B_ADC_AIN8
-#define EXT1_ADC_1_CHANNEL 9
-#define EXT1_ADC_1_PIN PIN_PB01B_ADC_AIN9
-#define EXT1_ADC_1_MUX MUX_PB01B_ADC_AIN9
-#define EXT1_ADC_1_PINMUX PINMUX_PB01B_ADC_AIN9
-/** @} */
-
-/** \name Extension header #1 PWM definitions
- * @{
- */
-#define EXT1_PWM_MODULE TC6
-#define EXT1_PWM_0_CHANNEL 0
-#define EXT1_PWM_0_PIN PIN_PB02E_TC6_WO0
-#define EXT1_PWM_0_MUX MUX_PB02E_TC6_WO0
-#define EXT1_PWM_0_PINMUX PINMUX_PB02E_TC6_WO0
-#define EXT1_PWM_1_CHANNEL 1
-#define EXT1_PWM_1_PIN PIN_PB03E_TC6_WO1
-#define EXT1_PWM_1_MUX MUX_PB03E_TC6_WO1
-#define EXT1_PWM_1_PINMUX PINMUX_PB03E_TC6_WO1
-/** @} */
-
-/** \name Extension header #1 IRQ/External interrupt definitions
- * @{
- */
-#define EXT1_IRQ_MODULE EIC
-#define EXT1_IRQ_INPUT 4
-#define EXT1_IRQ_PIN PIN_PB04A_EIC_EXTINT4
-#define EXT1_IRQ_MUX MUX_PB04A_EIC_EXTINT4
-#define EXT1_IRQ_PINMUX PINMUX_PB04A_EIC_EXTINT4
-/** @} */
-
-/** \name Extension header #1 I2C definitions
- * @{
- */
-#define EXT1_I2C_MODULE SERCOM2
-#define EXT1_I2C_SERCOM_PINMUX_PAD0 PINMUX_PA08D_SERCOM2_PAD0
-#define EXT1_I2C_SERCOM_PINMUX_PAD1 PINMUX_PA09D_SERCOM2_PAD1
-#define EXT1_I2C_SERCOM_DMAC_ID_TX SERCOM2_DMAC_ID_TX
-#define EXT1_I2C_SERCOM_DMAC_ID_RX SERCOM2_DMAC_ID_RX
-/** @} */
-
-/** \name Extension header #1 UART definitions
- * @{
- */
-#define EXT1_UART_MODULE SERCOM4
-#define EXT1_UART_SERCOM_MUX_SETTING USART_RX_1_TX_0_XCK_1
-#define EXT1_UART_SERCOM_PINMUX_PAD0 PINMUX_PB08D_SERCOM4_PAD0
-#define EXT1_UART_SERCOM_PINMUX_PAD1 PINMUX_PB09D_SERCOM4_PAD1
-#define EXT1_UART_SERCOM_PINMUX_PAD2 PINMUX_UNUSED
-#define EXT1_UART_SERCOM_PINMUX_PAD3 PINMUX_UNUSED
-#define EXT1_UART_SERCOM_DMAC_ID_TX SERCOM4_DMAC_ID_TX
-#define EXT1_UART_SERCOM_DMAC_ID_RX SERCOM4_DMAC_ID_RX
-/** @} */
-
-/** \name Extension header #1 SPI definitions
- * @{
- */
-#define EXT1_SPI_MODULE SERCOM0
-#define EXT1_SPI_SERCOM_MUX_SETTING SPI_SIGNAL_MUX_SETTING_E
-#define EXT1_SPI_SERCOM_PINMUX_PAD0 PINMUX_PA04D_SERCOM0_PAD0
-#define EXT1_SPI_SERCOM_PINMUX_PAD1 PINMUX_PA05D_SERCOM0_PAD1
-#define EXT1_SPI_SERCOM_PINMUX_PAD2 PINMUX_PA06D_SERCOM0_PAD2
-#define EXT1_SPI_SERCOM_PINMUX_PAD3 PINMUX_PA07D_SERCOM0_PAD3
-#define EXT1_SPI_SERCOM_DMAC_ID_TX SERCOM0_DMAC_ID_TX
-#define EXT1_SPI_SERCOM_DMAC_ID_RX SERCOM0_DMAC_ID_RX
-/** @} */
-
-/** \name Extension header #2 pin definitions
- * @{
- */
-#define EXT2_PIN_3 PIN_PA10
-#define EXT2_PIN_4 PIN_PA11
-#define EXT2_PIN_5 PIN_PA20
-#define EXT2_PIN_6 PIN_PA21
-#define EXT2_PIN_7 PIN_PB12
-#define EXT2_PIN_8 PIN_PB13
-#define EXT2_PIN_9 PIN_PB14
-#define EXT2_PIN_10 PIN_PB15
-#define EXT2_PIN_11 PIN_PA08
-#define EXT2_PIN_12 PIN_PA09
-#define EXT2_PIN_13 PIN_PB11
-#define EXT2_PIN_14 PIN_PB10
-#define EXT2_PIN_15 PIN_PA17
-#define EXT2_PIN_16 PIN_PA18
-#define EXT2_PIN_17 PIN_PA16
-#define EXT2_PIN_18 PIN_PA19
-/** @} */
-
-/** \name Extension header #2 pin definitions by function
- * @{
- */
-#define EXT2_PIN_ADC_0 EXT2_PIN_3
-#define EXT2_PIN_ADC_1 EXT2_PIN_4
-#define EXT2_PIN_GPIO_0 EXT2_PIN_5
-#define EXT2_PIN_GPIO_1 EXT2_PIN_6
-#define EXT2_PIN_PWM_0 EXT2_PIN_7
-#define EXT2_PIN_PWM_1 EXT2_PIN_8
-#define EXT2_PIN_IRQ EXT2_PIN_9
-#define EXT2_PIN_I2C_SDA EXT2_PIN_11
-#define EXT2_PIN_I2C_SCL EXT2_PIN_12
-#define EXT2_PIN_UART_RX EXT2_PIN_13
-#define EXT2_PIN_UART_TX EXT2_PIN_14
-#define EXT2_PIN_SPI_SS_1 EXT2_PIN_10
-#define EXT2_PIN_SPI_SS_0 EXT2_PIN_15
-#define EXT2_PIN_SPI_MOSI EXT2_PIN_16
-#define EXT2_PIN_SPI_MISO EXT2_PIN_17
-#define EXT2_PIN_SPI_SCK EXT2_PIN_18
-/** @} */
-
-/** \name Extension header #2 ADC definitions
- * @{
- */
-#define EXT2_ADC_MODULE ADC
-#define EXT2_ADC_0_CHANNEL 18
-#define EXT2_ADC_0_PIN PIN_PA10B_ADC_AIN18
-#define EXT2_ADC_0_MUX MUX_PA10B_ADC_AIN18
-#define EXT2_ADC_0_PINMUX PINMUX_PA10B_ADC_AIN18
-#define EXT2_ADC_1_CHANNEL 19
-#define EXT2_ADC_1_PIN PIN_PA11B_ADC_AIN19
-#define EXT2_ADC_1_MUX MUX_PA11B_ADC_AIN19
-#define EXT2_ADC_1_PINMUX PINMUX_PA11B_ADC_AIN19
-/** @} */
-
-/** \name Extension header #2 PWM definitions
- * @{
- */
-#define EXT2_PWM_MODULE TC4
-#define EXT2_PWM_0_CHANNEL 0
-#define EXT2_PWM_0_PIN PIN_PB12E_TC4_WO0
-#define EXT2_PWM_0_MUX MUX_PB12E_TC4_WO0
-#define EXT2_PWM_0_PINMUX PINMUX_PB12E_TC4_WO0
-#define EXT2_PWM_1_CHANNEL 1
-#define EXT2_PWM_1_PIN PIN_PB13E_TC4_WO1
-#define EXT2_PWM_1_MUX MUX_PB13E_TC4_WO1
-#define EXT2_PWM_1_PINMUX PINMUX_PB13E_TC4_WO1
-/** @} */
-
-/** \name Extension header #2 PWM for Control definitions
- * @{
- */
-#define EXT2_PWM4CTRL_MODULE TCC0
-#define EXT2_PWM4CTRL_0_CHANNEL 2
-#define EXT2_PWM4CTRL_0_OUTPUT 6
-#define EXT2_PWM4CTRL_0_PIN PIN_PB12F_TCC0_WO6
-#define EXT2_PWM4CTRL_0_MUX MUX_PB12F_TCC0_WO6
-#define EXT2_PWM4CTRL_0_PINMUX PINMUX_PB12F_TCC0_WO6
-#define EXT2_PWM4CTRL_1_CHANNEL 3
-#define EXT2_PWM4CTRL_1_OUTPUT 7
-#define EXT2_PWM4CTRL_1_PIN PIN_PB13F_TCC0_WO7
-#define EXT2_PWM4CTRL_1_MUX MUX_PB13F_TCC0_WO7
-#define EXT2_PWM4CTRL_1_PINMUX PINMUX_PB13F_TCC0_WO7
-/** @} */
-
-/** \name Extension header #2 IRQ/External interrupt definitions
- * @{
- */
-#define EXT2_IRQ_MODULE EIC
-#define EXT2_IRQ_INPUT 14
-#define EXT2_IRQ_PIN PIN_PB14A_EIC_EXTINT14
-#define EXT2_IRQ_MUX MUX_PB14A_EIC_EXTINT14
-#define EXT2_IRQ_PINMUX PINMUX_PB14A_EIC_EXTINT14
-/** @} */
-
- /** \name Extension header #2 I2C definitions
- * @{
- */
-#define EXT2_I2C_MODULE SERCOM2
-#define EXT2_I2C_SERCOM_PINMUX_PAD0 PINMUX_PA08D_SERCOM2_PAD0
-#define EXT2_I2C_SERCOM_PINMUX_PAD1 PINMUX_PA09D_SERCOM2_PAD1
-#define EXT2_I2C_SERCOM_DMAC_ID_TX SERCOM2_DMAC_ID_TX
-#define EXT2_I2C_SERCOM_DMAC_ID_RX SERCOM2_DMAC_ID_RX
-/** @} */
-
-/** \name Extension header #2 UART definitions
- * @{
- */
-#define EXT2_UART_MODULE SERCOM4
-#define EXT2_UART_SERCOM_MUX_SETTING USART_RX_1_TX_0_XCK_1
-#define EXT2_UART_SERCOM_PINMUX_PAD0 PINMUX_PB12C_SERCOM4_PAD0
-#define EXT2_UART_SERCOM_PINMUX_PAD1 PINMUX_PB13C_SERCOM4_PAD1
-#define EXT2_UART_SERCOM_PINMUX_PAD2 PINMUX_UNUSED
-#define EXT2_UART_SERCOM_PINMUX_PAD3 PINMUX_UNUSED
-#define EXT2_UART_SERCOM_DMAC_ID_TX SERCOM4_DMAC_ID_TX
-#define EXT2_UART_SERCOM_DMAC_ID_RX SERCOM4_DMAC_ID_RX
-/** @} */
-
-/** \name Extension header #2 SPI definitions
- * @{
- */
-#define EXT2_SPI_MODULE SERCOM1
-#define EXT2_SPI_SERCOM_MUX_SETTING SPI_SIGNAL_MUX_SETTING_E
-#define EXT2_SPI_SERCOM_PINMUX_PAD0 PINMUX_PA16C_SERCOM1_PAD0
-#define EXT2_SPI_SERCOM_PINMUX_PAD1 PINMUX_PA17C_SERCOM1_PAD1
-#define EXT2_SPI_SERCOM_PINMUX_PAD2 PINMUX_PA18C_SERCOM1_PAD2
-#define EXT2_SPI_SERCOM_PINMUX_PAD3 PINMUX_PA19C_SERCOM1_PAD3
-#define EXT2_SPI_SERCOM_DMAC_ID_TX SERCOM1_DMAC_ID_TX
-#define EXT2_SPI_SERCOM_DMAC_ID_RX SERCOM1_DMAC_ID_RX
-/** @} */
-
-/** \name Extension header #3 pin definitions
- * @{
- */
-#define EXT3_PIN_3 PIN_PA02
-#define EXT3_PIN_4 PIN_PA03
-#define EXT3_PIN_5 PIN_PB30
-#define EXT3_PIN_6 PIN_PA15
-#define EXT3_PIN_7 PIN_PA12
-#define EXT3_PIN_8 PIN_PA13
-#define EXT3_PIN_9 PIN_PA28
-#define EXT3_PIN_10 PIN_PA27
-#define EXT3_PIN_11 PIN_PA08
-#define EXT3_PIN_12 PIN_PA09
-#define EXT3_PIN_13 PIN_PB11
-#define EXT3_PIN_14 PIN_PB10
-#define EXT3_PIN_15 PIN_PB17
-#define EXT3_PIN_16 PIN_PB22
-#define EXT3_PIN_17 PIN_PB16
-#define EXT3_PIN_18 PIN_PB23
-/** @} */
-
-/** \name Extension header #3 pin definitions by function
- * @{
- */
-#define EXT3_PIN_ADC_0 EXT3_PIN_3
-#define EXT3_PIN_ADC_1 EXT3_PIN_4
-#define EXT3_PIN_GPIO_0 EXT3_PIN_5
-#define EXT3_PIN_GPIO_1 EXT3_PIN_6
-#define EXT3_PIN_PWM_0 EXT3_PIN_7
-#define EXT3_PIN_PWM_1 EXT3_PIN_8
-#define EXT3_PIN_IRQ EXT3_PIN_9
-#define EXT3_PIN_I2C_SDA EXT3_PIN_11
-#define EXT3_PIN_I2C_SCL EXT3_PIN_12
-#define EXT3_PIN_UART_RX EXT3_PIN_13
-#define EXT3_PIN_UART_TX EXT3_PIN_14
-#define EXT3_PIN_SPI_SS_1 EXT3_PIN_10
-#define EXT3_PIN_SPI_SS_0 EXT3_PIN_15
-#define EXT3_PIN_SPI_MOSI EXT3_PIN_16
-#define EXT3_PIN_SPI_MISO EXT3_PIN_17
-#define EXT3_PIN_SPI_SCK EXT3_PIN_18
-/** @} */
-
-/** \name Extension header #3 ADC definitions
- * @{
- */
-#define EXT3_ADC_MODULE ADC
-#define EXT3_ADC_0_CHANNEL 0
-#define EXT3_ADC_0_PIN PIN_PA02B_ADC_AIN0
-#define EXT3_ADC_0_MUX MUX_PA02B_ADC_AIN0
-#define EXT3_ADC_0_PINMUX PINMUX_PA02B_ADC_AIN0
-#define EXT3_ADC_1_CHANNEL 1
-#define EXT3_ADC_1_PIN PIN_PA03B_ADC_AIN1
-#define EXT3_ADC_1_MUX MUX_PA03B_ADC_AIN1
-#define EXT3_ADC_1_PINMUX PINMUX_PA03B_ADC_AIN1
-/** @} */
-
-/** \name Extension header #3 PWM for Control definitions
- * @{
- */
-#define EXT3_PWM4CTRL_MODULE TCC2
-#define EXT3_PWM4CTRL_0_CHANNEL 0
-#define EXT3_PWM4CTRL_0_OUTPUT 0
-#define EXT3_PWM4CTRL_0_PIN PIN_PA12E_TCC2_WO0
-#define EXT3_PWM4CTRL_0_MUX MUX_PA12E_TCC2_WO0
-#define EXT3_PWM4CTRL_0_PINMUX PINMUX_PA12E_TCC2_WO0
-#define EXT3_PWM4CTRL_1_CHANNEL 1
-#define EXT3_PWM4CTRL_1_OUTPUT 1
-#define EXT3_PWM4CTRL_1_PIN PIN_PA13E_TCC2_WO1
-#define EXT3_PWM4CTRL_1_MUX MUX_PA13E_TCC2_WO1
-#define EXT3_PWM4CTRL_1_PINMUX PINMUX_PA13E_TCC2_WO1
-/** @} */
-
-/** \name Extension header #3 IRQ/External interrupt definitions
- * @{
- */
-#define EXT3_IRQ_MODULE EIC
-#define EXT3_IRQ_INPUT 8
-#define EXT3_IRQ_PIN PIN_PA28A_EIC_EXTINT8
-#define EXT3_IRQ_MUX MUX_PA28A_EIC_EXTINT8
-#define EXT3_IRQ_PINMUX PINMUX_PA28A_EIC_EXTINT8
-/** @} */
-
-/** \name Extension header #3 I2C definitions
- * @{
- */
-#define EXT3_I2C_MODULE SERCOM2
-#define EXT3_I2C_SERCOM_PINMUX_PAD0 PINMUX_PA08D_SERCOM2_PAD0
-#define EXT3_I2C_SERCOM_PINMUX_PAD1 PINMUX_PA09D_SERCOM2_PAD1
-#define EXT3_I2C_SERCOM_DMAC_ID_TX SERCOM2_DMAC_ID_TX
-#define EXT3_I2C_SERCOM_DMAC_ID_RX SERCOM2_DMAC_ID_RX
-/** @} */
-
-/** \name Extension header #3 UART definitions
- * @{
- */
-#define EXT3_UART_MODULE SERCOM4
-#define EXT3_UART_SERCOM_MUX_SETTING USART_RX_3_TX_2_XCK_3
-#define EXT3_UART_SERCOM_PINMUX_PAD0 PINMUX_UNUSED
-#define EXT3_UART_SERCOM_PINMUX_PAD1 PINMUX_UNUSED
-#define EXT3_UART_SERCOM_PINMUX_PAD2 PINMUX_PB10D_SERCOM4_PAD2
-#define EXT3_UART_SERCOM_PINMUX_PAD3 PINMUX_PB11D_SERCOM4_PAD3
-#define EXT3_UART_SERCOM_DMAC_ID_TX SERCOM4_DMAC_ID_TX
-#define EXT3_UART_SERCOM_DMAC_ID_RX SERCOM4_DMAC_ID_RX
-/** @} */
-
-/** \name Extension header #3 SPI definitions
- * @{
- */
-#define EXT3_SPI_MODULE SERCOM5
-#define EXT3_SPI_SERCOM_MUX_SETTING SPI_SIGNAL_MUX_SETTING_E
-#define EXT3_SPI_SERCOM_PINMUX_PAD0 PINMUX_PB16C_SERCOM5_PAD0
-#define EXT3_SPI_SERCOM_PINMUX_PAD1 PINMUX_PB17C_SERCOM5_PAD1
-#define EXT3_SPI_SERCOM_PINMUX_PAD2 PINMUX_PB22D_SERCOM5_PAD2
-#define EXT3_SPI_SERCOM_PINMUX_PAD3 PINMUX_PB23D_SERCOM5_PAD3
-#define EXT3_SPI_SERCOM_DMAC_ID_TX SERCOM5_DMAC_ID_TX
-#define EXT3_SPI_SERCOM_DMAC_ID_RX SERCOM5_DMAC_ID_RX
-/** @} */
-
-/** \name Extension header #3 Dataflash
- * @{
- */
-#define EXT3_DATAFLASH_SPI_MODULE EXT3_SPI_MODULE
-#define EXT3_DATAFLASH_SPI_MUX_SETTING EXT3_SPI_SERCOM_MUX_SETTING
-#define EXT3_DATAFLASH_SPI_PINMUX_PAD0 EXT3_SPI_SERCOM_PINMUX_PAD0
-#define EXT3_DATAFLASH_SPI_PINMUX_PAD1 EXT3_SPI_SERCOM_PINMUX_PAD1
-#define EXT3_DATAFLASH_SPI_PINMUX_PAD2 EXT3_SPI_SERCOM_PINMUX_PAD2
-#define EXT3_DATAFLASH_SPI_PINMUX_PAD3 EXT3_SPI_SERCOM_PINMUX_PAD3
-/** @} */
-
-/** \name USB definitions
- * @{
- */
-#define USB_ID
-#define USB_TARGET_DP_PIN PIN_PA25G_USB_DP
-#define USB_TARGET_DP_MUX MUX_PA25G_USB_DP
-#define USB_TARGET_DP_PINMUX PINMUX_PA25G_USB_DP
-#define USB_TARGET_DM_PIN PIN_PA24G_USB_DM
-#define USB_TARGET_DM_MUX MUX_PA24G_USB_DM
-#define USB_TARGET_DM_PINMUX PINMUX_PA24G_USB_DM
-#define USB_VBUS_PIN PIN_PA14
-#define USB_VBUS_EIC_LINE 14
-#define USB_VBUS_EIC_MUX MUX_PA14A_EIC_EXTINT14
-#define USB_VBUS_EIC_PINMUX PINMUX_PA14A_EIC_EXTINT14
-#define USB_ID_PIN PIN_PA03
-#define USB_ID_EIC_LINE 3
-#define USB_ID_EIC_MUX MUX_PA03A_EIC_EXTINT3
-#define USB_ID_EIC_PINMUX PINMUX_PA03A_EIC_EXTINT3
-/** @} */
-
-/** \name Embedded debugger GPIO interface definitions
- * @{
- */
-#define EDBG_GPIO0_PIN PIN_PA27
-#define EDBG_GPIO1_PIN PIN_PA28
-#define EDBG_GPIO2_PIN PIN_PA20
-#define EDBG_GPIO3_PIN PIN_PA21
-/** @} */
-
-/** \name Embedded debugger USART interface definitions
- * @{
- */
-#define EDBG_UART_MODULE -1 /* Not available on this board */
-#define EDBG_UART_RX_PIN -1 /* Not available on this board */
-#define EDBG_UART_RX_MUX -1 /* Not available on this board */
-#define EDBG_UART_RX_PINMUX -1 /* Not available on this board */
-#define EDBG_UART_RX_SERCOM_PAD -1 /* Not available on this board */
-#define EDBG_UART_TX_PIN -1 /* Not available on this board */
-#define EDBG_UART_TX_MUX -1 /* Not available on this board */
-#define EDBG_UART_TX_PINMUX -1 /* Not available on this board */
-#define EDBG_UART_TX_SERCOM_PAD -1 /* Not available on this board */
-/** @} */
-
-/** \name Embedded debugger I2C interface definitions
- * @{
- */
-#define EDBG_I2C_MODULE SERCOM2
-#define EDBG_I2C_SERCOM_PINMUX_PAD0 PINMUX_PA08D_SERCOM2_PAD0
-#define EDBG_I2C_SERCOM_PINMUX_PAD1 PINMUX_PA09D_SERCOM2_PAD1
-#define EDBG_I2C_SERCOM_DMAC_ID_TX SERCOM2_DMAC_ID_TX
-#define EDBG_I2C_SERCOM_DMAC_ID_RX SERCOM2_DMAC_ID_RX
-/** @} */
-
-/** \name Embedded debugger SPI interface definitions
- * @{
- */
-#define EDBG_SPI_MODULE SERCOM5
-#define EDBG_SPI_SERCOM_MUX_SETTING SPI_SIGNAL_MUX_SETTING_E
-#define EDBG_SPI_SERCOM_PINMUX_PAD0 PINMUX_PB16C_SERCOM5_PAD0
-#define EDBG_SPI_SERCOM_PINMUX_PAD1 PINMUX_PB31D_SERCOM5_PAD1
-#define EDBG_SPI_SERCOM_PINMUX_PAD2 PINMUX_PB22D_SERCOM5_PAD2
-#define EDBG_SPI_SERCOM_PINMUX_PAD3 PINMUX_PB23D_SERCOM5_PAD3
-#define EDBG_SPI_SERCOM_DMAC_ID_TX SERCOM5_DMAC_ID_TX
-#define EDBG_SPI_SERCOM_DMAC_ID_RX SERCOM5_DMAC_ID_RX
-/** @} */
-
-/** \name Embedded debugger CDC Gateway USART interface definitions
- * @{
- */
-#define EDBG_CDC_MODULE SERCOM3
-#define EDBG_CDC_SERCOM_MUX_SETTING USART_RX_1_TX_0_XCK_1
-#define EDBG_CDC_SERCOM_PINMUX_PAD0 PINMUX_PA22C_SERCOM3_PAD0
-#define EDBG_CDC_SERCOM_PINMUX_PAD1 PINMUX_PA23C_SERCOM3_PAD1
-#define EDBG_CDC_SERCOM_PINMUX_PAD2 PINMUX_UNUSED
-#define EDBG_CDC_SERCOM_PINMUX_PAD3 PINMUX_UNUSED
-#define EDBG_CDC_SERCOM_DMAC_ID_TX SERCOM3_DMAC_ID_TX
-#define EDBG_CDC_SERCOM_DMAC_ID_RX SERCOM3_DMAC_ID_RX
-/** @} */
-
-/** @} */
-
-/** \name 802.15.4 TRX Interface definitions
- * @{
- */
-#ifndef EXT2_CONFIG
-#define AT86RFX_SPI EXT1_SPI_MODULE
-#define AT86RFX_RST_PIN EXT1_PIN_7
-#define AT86RFX_MISC_PIN EXT1_PIN_12
-#define AT86RFX_IRQ_PIN EXT1_PIN_9
-#define AT86RFX_SLP_PIN EXT1_PIN_10
-#define AT86RFX_SPI_CS EXT1_PIN_15
-#define AT86RFX_SPI_MOSI EXT1_PIN_16
-#define AT86RFX_SPI_MISO EXT1_PIN_17
-#define AT86RFX_SPI_SCK EXT1_PIN_18
-#define AT86RFX_CSD EXT1_PIN_5
-#define AT86RFX_CPS EXT1_PIN_8
-
-#define AT86RFX_SPI_SERCOM_MUX_SETTING EXT1_SPI_SERCOM_MUX_SETTING
-#define AT86RFX_SPI_SERCOM_PINMUX_PAD0 EXT1_SPI_SERCOM_PINMUX_PAD0
-#define AT86RFX_SPI_SERCOM_PINMUX_PAD1 PINMUX_UNUSED
-#define AT86RFX_SPI_SERCOM_PINMUX_PAD2 EXT1_SPI_SERCOM_PINMUX_PAD2
-#define AT86RFX_SPI_SERCOM_PINMUX_PAD3 EXT1_SPI_SERCOM_PINMUX_PAD3
-
-#define AT86RFX_IRQ_CHAN EXT1_IRQ_INPUT
-#define AT86RFX_IRQ_PINMUX EXT1_IRQ_PINMUX
-
-
-#endif
-/** Enables the transceiver main interrupt. */
-#define ENABLE_TRX_IRQ() \
- extint_chan_enable_callback(AT86RFX_IRQ_CHAN, EXTINT_CALLBACK_TYPE_DETECT)
-
-/** Disables the transceiver main interrupt. */
-#define DISABLE_TRX_IRQ() \
- extint_chan_disable_callback(AT86RFX_IRQ_CHAN, EXTINT_CALLBACK_TYPE_DETECT)
-
-/** Clears the transceiver main interrupt. */
-#define CLEAR_TRX_IRQ() \
- extint_chan_clear_detected(AT86RFX_IRQ_CHAN);
-
-/*
- * This macro saves the trx interrupt status and disables the trx interrupt.
- */
-#define ENTER_TRX_REGION() \
- { extint_chan_disable_callback(AT86RFX_IRQ_CHAN, EXTINT_CALLBACK_TYPE_DETECT)
-
-/*
- * This macro restores the transceiver interrupt status
- */
-#define LEAVE_TRX_REGION() \
- extint_chan_enable_callback(AT86RFX_IRQ_CHAN, EXTINT_CALLBACK_TYPE_DETECT); }
-
-/** @} */
-
-/**
- * \brief Turns off the specified LEDs.
- *
- * \param led_gpio LED to turn off (LEDx_GPIO).
- *
- * \note The pins of the specified LEDs are set to GPIO output mode.
- */
-#define LED_Off(led_gpio) port_pin_set_output_level(led_gpio,true)
-
-/**
- * \brief Turns on the specified LEDs.
- *
- * \param led_gpio LED to turn on (LEDx_GPIO).
- *
- * \note The pins of the specified LEDs are set to GPIO output mode.
- */
-#define LED_On(led_gpio) port_pin_set_output_level(led_gpio,false)
-
-/**
- * \brief Toggles the specified LEDs.
- *
- * \param led_gpio LED to toggle (LEDx_GPIO).
- *
- * \note The pins of the specified LEDs are set to GPIO output mode.
- */
-#define LED_Toggle(led_gpio) port_pin_toggle_output_level(led_gpio)
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* SAMD21_XPLAINED_PRO_H_INCLUDED */
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/port/port.c b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/port/port.c
deleted file mode 100644
index d7a834f..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/port/port.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/**
- * \file
- *
- * \brief SAM GPIO Port Driver
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#include
-
-/**
- * \brief Writes a Port pin configuration to the hardware module.
- *
- * Writes out a given configuration of a Port pin configuration to the hardware
- * module.
- *
- * \note If the pin direction is set as an output, the pull-up/pull-down input
- * configuration setting is ignored.
- *
- * \param[in] gpio_pin Index of the GPIO pin to configure
- * \param[in] config Configuration settings for the pin
- */
-void port_pin_set_config(
- const uint8_t gpio_pin,
- const struct port_config *const config)
-{
- /* Sanity check arguments */
- Assert(config);
-
- struct system_pinmux_config pinmux_config;
- system_pinmux_get_config_defaults(&pinmux_config);
-
- pinmux_config.mux_position = SYSTEM_PINMUX_GPIO;
- pinmux_config.direction = (enum system_pinmux_pin_dir)config->direction;
- pinmux_config.input_pull = (enum system_pinmux_pin_pull)config->input_pull;
- pinmux_config.powersave = config->powersave;
-
- system_pinmux_pin_set_config(gpio_pin, &pinmux_config);
-}
-
-/**
- * \brief Writes a Port group configuration group to the hardware module.
- *
- * Writes out a given configuration of a Port group configuration to the
- * hardware module.
- *
- * \note If the pin direction is set as an output, the pull-up/pull-down input
- * configuration setting is ignored.
- *
- * \param[out] port Base of the PORT module to write to
- * \param[in] mask Mask of the port pin(s) to configure
- * \param[in] config Configuration settings for the pin group
- */
-void port_group_set_config(
- PortGroup *const port,
- const uint32_t mask,
- const struct port_config *const config)
-{
- /* Sanity check arguments */
- Assert(port);
- Assert(config);
-
- struct system_pinmux_config pinmux_config;
- system_pinmux_get_config_defaults(&pinmux_config);
-
- pinmux_config.mux_position = SYSTEM_PINMUX_GPIO;
- pinmux_config.direction = (enum system_pinmux_pin_dir)config->direction;
- pinmux_config.input_pull = (enum system_pinmux_pin_pull)config->input_pull;
- pinmux_config.powersave = config->powersave;
-
- system_pinmux_group_set_config(port, mask, &pinmux_config);
-}
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/port/port.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/port/port.h
deleted file mode 100644
index 52eaa4d..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/port/port.h
+++ /dev/null
@@ -1,785 +0,0 @@
-/**
- * \file
- *
- * \brief SAM GPIO Port Driver
- *
- * Copyright (c) 2012-2020 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef PORT_H_INCLUDED
-#define PORT_H_INCLUDED
-
-/**
- * \defgroup asfdoc_sam0_port_group SAM Port (PORT) Driver
- *
- * This driver for Atmel® | SMART ARM®-based microcontrollers provides
- * an interface for the configuration and management of the device's General
- * Purpose Input/Output (GPIO) pin functionality, for manual pin state reading
- * and writing.
- *
- * The following peripheral is used by this module:
- * - PORT (GPIO Management)
- *
- * The following devices can use this module:
- * - Atmel | SMART SAM D20/D21
- * - Atmel | SMART SAM R21
- * - Atmel | SMART SAM D09/D10/D11
- * - Atmel | SMART SAM L21/L22
- * - Atmel | SMART SAM DA1
- * - Atmel | SMART SAM C20/C21
- * - Atmel | SMART SAM HA1
- * - Atmel | SMART SAM R30
- * - Atmel | SMART SAM R34
- * - Atmel | SMART SAM R35
- *
- * The outline of this documentation is as follows:
- * - \ref asfdoc_sam0_port_prerequisites
- * - \ref asfdoc_sam0_port_module_overview
- * - \ref asfdoc_sam0_port_special_considerations
- * - \ref asfdoc_sam0_port_extra_info
- * - \ref asfdoc_sam0_port_examples
- * - \ref asfdoc_sam0_port_api_overview
- *
- *
- * \section asfdoc_sam0_port_prerequisites Prerequisites
- *
- * There are no prerequisites for this module.
- *
- *
- * \section asfdoc_sam0_port_module_overview Module Overview
- *
- * The device GPIO (PORT) module provides an interface between the user
- * application logic and external hardware peripherals, when general pin state
- * manipulation is required. This driver provides an easy-to-use interface to
- * the physical pin input samplers and output drivers, so that pins can be read
- * from or written to for general purpose external hardware control.
- *
- * \subsection asfdoc_sam0_port_features Driver Feature Macro Definition
- *
- *
- *
Driver Feature Macro
- *
Supported devices
- *
- *
- *
FEATURE_PORT_INPUT_EVENT
- *
SAM L21/L22/C20/C21/R30/R34/R35
- *
- *
- * \note The specific features are only available in the driver when the
- * selected device supports those features.
- *
- * \subsection asfdoc_sam0_port_module_overview_pin_numbering Physical and Logical GPIO Pins
- * SAM devices use two naming conventions for the I/O pins in the device; one
- * physical and one logical. Each physical pin on a device package is assigned
- * both a physical port and pin identifier (e.g. "PORTA.0") as well as a
- * monotonically incrementing logical GPIO number (e.g. "GPIO0"). While the
- * former is used to map physical pins to their physical internal device module
- * counterparts, for simplicity the design of this driver uses the logical GPIO
- * numbers instead.
- *
- * \subsection asfdoc_sam0_port_module_overview_physical Physical Connection
- *
- * \ref asfdoc_sam0_port_module_int_connections "The diagram below" shows how
- * this module is interconnected within the device.
- *
- * \anchor asfdoc_sam0_port_module_int_connections
- * \dot
- * digraph overview {
- * node [label="Port Pad" shape=square] pad;
- *
- * subgraph driver {
- * node [label="Peripheral MUX" shape=trapezium] pinmux;
- * node [label="GPIO Module" shape=ellipse] gpio;
- * node [label="Other Peripheral Modules" shape=ellipse style=filled fillcolor=lightgray] peripherals;
- * }
- *
- * pinmux -> gpio;
- * pad -> pinmux;
- * pinmux -> peripherals;
- * }
- * \enddot
- *
- *
- * \section asfdoc_sam0_port_special_considerations Special Considerations
- *
- * The SAM port pin input sampler can be disabled when the pin is configured
- * in pure output mode to save power; reading the pin state of a pin configured
- * in output-only mode will read the logical output state that was last set.
- *
- * \section asfdoc_sam0_port_extra_info Extra Information
- *
- * For extra information, see \ref asfdoc_sam0_port_extra. This includes:
- * - \ref asfdoc_sam0_port_extra_acronyms
- * - \ref asfdoc_sam0_port_extra_dependencies
- * - \ref asfdoc_sam0_port_extra_errata
- * - \ref asfdoc_sam0_port_extra_history
- *
- *
- * \section asfdoc_sam0_port_examples Examples
- *
- * For a list of examples related to this driver, see
- * \ref asfdoc_sam0_port_exqsg.
- *
- *
- * \section asfdoc_sam0_port_api_overview API Overview
- * @{
- */
-
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \name Driver Feature Definition
- * Define port features set according to different device family.
- * @{
-*/
-#if (SAML21) || (SAML22) || (SAMC20) || (SAMC21) || (SAMR30) || (SAMR34) || (SAMR35) || (WLR089) || defined(__DOXYGEN__)
-/** Event input control feature support for PORT group. */
-# define FEATURE_PORT_INPUT_EVENT
-#endif
-/*@}*/
-
-/** \name PORT Alias Macros
- * @{
- */
-
-/** Convenience definition for GPIO module group A on the device (if
- * available). */
-#if (PORT_GROUPS > 0) || defined(__DOXYGEN__)
-# define PORTA PORT->Group[0]
-#endif
-
-#if (PORT_GROUPS > 1) || defined(__DOXYGEN__)
-/** Convenience definition for GPIO module group B on the device (if
- * available). */
-# define PORTB PORT->Group[1]
-#endif
-
-#if (PORT_GROUPS > 2) || defined(__DOXYGEN__)
-/** Convenience definition for GPIO module group C on the device (if
- * available). */
-# define PORTC PORT->Group[2]
-#endif
-
-#if (PORT_GROUPS > 3) || defined(__DOXYGEN__)
-/** Convenience definition for GPIO module group D on the device (if
- * available). */
-# define PORTD PORT->Group[3]
-#endif
-
-/** @} */
-
-/**
- * \brief Port pin direction configuration enum.
- *
- * Enum for the possible pin direction settings of the port pin configuration
- * structure, to indicate the direction the pin should use.
- */
-enum port_pin_dir {
- /** The pin's input buffer should be enabled, so that the pin state can
- * be read */
- PORT_PIN_DIR_INPUT = SYSTEM_PINMUX_PIN_DIR_INPUT,
- /** The pin's output buffer should be enabled, so that the pin state can
- * be set */
- PORT_PIN_DIR_OUTPUT = SYSTEM_PINMUX_PIN_DIR_OUTPUT,
- /** The pin's output and input buffers should be enabled, so that the pin
- * state can be set and read back */
- PORT_PIN_DIR_OUTPUT_WTH_READBACK = SYSTEM_PINMUX_PIN_DIR_OUTPUT_WITH_READBACK,
-};
-
-/**
- * \brief Port pin input pull configuration enum.
- *
- * Enum for the possible pin pull settings of the port pin configuration
- * structure, to indicate the type of logic level pull the pin should use.
- */
-enum port_pin_pull {
- /** No logical pull should be applied to the pin */
- PORT_PIN_PULL_NONE = SYSTEM_PINMUX_PIN_PULL_NONE,
- /** Pin should be pulled up when idle */
- PORT_PIN_PULL_UP = SYSTEM_PINMUX_PIN_PULL_UP,
- /** Pin should be pulled down when idle */
- PORT_PIN_PULL_DOWN = SYSTEM_PINMUX_PIN_PULL_DOWN,
-};
-
-#ifdef FEATURE_PORT_INPUT_EVENT
-/**
- * \brief Port input event action.
- *
- * List of port input events action on pin.
- */
-enum port_input_event_action {
- /** Event out to pin */
- PORT_INPUT_EVENT_ACTION_OUT = 0,
- /** Set output register of pin on event */
- PORT_INPUT_EVENT_ACTION_SET,
- /** Clear output register pin on event */
- PORT_INPUT_EVENT_ACTION_CLR,
- /** Toggle output register pin on event */
- PORT_INPUT_EVENT_ACTION_TGL,
-};
-
-/**
- * \brief Port input event.
- *
- * List of port input events.
- */
-enum port_input_event{
- /** Port input event 0 */
- PORT_INPUT_EVENT_0 = 0,
- /** Port input event 1 */
- PORT_INPUT_EVENT_1 = 1,
- /** Port input event 2 */
- PORT_INPUT_EVENT_2 = 2,
- /** Port input event 3 */
- PORT_INPUT_EVENT_3 = 3,
-};
-
-/**
- * \brief Port input event configuration structure.
- *
- * Configuration structure for a port input event.
- */
-struct port_input_event_config{
- /** Port input event action */
- enum port_input_event_action action;
- /** GPIO pin */
- uint8_t gpio_pin;
-};
-#endif
-
-/**
- * \brief Port pin configuration structure.
- *
- * Configuration structure for a port pin instance. This structure should be
- * initialized by the \ref port_get_config_defaults() function before being
- * modified by the user application.
- */
-struct port_config {
- /** Port buffer input/output direction */
- enum port_pin_dir direction;
-
- /** Port pull-up/pull-down for input pins */
- enum port_pin_pull input_pull;
-
- /** Enable lowest possible powerstate on the pin
- *
- * \note All other configurations will be ignored, the pin will be disabled.
- */
- bool powersave;
-};
-
-/** \name State Reading/Writing (Physical Group Orientated)
- * @{
- */
-
-/**
- * \brief Retrieves the PORT module group instance from a given GPIO pin number.
- *
- * Retrieves the PORT module group instance associated with a given logical
- * GPIO pin number.
- *
- * \param[in] gpio_pin Index of the GPIO pin to convert
- *
- * \return Base address of the associated PORT module.
- */
-static inline PortGroup* port_get_group_from_gpio_pin(
- const uint8_t gpio_pin)
-{
- return system_pinmux_get_group_from_gpio_pin(gpio_pin);
-}
-
-/**
- * \brief Retrieves the state of a group of port pins that are configured as inputs.
- *
- * Reads the current logic level of a port module's pins and returns the
- * current levels as a bitmask.
- *
- * \param[in] port Base of the PORT module to read from
- * \param[in] mask Mask of the port pin(s) to read
- *
- * \return Status of the port pin(s) input buffers.
- */
-static inline uint32_t port_group_get_input_level(
- const PortGroup *const port,
- const uint32_t mask)
-{
- /* Sanity check arguments */
- Assert(port);
-
- return (port->IN.reg & mask);
-}
-
-/**
- * \brief Retrieves the state of a group of port pins that are configured as outputs.
- *
- * Reads the current logical output level of a port module's pins and returns
- * the current levels as a bitmask.
- *
- * \param[in] port Base of the PORT module to read from
- * \param[in] mask Mask of the port pin(s) to read
- *
- * \return Status of the port pin(s) output buffers.
- */
-static inline uint32_t port_group_get_output_level(
- const PortGroup *const port,
- const uint32_t mask)
-{
- /* Sanity check arguments */
- Assert(port);
-
- return (port->OUT.reg & mask);
-}
-
-/**
- * \brief Sets the state of a group of port pins that are configured as outputs.
- *
- * Sets the current output level of a port module's pins to a given logic
- * level.
- *
- * \param[out] port Base of the PORT module to write to
- * \param[in] mask Mask of the port pin(s) to change
- * \param[in] level_mask Mask of the port level(s) to set
- */
-static inline void port_group_set_output_level(
- PortGroup *const port,
- const uint32_t mask,
- const uint32_t level_mask)
-{
- /* Sanity check arguments */
- Assert(port);
-
- port->OUTSET.reg = (mask & level_mask);
- port->OUTCLR.reg = (mask & ~level_mask);
-}
-
-/**
- * \brief Toggles the state of a group of port pins that are configured as an outputs.
- *
- * Toggles the current output levels of a port module's pins.
- *
- * \param[out] port Base of the PORT module to write to
- * \param[in] mask Mask of the port pin(s) to toggle
- */
-static inline void port_group_toggle_output_level(
- PortGroup *const port,
- const uint32_t mask)
-{
- /* Sanity check arguments */
- Assert(port);
-
- port->OUTTGL.reg = mask;
-}
-
-/** @} */
-
-/** \name Configuration and Initialization
- * @{
- */
-
-/**
- * \brief Initializes a Port pin/group configuration structure to defaults.
- *
- * Initializes a given Port pin/group configuration structure to a set of
- * known default values. This function should be called on all new
- * instances of these configuration structures before being modified by the
- * user application.
- *
- * The default configuration is as follows:
- * \li Input mode with internal pull-up enabled
- *
- * \param[out] config Configuration structure to initialize to default values
- */
-static inline void port_get_config_defaults(
- struct port_config *const config)
-{
- /* Sanity check arguments */
- Assert(config);
-
- /* Default configuration values */
- config->direction = PORT_PIN_DIR_INPUT;
- config->input_pull = PORT_PIN_PULL_UP;
- config->powersave = false;
-}
-
-void port_pin_set_config(
- const uint8_t gpio_pin,
- const struct port_config *const config);
-
-void port_group_set_config(
- PortGroup *const port,
- const uint32_t mask,
- const struct port_config *const config);
-
-/** @} */
-
-/** \name State Reading/Writing (Logical Pin Orientated)
- * @{
- */
-
-/**
- * \brief Retrieves the state of a port pin that is configured as an input.
- *
- * Reads the current logic level of a port pin and returns the current
- * level as a Boolean value.
- *
- * \param[in] gpio_pin Index of the GPIO pin to read
- *
- * \return Status of the port pin's input buffer.
- */
-static inline bool port_pin_get_input_level(
- const uint8_t gpio_pin)
-{
- PortGroup *const port_base = port_get_group_from_gpio_pin(gpio_pin);
- uint32_t pin_mask = (1UL << (gpio_pin % 32));
-
- return (port_base->IN.reg & pin_mask);
-}
-
-/**
- * \brief Retrieves the state of a port pin that is configured as an output.
- *
- * Reads the current logical output level of a port pin and returns the current
- * level as a Boolean value.
- *
- * \param[in] gpio_pin Index of the GPIO pin to read
- *
- * \return Status of the port pin's output buffer.
- */
-static inline bool port_pin_get_output_level(
- const uint8_t gpio_pin)
-{
- PortGroup *const port_base = port_get_group_from_gpio_pin(gpio_pin);
- uint32_t pin_mask = (1UL << (gpio_pin % 32));
-
- return (port_base->OUT.reg & pin_mask);
-}
-
-/**
- * \brief Sets the state of a port pin that is configured as an output.
- *
- * Sets the current output level of a port pin to a given logic level.
- *
- * \param[in] gpio_pin Index of the GPIO pin to write to
- * \param[in] level Logical level to set the given pin to
- */
-static inline void port_pin_set_output_level(
- const uint8_t gpio_pin,
- const bool level)
-{
- PortGroup *const port_base = port_get_group_from_gpio_pin(gpio_pin);
- uint32_t pin_mask = (1UL << (gpio_pin % 32));
-
- /* Set the pin to high or low atomically based on the requested level */
- if (level) {
- port_base->OUTSET.reg = pin_mask;
- } else {
- port_base->OUTCLR.reg = pin_mask;
- }
-}
-
-/**
- * \brief Toggles the state of a port pin that is configured as an output.
- *
- * Toggles the current output level of a port pin.
- *
- * \param[in] gpio_pin Index of the GPIO pin to toggle
- */
-static inline void port_pin_toggle_output_level(
- const uint8_t gpio_pin)
-{
- PortGroup *const port_base = port_get_group_from_gpio_pin(gpio_pin);
- uint32_t pin_mask = (1UL << (gpio_pin % 32));
-
- /* Toggle pin output level */
- port_base->OUTTGL.reg = pin_mask;
-}
-
-/** @} */
-
-#ifdef FEATURE_PORT_INPUT_EVENT
-
-/** \name Port Input Event
- * @{
- */
-
-/**
- * \brief Enable the port event input.
- *
- * Enable the port event input with the given pin and event.
- *
- * \param[in] gpio_pin Index of the GPIO pin
- * \param[in] n Port input event
- *
- * \retval STATUS_ERR_INVALID_ARG Invalid parameter
- * \retval STATUS_OK Successfully
- */
-static inline enum status_code port_enable_input_event(
- const uint8_t gpio_pin,
- const enum port_input_event n)
-{
- PortGroup *const port_base = port_get_group_from_gpio_pin(gpio_pin);
- switch (n) {
- case PORT_INPUT_EVENT_0:
- port_base->EVCTRL.reg |= PORT_EVCTRL_PORTEI0;
- break;
- case PORT_INPUT_EVENT_1:
- port_base->EVCTRL.reg |= PORT_EVCTRL_PORTEI1;
- break;
- case PORT_INPUT_EVENT_2:
- port_base->EVCTRL.reg |= PORT_EVCTRL_PORTEI2;
- break;
- case PORT_INPUT_EVENT_3:
- port_base->EVCTRL.reg |= PORT_EVCTRL_PORTEI3;
- break;
- default:
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
- }
- return STATUS_OK;
-}
-
-/**
- * \brief Disable the port event input.
- *
- * Disable the port event input with the given pin and event.
- *
- * \param[in] gpio_pin Index of the GPIO pin
- * \param[in] gpio_pin Port input event
- *
- * \retval STATUS_ERR_INVALID_ARG Invalid parameter
- * \retval STATUS_OK Successfully
- */
-static inline enum status_code port_disable_input_event(
- const uint8_t gpio_pin,
- const enum port_input_event n)
-{
- PortGroup *const port_base = port_get_group_from_gpio_pin(gpio_pin);
- switch (n) {
- case PORT_INPUT_EVENT_0:
- port_base->EVCTRL.reg &= ~PORT_EVCTRL_PORTEI0;
- break;
- case PORT_INPUT_EVENT_1:
- port_base->EVCTRL.reg &= ~PORT_EVCTRL_PORTEI1;
- break;
- case PORT_INPUT_EVENT_2:
- port_base->EVCTRL.reg &= ~PORT_EVCTRL_PORTEI2;
- break;
- case PORT_INPUT_EVENT_3:
- port_base->EVCTRL.reg &= ~PORT_EVCTRL_PORTEI3;
- break;
- default:
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
- }
- return STATUS_OK;
-}
-
-/**
- * \brief Retrieve the default configuration for port input event.
- *
- * Fills a configuration structure with the default configuration for port input event:
- * - Event output to pin
- * - Event action to be executed on PIN 0
- *
- * \param[out] config Configuration structure to fill with default values
- */
-static inline void port_input_event_get_config_defaults(
- struct port_input_event_config *const config)
-{
- Assert(config);
- config->action = PORT_INPUT_EVENT_ACTION_OUT;
- config->gpio_pin = 0;
-}
-
-/**
- * \brief Configure port input event.
- *
- * Configures port input event with the given configuration settings.
- *
- * \param[in] config Port input even configuration structure containing the new config
- *
- * \retval STATUS_ERR_INVALID_ARG Invalid parameter
- * \retval STATUS_OK Successfully
- */
-
-static inline enum status_code port_input_event_set_config(
- const enum port_input_event n,
- struct port_input_event_config *const config)
-{
- Assert(config);
- PortGroup *const port_base = port_get_group_from_gpio_pin(config->gpio_pin);
- uint8_t pin_index = config->gpio_pin % 32;
- struct port_config pin_conf;
-
- port_get_config_defaults(&pin_conf);
- /* Configure the GPIO pin as outputs*/
- pin_conf.direction = PORT_PIN_DIR_OUTPUT;
- port_pin_set_config(config->gpio_pin, &pin_conf);
-
- switch (n) {
- case PORT_INPUT_EVENT_0:
- port_base->EVCTRL.reg |= PORT_EVCTRL_EVACT0(config->action)
- | PORT_EVCTRL_PID0(pin_index);
- break;
- case PORT_INPUT_EVENT_1:
- port_base->EVCTRL.reg |= PORT_EVCTRL_EVACT1(config->action)
- | PORT_EVCTRL_PID1(pin_index);
- break;
- case PORT_INPUT_EVENT_2:
- port_base->EVCTRL.reg |= PORT_EVCTRL_EVACT2(config->action)
- | PORT_EVCTRL_PID2(pin_index);
- break;
- case PORT_INPUT_EVENT_3:
- port_base->EVCTRL.reg |= PORT_EVCTRL_EVACT3(config->action)
- | PORT_EVCTRL_PID3(pin_index);
- break;
- default:
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
- }
- return STATUS_OK;
-}
-
-/** @} */
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-/**
- * \page asfdoc_sam0_port_extra Extra Information for PORT Driver
- *
- * \section asfdoc_sam0_port_extra_acronyms Acronyms
- * Below is a table listing the acronyms used in this module, along with their
- * intended meanings.
- *
- *
- *
- *
Acronym
- *
Description
- *
- *
- *
GPIO
- *
General Purpose Input/Output
- *
- *
- *
MUX
- *
Multiplexer
- *
- *
- *
- *
- * \section asfdoc_sam0_port_extra_dependencies Dependencies
- * This driver has the following dependencies:
- *
- * - \ref asfdoc_sam0_system_pinmux_group "System Pin Multiplexer Driver"
- *
- *
- * \section asfdoc_sam0_port_extra_errata Errata
- * There are no errata related to this driver.
- *
- *
- * \section asfdoc_sam0_port_extra_history Module History
- * An overview of the module history is presented in the table below, with
- * details on the enhancements and fixes made to the module since its first
- * release. The current version of this corresponds to the newest version in
- * the table.
- *
- *
- *
- *
Changelog
- *
- *
- *
Added input event feature
- *
- *
- *
Initial release
- *
- *
- */
-
-/**
- * \page asfdoc_sam0_port_exqsg Examples for PORT Driver
- *
- * This is a list of the available Quick Start guides (QSGs) and example
- * applications for \ref asfdoc_sam0_port_group. QSGs are simple examples with
- * step-by-step instructions to configure and use this driver in a selection of
- * use cases. Note that a QSG can be compiled as a standalone application or be
- * added to the user application.
- *
- * - \subpage asfdoc_sam0_port_basic_use_case
- *
- * \page asfdoc_sam0_port_document_revision_history Document Revision History
- *
- *
- *
- *
Doc. Rev.
- *
Date
- *
Comments
- *
- *
- *
42113E
- *
12/2015
- *
Added input event feature.
- * Added support for SAM L21/L22, SAM C21, SAM D09, SAMR30/R34 and SAM DA1.
- *
- *
- *
42113D
- *
12/2014
- *
Added support for SAM R21 and SAM D10/D11
- *
- *
- *
42113C
- *
01/2014
- *
Added support for SAM D21
- *
- *
- *
42113B
- *
06/2013
- *
Corrected documentation typos
- *
- *
- *
42113A
- *
06/2013
- *
Initial document release
- *
- *
- */
-
-#endif
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/port/quick_start/qs_port_basic.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/port/quick_start/qs_port_basic.h
deleted file mode 100644
index 5281e1a..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/port/quick_start/qs_port_basic.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- * \file
- *
- * \brief SAM GPIO Port Driver Quick Start
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-/**
- * \page asfdoc_sam0_port_basic_use_case Quick Start Guide for PORT - Basic
- *
- * In this use case, the PORT module is configured for:
- * \li One pin in input mode, with pull-up enabled
- * \li One pin in output mode
- *
- * This use case sets up the PORT to read the current state of a GPIO pin set as
- * an input, and mirrors the opposite logical state on a pin configured as an
- * output.
- *
- * \section asfdoc_sam0_port_basic_use_case_setup Setup
- *
- * \subsection asfdoc_sam0_port_basic_use_case_setup_prereq Prerequisites
- * There are no special setup requirements for this use-case.
- *
- * \subsection asfdoc_sam0_port_basic_use_case_setup_code Code
- * Copy-paste the following setup code to your user application:
- * \snippet qs_port_basic.c setup
- *
- * Add to user application initialization (typically the start of \c main()):
- * \snippet qs_port_basic.c setup_init
- *
- * \subsection asfdoc_sam0_port_basic_use_case_setup_flow Workflow
- * -# Create a PORT module pin configuration struct, which can be filled out to
- * adjust the configuration of a single port pin.
- * \snippet qs_port_basic.c setup_1
- * -# Initialize the pin configuration struct with the module's default values.
- * \snippet qs_port_basic.c setup_2
- * \note This should always be performed before using the configuration
- * struct to ensure that all values are initialized to known default
- * settings.
- *
- * -# Adjust the configuration struct to request an input pin.
- * \snippet qs_port_basic.c setup_3
- * -# Configure push button pin with the initialized pin configuration struct, to enable
- * the input sampler on the pin.
- * \snippet qs_port_basic.c setup_4
- * -# Adjust the configuration struct to request an output pin.
- * \snippet qs_port_basic.c setup_5
- * \note The existing configuration struct may be re-used, as long as any
- * values that have been altered from the default settings are taken
- * into account by the user application.
- *
- * -# Configure LED pin with the initialized pin configuration struct, to enable
- * the output driver on the pin.
- * \snippet qs_port_basic.c setup_6
- *
- * \section asfdoc_sam0_port_basic_use_case_use_main Use Case
- *
- * \subsection asfdoc_sam0_port_basic_use_case_code Code
- * Copy-paste the following code to your user application:
- * \snippet qs_port_basic.c main
- *
- * \subsection asfdoc_sam0_port_basic_use_case_flow Workflow
- * -# Read in the current input sampler state of push button pin, which has been
- * configured as an input in the use-case setup code.
- * \snippet qs_port_basic.c main_1
- * -# Write the inverted pin level state to LED pin, which has been configured as
- * an output in the use-case setup code.
- * \snippet qs_port_basic.c main_2
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/i2c/i2c_common.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/i2c/i2c_common.h
deleted file mode 100644
index b28d672..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/i2c/i2c_common.h
+++ /dev/null
@@ -1,607 +0,0 @@
-/**
- * \file
- *
- * \brief SAM SERCOM I2C Common Driver
- *
- * Copyright (c) 2012-2020 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef I2C_COMMON_H_INCLUDED
-#define I2C_COMMON_H_INCLUDED
-
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \if (I2C_MASTER_MODE && I2C_SLAVE_MODE)
- * \defgroup asfdoc_sam0_sercom_i2c_group SAM I2C (SERCOM I2C) Driver
- * \elseif I2C_MASTER_MODE
- * \defgroup asfdoc_sam0_sercom_i2c_group SAM I2C Master Mode (SERCOM I2C) Driver
- * \elseif I2C_SLAVE_MODE
- * \defgroup asfdoc_sam0_sercom_i2c_group SAM I2C Slave Mode (SERCOM I2C) Driver
- * \endif
- *
- * This driver for Atmel® | SMART ARM®-based microcontrollers provides
- * an interface for the configuration and management of the device's SERCOM
- * I2C module, for the transfer of data via an I2C bus.
- * The following driver API modes are covered by this manual:
- *
- * \if I2C_MASTER_MODE
- * - Master Mode Polled APIs
- * \endif
- * \if I2C_MASTER_CALLBACK_MODE
- * - Master Mode Callback APIs
- * \endif
- * \if I2C_SLAVE_MODE
- * - Slave Mode Polled APIs
- * \endif
- * \if I2C_SLAVE_CALLBACK_MODE
- * - Slave Mode Callback APIs
- * \endif
- *
- * The following peripheral is used by this module:
- * - SERCOM (Serial Communication Interface)
- *
- * The following devices can use this module:
- * - Atmel | SMART SAM D20/D21
- * - Atmel | SMART SAM R21
- * - Atmel | SMART SAM D09/D10/D11
- * - Atmel | SMART SAM L21/L22
- * - Atmel | SMART SAM DA1
- * - Atmel | SMART SAM C20/C21
- * - Atmel | SMART SAM HA1
- * - Atmel | SMART SAM R30
- * - Atmel | SMART SAM R34
- * - Atmel | SMART SAM R35
- *
- * The outline of this documentation is as follows:
- * - \ref asfdoc_sam0_sercom_i2c_prerequisites
- * - \ref asfdoc_sam0_sercom_i2c_overview
- * - \ref asfdoc_sam0_sercom_i2c_special_considerations
- * - \ref asfdoc_sam0_sercom_i2c_extra
- * - \ref asfdoc_sam0_sercom_i2c_examples
- * - \ref asfdoc_sam0_sercom_i2c_api_overview
- *
- * \section asfdoc_sam0_sercom_i2c_prerequisites Prerequisites
- * There are no prerequisites.
- *
- * \section asfdoc_sam0_sercom_i2c_overview Module Overview
- * The outline of this section is as follows:
- * - \ref asfdoc_sam0_sercom_i2c_module_features
- * - \ref asfdoc_sam0_sercom_i2c_functional_desc
- * - \ref asfdoc_sam0_sercom_i2c_bus_topology
- * - \ref asfdoc_sam0_sercom_i2c_transactions
- * - \ref asfdoc_sam0_sercom_i2c_multi_master
- * - \ref asfdoc_sam0_sercom_i2c_bus_states
- * - \ref asfdoc_sam0_sercom_i2c_timeout
- * - \ref asfdoc_sam0_sercom_i2c_sleep_modes
- *
- * \subsection asfdoc_sam0_sercom_i2c_module_features Driver Feature Macro Definition
- *
- *
- *
Driver Feature Macro
- *
Supported devices
- *
- *
- *
FEATURE_I2C_FAST_MODE_PLUS_AND_HIGH_SPEED
- *
SAM D21/R21/D10/D11/L21/L22/DA1/C20/C21/HA1/R34/R35
- *
- *
- *
FEATURE_I2C_10_BIT_ADDRESS
- *
SAM D21/R21/D10/D11/L21/L22/DA1/C20/C21/HA1/R34/R35
- *
- *
- *
FEATURE_I2C_SCL_STRETCH_MODE
- *
SAM D21/R21/D10/D11/L21/L22/DA1/C20/C21/HA1/R34/R35
- *
- *
- *
FEATURE_I2C_SCL_EXTEND_TIMEOUT
- *
SAM D21/R21/D10/D11/L21/L22/DA1/C20/C21/HA1/R34/R35
- *
- *
- * \note The specific features are only available in the driver when the selected
- * device supports those features.
- * \note When using the I2C high-speed mode for off-board communication,
- * there are various high frequency interference, which can lead to distortion of the signals
- * and communication failure. When using Xplained Pro boards in order to test I2C high-speed
- * communication, the following recommendation should be followed:
- * - Use the SDA-line on PA08 and SCL-line on PA09 for both boards. This will provide stronger
- * pull-ups on both SDA and SCL.
- * - The SCL should not be higher than 1.5MHz.
- *
- * \subsection asfdoc_sam0_sercom_i2c_functional_desc Functional Description
- * The I2C provides a simple two-wire bidirectional bus consisting of a
- * wired-AND type serial clock line (SCL) and a wired-AND type serial data line
- * (SDA).
- *
- * The I2C bus provides a simple, but efficient method of interconnecting
- * multiple master and slave devices. An arbitration mechanism is provided for
- * resolving bus ownership between masters, as only one master device may own
- * the bus at any given time. The arbitration mechanism relies on the wired-AND
- * connections to avoid bus drivers short-circuiting.
- *
- * A unique address is assigned to all slave devices connected to the bus. A
- * device can contain both master and slave logic, and can emulate multiple
- * slave devices by responding to more than one address.
- *
- * \subsection asfdoc_sam0_sercom_i2c_bus_topology Bus Topology
- * The I2C bus topology is illustrated in
- * \ref asfdoc_sam0_sercom_i2c_bus_topology_figure "the figure below". The pull-up
- * resistors (Rs) will provide a high level on the bus lines when none of the
- * I2C devices are driving the bus. These are optional, and can be
- * replaced with a constant current source.
- *
- * \anchor asfdoc_sam0_sercom_i2c_bus_topology_figure
- * \image html bus_topology.svg "I2C Bus Topology" Width=100%
- *
- * \subsection asfdoc_sam0_sercom_i2c_transactions Transactions
- * The I2C standard defines three fundamental transaction formats:
- * - Master Write
- * - The master transmits data packets to the slave after addressing it
- * - Master Read
- * - The slave transmits data packets to the master after being addressed
- * - Combined Read/Write
- * - A combined transaction consists of several write and read transactions
- *
- * A data transfer starts with the master issuing a \b Start condition on the
- * bus, followed by the address of the slave together with a bit to indicate
- * whether the master wants to read from or write to the slave.
- * The addressed slave must respond to this by sending an \b ACK back to the
- * master.
- *
- * After this, data packets are sent from the master or slave, according to the
- * read/write bit. Each packet must be acknowledged (ACK) or not
- * acknowledged (NACK) by the receiver.
- *
- * If a slave responds with a NACK, the master must assume that the slave
- * cannot receive any more data and cancel the write operation.
- *
- * The master completes a transaction by issuing a \b Stop condition.
- *
- * A master can issue multiple \b Start conditions during a transaction; this
- * is then called a \b Repeated \b Start condition.
- *
- * \subsubsection asfdoc_sam0_sercom_i2c_address_packets Address Packets
- * The slave address consists of seven bits. The 8th bit in the transfer
- * determines the data direction (read or write). An address packet always
- * succeeds a \b Start or \b Repeated \b Start condition. The 8th bit is handled
- * in the driver, and the user will only have to provide the 7-bit address.
- *
- * \subsubsection asfdoc_sam0_sercom_i2c_data_packets Data Packets
- * Data packets are nine bits long, consisting of one 8-bit data byte, and an
- * acknowledgement bit. Data packets follow either an address packet or another
- * data packet on the bus.
- *
- * \subsubsection asfdoc_sam0_sercom_i2c_trans_examples Transaction Examples
- * The gray bits in the following examples are sent from master to slave, and
- * the white bits are sent from slave to master.
- * Example of a read transaction is shown in
- * \ref asfdoc_sam0_sercom_i2c_trans_examples_i2c_read "the figure below". Here, the
- * master first issues a \b Start condition and gets ownership of the bus. An
- * address packet with the direction flag set to read is then sent and
- * acknowledged by the slave. Then the slave sends one data packet which is
- * acknowledged by the master. The slave sends another packet, which is not
- * acknowledged by the master and indicates that the master will terminate the
- * transaction. In the end, the transaction is terminated by the master issuing
- * a \b Stop condition.
- *
- * \anchor asfdoc_sam0_sercom_i2c_trans_examples_i2c_read
- * \image html i2c_read.svg "I2C Packet Read" Width=100%
- *
- * Example of a write transaction is shown in
- * \ref asfdoc_sam0_sercom_i2c_trans_examples_i2c_write "the figure below". Here, the
- * master first issues a \b Start condition and gets ownership of the bus. An
- * address packet with the dir flag set to write is then sent and acknowledged
- * by the slave. Then the master sends two data packets, each acknowledged by
- * the slave. In the end, the transaction is terminated by the master issuing
- * a \b Stop condition.
- *
- * \anchor asfdoc_sam0_sercom_i2c_trans_examples_i2c_write
- * \image html i2c_write.svg "I2C Packet Write" Width=100%
- *
- * \subsubsection asfdoc_sam0_sercom_i2c_packet_timeout Packet Timeout
- * When a master sends an I2C packet, there is no way of
- * being sure that a slave will acknowledge the packet. To avoid stalling the
- * device forever while waiting for an acknowledge, a user selectable timeout
- * is provided in the \ref i2c_master_config struct which
- * lets the driver exit a read or write operation after the specified time.
- * The function will then return the STATUS_ERR_TIMEOUT flag.
- *
- * This is also the case for the slave when using the functions postfixed
- * \c _wait.
- *
- * The time before the timeout occurs, will be the same as
- * for \ref asfdoc_sam0_sercom_i2c_unknown_bus_timeout "unknown bus state" timeout.
- *
- * \subsubsection asfdoc_sam0_sercom_i2c_repeated_start Repeated Start
- * To issue a \b Repeated \b Start, the functions postfixed \c _no_stop must be
- * used.
- * These functions will not send a \b Stop condition when the transfer is done,
- * thus the next transfer will start with a \b Repeated \b Start. To end the
- * transaction, the functions without the \c _no_stop postfix must be used
- * for the last read/write.
- *
- * \subsection asfdoc_sam0_sercom_i2c_multi_master Multi Master
- * In a multi master environment, arbitration of the bus is important, as only
- * one master can own the bus at any point.
- *
- * \subsubsection asfdoc_sam0_sercom_i2c_arbitration Arbitration
- *
- * \par Clock stretching
- * The serial clock line is always driven by a master device. However, all
- * devices connected to the bus are allowed stretch the low period of the clock
- * to slow down the overall clock frequency or to insert wait states while
- * processing data.
- * Both master and slave can randomly stretch the clock, which will force the
- * other device into a wait-state until the clock line goes high again.
- *
- * \par Arbitration on the data line
- * If two masters start transmitting at the same time, they will both transmit
- * until one master detects that the other master is pulling the data line low.
- * When this is detected, the master not pulling the line low, will stop the
- * transmission and wait until the bus is idle.
- * As it is the master trying to contact the slave with the lowest address that
- * will get the bus ownership, this will create an arbitration scheme always
- * prioritizing the slaves with the lowest address in case of a bus collision.
- *
- * \subsubsection asfdoc_sam0_sercom_i2c_clock_sync Clock Synchronization
- * In situations where more than one master is trying to control the bus clock
- * line at the same time, a clock synchronization algorithm based on the same
- * principles used for clock stretching is necessary.
- *
- *
- * \subsection asfdoc_sam0_sercom_i2c_bus_states Bus States
- * As the I2C bus is limited to one transaction at the time,
- * a master that wants to perform a bus transaction must wait until the bus is
- * free.
- * Because of this, it is necessary for all masters in a multi-master system to
- * know the current status of the bus to be able to avoid conflicts and to
- * ensure data integrity.
- * \li \b IDLE No activity on the bus (between a \b Stop and a new \b Start
- * condition)
- * \li \b OWNER If the master initiates a transaction successfully
- * \li \b BUSY If another master is driving the bus
- * \li \b UNKNOWN If the master has recently been enabled or connected to
- * the bus. Is forced to \b IDLE after given
- * \ref asfdoc_sam0_sercom_i2c_unknown_bus_timeout "timeout" when
- * the master module is enabled
- *
- * The bus state diagram can be seen in
- * \ref asfdoc_sam0_sercom_i2c_bus_states_figure "the figure below".
- * \li S: Start condition
- * \li P: Stop condition
- * \li Sr: Repeated start condition
- * \anchor asfdoc_sam0_sercom_i2c_bus_states_figure
- * \image html bus_state_diagram.svg "I2C Bus State Diagram" Width=100%
- *
- * \subsection asfdoc_sam0_sercom_i2c_timeout Bus Timing
- * Inactive bus timeout for the master and SDA hold time is configurable in the
- * drivers.
- *
- * \subsubsection asfdoc_sam0_sercom_i2c_unknown_bus_timeout Unknown Bus State Timeout
- * When a master is enabled or connected to the bus, the bus state will be
- * unknown until either a given timeout or a stop command has occurred. The
- * timeout is configurable in the \ref i2c_master_config struct.
- * The timeout time will depend on toolchain and optimization level used, as
- * the timeout is a loop incrementing a value until it reaches the specified
- * timeout value.
- *
- * \subsubsection sda_hold SDA Hold Timeout
- * When using the I2C in slave mode, it will be important to
- * set a SDA hold time which assures that the master will be able to pick up
- * the bit sent from the slave. The SDA hold time makes sure that this is the
- * case by holding the data line low for a given period after the negative edge
- * on the clock.
- *
- * The SDA hold time is also available for the master driver, but is not a
- * necessity.
- *
- * \subsection asfdoc_sam0_sercom_i2c_sleep_modes Operation in Sleep Modes
- * The I2C module can operate in all sleep modes by setting
- * the run_in_standby Boolean in the \ref i2c_master_config or
- * \ref i2c_slave_config struct.
- * The operation in slave and master mode is shown in
- * \ref asfdoc_sam0_sercom_i2c_sleep_modes_table "the table below".
- *
- * \anchor asfdoc_sam0_sercom_i2c_sleep_modes_table
- *
- *
I2C Standby Operations
- *
- *
Run in standby
- *
Slave
- *
Master
- *
- *
- *
false
- *
Disabled, all reception is dropped
- *
Generic Clock (GCLK) disabled when master is idle
- *
- *
- *
true
- *
Wake on address match when enabled
- *
GCLK enabled while in sleep modes
- *
- *
- *
- *
- * \section asfdoc_sam0_sercom_i2c_special_considerations Special Considerations
- *
- * \if (I2C_MASTER_CALLBACK_MODE || I2C_SLAVE_CALLBACK_MODE)
- * \subsection asfdoc_sam0_sercom_i2c_common_interrupt Interrupt-driven Operation
- * While an interrupt-driven operation is in progress, subsequent calls to a
- * write or read operation will return the STATUS_BUSY flag, indicating that
- * only one operation is allowed at any given time.
- *
- * To check if another transmission can be initiated, the user can either call
- * another transfer operation, or use the
- * \ref i2c_master_get_job_status/\ref i2c_slave_get_job_status functions
- * depending on mode.
- *
- * If the user would like to get callback from operations while using the
- * interrupt-driven driver, the callback must be registered and then enabled
- * using the "register_callback" and "enable_callback" functions.
- * \else
- * There are no special considerations for this driver for the APIs listed in
- * this document.
- * \endif
- *
- * \section asfdoc_sam0_sercom_i2c_extra Extra Information
- * For extra information, see \ref asfdoc_sam0_sercom_i2c_extra_info_page.
- * This includes:
- * - \ref asfdoc_sam0_sercom_i2c_acronyms
- * - \ref asfdoc_sam0_sercom_i2c_extra_dependencies
- * - \ref asfdoc_sam0_sercom_i2c_extra_errata
- * - \ref asfdoc_sam0_sercom_i2c_extra_history
- *
- * \section asfdoc_sam0_sercom_i2c_examples Examples
- *
- * For a list of examples related to this driver, see
- * \ref asfdoc_sam0_sercom_i2c_exqsg.
- *
- * \section asfdoc_sam0_sercom_i2c_api_overview API Overview
- * @{
- */
-
-/**
- * \name Driver Feature Definition
- * Define SERCOM I2C driver features set according to different device family.
- *
- * @{
- */
-#if (SAMD21) || (SAMR21) || (SAMD10) || (SAMD11) || (SAML21) || (SAMDA1) || \
- (SAMHA1) || (SAMHA0) || (SAML22) || (SAMC20) || (SAMC21) || (SAMD09) || (SAMR30) || (SAMR34) || (SAMR35) || (WLR089) || defined(__DOXYGEN__)
-/** Fast mode plus and high speed support. */
-# define FEATURE_I2C_FAST_MODE_PLUS_AND_HIGH_SPEED
-/** 10-bit address support */
-# define FEATURE_I2C_10_BIT_ADDRESS
-/** SCL stretch mode support */
-# define FEATURE_I2C_SCL_STRETCH_MODE
-/** SCL extend timeout support */
-# define FEATURE_I2C_SCL_EXTEND_TIMEOUT
-# define FEATURE_I2C_DMA_SUPPORT
-#endif
-/*@}*/
-
-/** \brief Transfer direction
- *
- * For master: transfer direction or setting direction bit in address.
- * For slave: direction of request from master.
- */
-enum i2c_transfer_direction {
- /** Master write operation is in progress */
- I2C_TRANSFER_WRITE = 0,
- /** Master read operation is in progress */
- I2C_TRANSFER_READ = 1,
-};
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-/**
- * \page asfdoc_sam0_sercom_i2c_extra_info_page Extra Information for SERCOM I2C Driver
- *
- * \section asfdoc_sam0_sercom_i2c_acronyms Acronyms
- * \ref asfdoc_sam0_sercom_i2c_acronyms_table "Below" is a table listing the acronyms
- * used in this module, along with their intended meanings.
- *
- * \anchor asfdoc_sam0_sercom_i2c_acronyms_table
- *
- *
Acronyms
- *
- *
Acronym
- *
Description
- *
- *
- *
SDA
- *
Serial Data Line
- *
- *
- *
SCL
- *
Serial Clock Line
- *
- *
- *
SERCOM
- *
Serial Communication Interface
- *
- *
- *
DMA
- *
Direct Memory Access
- *
- *
- *
- * \section asfdoc_sam0_sercom_i2c_extra_dependencies Dependencies
- * The I2C driver has the following dependencies:
- * \li \ref asfdoc_sam0_system_pinmux_group "System Pin Multiplexer Driver"
- *
- *
- * \section asfdoc_sam0_sercom_i2c_extra_errata Errata
- * There are no errata related to this driver.
- *
- * \section asfdoc_sam0_sercom_i2c_extra_history Module History
- * \ref asfdoc_sam0_sercom_i2c_extra_history_table "Below" is an overview of the
- * module history, detailing enhancements and fixes made to the module since
- * its first release. The current version of this corresponds to the newest
- * version listed in
- * \ref asfdoc_sam0_sercom_i2c_extra_history_table "the table below".
- *
- * \anchor asfdoc_sam0_sercom_i2c_extra_history_table
- *
- *
Module History
- *
- *
Changelog
- *
- *
- *
- * \li Added 10-bit addressing and high speed support in SAM D21
- * \li Separate structure i2c_packet into i2c_master_packet and i2c_slave packet
- *
- *
- *
- *
- * \li Added support for SCL stretch and extended timeout hardware features in SAM D21
- * \li Added fast mode plus support in SAM D21
- *
- *
- *
- *
Fixed incorrect logical mask for determining if a bus error has
- * occurred in I2C Slave mode
- *
- *
- *
- *
Initial Release
- *
- *
- */
-
-/**
- * \page asfdoc_sam0_sercom_i2c_exqsg Examples for SERCOM I2C Driver
- *
- * This is a list of the available Quick Start guides (QSGs) and example
- * applications for \ref asfdoc_sam0_sercom_i2c_group. QSGs are simple examples with
- * step-by-step instructions to configure and use this driver in a selection of
- * use cases. Note that a QSG can be compiled as a standalone application or be
- * added to the user application.
- *
- * \if I2C_MASTER_MODE
- * - \subpage asfdoc_sam0_sercom_i2c_master_basic_use_case "Quick Start Guide for the I2C Master module - Basic Use Case"
- * \endif
- * \if I2C_MASTER_CALLBACK_MODE
- * - \subpage asfdoc_sam0_sercom_i2c_master_callback_use_case "Quick Start Guide for the I2C Master module - Callback Use Case"
- * - \subpage asfdoc_sam0_sercom_i2c_master_dma_use_case "Quick Start Guide for the I2C Master module - DMA Use Case"
- * \endif
- * \if I2C_SLAVE_MODE
- * - \subpage asfdoc_sam0_sercom_i2c_slave_basic_use_case "Quick Start Guide for the I2C Slave module - Basic Use Case"
- * \endif
- * \if I2C_SLAVE_CALLBACK_MODE
- * - \subpage asfdoc_sam0_sercom_i2c_slave_callback_use_case "Quick Start Guide for the I2C Slave module - Callback Use Case"
- * - \subpage asfdoc_sam0_sercom_i2c_slave_dma_use_case "Quick Start Guide for the I2C Slave module - DMA Use Case"
- * \endif
- *
- * \page asfdoc_sam0_sercom_i2c_document_revision_history Document Revision History
- *
- * \if (I2C_MASTER_MODE || I2C_MASTER_CALLBACK_MODE)
- *
- *
- *
Doc. Rev.
- *
Date
- *
Comments
- *
- *
- *
42117E
- *
12/2015
- *
Added support for SAM L21/L22, SAM DA1, SAM D09, and SAM C21
- *
- *
- *
42117D
- *
12/2014
- *
Added support for 10-bit addressing and high speed in SAM D21.
- * Added support for SAM R21 and SAM D10/D11.
- *
- *
- *
42117C
- *
01/2014
- *
Added support for SAM D21
- *
- *
- *
42117B
- *
06/2013
- *
Corrected documentation typos. Updated I2C Bus State Diagram.
- *
- *
- *
42117A
- *
06/2013
- *
Initial release
- *
- *
- * \else
- *
- *
- *
Doc. Rev.
- *
Date
- *
Comments
- *
- *
- *
42116E
- *
12/2015
- *
Added support for SAM L21/L22, SAM DA1, SAM D09, and SAM C21
- *
- *
- *
42116D
- *
12/2014
- *
Added support for 10-bit addressing and high speed in SAM D21.
- * Added support for SAM R21 and SAM D10/D11.
- *
- *
- *
42116C
- *
01/2014
- *
Added support for SAM D21
- *
- *
- *
42116B
- *
06/2013
- *
Corrected documentation typos. Updated I2C Bus State Diagram.
- *
- *
- *
42116A
- *
06/2013
- *
Initial release
- *
- *
- *\endif
- */
-
-#endif /* I2C_COMMON_H_INCLUDED */
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/i2c/i2c_master.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/i2c/i2c_master.h
deleted file mode 100644
index d249653..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/i2c/i2c_master.h
+++ /dev/null
@@ -1,619 +0,0 @@
-/**
- * \file
- *
- * \brief SAM SERCOM I2C Master Driver
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef I2C_MASTER_H_INCLUDED
-#define I2C_MASTER_H_INCLUDED
-
-#include "i2c_common.h"
-#include
-#include
-
-#if I2C_MASTER_CALLBACK_MODE == true
-# include
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef PINMUX_DEFAULT
-# define PINMUX_DEFAULT 0
-#endif
-
-/**
- * \addtogroup asfdoc_sam0_sercom_i2c_group
- *
- * @{
- */
-
-/**
- * \brief I2C master packet for read/write
- *
- * Structure to be used when transferring I2C master packets.
- */
-struct i2c_master_packet {
- /** Address to slave device */
- uint16_t address;
- /** Length of data array */
- uint16_t data_length;
- /** Data array containing all data to be transferred */
- uint8_t *data;
- /** Use 10-bit addressing. Set to false if the feature is not supported by the device */
- bool ten_bit_address;
- /** Use high speed transfer. Set to false if the feature is not supported by the device */
- bool high_speed;
- /** High speed mode master code (0000 1XXX), valid when high_speed is true */
- uint8_t hs_master_code;
-};
-
-/** \brief Interrupt flags
- *
- * Flags used when reading or setting interrupt flags.
- */
-enum i2c_master_interrupt_flag {
- /** Interrupt flag used for write */
- I2C_MASTER_INTERRUPT_WRITE = 0,
- /** Interrupt flag used for read */
- I2C_MASTER_INTERRUPT_READ = 1,
-};
-
-/**
- * \brief Values for hold time after start bit.
- *
- * Values for the possible I2C master mode SDA internal hold times after start
- * bit has been sent.
- */
-enum i2c_master_start_hold_time {
- /** Internal SDA hold time disabled */
- I2C_MASTER_START_HOLD_TIME_DISABLED = SERCOM_I2CM_CTRLA_SDAHOLD(0),
- /** Internal SDA hold time 50ns - 100ns */
- I2C_MASTER_START_HOLD_TIME_50NS_100NS = SERCOM_I2CM_CTRLA_SDAHOLD(1),
- /** Internal SDA hold time 300ns - 600ns */
- I2C_MASTER_START_HOLD_TIME_300NS_600NS = SERCOM_I2CM_CTRLA_SDAHOLD(2),
- /** Internal SDA hold time 400ns - 800ns */
- I2C_MASTER_START_HOLD_TIME_400NS_800NS = SERCOM_I2CM_CTRLA_SDAHOLD(3),
-};
-
-/**
- * \brief Values for inactive bus time-out.
- *
- * If the inactive bus time-out is enabled and the bus is inactive for
- * longer than the time-out setting, the bus state logic will be set to idle.
- */
-enum i2c_master_inactive_timeout {
- /** Inactive bus time-out disabled */
- I2C_MASTER_INACTIVE_TIMEOUT_DISABLED = SERCOM_I2CM_CTRLA_INACTOUT(0),
- /** Inactive bus time-out 5-6 SCL cycle time-out */
- I2C_MASTER_INACTIVE_TIMEOUT_55US = SERCOM_I2CM_CTRLA_INACTOUT(1),
- /** Inactive bus time-out 10-11 SCL cycle time-out */
- I2C_MASTER_INACTIVE_TIMEOUT_105US = SERCOM_I2CM_CTRLA_INACTOUT(2),
- /** Inactive bus time-out 20-21 SCL cycle time-out */
- I2C_MASTER_INACTIVE_TIMEOUT_205US = SERCOM_I2CM_CTRLA_INACTOUT(3),
-};
-
-/**
- * \brief I2C frequencies
- *
- * Values for I2C speeds supported by the module. The driver
- * will also support setting any other value, in which case set
- * the value in the \ref i2c_master_config at desired value divided by 1000.
- *
- * Example: If 10KHz operation is required, give baud_rate in the configuration
- * structure the value 10.
- */
-enum i2c_master_baud_rate {
- /** Baud rate at 100KHz (Standard-mode) */
- I2C_MASTER_BAUD_RATE_100KHZ = 100,
- /** Baud rate at 400KHz (Fast-mode) */
- I2C_MASTER_BAUD_RATE_400KHZ = 400,
-#ifdef FEATURE_I2C_FAST_MODE_PLUS_AND_HIGH_SPEED
- /** Baud rate at 1MHz (Fast-mode Plus) */
- I2C_MASTER_BAUD_RATE_1000KHZ = 1000,
- /** Baud rate at 3.4MHz (High-speed mode) */
- I2C_MASTER_BAUD_RATE_3400KHZ = 3400,
-#endif
-};
-
-#ifdef FEATURE_I2C_FAST_MODE_PLUS_AND_HIGH_SPEED
-/**
- * \brief Enum for the transfer speed
- *
- * Enum for the transfer speed.
- */
-enum i2c_master_transfer_speed {
- /** Standard-mode (Sm) up to 100KHz and Fast-mode (Fm) up to 400KHz */
- I2C_MASTER_SPEED_STANDARD_AND_FAST = SERCOM_I2CM_CTRLA_SPEED(0),
- /** Fast-mode Plus (Fm+) up to 1MHz */
- I2C_MASTER_SPEED_FAST_MODE_PLUS = SERCOM_I2CM_CTRLA_SPEED(1),
- /** High-speed mode (Hs-mode) up to 3.4MHz */
- I2C_MASTER_SPEED_HIGH_SPEED = SERCOM_I2CM_CTRLA_SPEED(2),
-};
-#endif
-
-#if I2C_MASTER_CALLBACK_MODE == true
-/**
- * \brief Callback types
- *
- * The available callback types for the I2C master module.
- */
-enum i2c_master_callback {
- /** Callback for packet write complete */
- I2C_MASTER_CALLBACK_WRITE_COMPLETE = 0,
- /** Callback for packet read complete */
- I2C_MASTER_CALLBACK_READ_COMPLETE = 1,
- /** Callback for error */
- I2C_MASTER_CALLBACK_ERROR = 2,
-# if !defined(__DOXYGEN__)
- /** Total number of callbacks */
- _I2C_MASTER_CALLBACK_N = 3,
-# endif
-};
-
-# if !defined(__DOXYGEN__)
-/* Prototype for software module */
-struct i2c_master_module;
-
-typedef void (*i2c_master_callback_t)(
- struct i2c_master_module *const module);
-# endif
-#endif
-
-/**
- * \brief SERCOM I2C Master driver software device instance structure.
- *
- * SERCOM I2C Master driver software instance structure, used to
- * retain software state information of an associated hardware module instance.
- *
- * \note The fields of this structure should not be altered by the user
- * application; they are reserved for module-internal use only.
- */
-struct i2c_master_module {
-#if !defined(__DOXYGEN__)
- /** Hardware instance initialized for the struct */
- Sercom *hw;
- /** Module lock */
- volatile bool locked;
- /** Unknown bus state timeout */
- uint16_t unknown_bus_state_timeout;
- /** Buffer write timeout value */
- uint16_t buffer_timeout;
- /** If true, stop condition will be sent after a read/write */
- bool send_stop;
- /** If true, nack signal will be sent after a read/write */
- bool send_nack;
-# if I2C_MASTER_CALLBACK_MODE == true
- /** Pointers to callback functions */
- volatile i2c_master_callback_t callbacks[_I2C_MASTER_CALLBACK_N];
- /** Mask for registered callbacks */
- volatile uint8_t registered_callback;
- /** Mask for enabled callbacks */
- volatile uint8_t enabled_callback;
- /** The total number of bytes to transfer */
- volatile uint16_t buffer_length;
- /**
- * Counter used for bytes left to send in write and to count number of
- * obtained bytes in read
- */
- volatile uint16_t buffer_remaining;
- /** Data buffer for packet write and read */
- volatile uint8_t *buffer;
- /** Save direction of async request. 1 = read, 0 = write */
- volatile enum i2c_transfer_direction transfer_direction;
- /** Status for status read back in error callback */
- volatile enum status_code status;
-# endif
-#endif
-};
-
-/**
- * \brief Configuration structure for the I2C Master device
- *
- * This is the configuration structure for the I2C Master device. It
- * is used as an argument for \ref i2c_master_init to provide the desired
- * configurations for the module. The structure should be initialized using the
- * \ref i2c_master_get_config_defaults.
- */
-struct i2c_master_config {
- /** Baud rate (in KHz) for I2C operations in
- * standard-mode, Fast-mode, and Fast-mode Plus Transfers,
- * \ref i2c_master_baud_rate */
- uint32_t baud_rate;
-#ifdef FEATURE_I2C_FAST_MODE_PLUS_AND_HIGH_SPEED
- /** Baud rate (in KHz) for I2C operations in
- * High-speed mode, \ref i2c_master_baud_rate */
- uint32_t baud_rate_high_speed;
- /** Transfer speed mode */
- enum i2c_master_transfer_speed transfer_speed;
-#endif
- /** GCLK generator to use as clock source */
- enum gclk_generator generator_source;
- /** Bus hold time after start signal on data line */
- enum i2c_master_start_hold_time start_hold_time;
- /** Unknown bus state \ref asfdoc_sam0_sercom_i2c_unknown_bus_timeout "timeout" */
- uint16_t unknown_bus_state_timeout;
- /** Timeout for packet write to wait for slave */
- uint16_t buffer_timeout;
- /** Set to keep module active in sleep modes */
- bool run_in_standby;
- /** PAD0 (SDA) pinmux */
- uint32_t pinmux_pad0;
- /** PAD1 (SCL) pinmux */
- uint32_t pinmux_pad1;
- /** Set to enable SCL low time-out */
- bool scl_low_timeout;
- /** Inactive bus time out */
- enum i2c_master_inactive_timeout inactive_timeout;
-#ifdef FEATURE_I2C_SCL_STRETCH_MODE
- /** Set to enable SCL stretch only after ACK bit (required for high speed) */
- bool scl_stretch_only_after_ack_bit;
-#endif
-#ifdef FEATURE_I2C_SCL_EXTEND_TIMEOUT
- /** Set to enable slave SCL low extend time-out */
- bool slave_scl_low_extend_timeout;
- /** Set to enable maser SCL low extend time-out */
- bool master_scl_low_extend_timeout;
-#endif
- /** Get more accurate BAUD, considering rise time(required for standard-mode and Fast-mode) */
- uint16_t sda_scl_rise_time_ns;
-};
-
-/**
- * \name Lock/Unlock
- * @{
- */
-
-/**
- * \brief Attempt to get lock on driver instance
- *
- * This function checks the instance's lock, which indicates whether or not it
- * is currently in use, and sets the lock if it was not already set.
- *
- * The purpose of this is to enable exclusive access to driver instances, so
- * that, e.g., transactions by different services will not interfere with each
- * other.
- *
- * \param[in,out] module Pointer to the driver instance to lock
- *
- * \retval STATUS_OK If the module was locked
- * \retval STATUS_BUSY If the module was already locked
- */
-static inline enum status_code i2c_master_lock(
- struct i2c_master_module *const module)
-{
- enum status_code status;
-
- system_interrupt_enter_critical_section();
-
- if (module->locked) {
- status = STATUS_BUSY;
- } else {
- module->locked = true;
- status = STATUS_OK;
- }
-
- system_interrupt_leave_critical_section();
-
- return status;
-}
-
-/**
- * \brief Unlock driver instance
- *
- * This function clears the instance lock, indicating that it is available for
- * use.
- *
- * \param[in,out] module Pointer to the driver instance to lock
- *
- * \retval STATUS_OK If the module was locked
- * \retval STATUS_BUSY If the module was already locked
- */
-static inline void i2c_master_unlock(struct i2c_master_module *const module)
-{
- module->locked = false;
-}
-
-/** @} */
-
-/**
- * \name Configuration and Initialization
- * @{
- */
-
-/**
- * \brief Returns the synchronization status of the module
- *
- * Returns the synchronization status of the module.
- *
- * \param[in] module Pointer to software module structure
- *
- * \return Status of the synchronization.
- * \retval true Module is busy synchronizing
- * \retval false Module is not synchronizing
- */
-static inline bool i2c_master_is_syncing (
- const struct i2c_master_module *const module)
-{
- /* Sanity check */
- Assert(module);
- Assert(module->hw);
-
- SercomI2cm *const i2c_hw = &(module->hw->I2CM);
-
-#if defined(FEATURE_SERCOM_SYNCBUSY_SCHEME_VERSION_1)
- return (i2c_hw->STATUS.reg & SERCOM_I2CM_STATUS_SYNCBUSY);
-#elif defined(FEATURE_SERCOM_SYNCBUSY_SCHEME_VERSION_2)
- return (i2c_hw->SYNCBUSY.reg & SERCOM_I2CM_SYNCBUSY_MASK);
-#else
-# error Unknown SERCOM SYNCBUSY scheme!
-#endif
-}
-
-#if !defined(__DOXYGEN__)
-/**
- * \internal
- * Wait for hardware module to sync
- *
- * \param[in] module Pointer to software module structure
- */
-static void _i2c_master_wait_for_sync(
- const struct i2c_master_module *const module)
-{
- /* Sanity check */
- Assert(module);
-
- while (i2c_master_is_syncing(module)) {
- /* Wait for I2C module to sync. */
- }
-}
-#endif
-
-/**
- * \brief Gets the I2C master default configurations
- *
- * Use to initialize the configuration structure to known default values.
- *
- * The default configuration is as follows:
- * - Baudrate 100KHz
- * - GCLK generator 0
- * - Do not run in standby
- * - Start bit hold time 300ns - 600ns
- * - Buffer timeout = 65535
- * - Unknown bus status timeout = 65535
- * - Do not run in standby
- * - PINMUX_DEFAULT for SERCOM pads
- *
- * Those default configuration only available if the device supports it:
- * - High speed baudrate 3.4MHz
- * - Standard-mode and Fast-mode transfer speed
- * - SCL stretch disabled
- * - Slave SCL low extend time-out disabled
- * - Master SCL low extend time-out disabled
- *
- * \param[out] config Pointer to configuration structure to be initiated
- */
-static inline void i2c_master_get_config_defaults(
- struct i2c_master_config *const config)
-{
- /*Sanity check argument */
- Assert(config);
- config->baud_rate = I2C_MASTER_BAUD_RATE_100KHZ;
-#ifdef FEATURE_I2C_FAST_MODE_PLUS_AND_HIGH_SPEED
- config->baud_rate_high_speed = I2C_MASTER_BAUD_RATE_3400KHZ;
- config->transfer_speed = I2C_MASTER_SPEED_STANDARD_AND_FAST;
-#endif
- config->generator_source = GCLK_GENERATOR_0;
- config->run_in_standby = false;
- config->start_hold_time = I2C_MASTER_START_HOLD_TIME_300NS_600NS;
- config->buffer_timeout = 65535;
- config->unknown_bus_state_timeout = 65535;
- config->pinmux_pad0 = PINMUX_DEFAULT;
- config->pinmux_pad1 = PINMUX_DEFAULT;
- config->scl_low_timeout = false;
- config->inactive_timeout = I2C_MASTER_INACTIVE_TIMEOUT_DISABLED;
-#ifdef FEATURE_I2C_SCL_STRETCH_MODE
- config->scl_stretch_only_after_ack_bit = false;
-#endif
-#ifdef FEATURE_I2C_SCL_EXTEND_TIMEOUT
- config->slave_scl_low_extend_timeout = false;
- config->master_scl_low_extend_timeout = false;
-#endif
- /* The typical value is 215ns */
- config->sda_scl_rise_time_ns = 215;
-}
-
-enum status_code i2c_master_init(
- struct i2c_master_module *const module,
- Sercom *const hw,
- const struct i2c_master_config *const config);
-
-/**
- * \brief Enables the I2C module
- *
- * Enables the requested I2C module and set the bus state to IDLE
- * after the specified \ref asfdoc_sam0_sercom_i2c_timeout "timeout" period if no
- * stop bit is detected.
- *
- * \param[in] module Pointer to the software module struct
- */
-static inline void i2c_master_enable(
- const struct i2c_master_module *const module)
-{
- /* Sanity check of arguments */
- Assert(module);
- Assert(module->hw);
-
- SercomI2cm *const i2c_module = &(module->hw->I2CM);
-
- /* Timeout counter used to force bus state */
- uint32_t timeout_counter = 0;
-
- /* Wait for module to sync */
- _i2c_master_wait_for_sync(module);
-
- /* Enable module */
- i2c_module->CTRLA.reg |= SERCOM_I2CM_CTRLA_ENABLE;
-
-#if I2C_MASTER_CALLBACK_MODE == true
- /* Enable module interrupts */
- system_interrupt_enable(_sercom_get_interrupt_vector(module->hw));
-#endif
- /* Start timeout if bus state is unknown */
- while (!(i2c_module->STATUS.reg & SERCOM_I2CM_STATUS_BUSSTATE(1))) {
- timeout_counter++;
- if(timeout_counter >= (module->unknown_bus_state_timeout)) {
- /* Timeout, force bus state to idle */
- i2c_module->STATUS.reg = SERCOM_I2CM_STATUS_BUSSTATE(1);
- /* Workaround #1 */
- return;
- }
- }
-}
-
-/**
- * \brief Disable the I2C module
- *
- * Disables the requested I2C module.
- *
- * \param[in] module Pointer to the software module struct
- */
-static inline void i2c_master_disable(
- const struct i2c_master_module *const module)
-{
- /* Sanity check of arguments */
- Assert(module);
- Assert(module->hw);
-
- SercomI2cm *const i2c_module = &(module->hw->I2CM);
-
-#if I2C_MASTER_CALLBACK_MODE == true
- /* Disable module interrupts */
- system_interrupt_disable(_sercom_get_interrupt_vector(module->hw));
-#endif
-
- /* Wait for module to sync */
- _i2c_master_wait_for_sync(module);
-
- /* Disbale interrupt */
- i2c_module->INTENCLR.reg = SERCOM_I2CM_INTENCLR_MASK;
- /* Clear interrupt flag */
- i2c_module->INTFLAG.reg = SERCOM_I2CM_INTFLAG_MASK;
-
- /* Disable module */
- i2c_module->CTRLA.reg &= ~SERCOM_I2CM_CTRLA_ENABLE;
-
-}
-
-void i2c_master_reset(struct i2c_master_module *const module);
-
-/** @} */
-
-/**
-* \name Read and Write
-* @{
-*/
-
-enum status_code i2c_master_read_packet_wait(
- struct i2c_master_module *const module,
- struct i2c_master_packet *const packet);
-
-enum status_code i2c_master_read_packet_wait_no_stop(
- struct i2c_master_module *const module,
- struct i2c_master_packet *const packet);
-
-enum status_code i2c_master_write_packet_wait(
- struct i2c_master_module *const module,
- struct i2c_master_packet *const packet);
-
-enum status_code i2c_master_write_packet_wait_no_stop(
- struct i2c_master_module *const module,
- struct i2c_master_packet *const packet);
-
-void i2c_master_send_stop(struct i2c_master_module *const module);
-
-void i2c_master_send_nack(struct i2c_master_module *const module);
-
-enum status_code i2c_master_read_byte(
- struct i2c_master_module *const module,
- uint8_t *byte);
-
-enum status_code i2c_master_write_byte(
- struct i2c_master_module *const module,
- uint8_t byte);
-
-enum status_code i2c_master_read_packet_wait_no_nack(
- struct i2c_master_module *const module,
- struct i2c_master_packet *const packet);
-
-/** @} */
-
-#ifdef FEATURE_I2C_DMA_SUPPORT
-/**
-* \name SERCOM I2C Master with DMA Interfaces
-* @{
-*/
-
-/**
- * \brief Set I2C for DMA transfer with slave address and transfer size.
- *
- * This function will set the slave address, transfer size and enable the auto transfer
- * mode for DMA.
- *
- * \param[in,out] module Pointer to the driver instance to lock
- * \param[in] addr I2C slave address
- * \param[in] length I2C transfer length with DMA
- * \param[in] direction I2C transfer direction
- *
- */
-static inline void i2c_master_dma_set_transfer(struct i2c_master_module *const module,
- uint16_t addr, uint8_t length, enum i2c_transfer_direction direction)
-{
- module->hw->I2CM.ADDR.reg =
- SERCOM_I2CM_ADDR_ADDR(addr<<1) |
- SERCOM_I2CM_ADDR_LENEN |
- SERCOM_I2CM_ADDR_LEN(length) |
- direction;
-}
-
-/** @} */
-#endif
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* I2C_MASTER_H_INCLUDED */
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/i2c/i2c_sam0/i2c_master.c b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/i2c/i2c_sam0/i2c_master.c
deleted file mode 100644
index 0a4dece..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/i2c/i2c_sam0/i2c_master.c
+++ /dev/null
@@ -1,1040 +0,0 @@
-/**
- * \file
- *
- * \brief SAM I2C Master Driver
- *
- * Copyright (c) 2012-2020 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#include "i2c_master.h"
-
-#if I2C_MASTER_CALLBACK_MODE == true
-# include "i2c_master_interrupt.h"
-#endif
-
-/* Forward declaration */
-enum status_code _i2c_master_wait_for_bus(
- struct i2c_master_module *const module);
-
-enum status_code _i2c_master_address_response(
- struct i2c_master_module *const module);
-
-enum status_code _i2c_master_send_hs_master_code(
- struct i2c_master_module *const module,
- uint8_t hs_master_code);
-
-#if !defined(__DOXYGEN__)
-
-/**
- * \internal Sets configurations to module
- *
- * \param[out] module Pointer to software module structure
- * \param[in] config Configuration structure with configurations to set
- *
- * \return Status of setting configuration.
- * \retval STATUS_OK If module was configured correctly
- * \retval STATUS_ERR_ALREADY_INITIALIZED If setting other GCLK generator than
- * previously set
- * \retval STATUS_ERR_BAUDRATE_UNAVAILABLE If given baudrate is not compatible
- * with set GCLK frequency
- */
-static enum status_code _i2c_master_set_config(
- struct i2c_master_module *const module,
- const struct i2c_master_config *const config)
-{
- /* Sanity check arguments. */
- Assert(module);
- Assert(module->hw);
- Assert(config);
-
- /* Temporary variables. */
- uint32_t tmp_ctrla;
- int32_t tmp_baud = 0;
- int32_t tmp_baud_hs = 0;
- int32_t tmp_baudlow_hs = 0;
- enum status_code tmp_status_code = STATUS_OK;
-
- SercomI2cm *const i2c_module = &(module->hw->I2CM);
- Sercom *const sercom_hw = module->hw;
-
- uint8_t sercom_index = _sercom_get_sercom_inst_index(sercom_hw);
-
- /* Pin configuration */
- struct system_pinmux_config pin_conf;
- system_pinmux_get_config_defaults(&pin_conf);
-
- uint32_t pad0 = config->pinmux_pad0;
- uint32_t pad1 = config->pinmux_pad1;
-
- /* SERCOM PAD0 - SDA */
- if (pad0 == PINMUX_DEFAULT) {
- pad0 = _sercom_get_default_pad(sercom_hw, 0);
- }
- pin_conf.mux_position = pad0 & 0xFFFF;
- pin_conf.direction = SYSTEM_PINMUX_PIN_DIR_OUTPUT_WITH_READBACK;
- system_pinmux_pin_set_config(pad0 >> 16, &pin_conf);
-
- /* SERCOM PAD1 - SCL */
- if (pad1 == PINMUX_DEFAULT) {
- pad1 = _sercom_get_default_pad(sercom_hw, 1);
- }
- pin_conf.mux_position = pad1 & 0xFFFF;
- pin_conf.direction = SYSTEM_PINMUX_PIN_DIR_OUTPUT_WITH_READBACK;
- system_pinmux_pin_set_config(pad1 >> 16, &pin_conf);
-
- /* Save timeout on unknown bus state in software module. */
- module->unknown_bus_state_timeout = config->unknown_bus_state_timeout;
-
- /* Save timeout on buffer write. */
- module->buffer_timeout = config->buffer_timeout;
-
- /* Set whether module should run in standby. */
- if (config->run_in_standby || system_is_debugger_present()) {
- tmp_ctrla = SERCOM_I2CM_CTRLA_RUNSTDBY;
- } else {
- tmp_ctrla = 0;
- }
-
- /* Check and set start data hold timeout. */
- if (config->start_hold_time != I2C_MASTER_START_HOLD_TIME_DISABLED) {
- tmp_ctrla |= config->start_hold_time;
- }
-
- /* Check and set transfer speed */
- tmp_ctrla |= config->transfer_speed;
-
- /* Check and set SCL low timeout. */
- if (config->scl_low_timeout) {
- tmp_ctrla |= SERCOM_I2CM_CTRLA_LOWTOUTEN;
- }
-
- /* Check and set inactive bus timeout. */
- if (config->inactive_timeout != I2C_MASTER_INACTIVE_TIMEOUT_DISABLED) {
- tmp_ctrla |= config->inactive_timeout;
- }
-
- /* Check and set SCL clock stretch mode. */
- if (config->scl_stretch_only_after_ack_bit || (config->transfer_speed == I2C_MASTER_SPEED_HIGH_SPEED)) {
- tmp_ctrla |= SERCOM_I2CM_CTRLA_SCLSM;
- }
-
- /* Check and set slave SCL low extend timeout. */
- if (config->slave_scl_low_extend_timeout) {
- tmp_ctrla |= SERCOM_I2CM_CTRLA_SEXTTOEN;
- }
-
- /* Check and set master SCL low extend timeout. */
- if (config->master_scl_low_extend_timeout) {
- tmp_ctrla |= SERCOM_I2CM_CTRLA_MEXTTOEN;
- }
-
- /* Write config to register CTRLA. */
- i2c_module->CTRLA.reg |= tmp_ctrla;
-
- /* Set configurations in CTRLB. */
- i2c_module->CTRLB.reg = SERCOM_I2CM_CTRLB_SMEN;
-
- /* Find and set baudrate, considering sda/scl rise time */
- uint32_t fgclk = system_gclk_chan_get_hz(SERCOM0_GCLK_ID_CORE + sercom_index);
- uint32_t fscl = 1000 * config->baud_rate;
- uint32_t fscl_hs = 1000 * config->baud_rate_high_speed;
- uint32_t trise = config->sda_scl_rise_time_ns;
-
- tmp_baud = (int32_t)(div_ceil(
- fgclk - fscl * (10 + (fgclk * 0.000000001)* trise), 2 * fscl));
-
- /* For High speed mode, set the SCL ratio of high:low to 1:2. */
- if (config->transfer_speed == I2C_MASTER_SPEED_HIGH_SPEED) {
- tmp_baudlow_hs = (int32_t)((fgclk * 2.0) / (3.0 * fscl_hs) - 1);
- if (tmp_baudlow_hs) {
- tmp_baud_hs = (int32_t)(fgclk / fscl_hs) - 2 - tmp_baudlow_hs;
- } else {
- tmp_baud_hs = (int32_t)(div_ceil(fgclk, 2 * fscl_hs)) - 1;
- }
- }
-
- /* Check that baudrate is supported at current speed. */
- if (tmp_baud > 255 || tmp_baud < 0 || tmp_baud_hs > 255 || tmp_baud_hs < 0) {
- /* Baud rate not supported. */
- tmp_status_code = STATUS_ERR_BAUDRATE_UNAVAILABLE;
- }
- if (tmp_status_code != STATUS_ERR_BAUDRATE_UNAVAILABLE) {
- /* Baud rate acceptable. */
- i2c_module->BAUD.reg = SERCOM_I2CM_BAUD_BAUD(tmp_baud) |
- SERCOM_I2CM_BAUD_HSBAUD(tmp_baud_hs) | SERCOM_I2CM_BAUD_HSBAUDLOW(tmp_baudlow_hs);
- }
-
- return tmp_status_code;
-}
-#endif /* __DOXYGEN__ */
-
-/**
- * \brief Initializes the requested I2C hardware module
- *
- * Initializes the SERCOM I2C master device requested and sets the provided
- * software module struct. Run this function before any further use of
- * the driver.
- *
- * \param[out] module Pointer to software module struct
- * \param[in] hw Pointer to the hardware instance
- * \param[in] config Pointer to the configuration struct
- *
- * \return Status of initialization.
- * \retval STATUS_OK Module initiated correctly
- * \retval STATUS_ERR_DENIED If module is enabled
- * \retval STATUS_BUSY If module is busy resetting
- * \retval STATUS_ERR_ALREADY_INITIALIZED If setting other GCLK generator than
- * previously set
- * \retval STATUS_ERR_BAUDRATE_UNAVAILABLE If given baudrate is not compatible
- * with set GCLK frequency
- *
- */
-enum status_code i2c_master_init(
- struct i2c_master_module *const module,
- Sercom *const hw,
- const struct i2c_master_config *const config)
-{
- /* Sanity check arguments. */
- Assert(module);
- Assert(hw);
- Assert(config);
-
- /* Initialize software module */
- module->hw = hw;
-
- SercomI2cm *const i2c_module = &(module->hw->I2CM);
-
- uint32_t sercom_index = _sercom_get_sercom_inst_index(module->hw);
- uint32_t pm_index, gclk_index;
-
-#if (SAML22) || (SAMC20)
- pm_index = sercom_index + MCLK_APBCMASK_SERCOM0_Pos;
- gclk_index = sercom_index + SERCOM0_GCLK_ID_CORE;
-#elif (SAML21) || (SAMR30) || (SAMR34) || (SAMR35) || (WLR089)
- if (sercom_index == 5) {
- pm_index = MCLK_APBDMASK_SERCOM5_Pos;
- gclk_index = SERCOM5_GCLK_ID_CORE;
- } else {
- pm_index = sercom_index + MCLK_APBCMASK_SERCOM0_Pos;
- gclk_index = sercom_index + SERCOM0_GCLK_ID_CORE;
- }
-#elif (SAMC21)
- pm_index = sercom_index + MCLK_APBCMASK_SERCOM0_Pos;
- if (sercom_index == 5) {
- gclk_index = SERCOM5_GCLK_ID_CORE;
- } else {
- gclk_index = sercom_index + SERCOM0_GCLK_ID_CORE;
- }
-#else
- pm_index = sercom_index + PM_APBCMASK_SERCOM0_Pos;
- gclk_index = sercom_index + SERCOM0_GCLK_ID_CORE;
-#endif
-
- /* Turn on module in PM */
-#if (SAML21) || (SAMR30) || (SAMR34) || (SAMR35) || (WLR089)
- if (sercom_index == 5) {
- system_apb_clock_set_mask(SYSTEM_CLOCK_APB_APBD, 1 << pm_index);
- } else {
- system_apb_clock_set_mask(SYSTEM_CLOCK_APB_APBC, 1 << pm_index);
- }
-#else
- system_apb_clock_set_mask(SYSTEM_CLOCK_APB_APBC, 1 << pm_index);
-#endif
-
- /* Set up the GCLK for the module */
- struct system_gclk_chan_config gclk_chan_conf;
- system_gclk_chan_get_config_defaults(&gclk_chan_conf);
- gclk_chan_conf.source_generator = config->generator_source;
- system_gclk_chan_set_config(gclk_index, &gclk_chan_conf);
- system_gclk_chan_enable(gclk_index);
- sercom_set_gclk_generator(config->generator_source, false);
-
- /* Check if module is enabled. */
- if (i2c_module->CTRLA.reg & SERCOM_I2CM_CTRLA_ENABLE) {
- return STATUS_ERR_DENIED;
- }
-
- /* Check if reset is in progress. */
- if (i2c_module->CTRLA.reg & SERCOM_I2CM_CTRLA_SWRST) {
- return STATUS_BUSY;
- }
-
-#if I2C_MASTER_CALLBACK_MODE == true
- /* Get sercom instance index and register callback. */
- uint8_t instance_index = _sercom_get_sercom_inst_index(module->hw);
- _sercom_set_handler(instance_index, _i2c_master_interrupt_handler);
- _sercom_instances[instance_index] = module;
-
- /* Initialize values in module. */
- module->registered_callback = 0;
- module->enabled_callback = 0;
- module->buffer_length = 0;
- module->buffer_remaining = 0;
-
- module->status = STATUS_OK;
- module->buffer = NULL;
-#endif
-
- /* Set sercom module to operate in I2C master mode. */
- i2c_module->CTRLA.reg = SERCOM_I2CM_CTRLA_MODE(0x5);
-
- /* Set config and return status. */
- return _i2c_master_set_config(module, config);
-}
-
-/**
- * \brief Resets the hardware module
- *
- * Reset the module to hardware defaults.
- *
- * \param[in,out] module Pointer to software module structure
- */
-void i2c_master_reset(struct i2c_master_module *const module)
-{
- /* Sanity check arguments */
- Assert(module);
- Assert(module->hw);
-
- SercomI2cm *const i2c_module = &(module->hw->I2CM);
-
- /* Wait for sync */
- _i2c_master_wait_for_sync(module);
-
- /* Disable module */
- i2c_master_disable(module);
-
-#if I2C_MASTER_CALLBACK_MODE == true
- /* Clear all pending interrupts */
- system_interrupt_enter_critical_section();
- system_interrupt_clear_pending(_sercom_get_interrupt_vector(module->hw));
- system_interrupt_leave_critical_section();
-#endif
-
- /* Wait for sync */
- _i2c_master_wait_for_sync(module);
-
- /* Reset module */
- i2c_module->CTRLA.reg = SERCOM_I2CM_CTRLA_SWRST;
-}
-
-#if !defined(__DOXYGEN__)
-/**
- * \internal
- * Address response. Called when address is answered or timed out.
- *
- * \param[in,out] module Pointer to software module structure
- *
- * \return Status of address response.
- * \retval STATUS_OK No error has occurred
- * \retval STATUS_ERR_DENIED If error on bus
- * \retval STATUS_ERR_PACKET_COLLISION If arbitration is lost
- * \retval STATUS_ERR_BAD_ADDRESS If slave is busy, or no slave
- * acknowledged the address
- */
-enum status_code _i2c_master_address_response(
- struct i2c_master_module *const module)
-{
- /* Sanity check arguments */
- Assert(module);
- Assert(module->hw);
-
- SercomI2cm *const i2c_module = &(module->hw->I2CM);
-
- /* Check for error and ignore bus-error; workaround for BUSSTATE stuck in
- * BUSY */
- if (i2c_module->INTFLAG.reg & SERCOM_I2CM_INTFLAG_SB) {
-
- /* Clear write interrupt flag */
- i2c_module->INTFLAG.reg = SERCOM_I2CM_INTFLAG_SB;
-
- /* Check arbitration. */
- if (i2c_module->STATUS.reg & SERCOM_I2CM_STATUS_ARBLOST) {
- /* Return packet collision. */
- return STATUS_ERR_PACKET_COLLISION;
- }
- /* Check that slave responded with ack. */
- } else if (i2c_module->STATUS.reg & SERCOM_I2CM_STATUS_RXNACK) {
- /* Slave busy. Issue ack and stop command. */
- i2c_module->CTRLB.reg |= SERCOM_I2CM_CTRLB_CMD(3);
-
- /* Return bad address value. */
- return STATUS_ERR_BAD_ADDRESS;
- }
-
- return STATUS_OK;
-}
-
-/**
- * \internal
- * Waits for answer on bus.
- *
- * \param[in,out] module Pointer to software module structure
- *
- * \return Status of bus.
- * \retval STATUS_OK If given response from slave device
- * \retval STATUS_ERR_TIMEOUT If no response was given within specified timeout
- * period
- */
-enum status_code _i2c_master_wait_for_bus(
- struct i2c_master_module *const module)
-{
- /* Sanity check arguments */
- Assert(module);
- Assert(module->hw);
-
- SercomI2cm *const i2c_module = &(module->hw->I2CM);
-
- /* Wait for reply. */
- uint16_t timeout_counter = 0;
- while (!(i2c_module->INTFLAG.reg & SERCOM_I2CM_INTFLAG_MB) &&
- !(i2c_module->INTFLAG.reg & SERCOM_I2CM_INTFLAG_SB)) {
-
- /* Check timeout condition. */
- if (++timeout_counter >= module->buffer_timeout) {
- return STATUS_ERR_TIMEOUT;
- }
- }
- return STATUS_OK;
-}
-#endif /* __DOXYGEN__ */
-
-/**
- * \internal
- * Send master code for high speed transfer.
- *
- * \param[in,out] module Pointer to software module structure
- * \param[in] hs_master_code 8-bit master code (0000 1XXX)
- *
- * \return Status of bus.
- * \retval STATUS_OK No error happen
- */
-enum status_code _i2c_master_send_hs_master_code(
- struct i2c_master_module *const module,
- uint8_t hs_master_code)
-{
- SercomI2cm *const i2c_module = &(module->hw->I2CM);
- /* Return value. */
- enum status_code tmp_status;
-
- /* Set NACK for high speed code */
- i2c_module->CTRLB.reg |= SERCOM_I2CM_CTRLB_ACKACT;
- /* Send high speed code */
- i2c_module->ADDR.reg = hs_master_code;
- /* Wait for response on bus. */
- tmp_status = _i2c_master_wait_for_bus(module);
- /* Clear write interrupt flag */
- i2c_module->INTFLAG.reg = SERCOM_I2CM_INTENCLR_MB;
-
- return tmp_status;
-}
-
-
-/**
- * \internal
- * Starts blocking read operation.
- *
- * \param[in,out] module Pointer to software module struct
- * \param[in,out] packet Pointer to I2C packet to transfer
- *
- * \return Status of reading packet.
- * \retval STATUS_OK The packet was read successfully
- * \retval STATUS_ERR_TIMEOUT If no response was given within
- * specified timeout period
- * \retval STATUS_ERR_DENIED If error on bus
- * \retval STATUS_ERR_PACKET_COLLISION If arbitration is lost
- * \retval STATUS_ERR_BAD_ADDRESS If slave is busy, or no slave
- * acknowledged the address
- *
- */
-static enum status_code _i2c_master_read_packet(
- struct i2c_master_module *const module,
- struct i2c_master_packet *const packet)
-{
- /* Sanity check arguments */
- Assert(module);
- Assert(module->hw);
- Assert(packet);
-
- SercomI2cm *const i2c_module = &(module->hw->I2CM);
-
- /* Return value. */
- enum status_code tmp_status;
- uint16_t tmp_data_length = packet->data_length;
-
- /* Written buffer counter. */
- uint16_t counter = 0;
-
- bool sclsm_flag = i2c_module->CTRLA.bit.SCLSM;
-
- /* Switch to high speed mode */
- if (packet->high_speed) {
- _i2c_master_send_hs_master_code(module, packet->hs_master_code);
- }
-
- /* Set action to ACK. */
- i2c_module->CTRLB.reg &= ~SERCOM_I2CM_CTRLB_ACKACT;
-
- /* Set address and direction bit. Will send start command on bus. */
- if (packet->ten_bit_address) {
- /*
- * Write ADDR.ADDR[10:1] with the 10-bit address. ADDR.TENBITEN must
- * be set and read/write bit (ADDR.ADDR[0]) equal to 0.
- */
- i2c_module->ADDR.reg = (packet->address << 1) |
- (packet->high_speed << SERCOM_I2CM_ADDR_HS_Pos) |
- SERCOM_I2CM_ADDR_TENBITEN;
-
- /* Wait for response on bus. */
- tmp_status = _i2c_master_wait_for_bus(module);
-
- /* Set action to ack. */
- i2c_module->CTRLB.reg &= ~SERCOM_I2CM_CTRLB_ACKACT;
-
- /* Check for address response error unless previous error is
- * detected. */
- if (tmp_status == STATUS_OK) {
- tmp_status = _i2c_master_address_response(module);
- }
-
- if (tmp_status == STATUS_OK) {
- /*
- * Write ADDR[7:0] register to "11110 address[9:8] 1"
- * ADDR.TENBITEN must be cleared
- */
- i2c_module->ADDR.reg = (((packet->address >> 8) | 0x78) << 1) |
- (packet->high_speed << SERCOM_I2CM_ADDR_HS_Pos) |
- I2C_TRANSFER_READ;
- } else {
- return tmp_status;
- }
- } else {
- i2c_module->ADDR.reg = (packet->address << 1) | I2C_TRANSFER_READ |
- (packet->high_speed << SERCOM_I2CM_ADDR_HS_Pos);
- }
-
- /* Wait for response on bus. */
- tmp_status = _i2c_master_wait_for_bus(module);
-
- /* Set action to ack or nack. */
- if ((sclsm_flag) && (packet->data_length == 1)) {
- i2c_module->CTRLB.reg |= SERCOM_I2CM_CTRLB_ACKACT;
- } else {
- i2c_module->CTRLB.reg &= ~SERCOM_I2CM_CTRLB_ACKACT;
- }
-
- /* Check for address response error unless previous error is
- * detected. */
- if (tmp_status == STATUS_OK) {
- tmp_status = _i2c_master_address_response(module);
- }
-
- /* Check that no error has occurred. */
- if (tmp_status == STATUS_OK) {
- /* Read data buffer. */
- while (tmp_data_length--) {
- /* Check that bus ownership is not lost. */
- if (!(i2c_module->STATUS.reg & SERCOM_I2CM_STATUS_BUSSTATE(2))) {
- return STATUS_ERR_PACKET_COLLISION;
- }
-
- if (module->send_nack && (((!sclsm_flag) && (tmp_data_length == 0)) ||
- ((sclsm_flag) && (tmp_data_length == 1)))) {
- /* Set action to NACK */
- i2c_module->CTRLB.reg |= SERCOM_I2CM_CTRLB_ACKACT;
- } else {
- /* Save data to buffer. */
- _i2c_master_wait_for_sync(module);
- packet->data[counter++] = i2c_module->DATA.reg;
- /* Wait for response. */
- tmp_status = _i2c_master_wait_for_bus(module);
- }
-
- /* Check for error. */
- if (tmp_status != STATUS_OK) {
- break;
- }
- }
-
- if (module->send_stop) {
- /* Send stop command unless arbitration is lost. */
- _i2c_master_wait_for_sync(module);
- i2c_module->CTRLB.reg |= SERCOM_I2CM_CTRLB_CMD(3);
- }
-
- /* Save last data to buffer. */
- _i2c_master_wait_for_sync(module);
- packet->data[counter] = i2c_module->DATA.reg;
- }
-
- return tmp_status;
-}
-
-/**
- * \brief Reads data packet from slave
- *
- * Reads a data packet from the specified slave address on the I2C
- * bus and sends a stop condition when finished.
- *
- * \note This will stall the device from any other operation. For
- * interrupt-driven operation, see \ref i2c_master_read_packet_job.
- *
- * \param[in,out] module Pointer to software module struct
- * \param[in,out] packet Pointer to I2C packet to transfer
- *
- * \return Status of reading packet.
- * \retval STATUS_OK The packet was read successfully
- * \retval STATUS_ERR_TIMEOUT If no response was given within
- * specified timeout period
- * \retval STATUS_ERR_DENIED If error on bus
- * \retval STATUS_ERR_PACKET_COLLISION If arbitration is lost
- * \retval STATUS_ERR_BAD_ADDRESS If slave is busy, or no slave
- * acknowledged the address
- */
-enum status_code i2c_master_read_packet_wait(
- struct i2c_master_module *const module,
- struct i2c_master_packet *const packet)
-{
- /* Sanity check */
- Assert(module);
- Assert(module->hw);
- Assert(packet);
-
-#if I2C_MASTER_CALLBACK_MODE == true
- /* Check if the I2C module is busy with a job. */
- if (module->buffer_remaining > 0) {
- return STATUS_BUSY;
- }
-#endif
-
- module->send_stop = true;
- module->send_nack = true;
-
- return _i2c_master_read_packet(module, packet);
-}
-
-/**
- * \brief Reads data packet from slave without sending a stop condition when done
- *
- * Reads a data packet from the specified slave address on the I2C
- * bus without sending a stop condition when done, thus retaining ownership of
- * the bus when done. To end the transaction, a
- * \ref i2c_master_read_packet_wait "read" or
- * \ref i2c_master_write_packet_wait "write" with stop condition must be
- * performed.
- *
- * \note This will stall the device from any other operation. For
- * interrupt-driven operation, see \ref i2c_master_read_packet_job.
- *
- * \param[in,out] module Pointer to software module struct
- * \param[in,out] packet Pointer to I2C packet to transfer
- *
- * \return Status of reading packet.
- * \retval STATUS_OK The packet was read successfully
- * \retval STATUS_ERR_TIMEOUT If no response was given within
- * specified timeout period
- * \retval STATUS_ERR_DENIED If error on bus
- * \retval STATUS_ERR_PACKET_COLLISION If arbitration is lost
- * \retval STATUS_ERR_BAD_ADDRESS If slave is busy, or no slave
- * acknowledged the address
- */
-enum status_code i2c_master_read_packet_wait_no_stop(
- struct i2c_master_module *const module,
- struct i2c_master_packet *const packet)
-{
- /* Sanity check */
- Assert(module);
- Assert(module->hw);
- Assert(packet);
-
-#if I2C_MASTER_CALLBACK_MODE == true
- /* Check if the I2C module is busy with a job. */
- if (module->buffer_remaining > 0) {
- return STATUS_BUSY;
- }
-#endif
-
- module->send_stop = false;
- module->send_nack = true;
-
- return _i2c_master_read_packet(module, packet);
-}
-
-/**
- * \internal
- * Starts blocking read operation.
- * \brief Reads data packet from slave without sending a nack signal and a stop
- * condition when done
- *
- * Reads a data packet from the specified slave address on the I2C
- * bus without sending a nack signal and a stop condition when done,
- * thus retaining ownership of the bus when done. To end the transaction, a
- * \ref i2c_master_read_packet_wait "read" or
- * \ref i2c_master_write_packet_wait "write" with stop condition must be
- * performed.
- *
- * \note This will stall the device from any other operation. For
- * interrupt-driven operation, see \ref i2c_master_read_packet_job.
- *
- * \param[in,out] module Pointer to software module struct
- * \param[in,out] packet Pointer to I2C packet to transfer
- *
- * \return Status of reading packet.
- * \retval STATUS_OK The packet was read successfully
- * \retval STATUS_ERR_TIMEOUT If no response was given within
- * specified timeout period
- * \retval STATUS_ERR_DENIED If error on bus
- * \retval STATUS_ERR_PACKET_COLLISION If arbitration is lost
- * \retval STATUS_ERR_BAD_ADDRESS If slave is busy, or no slave
- * acknowledged the address
- */
-enum status_code i2c_master_read_packet_wait_no_nack(
- struct i2c_master_module *const module,
- struct i2c_master_packet *const packet)
-{
- /* Sanity check */
- Assert(module);
- Assert(module->hw);
- Assert(packet);
-
-#if I2C_MASTER_CALLBACK_MODE == true
- /* Check if the I2C module is busy with a job. */
- if (module->buffer_remaining > 0) {
- return STATUS_BUSY;
- }
-#endif
-
- module->send_stop = false;
- module->send_nack = false;
-
- return _i2c_master_read_packet(module, packet);
-}
-
-/**
- * \internal
- * Starts blocking write operation.
- *
- * \param[in,out] module Pointer to software module struct
- * \param[in,out] packet Pointer to I2C packet to transfer
- *
- * \return Status of write packet.
- * \retval STATUS_OK The packet was write successfully
- * \retval STATUS_ERR_TIMEOUT If no response was given within
- * specified timeout period
- * \retval STATUS_ERR_DENIED If error on bus
- * \retval STATUS_ERR_PACKET_COLLISION If arbitration is lost
- * \retval STATUS_ERR_BAD_ADDRESS If slave is busy, or no slave
- * acknowledged the address
- */
-static enum status_code _i2c_master_write_packet(
- struct i2c_master_module *const module,
- struct i2c_master_packet *const packet)
-{
- SercomI2cm *const i2c_module = &(module->hw->I2CM);
-
- /* Return value. */
- enum status_code tmp_status;
- uint16_t tmp_data_length = packet->data_length;
-
- _i2c_master_wait_for_sync(module);
-
- /* Switch to high speed mode */
- if (packet->high_speed) {
- _i2c_master_send_hs_master_code(module, packet->hs_master_code);
- }
-
- /* Set action to ACK. */
- i2c_module->CTRLB.reg &= ~SERCOM_I2CM_CTRLB_ACKACT;
-
- /* Set address and direction bit. Will send start command on bus. */
- if (packet->ten_bit_address) {
- i2c_module->ADDR.reg = (packet->address << 1) | I2C_TRANSFER_WRITE |
- (packet->high_speed << SERCOM_I2CM_ADDR_HS_Pos) |
- SERCOM_I2CM_ADDR_TENBITEN;
- } else {
- i2c_module->ADDR.reg = (packet->address << 1) | I2C_TRANSFER_WRITE |
- (packet->high_speed << SERCOM_I2CM_ADDR_HS_Pos);
- }
- /* Wait for response on bus. */
- tmp_status = _i2c_master_wait_for_bus(module);
-
- /* Check for address response error unless previous error is
- * detected. */
- if (tmp_status == STATUS_OK) {
- tmp_status = _i2c_master_address_response(module);
- }
-
- /* Check that no error has occurred. */
- if (tmp_status == STATUS_OK) {
- /* Buffer counter. */
- uint16_t buffer_counter = 0;
-
- /* Write data buffer. */
- while (tmp_data_length--) {
- /* Check that bus ownership is not lost. */
- if (!(i2c_module->STATUS.reg & SERCOM_I2CM_STATUS_BUSSTATE(2))) {
- return STATUS_ERR_PACKET_COLLISION;
- }
-
- /* Write byte to slave. */
- _i2c_master_wait_for_sync(module);
- i2c_module->DATA.reg = packet->data[buffer_counter++];
-
- /* Wait for response. */
- tmp_status = _i2c_master_wait_for_bus(module);
-
- /* Check for error. */
- if (tmp_status != STATUS_OK) {
- break;
- }
-
- /* Check for NACK from slave. */
- if (i2c_module->STATUS.reg & SERCOM_I2CM_STATUS_RXNACK) {
- /* Return bad data value. */
- tmp_status = STATUS_ERR_OVERFLOW;
- break;
- }
- }
-
- if (module->send_stop) {
- /* Stop command */
- _i2c_master_wait_for_sync(module);
- i2c_module->CTRLB.reg |= SERCOM_I2CM_CTRLB_CMD(3);
- }
- }
-
- return tmp_status;
-}
-
-/**
- * \brief Writes data packet to slave
- *
- * Writes a data packet to the specified slave address on the I2C bus
- * and sends a stop condition when finished.
- *
- * \note This will stall the device from any other operation. For
- * interrupt-driven operation, see \ref i2c_master_read_packet_job.
- *
- * \param[in,out] module Pointer to software module struct
- * \param[in,out] packet Pointer to I2C packet to transfer
- *
- * \return Status of write packet.
- * \retval STATUS_OK If packet was write successfully
- * \retval STATUS_BUSY If master module is busy with a job
- * \retval STATUS_ERR_DENIED If error on bus
- * \retval STATUS_ERR_PACKET_COLLISION If arbitration is lost
- * \retval STATUS_ERR_BAD_ADDRESS If slave is busy, or no slave
- * acknowledged the address
- * \retval STATUS_ERR_TIMEOUT If timeout occurred
- * \retval STATUS_ERR_OVERFLOW If slave did not acknowledge last sent
- * data, indicating that slave does not
- * want more data and was not able to read
- * last data sent
- */
-enum status_code i2c_master_write_packet_wait(
- struct i2c_master_module *const module,
- struct i2c_master_packet *const packet)
-{
- /* Sanity check */
- Assert(module);
- Assert(module->hw);
- Assert(packet);
-
-#if I2C_MASTER_CALLBACK_MODE == true
- /* Check if the I2C module is busy with a job */
- if (module->buffer_remaining > 0) {
- return STATUS_BUSY;
- }
-#endif
-
- module->send_stop = true;
- module->send_nack = true;
-
- return _i2c_master_write_packet(module, packet);
-}
-
-/**
- * \brief Writes data packet to slave without sending a stop condition when done
- *
- * Writes a data packet to the specified slave address on the I2C bus
- * without sending a stop condition, thus retaining ownership of the bus when
- * done. To end the transaction, a \ref i2c_master_read_packet_wait "read" or
- * \ref i2c_master_write_packet_wait "write" with stop condition or sending a
- * stop with the \ref i2c_master_send_stop function must be performed.
- *
- * \note This will stall the device from any other operation. For
- * interrupt-driven operation, see \ref i2c_master_read_packet_job.
- *
- * \param[in,out] module Pointer to software module struct
- * \param[in,out] packet Pointer to I2C packet to transfer
- *
- * \return Status of write packet.
- * \retval STATUS_OK If packet was write successfully
- * \retval STATUS_BUSY If master module is busy
- * \retval STATUS_ERR_DENIED If error on bus
- * \retval STATUS_ERR_PACKET_COLLISION If arbitration is lost
- * \retval STATUS_ERR_BAD_ADDRESS If slave is busy, or no slave
- * acknowledged the address
- * \retval STATUS_ERR_TIMEOUT If timeout occurred
- * \retval STATUS_ERR_OVERFLOW If slave did not acknowledge last sent
- * data, indicating that slave do not want
- * more data
- */
-enum status_code i2c_master_write_packet_wait_no_stop(
- struct i2c_master_module *const module,
- struct i2c_master_packet *const packet)
-{
- /* Sanity check */
- Assert(module);
- Assert(module->hw);
- Assert(packet);
-
-#if I2C_MASTER_CALLBACK_MODE == true
- /* Check if the I2C module is busy with a job */
- if (module->buffer_remaining > 0) {
- return STATUS_BUSY;
- }
-#endif
-
- module->send_stop = false;
- module->send_nack = true;
-
- return _i2c_master_write_packet(module, packet);
-}
-
-/**
- * \brief Sends stop condition on bus
- *
- * Sends a stop condition on bus.
- *
- * \note This function can only be used after the
- * \ref i2c_master_write_packet_wait_no_stop function. If a stop condition
- * is to be sent after a read, the \ref i2c_master_read_packet_wait
- * function must be used.
- *
- * \param[in,out] module Pointer to the software instance struct
- */
-void i2c_master_send_stop(struct i2c_master_module *const module)
-{
- /* Sanity check */
- Assert(module);
- Assert(module->hw);
-
- SercomI2cm *const i2c_module = &(module->hw->I2CM);
-
- /* Send stop command */
- _i2c_master_wait_for_sync(module);
- i2c_module->CTRLB.reg |= SERCOM_I2CM_CTRLB_CMD(3);
-}
-
-/**
- * \brief Sends nack signal on bus
- *
- * Sends a nack signal on bus.
- *
- * \note This function can only be used after the
- * \ref i2c_master_write_packet_wait_no_nack function,
- * or \ref i2c_master_read_byte function.
- * \param[in,out] module Pointer to the software instance struct
- */
-void i2c_master_send_nack(struct i2c_master_module *const module)
-{
- /* Sanity check */
- Assert(module);
- Assert(module->hw);
-
- SercomI2cm *const i2c_module = &(module->hw->I2CM);
-
- /* Send nack signal */
- _i2c_master_wait_for_sync(module);
- i2c_module->CTRLB.reg |= SERCOM_I2CM_CTRLB_ACKACT;
-}
-
-/**
- * \brief Reads one byte data from slave
- *
- * \param[in,out] module Pointer to software module struct
- * \param[out] byte Read one byte data to slave
- *
- * \return Status of reading byte.
- * \retval STATUS_OK One byte was read successfully
- * \retval STATUS_ERR_TIMEOUT If no response was given within
- * specified timeout period
- * \retval STATUS_ERR_DENIED If error on bus
- * \retval STATUS_ERR_PACKET_COLLISION If arbitration is lost
- * \retval STATUS_ERR_BAD_ADDRESS If slave is busy, or no slave
- * acknowledged the address
- */
-enum status_code i2c_master_read_byte(
- struct i2c_master_module *const module,
- uint8_t *byte)
-{
- enum status_code tmp_status;
- SercomI2cm *const i2c_module = &(module->hw->I2CM);
-
- i2c_module->CTRLB.reg &= ~SERCOM_I2CM_CTRLB_ACKACT;
- /* Write byte to slave. */
- _i2c_master_wait_for_sync(module);
- *byte = i2c_module->DATA.reg;
- /* Wait for response. */
- tmp_status = _i2c_master_wait_for_bus(module);
-
- return tmp_status;
-}
-
-/**
- * \brief Write one byte data to slave
- *
- * \param[in,out] module Pointer to software module struct
- * \param[in] byte Send one byte data to slave
- *
- * \return Status of writing byte.
- * \retval STATUS_OK One byte was write successfully
- * \retval STATUS_ERR_TIMEOUT If no response was given within
- * specified timeout period
- * \retval STATUS_ERR_DENIED If error on bus
- * \retval STATUS_ERR_PACKET_COLLISION If arbitration is lost
- * \retval STATUS_ERR_BAD_ADDRESS If slave is busy, or no slave
- * acknowledged the address
- */
-enum status_code i2c_master_write_byte(
- struct i2c_master_module *const module,
- uint8_t byte)
-{
- enum status_code tmp_status;
- SercomI2cm *const i2c_module = &(module->hw->I2CM);
-
- /* Write byte to slave. */
- _i2c_master_wait_for_sync(module);
- i2c_module->DATA.reg = byte;
- /* Wait for response. */
- tmp_status = _i2c_master_wait_for_bus(module);
- return tmp_status;
-}
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/i2c/quick_start_master/qs_i2c_master_basic_use.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/i2c/quick_start_master/qs_i2c_master_basic_use.h
deleted file mode 100644
index 79ef633..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/i2c/quick_start_master/qs_i2c_master_basic_use.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * \file
- *
- * \brief SAM SERCOM I2C Master Quick Start Guide
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-/**
- * \page asfdoc_sam0_sercom_i2c_master_basic_use_case Quick Start Guide for SERCOM I2C Master - Basic
- *
- * In this use case, the I2C will used and set up as follows:
- * - Master mode
- * - 100KHz operation speed
- * - Not operational in standby
- * - 10000 packet timeout value
- * - 65535 unknown bus state timeout value
- *
- *
- * \section asfdoc_sam0_sercom_i2c_master_basic_use_case_prereq Prerequisites
- * The device must be connected to an I2C slave.
- *
- * \section asfdoc_sam0_sercom_i2c_master_basic_use_setup Setup
- *
- * \subsection asfdoc_sam0_sercom_i2c_master_basic_use_setup_code Code
- * The following must be added to the user application:
- *
- * - A sample buffer to send, a sample buffer to read:
- * \snippet qs_i2c_master_basic_use.c packet_data
- *
- * - Slave address to access:
- * \snippet qs_i2c_master_basic_use.c address
- *
- * - Number of times to try to send packet if it fails:
- * \snippet qs_i2c_master_basic_use.c timeout
- *
- * - Globally accessible module structure:
- * \snippet qs_i2c_master_basic_use.c dev_inst
- *
- * - Function for setting up the module:
- * \snippet qs_i2c_master_basic_use.c initialize_i2c
- *
- * - Add to user application \c main():
- * \snippet qs_i2c_master_basic_use.c init
- *
- * \subsection asfdoc_sam0_sercom_i2c_master_basic_use_setup_workflow Workflow
- * -# Configure and enable module.
- * \snippet qs_i2c_master_basic_use.c initialize_i2c
- * -# Create and initialize configuration structure.
- * \snippet qs_i2c_master_basic_use.c init_conf
- * -# Change settings in the configuration.
- * \snippet qs_i2c_master_basic_use.c conf_change
- * -# Initialize the module with the set configurations.
- * \snippet qs_i2c_master_basic_use.c init_module
- * -# Enable the module.
- * \snippet qs_i2c_master_basic_use.c enable_module
- * -# Create a variable to see when we should stop trying to send packet.
- * \snippet qs_i2c_master_basic_use.c timeout_counter
- * -# Create a packet to send.
- * \snippet qs_i2c_master_basic_use.c packet
- *
- * \section asfdoc_sam0_sercom_i2c_master_basic_use_implemenation Implementation
- * \subsection asfdoc_sam0_sercom_i2c_master_basic_use_implemenation_code Code
- * Add to user application \c main():
- * \snippet qs_i2c_master_basic_use.c main
- *
- * \subsection asfdoc_sam0_sercom_i2c_master_basic_use_implemenation_workflow Workflow
- * -# Write packet to slave.
- * \snippet qs_i2c_master_basic_use.c write_packet
- * The module will try to send the packet TIMEOUT number of times or until it is
- * successfully sent.
- * -# Read packet from slave.
- * \snippet qs_i2c_master_basic_use.c read_packet
- * The module will try to read the packet TIMEOUT number of times or until it is
- * successfully read.
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#include
-#include
-
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/i2c/quick_start_master_dma/qs_i2c_master_dma.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/i2c/quick_start_master_dma/qs_i2c_master_dma.h
deleted file mode 100644
index 8300f1b..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/i2c/quick_start_master_dma/qs_i2c_master_dma.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/**
- * \file
- *
- * \brief SAM SERCOM I2C Master Driver with DMA Quick Start Guide
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-/**
- * \page asfdoc_sam0_sercom_i2c_master_dma_use_case Quick Start Guide for Using DMA with SERCOM I2C Master
- *
- * The supported board list:
- * - SAMD21 Xplained Pro
- * - SAMR21 Xplained Pro
- * - SAML21 Xplained Pro
- * - SAML22 Xplained Pro
- * - SAMDA1 Xplained Pro
- * - SAMC21 Xplained Pro
- * - SAMHA1G16A Xplained Pro
- *
- * In this use case, the I2C will used and set up as follows:
- * - Master mode
- * - 100KHz operation speed
- * - Not operational in standby
- * - 10000 packet timeout value
- * - 65535 unknown bus state timeout value
- *
- *
- * \section asfdoc_sam0_sercom_i2c_master_dma_use_case_prereq Prerequisites
- * The device must be connected to an I2C slave.
- *
- * \section asfdoc_sam0_sercom_i2c_master_dma_use_setup Setup
- *
- * \subsection asfdoc_sam0_sercom_i2c_master_dma_use_setup_code Code
- * The following must be added to the user application:
- *
- * - A sample buffer to send, number of entries to send and address of slave:
- * \snippet qs_i2c_master_dma.c packet_data
- *
- * Number of times to try to send packet if it fails:
- * \snippet qs_i2c_master_dma.c timeout
- *
- * - Globally accessible module structure:
- * \snippet qs_i2c_master_dma.c dev_i2c_inst
- *
- * - Function for setting up the module:
- * \snippet qs_i2c_master_dma.c initialize_i2c
- *
- * - Globally accessible DMA module structure:
- * \snippet qs_i2c_master_dma.c dma_resource
- *
- * - Globally transfer done flag:
- * \snippet qs_i2c_master_dma.c transfer_done_flag
- *
- * - Globally accessible DMA transfer descriptor:
- * \snippet qs_i2c_master_dma.c transfer_descriptor
- *
- * - Function for transfer done callback:
- * \snippet qs_i2c_master_dma.c transfer_done
- *
- * - Function for setting up the DMA resource:
- * \snippet qs_i2c_master_dma.c config_dma_resource
- *
- * - Function for setting up the DMA transfer descriptor:
- * \snippet qs_i2c_master_dma.c setup_dma_transfer_descriptor
- * - Add to user application \c main():
- * \snippet qs_i2c_master_dma.c init
- *
- * \subsection asfdoc_sam0_sercom_i2c_master_dma_use_setup_workflow Workflow
- * -# Configure and enable module:
- * \snippet qs_i2c_master_dma.c config_i2c
- * -# Create and initialize configuration structure.
- * \snippet qs_i2c_master_dma.c init_conf
- * -# Change settings in the configuration.
- * \snippet qs_i2c_master_dma.c conf_change
- * -# Initialize the module with the set configurations.
- * \snippet qs_i2c_master_dma.c init_module
- * -# Enable the module.
- * \snippet qs_i2c_master_dma.c enable_module
- *
- * -# Configure DMA
- * -# Create a DMA resource configuration structure, which can be filled out to
- * adjust the configuration of a single DMA transfer.
- * \snippet qs_i2c_master_dma.c dma_setup_1
- *
- * -# Initialize the DMA resource configuration struct with the module's
- * default values.
- * \snippet qs_i2c_master_dma.c dma_setup_2
- * \note This should always be performed before using the configuration
- * struct to ensure that all values are initialized to known default
- * settings.
- *
- * -# Set extra configurations for the DMA resource. It is using peripheral
- * trigger. SERCOM TX trigger causes a transaction transfer in
- * this example.
- * \snippet qs_i2c_master_dma.c dma_setup_3
- *
- * -# Allocate a DMA resource with the configurations.
- * \snippet qs_i2c_master_dma.c dma_setup_4
- *
- * -# Create a DMA transfer descriptor configuration structure, which can be
- * filled out to adjust the configuration of a single DMA transfer.
- * \snippet qs_i2c_master_dma.c dma_setup_5
- *
- * -# Initialize the DMA transfer descriptor configuration struct with the module's
- * default values.
- * \snippet qs_i2c_master_dma.c dma_setup_6
- * \note This should always be performed before using the configuration
- * struct to ensure that all values are initialized to known default
- * settings.
- *
- * -# Set the specific parameters for a DMA transfer with transfer size, source
- * address, and destination address.
- * \snippet qs_i2c_master_dma.c dma_setup_7
- *
- * -# Create the DMA transfer descriptor.
- * \snippet qs_i2c_master_dma.c dma_setup_8
- *
- * \section asfdoc_sam0_sercom_i2c_master_dma_use_implemenation Implementation
- * \subsection asfdoc_sam0_sercom_i2c_master_dma_use_implemenation_code Code
- * Add to user application \c main():
- * \snippet qs_i2c_master_dma.c main
- *
- * \subsection asfdoc_sam0_sercom_i2c_master_dma_use_implemenation_workflow Workflow
- * -# Start the DMA transfer job.
- * \snippet qs_i2c_master_dma.c start_transfer_job
- *
- * -# Set the auto address length and enable flag.
- * \snippet qs_i2c_master_dma.c set_i2c_addr
- *
- * -# Waiting for transfer complete.
- * \snippet qs_i2c_master_dma.c waiting_for_complete
- *
- * -# Enter an infinite loop once transfer complete.
- * \snippet qs_i2c_master_dma.c inf_loop
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/sercom.c b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/sercom.c
deleted file mode 100644
index 4ec5611..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/sercom.c
+++ /dev/null
@@ -1,280 +0,0 @@
-/**
- * \file
- *
- * \brief SAM Serial Peripheral Interface Driver
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#include "sercom.h"
-
-#define SHIFT 32
-#define BAUD_INT_MAX 8192
-#define BAUD_FP_MAX 8
-
-#if !defined(__DOXYGEN__)
-/**
- * \internal Configuration structure to save current gclk status.
- */
-struct _sercom_conf {
- /* Status of gclk generator initialization */
- bool generator_is_set;
- /* Sercom gclk generator used */
- enum gclk_generator generator_source;
-};
-
-static struct _sercom_conf _sercom_config;
-
-
-/**
- * \internal Calculate 64 bit division, ref can be found in
- * http://en.wikipedia.org/wiki/Division_algorithm#Long_division
- */
-static uint64_t long_division(uint64_t n, uint64_t d)
-{
- int32_t i;
- uint64_t q = 0, r = 0, bit_shift;
- for (i = 63; i >= 0; i--) {
- bit_shift = (uint64_t)1 << i;
-
- r = r << 1;
-
- if (n & bit_shift) {
- r |= 0x01;
- }
-
- if (r >= d) {
- r = r - d;
- q |= bit_shift;
- }
- }
-
- return q;
-}
-
-/**
- * \internal Calculate synchronous baudrate value (SPI/UART)
- */
-enum status_code _sercom_get_sync_baud_val(
- const uint32_t baudrate,
- const uint32_t external_clock,
- uint16_t *const baudvalue)
-{
- /* Baud value variable */
- uint16_t baud_calculated = 0;
- uint32_t clock_value = external_clock;
-
-
- /* Check if baudrate is outside of valid range */
- if (baudrate > (external_clock / 2)) {
- /* Return with error code */
- return STATUS_ERR_BAUDRATE_UNAVAILABLE;
- }
-
- /* Calculate BAUD value from clock frequency and baudrate */
- clock_value = external_clock / 2;
- while (clock_value >= baudrate) {
- clock_value = clock_value - baudrate;
- baud_calculated++;
- }
- baud_calculated = baud_calculated - 1;
-
- /* Check if BAUD value is more than 255, which is maximum
- * for synchronous mode */
- if (baud_calculated > 0xFF) {
- /* Return with an error code */
- return STATUS_ERR_BAUDRATE_UNAVAILABLE;
- } else {
- *baudvalue = baud_calculated;
- return STATUS_OK;
- }
-}
-
-/**
- * \internal Calculate asynchronous baudrate value (UART)
-*/
-enum status_code _sercom_get_async_baud_val(
- const uint32_t baudrate,
- const uint32_t peripheral_clock,
- uint16_t *const baudval,
- enum sercom_asynchronous_operation_mode mode,
- enum sercom_asynchronous_sample_num sample_num)
-{
- /* Temporary variables */
- uint64_t ratio = 0;
- uint64_t scale = 0;
- uint64_t baud_calculated = 0;
- uint8_t baud_fp;
- uint32_t baud_int = 0;
- uint64_t temp1;
-
- /* Check if the baudrate is outside of valid range */
- if ((baudrate * sample_num) > peripheral_clock) {
- /* Return with error code */
- return STATUS_ERR_BAUDRATE_UNAVAILABLE;
- }
-
- if(mode == SERCOM_ASYNC_OPERATION_MODE_ARITHMETIC) {
- /* Calculate the BAUD value */
- temp1 = ((sample_num * (uint64_t)baudrate) << SHIFT);
- ratio = long_division(temp1, peripheral_clock);
- scale = ((uint64_t)1 << SHIFT) - ratio;
- baud_calculated = (65536 * scale) >> SHIFT;
- } else if(mode == SERCOM_ASYNC_OPERATION_MODE_FRACTIONAL) {
- temp1 = ((uint64_t)baudrate * sample_num);
- baud_int = long_division( peripheral_clock, temp1);
- if(baud_int > BAUD_INT_MAX) {
- return STATUS_ERR_BAUDRATE_UNAVAILABLE;
- }
- temp1 = long_division( 8 * (uint64_t)peripheral_clock, temp1);
- baud_fp = temp1 - 8 * baud_int;
- baud_calculated = baud_int | (baud_fp << 13);
- }
-
- *baudval = baud_calculated;
- return STATUS_OK;
-}
-#endif
-
-/**
- * \brief Set GCLK channel to generator.
- *
- * This will set the appropriate GCLK channel to the requested GCLK generator.
- * This will set the generator for all SERCOM instances, and the user will thus
- * only be able to set the same generator that has previously been set, if any.
- *
- * After the generator has been set the first time, the generator can be changed
- * using the \c force_change flag.
- *
- * \param[in] generator_source The generator to use for SERCOM.
- * \param[in] force_change Force change the generator.
- *
- * \return Status code indicating the GCLK generator change operation.
- * \retval STATUS_OK If the generator update request was
- * successful.
- * \retval STATUS_ERR_ALREADY_INITIALIZED If a generator was already configured
- * and the new configuration was not
- * forced.
- */
-enum status_code sercom_set_gclk_generator(
- const enum gclk_generator generator_source,
- const bool force_change)
-{
- /* Check if valid option */
- if (!_sercom_config.generator_is_set || force_change) {
- /* Create and fill a GCLK configuration structure for the new config */
- struct system_gclk_chan_config gclk_chan_conf;
- system_gclk_chan_get_config_defaults(&gclk_chan_conf);
- gclk_chan_conf.source_generator = generator_source;
- system_gclk_chan_set_config(SERCOM_GCLK_ID, &gclk_chan_conf);
- system_gclk_chan_enable(SERCOM_GCLK_ID);
-
- /* Save config */
- _sercom_config.generator_source = generator_source;
- _sercom_config.generator_is_set = true;
-
- return STATUS_OK;
- } else if (generator_source == _sercom_config.generator_source) {
- /* Return status OK if same config */
- return STATUS_OK;
- }
-
- /* Return invalid config to already initialized GCLK */
- return STATUS_ERR_ALREADY_INITIALIZED;
-}
-
-/** \internal
- * Creates a switch statement case entry to convert a SERCOM instance and pad
- * index to the default SERCOM pad MUX setting.
- */
-#define _SERCOM_PAD_DEFAULTS_CASE(n, pad) \
- case (uintptr_t)SERCOM##n: \
- switch (pad) { \
- case 0: \
- return SERCOM##n##_PAD0_DEFAULT; \
- case 1: \
- return SERCOM##n##_PAD1_DEFAULT; \
- case 2: \
- return SERCOM##n##_PAD2_DEFAULT; \
- case 3: \
- return SERCOM##n##_PAD3_DEFAULT; \
- } \
- break;
-
-/**
- * \internal Gets the default PAD pinout for a given SERCOM.
- *
- * Returns the pinmux settings for the given SERCOM and pad. This is used
- * for default configuration of pins.
- *
- * \param[in] sercom_module Pointer to the SERCOM module
- * \param[in] pad PAD to get default pinout for
- *
- * \returns The default pinmux for the given SERCOM instance and PAD
- *
- */
-uint32_t _sercom_get_default_pad(
- Sercom *const sercom_module,
- const uint8_t pad)
-{
- switch ((uintptr_t)sercom_module) {
- /* Auto-generate a lookup table for the default SERCOM pad defaults */
- MREPEAT(SERCOM_INST_NUM, _SERCOM_PAD_DEFAULTS_CASE, pad)
- }
-
- Assert(false);
- return 0;
-}
-
-/**
- * \internal
- * Find index of given instance.
- *
- * \param[in] sercom_instance Instance pointer.
- *
- * \return Index of given instance.
- */
-uint8_t _sercom_get_sercom_inst_index(
- Sercom *const sercom_instance)
-{
- /* Save all available SERCOM instances for compare */
- Sercom *sercom_instances[SERCOM_INST_NUM] = SERCOM_INSTS;
-
- /* Find index for sercom instance */
- for (uint32_t i = 0; i < SERCOM_INST_NUM; i++) {
- if ((uintptr_t)sercom_instance == (uintptr_t)sercom_instances[i]) {
- return i;
- }
- }
-
- /* Invalid data given */
- Assert(false);
- return 0;
-}
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/sercom.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/sercom.h
deleted file mode 100644
index 58bd15f..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/sercom.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * \file
- *
- * \brief SAM Serial Peripheral Interface Driver
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef SERCOM_H_INCLUDED
-#define SERCOM_H_INCLUDED
-
-#include
-#include
-#include
-#include
-#include "sercom_pinout.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* SERCOM modules should share same slow GCLK channel ID */
-#define SERCOM_GCLK_ID SERCOM0_GCLK_ID_SLOW
-
-#if (0x1ff >= REV_SERCOM)
-# define FEATURE_SERCOM_SYNCBUSY_SCHEME_VERSION_1
-#elif (0x400 >= REV_SERCOM)
-# define FEATURE_SERCOM_SYNCBUSY_SCHEME_VERSION_2
-#else
-# error "Unknown SYNCBUSY scheme for this SERCOM revision"
-#endif
-
-/**
- * \brief sercom asynchronous operation mode
- *
- * Select sercom asynchronous operation mode
- */
-enum sercom_asynchronous_operation_mode {
- SERCOM_ASYNC_OPERATION_MODE_ARITHMETIC = 0,
- SERCOM_ASYNC_OPERATION_MODE_FRACTIONAL,
-};
-
-/**
- * \brief sercom asynchronous samples per bit
- *
- * Select number of samples per bit
- */
-enum sercom_asynchronous_sample_num {
- SERCOM_ASYNC_SAMPLE_NUM_3 = 3,
- SERCOM_ASYNC_SAMPLE_NUM_8 = 8,
- SERCOM_ASYNC_SAMPLE_NUM_16 = 16,
-};
-
-enum status_code sercom_set_gclk_generator(
- const enum gclk_generator generator_source,
- const bool force_change);
-
-enum status_code _sercom_get_sync_baud_val(
- const uint32_t baudrate,
- const uint32_t external_clock,
- uint16_t *const baudval);
-
-enum status_code _sercom_get_async_baud_val(
- const uint32_t baudrate,
- const uint32_t peripheral_clock,
- uint16_t *const baudval,
- enum sercom_asynchronous_operation_mode mode,
- enum sercom_asynchronous_sample_num sample_num);
-
-uint32_t _sercom_get_default_pad(
- Sercom *const sercom_module,
- const uint8_t pad);
-
-uint8_t _sercom_get_sercom_inst_index(
- Sercom *const sercom_instance);
-#ifdef __cplusplus
-}
-#endif
-
-#endif //__SERCOM_H_INCLUDED
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/sercom_pinout.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/sercom_pinout.h
deleted file mode 100644
index 786c0bc..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/sercom/sercom_pinout.h
+++ /dev/null
@@ -1,612 +0,0 @@
-/**
- * \file
- *
- * \brief SAM SERCOM Module Pinout Definitions
- *
- *
- * Copyright (c) 2012-2020 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef SERCOM_PINOUT_H_INCLUDED
-#define SERCOM_PINOUT_H_INCLUDED
-
-#include
-
-#if SAMR21E
- /* SERCOM0 */
- #define SERCOM0_PAD0_DEFAULT PINMUX_PA08C_SERCOM0_PAD0
- #define SERCOM0_PAD1_DEFAULT PINMUX_PA09C_SERCOM0_PAD1
- #define SERCOM0_PAD2_DEFAULT PINMUX_PA06D_SERCOM0_PAD2
- #define SERCOM0_PAD3_DEFAULT PINMUX_PA07D_SERCOM0_PAD3
-
- /* SERCOM1 */
- #define SERCOM1_PAD0_DEFAULT PINMUX_PA16C_SERCOM1_PAD0
- #define SERCOM1_PAD1_DEFAULT PINMUX_PA17C_SERCOM1_PAD1
- #define SERCOM1_PAD2_DEFAULT PINMUX_PA18C_SERCOM1_PAD2
- #define SERCOM1_PAD3_DEFAULT PINMUX_PA19C_SERCOM1_PAD3
-
- /* SERCOM2 */
- #define SERCOM2_PAD0_DEFAULT PINMUX_PA08D_SERCOM2_PAD0
- #define SERCOM2_PAD1_DEFAULT PINMUX_PA09D_SERCOM2_PAD1
- #define SERCOM2_PAD2_DEFAULT PINMUX_PA14C_SERCOM2_PAD2
- #define SERCOM2_PAD3_DEFAULT PINMUX_PA15C_SERCOM2_PAD3
-
- /* SERCOM3 */
-# if SAM_PART_IS_DEFINED(SAMR21E19A)
- #define SERCOM3_PAD0_DEFAULT PINMUX_PA16D_SERCOM3_PAD0
- #define SERCOM3_PAD1_DEFAULT PINMUX_PA17D_SERCOM3_PAD1
-# else
- #define SERCOM3_PAD0_DEFAULT PINMUX_PA27F_SERCOM3_PAD0
- #define SERCOM3_PAD1_DEFAULT PINMUX_PA28F_SERCOM3_PAD1
-#endif
- #define SERCOM3_PAD2_DEFAULT PINMUX_PA24C_SERCOM3_PAD2
- #define SERCOM3_PAD3_DEFAULT PINMUX_PA25C_SERCOM3_PAD3
-
- /* SERCOM4 */
-# if SAM_PART_IS_DEFINED(SAMR21E19A)
- #define SERCOM4_PAD0_DEFAULT PINMUX_PB08D_SERCOM4_PAD0
- #define SERCOM4_PAD1_DEFAULT PINMUX_PB09D_SERCOM4_PAD1
- #define SERCOM4_PAD2_DEFAULT PINMUX_PA14D_SERCOM4_PAD2
- #define SERCOM4_PAD3_DEFAULT PINMUX_PA15D_SERCOM4_PAD3
-# else
- #define SERCOM4_PAD0_DEFAULT PINMUX_PC19F_SERCOM4_PAD0
- #define SERCOM4_PAD1_DEFAULT PINMUX_PB31F_SERCOM4_PAD1
- #define SERCOM4_PAD2_DEFAULT PINMUX_PB30F_SERCOM4_PAD2
- #define SERCOM4_PAD3_DEFAULT PINMUX_PC18F_SERCOM4_PAD3
-# endif
-
- /* SERCOM5 */
- #define SERCOM5_PAD0_DEFAULT PINMUX_PB30D_SERCOM5_PAD0
- #define SERCOM5_PAD1_DEFAULT PINMUX_PB31D_SERCOM5_PAD1
- #define SERCOM5_PAD2_DEFAULT PINMUX_PA24D_SERCOM5_PAD2
- #define SERCOM5_PAD3_DEFAULT PINMUX_PA25D_SERCOM5_PAD3
-
-#elif SAMR21G
- /* SERCOM0 */
- #define SERCOM0_PAD0_DEFAULT PINMUX_PA04D_SERCOM0_PAD0
- #define SERCOM0_PAD1_DEFAULT PINMUX_PA05D_SERCOM0_PAD1
- #define SERCOM0_PAD2_DEFAULT PINMUX_PA06D_SERCOM0_PAD2
- #define SERCOM0_PAD3_DEFAULT PINMUX_PA07D_SERCOM0_PAD3
-
- /* SERCOM1 */
- #define SERCOM1_PAD0_DEFAULT PINMUX_PA00D_SERCOM1_PAD0
- #define SERCOM1_PAD1_DEFAULT PINMUX_PA01D_SERCOM1_PAD1
- #define SERCOM1_PAD2_DEFAULT PINMUX_PA30D_SERCOM1_PAD2
- #define SERCOM1_PAD3_DEFAULT PINMUX_PA31D_SERCOM1_PAD3
-
- /* SERCOM2 */
- #define SERCOM2_PAD0_DEFAULT PINMUX_PA12C_SERCOM2_PAD0
- #define SERCOM2_PAD1_DEFAULT PINMUX_PA13C_SERCOM2_PAD1
- #define SERCOM2_PAD2_DEFAULT PINMUX_PA14C_SERCOM2_PAD2
- #define SERCOM2_PAD3_DEFAULT PINMUX_PA15C_SERCOM2_PAD3
-
- /* SERCOM3 */
- #define SERCOM3_PAD0_DEFAULT PINMUX_PA16D_SERCOM3_PAD0
- #define SERCOM3_PAD1_DEFAULT PINMUX_PA17D_SERCOM3_PAD1
- #define SERCOM3_PAD2_DEFAULT PINMUX_PA18D_SERCOM3_PAD2
- #define SERCOM3_PAD3_DEFAULT PINMUX_PA19D_SERCOM3_PAD3
-
- /* SERCOM4 */
- #define SERCOM4_PAD0_DEFAULT PINMUX_PC19F_SERCOM4_PAD0
- #define SERCOM4_PAD1_DEFAULT PINMUX_PB31F_SERCOM4_PAD1
- #define SERCOM4_PAD2_DEFAULT PINMUX_PB30F_SERCOM4_PAD2
- #define SERCOM4_PAD3_DEFAULT PINMUX_PC18F_SERCOM4_PAD3
-
- /* SERCOM5 */
- #define SERCOM5_PAD0_DEFAULT PINMUX_PA22D_SERCOM5_PAD0
- #define SERCOM5_PAD1_DEFAULT PINMUX_PA23D_SERCOM5_PAD1
- #define SERCOM5_PAD2_DEFAULT PINMUX_PA24D_SERCOM5_PAD2
- #define SERCOM5_PAD3_DEFAULT PINMUX_PA25D_SERCOM5_PAD3
-
-#elif (SAMD09)
- /* SERCOM0 */
- #define SERCOM0_PAD0_DEFAULT PINMUX_PA04D_SERCOM0_PAD0
- #define SERCOM0_PAD1_DEFAULT PINMUX_PA05D_SERCOM0_PAD1
- #define SERCOM0_PAD2_DEFAULT PINMUX_PA08D_SERCOM0_PAD2
- #define SERCOM0_PAD3_DEFAULT PINMUX_PA09D_SERCOM0_PAD3
-
- /* SERCOM1 */
- #define SERCOM1_PAD0_DEFAULT PINMUX_PA30C_SERCOM1_PAD0
- #define SERCOM1_PAD1_DEFAULT PINMUX_PA31C_SERCOM1_PAD1
- #define SERCOM1_PAD2_DEFAULT PINMUX_PA24C_SERCOM1_PAD2
- #define SERCOM1_PAD3_DEFAULT PINMUX_PA25C_SERCOM1_PAD3
-
-#elif (SAMD10DS) || (SAMD10DM) || (SAMD10DU) || (SAMD11DS) || (SAMD11DM) || (SAMD11DU)
- /* SERCOM0 */
- #define SERCOM0_PAD0_DEFAULT PINMUX_PA04D_SERCOM0_PAD0
- #define SERCOM0_PAD1_DEFAULT PINMUX_PA05D_SERCOM0_PAD1
- #define SERCOM0_PAD2_DEFAULT PINMUX_PA06D_SERCOM0_PAD2
- #define SERCOM0_PAD3_DEFAULT PINMUX_PA07D_SERCOM0_PAD3
-
- /* SERCOM1 */
- #define SERCOM1_PAD0_DEFAULT PINMUX_PA22C_SERCOM1_PAD0
- #define SERCOM1_PAD1_DEFAULT PINMUX_PA23C_SERCOM1_PAD1
- #define SERCOM1_PAD2_DEFAULT PINMUX_PA30D_SERCOM1_PAD2
- #define SERCOM1_PAD3_DEFAULT PINMUX_PA31D_SERCOM1_PAD3
-
- /* SERCOM2 */
- #define SERCOM2_PAD0_DEFAULT PINMUX_PA22D_SERCOM2_PAD0
- #define SERCOM2_PAD1_DEFAULT PINMUX_PA23D_SERCOM2_PAD1
- #define SERCOM2_PAD2_DEFAULT PINMUX_PA16D_SERCOM2_PAD2
- #define SERCOM2_PAD3_DEFAULT PINMUX_PA25D_SERCOM2_PAD3
-
-#elif (SAMD10C) || (SAMD11C)
- /* SERCOM0 */
- #define SERCOM0_PAD0_DEFAULT PINMUX_PA04D_SERCOM0_PAD0
- #define SERCOM0_PAD1_DEFAULT PINMUX_PA05D_SERCOM0_PAD1
- #define SERCOM0_PAD2_DEFAULT PINMUX_PA08D_SERCOM0_PAD2
- #define SERCOM0_PAD3_DEFAULT PINMUX_PA09D_SERCOM0_PAD3
-
- /* SERCOM1 */
- #define SERCOM1_PAD0_DEFAULT PINMUX_PA30C_SERCOM1_PAD0
- #define SERCOM1_PAD1_DEFAULT PINMUX_PA31C_SERCOM1_PAD1
- #define SERCOM1_PAD2_DEFAULT PINMUX_PA24C_SERCOM1_PAD2
- #define SERCOM1_PAD3_DEFAULT PINMUX_PA25C_SERCOM1_PAD3
-
-#elif SAM_PART_IS_DEFINED(SAMD21E15L) || SAM_PART_IS_DEFINED(SAMD21E16L)
-
- /* SERCOM0 */
- #define SERCOM0_PAD0_DEFAULT PINMUX_PA04D_SERCOM0_PAD0
- #define SERCOM0_PAD1_DEFAULT PINMUX_PA05D_SERCOM0_PAD1
- #define SERCOM0_PAD2_DEFAULT PINMUX_PA06D_SERCOM0_PAD2
- #define SERCOM0_PAD3_DEFAULT PINMUX_PA07D_SERCOM0_PAD3
-
- /* SERCOM1 */
- #define SERCOM1_PAD0_DEFAULT PINMUX_PA16C_SERCOM1_PAD0
- #define SERCOM1_PAD1_DEFAULT PINMUX_PA17C_SERCOM1_PAD1
- #define SERCOM1_PAD2_DEFAULT PINMUX_PA18C_SERCOM1_PAD2
- #define SERCOM1_PAD3_DEFAULT PINMUX_PA19C_SERCOM1_PAD3
-
- /* SERCOM2 */
- #define SERCOM2_PAD0_DEFAULT PINMUX_PA08D_SERCOM2_PAD0
- #define SERCOM2_PAD1_DEFAULT PINMUX_PA09D_SERCOM2_PAD1
- #define SERCOM2_PAD2_DEFAULT PINMUX_PA10D_SERCOM2_PAD2
- #define SERCOM2_PAD3_DEFAULT PINMUX_PA11D_SERCOM2_PAD3
-
- /* SERCOM3 */
- #define SERCOM3_PAD0_DEFAULT PINMUX_PA22C_SERCOM3_PAD0
- #define SERCOM3_PAD1_DEFAULT PINMUX_PA23C_SERCOM3_PAD1
- #define SERCOM3_PAD2_DEFAULT PINMUX_PA24C_SERCOM3_PAD2
- #define SERCOM3_PAD3_DEFAULT PINMUX_PA25C_SERCOM3_PAD3
-
-#elif (SAML22N)
- /* SERCOM0 */
- #define SERCOM0_PAD0_DEFAULT PINMUX_PA08C_SERCOM0_PAD0
- #define SERCOM0_PAD1_DEFAULT PINMUX_PA09C_SERCOM0_PAD1
- #define SERCOM0_PAD2_DEFAULT PINMUX_PA10C_SERCOM0_PAD2
- #define SERCOM0_PAD3_DEFAULT PINMUX_PA11C_SERCOM0_PAD3
-
- /* SERCOM1 */
- #define SERCOM1_PAD0_DEFAULT PINMUX_PA16C_SERCOM1_PAD0
- #define SERCOM1_PAD1_DEFAULT PINMUX_PA17C_SERCOM1_PAD1
- #define SERCOM1_PAD2_DEFAULT PINMUX_PA18C_SERCOM1_PAD2
- #define SERCOM1_PAD3_DEFAULT PINMUX_PA19C_SERCOM1_PAD3
-
- /* SERCOM2 */
- #define SERCOM2_PAD0_DEFAULT PINMUX_PA22D_SERCOM2_PAD0
- #define SERCOM2_PAD1_DEFAULT PINMUX_PA23D_SERCOM2_PAD1
- #define SERCOM2_PAD2_DEFAULT PINMUX_PA20D_SERCOM2_PAD2
- #define SERCOM2_PAD3_DEFAULT PINMUX_PA21D_SERCOM2_PAD3
-
- /* SERCOM3 */
- #define SERCOM3_PAD0_DEFAULT PINMUX_PB02C_SERCOM3_PAD0
- #define SERCOM3_PAD1_DEFAULT PINMUX_PB21C_SERCOM3_PAD1
- #define SERCOM3_PAD2_DEFAULT PINMUX_PB00C_SERCOM3_PAD2
- #define SERCOM3_PAD3_DEFAULT PINMUX_PB01C_SERCOM3_PAD3
-
- /* SERCOM4 */
- #define SERCOM4_PAD0_DEFAULT PINMUX_PA12C_SERCOM4_PAD0
- #define SERCOM4_PAD1_DEFAULT PINMUX_PA13C_SERCOM4_PAD1
- #define SERCOM4_PAD2_DEFAULT PINMUX_PA14C_SERCOM4_PAD2
- #define SERCOM4_PAD3_DEFAULT PINMUX_PA15C_SERCOM4_PAD3
-
- /* SERCOM5 */
- #define SERCOM5_PAD0_DEFAULT PINMUX_PB30D_SERCOM5_PAD0
- #define SERCOM5_PAD1_DEFAULT PINMUX_PB31D_SERCOM5_PAD1
- #define SERCOM5_PAD2_DEFAULT PINMUX_PB22D_SERCOM5_PAD2
- #define SERCOM5_PAD3_DEFAULT PINMUX_PB23D_SERCOM5_PAD3
-#elif (SAML22J) || (SAML22G)
- /* SERCOM0 */
- #define SERCOM0_PAD0_DEFAULT PINMUX_PA08C_SERCOM0_PAD0
- #define SERCOM0_PAD1_DEFAULT PINMUX_PA09C_SERCOM0_PAD1
- #define SERCOM0_PAD2_DEFAULT PINMUX_PA10C_SERCOM0_PAD2
- #define SERCOM0_PAD3_DEFAULT PINMUX_PA11C_SERCOM0_PAD3
-
- /* SERCOM1 */
- #define SERCOM1_PAD0_DEFAULT PINMUX_PA16C_SERCOM1_PAD0
- #define SERCOM1_PAD1_DEFAULT PINMUX_PA17C_SERCOM1_PAD1
- #define SERCOM1_PAD2_DEFAULT PINMUX_PA18C_SERCOM1_PAD2
- #define SERCOM1_PAD3_DEFAULT PINMUX_PA19C_SERCOM1_PAD3
-
- /* SERCOM2 */
- #define SERCOM2_PAD0_DEFAULT PINMUX_PA22D_SERCOM2_PAD0
- #define SERCOM2_PAD1_DEFAULT PINMUX_PA23D_SERCOM2_PAD1
- #define SERCOM2_PAD2_DEFAULT PINMUX_PA20D_SERCOM2_PAD2
- #define SERCOM2_PAD3_DEFAULT PINMUX_PA21D_SERCOM2_PAD3
-
- /* SERCOM3 */
- #define SERCOM3_PAD0_DEFAULT PINMUX_PA12D_SERCOM3_PAD0
- #define SERCOM3_PAD1_DEFAULT PINMUX_PA13D_SERCOM3_PAD1
- #define SERCOM3_PAD2_DEFAULT PINMUX_PA14D_SERCOM3_PAD2
- #define SERCOM3_PAD3_DEFAULT PINMUX_PA15D_SERCOM3_PAD3
-#elif (SAMC20E) || (SAMC21E)
- /* SERCOM0 */
- #define SERCOM0_PAD0_DEFAULT PINMUX_PA04D_SERCOM0_PAD0
- #define SERCOM0_PAD1_DEFAULT PINMUX_PA05D_SERCOM0_PAD1
- #define SERCOM0_PAD2_DEFAULT PINMUX_PA06D_SERCOM0_PAD2
- #define SERCOM0_PAD3_DEFAULT PINMUX_PA07D_SERCOM0_PAD3
-
- /* SERCOM1 */
- #define SERCOM1_PAD0_DEFAULT PINMUX_PA16C_SERCOM1_PAD0
- #define SERCOM1_PAD1_DEFAULT PINMUX_PA17C_SERCOM1_PAD1
- #define SERCOM1_PAD2_DEFAULT PINMUX_PA18C_SERCOM1_PAD2
- #define SERCOM1_PAD3_DEFAULT PINMUX_PA19C_SERCOM1_PAD3
-
- /* SERCOM2 */
- #define SERCOM2_PAD0_DEFAULT PINMUX_PA08D_SERCOM2_PAD0
- #define SERCOM2_PAD1_DEFAULT PINMUX_PA09D_SERCOM2_PAD1
- #define SERCOM2_PAD2_DEFAULT PINMUX_PA10D_SERCOM2_PAD2
- #define SERCOM2_PAD3_DEFAULT PINMUX_PA11D_SERCOM2_PAD3
-
- /* SERCOM3 */
- #define SERCOM3_PAD0_DEFAULT PINMUX_PA22C_SERCOM3_PAD0
- #define SERCOM3_PAD1_DEFAULT PINMUX_PA23C_SERCOM3_PAD1
- #define SERCOM3_PAD2_DEFAULT PINMUX_PA24C_SERCOM3_PAD2
- #define SERCOM3_PAD3_DEFAULT PINMUX_PA25C_SERCOM3_PAD3
-
-#elif (SAMC20G) || (SAMC21G)
- /* SERCOM0 */
- #define SERCOM0_PAD0_DEFAULT PINMUX_PA04D_SERCOM0_PAD0
- #define SERCOM0_PAD1_DEFAULT PINMUX_PA05D_SERCOM0_PAD1
- #define SERCOM0_PAD2_DEFAULT PINMUX_PA06D_SERCOM0_PAD2
- #define SERCOM0_PAD3_DEFAULT PINMUX_PA07D_SERCOM0_PAD3
-
- /* SERCOM1 */
- #define SERCOM1_PAD0_DEFAULT PINMUX_PA16C_SERCOM1_PAD0
- #define SERCOM1_PAD1_DEFAULT PINMUX_PA17C_SERCOM1_PAD1
- #define SERCOM1_PAD2_DEFAULT PINMUX_PA18C_SERCOM1_PAD2
- #define SERCOM1_PAD3_DEFAULT PINMUX_PA19C_SERCOM1_PAD3
-
- /* SERCOM2 */
- #define SERCOM2_PAD0_DEFAULT PINMUX_PA12C_SERCOM2_PAD0
- #define SERCOM2_PAD1_DEFAULT PINMUX_PA13C_SERCOM2_PAD1
- #define SERCOM2_PAD2_DEFAULT PINMUX_PA14C_SERCOM2_PAD2
- #define SERCOM2_PAD3_DEFAULT PINMUX_PA15C_SERCOM2_PAD3
-
- /* SERCOM3 */
- #define SERCOM3_PAD0_DEFAULT PINMUX_PA22C_SERCOM3_PAD0
- #define SERCOM3_PAD1_DEFAULT PINMUX_PA23C_SERCOM3_PAD1
- #define SERCOM3_PAD2_DEFAULT PINMUX_PA24C_SERCOM3_PAD2
- #define SERCOM3_PAD3_DEFAULT PINMUX_PA25C_SERCOM3_PAD3
-
- #ifdef ID_SERCOM4
- /* SERCOM4 */
- #define SERCOM4_PAD0_DEFAULT PINMUX_PB08D_SERCOM4_PAD0
- #define SERCOM4_PAD1_DEFAULT PINMUX_PB09D_SERCOM4_PAD1
- #define SERCOM4_PAD2_DEFAULT PINMUX_PB10D_SERCOM4_PAD2
- #define SERCOM4_PAD3_DEFAULT PINMUX_PB11D_SERCOM4_PAD3
- #endif
-
- #ifdef ID_SERCOM5
- /* SERCOM5 */
- #define SERCOM5_PAD0_DEFAULT PINMUX_PB02D_SERCOM5_PAD0
- #define SERCOM5_PAD1_DEFAULT PINMUX_PB03D_SERCOM5_PAD1
- #define SERCOM5_PAD2_DEFAULT PINMUX_PB22D_SERCOM5_PAD2
- #define SERCOM5_PAD3_DEFAULT PINMUX_PB23D_SERCOM5_PAD3
- #endif
-
-#elif (SAMC20J) || (SAMC21J)
- /* SERCOM0 */
- #define SERCOM0_PAD0_DEFAULT PINMUX_PA04D_SERCOM0_PAD0
- #define SERCOM0_PAD1_DEFAULT PINMUX_PA05D_SERCOM0_PAD1
- #define SERCOM0_PAD2_DEFAULT PINMUX_PA06D_SERCOM0_PAD2
- #define SERCOM0_PAD3_DEFAULT PINMUX_PA07D_SERCOM0_PAD3
-
- /* SERCOM1 */
- #define SERCOM1_PAD0_DEFAULT PINMUX_PA16C_SERCOM1_PAD0
- #define SERCOM1_PAD1_DEFAULT PINMUX_PA17C_SERCOM1_PAD1
- #define SERCOM1_PAD2_DEFAULT PINMUX_PA18C_SERCOM1_PAD2
- #define SERCOM1_PAD3_DEFAULT PINMUX_PA19C_SERCOM1_PAD3
-
- /* SERCOM2 */
- #define SERCOM2_PAD0_DEFAULT PINMUX_PA12C_SERCOM2_PAD0
- #define SERCOM2_PAD1_DEFAULT PINMUX_PA13C_SERCOM2_PAD1
- #define SERCOM2_PAD2_DEFAULT PINMUX_PA14C_SERCOM2_PAD2
- #define SERCOM2_PAD3_DEFAULT PINMUX_PA15C_SERCOM2_PAD3
-
- /* SERCOM3 */
- #define SERCOM3_PAD0_DEFAULT PINMUX_PA22C_SERCOM3_PAD0
- #define SERCOM3_PAD1_DEFAULT PINMUX_PA23C_SERCOM3_PAD1
- #define SERCOM3_PAD2_DEFAULT PINMUX_PA24C_SERCOM3_PAD2
- #define SERCOM3_PAD3_DEFAULT PINMUX_PA25C_SERCOM3_PAD3
-
- #ifdef ID_SERCOM4
- /* SERCOM4 */
- #define SERCOM4_PAD0_DEFAULT PINMUX_PB08D_SERCOM4_PAD0
- #define SERCOM4_PAD1_DEFAULT PINMUX_PB09D_SERCOM4_PAD1
- #define SERCOM4_PAD2_DEFAULT PINMUX_PB10D_SERCOM4_PAD2
- #define SERCOM4_PAD3_DEFAULT PINMUX_PB11D_SERCOM4_PAD3
- #endif
-
- #ifdef ID_SERCOM5
- /* SERCOM5 */
- #define SERCOM5_PAD0_DEFAULT PINMUX_PB02D_SERCOM5_PAD0
- #define SERCOM5_PAD1_DEFAULT PINMUX_PB03D_SERCOM5_PAD1
- #define SERCOM5_PAD2_DEFAULT PINMUX_PB00D_SERCOM5_PAD2
- #define SERCOM5_PAD3_DEFAULT PINMUX_PB01D_SERCOM5_PAD3
- #endif
-
-#elif (SAMDA1)
- /* SERCOM0 */
- #define SERCOM0_PAD0_DEFAULT PINMUX_PA04D_SERCOM0_PAD0
- #define SERCOM0_PAD1_DEFAULT PINMUX_PA05D_SERCOM0_PAD1
- #define SERCOM0_PAD2_DEFAULT PINMUX_PA06D_SERCOM0_PAD2
- #define SERCOM0_PAD3_DEFAULT PINMUX_PA07D_SERCOM0_PAD3
-
- /* SERCOM1 */
- #define SERCOM1_PAD0_DEFAULT PINMUX_PA00D_SERCOM1_PAD0
- #define SERCOM1_PAD1_DEFAULT PINMUX_PA01D_SERCOM1_PAD1
- #define SERCOM1_PAD2_DEFAULT PINMUX_PA30D_SERCOM1_PAD2
- #define SERCOM1_PAD3_DEFAULT PINMUX_PA31D_SERCOM1_PAD3
-
- /* SERCOM2 */
- #define SERCOM2_PAD0_DEFAULT PINMUX_PA08D_SERCOM2_PAD0
- #define SERCOM2_PAD1_DEFAULT PINMUX_PA09D_SERCOM2_PAD1
- #define SERCOM2_PAD2_DEFAULT PINMUX_PA10D_SERCOM2_PAD2
- #define SERCOM2_PAD3_DEFAULT PINMUX_PA11D_SERCOM2_PAD3
-
- /* SERCOM3 */
- #define SERCOM3_PAD0_DEFAULT PINMUX_PA16D_SERCOM3_PAD0
- #define SERCOM3_PAD1_DEFAULT PINMUX_PA17D_SERCOM3_PAD1
- #define SERCOM3_PAD2_DEFAULT PINMUX_PA18D_SERCOM3_PAD2
- #define SERCOM3_PAD3_DEFAULT PINMUX_PA19D_SERCOM3_PAD3
-
- #if (SAMDA1E)
- /* SERCOM4 */
- #define SERCOM4_PAD0_DEFAULT 0 /* No available pin */
- #define SERCOM4_PAD1_DEFAULT 0 /* No available pin */
- #define SERCOM4_PAD2_DEFAULT PINMUX_PA14D_SERCOM4_PAD2
- #define SERCOM4_PAD3_DEFAULT PINMUX_PA15D_SERCOM4_PAD3
- #else
- /* SERCOM4 */
- #define SERCOM4_PAD0_DEFAULT PINMUX_PA12D_SERCOM4_PAD0
- #define SERCOM4_PAD1_DEFAULT PINMUX_PA13D_SERCOM4_PAD1
- #define SERCOM4_PAD2_DEFAULT PINMUX_PA14D_SERCOM4_PAD2
- #define SERCOM4_PAD3_DEFAULT PINMUX_PA15D_SERCOM4_PAD3
- #endif
-
- /* SERCOM5 */
- #define SERCOM5_PAD0_DEFAULT PINMUX_PA22D_SERCOM5_PAD0
- #define SERCOM5_PAD1_DEFAULT PINMUX_PA23D_SERCOM5_PAD1
- #define SERCOM5_PAD2_DEFAULT PINMUX_PA24D_SERCOM5_PAD2
- #define SERCOM5_PAD3_DEFAULT PINMUX_PA25D_SERCOM5_PAD3
-
-#elif (SAMHA1E) || (SAMHA0E)
-
- /* SERCOM0 */
- #define SERCOM0_PAD0_DEFAULT PINMUX_PA08C_SERCOM0_PAD0
- #define SERCOM0_PAD1_DEFAULT PINMUX_PA09C_SERCOM0_PAD1
- #define SERCOM0_PAD2_DEFAULT PINMUX_PA06D_SERCOM0_PAD2
- #define SERCOM0_PAD3_DEFAULT PINMUX_PA07D_SERCOM0_PAD3
-
- /* SERCOM1 */
- #define SERCOM1_PAD0_DEFAULT PINMUX_PA16C_SERCOM1_PAD0
- #define SERCOM1_PAD1_DEFAULT PINMUX_PA17C_SERCOM1_PAD1
- #define SERCOM1_PAD2_DEFAULT PINMUX_PA18C_SERCOM1_PAD2
- #define SERCOM1_PAD3_DEFAULT PINMUX_PA19C_SERCOM1_PAD3
-
- /* SERCOM2 */
- #define SERCOM2_PAD0_DEFAULT PINMUX_PA08D_SERCOM2_PAD0
- #define SERCOM2_PAD1_DEFAULT PINMUX_PA09D_SERCOM2_PAD1
- #define SERCOM2_PAD2_DEFAULT PINMUX_PA14C_SERCOM2_PAD2
- #define SERCOM2_PAD3_DEFAULT PINMUX_PA15C_SERCOM2_PAD3
-
- /* SERCOM3 */
- #define SERCOM3_PAD0_DEFAULT PINMUX_PA16D_SERCOM3_PAD0
- #define SERCOM3_PAD1_DEFAULT PINMUX_PA17D_SERCOM3_PAD1
- #define SERCOM3_PAD2_DEFAULT PINMUX_PA18D_SERCOM3_PAD2
- #define SERCOM3_PAD3_DEFAULT PINMUX_PA19D_SERCOM3_PAD3
-
- /* SERCOM4 */
- #define SERCOM4_PAD0_DEFAULT 0 /* No available pin */
- #define SERCOM4_PAD1_DEFAULT PINMUX_PA13D_SERCOM4_PAD1
- #define SERCOM4_PAD2_DEFAULT PINMUX_PA14D_SERCOM4_PAD2
- #define SERCOM4_PAD3_DEFAULT PINMUX_PB11D_SERCOM4_PAD3
-
- /* SERCOM5 */
- #define SERCOM5_PAD0_DEFAULT 0 /* No available pin */
- #define SERCOM5_PAD1_DEFAULT 0 /* No available pin */
- #define SERCOM5_PAD2_DEFAULT PINMUX_PA20C_SERCOM5_PAD2
- #define SERCOM5_PAD3_DEFAULT 0 /* No available pin */
-
-#elif (SAMHA1G) || (SAMHA0G)
-
- /* SERCOM0 */
- #define SERCOM0_PAD0_DEFAULT PINMUX_PA04D_SERCOM0_PAD0
- #define SERCOM0_PAD1_DEFAULT PINMUX_PA05D_SERCOM0_PAD1
- #define SERCOM0_PAD2_DEFAULT PINMUX_PA10C_SERCOM0_PAD2
- #define SERCOM0_PAD3_DEFAULT PINMUX_PA11C_SERCOM0_PAD3
-
- /* SERCOM1 */
- #define SERCOM1_PAD0_DEFAULT PINMUX_PA16C_SERCOM1_PAD0
- #define SERCOM1_PAD1_DEFAULT PINMUX_PA17C_SERCOM1_PAD1
- #define SERCOM1_PAD2_DEFAULT PINMUX_PA18C_SERCOM1_PAD2
- #define SERCOM1_PAD3_DEFAULT PINMUX_PA19C_SERCOM1_PAD3
-
- /* SERCOM2 */
- #define SERCOM2_PAD0_DEFAULT PINMUX_PA08D_SERCOM2_PAD0
- #define SERCOM2_PAD1_DEFAULT PINMUX_PA09D_SERCOM2_PAD1
- #define SERCOM2_PAD2_DEFAULT PINMUX_PA14C_SERCOM2_PAD2
- #define SERCOM2_PAD3_DEFAULT PINMUX_PA15C_SERCOM2_PAD3
-
- /* SERCOM3 */
- #define SERCOM3_PAD0_DEFAULT PINMUX_PA16D_SERCOM3_PAD0
- #define SERCOM3_PAD1_DEFAULT PINMUX_PA17D_SERCOM3_PAD1
- #define SERCOM3_PAD2_DEFAULT PINMUX_PA18D_SERCOM3_PAD2
- #define SERCOM3_PAD3_DEFAULT PINMUX_PA19D_SERCOM3_PAD3
-
- /* SERCOM4 */
- #define SERCOM4_PAD0_DEFAULT 0 /* No available pin */
- #define SERCOM4_PAD1_DEFAULT 0 /* No available pin */
- #define SERCOM4_PAD2_DEFAULT PINMUX_PB10D_SERCOM4_PAD2
- #define SERCOM4_PAD3_DEFAULT PINMUX_PB11D_SERCOM4_PAD3
-
- /* SERCOM5 */
- #define SERCOM5_PAD0_DEFAULT PINMUX_PB16C_SERCOM5_PAD0
- #define SERCOM5_PAD1_DEFAULT PINMUX_PB17C_SERCOM5_PAD1
- #define SERCOM5_PAD2_DEFAULT PINMUX_PA20C_SERCOM5_PAD2
- #define SERCOM5_PAD3_DEFAULT PINMUX_PA21C_SERCOM5_PAD3
-
-#elif (SAML21E) || (SAMR34) || (SAMR35) || (WLR089)
-
- /* SERCOM0 */
- #define SERCOM0_PAD0_DEFAULT PINMUX_PA04D_SERCOM0_PAD0
- #define SERCOM0_PAD1_DEFAULT PINMUX_PA05D_SERCOM0_PAD1
- #define SERCOM0_PAD2_DEFAULT PINMUX_PA06D_SERCOM0_PAD2
- #define SERCOM0_PAD3_DEFAULT PINMUX_PA07D_SERCOM0_PAD3
-
- /* SERCOM1 */
- #define SERCOM1_PAD0_DEFAULT PINMUX_PA00D_SERCOM1_PAD0
- #define SERCOM1_PAD1_DEFAULT PINMUX_PA01D_SERCOM1_PAD1
- #define SERCOM1_PAD2_DEFAULT PINMUX_PA30D_SERCOM1_PAD2
- #define SERCOM1_PAD3_DEFAULT PINMUX_PA31D_SERCOM1_PAD3
-
- /* SERCOM2 */
- #define SERCOM2_PAD0_DEFAULT PINMUX_PA08D_SERCOM2_PAD0
- #define SERCOM2_PAD1_DEFAULT PINMUX_PA09D_SERCOM2_PAD1
- #define SERCOM2_PAD2_DEFAULT PINMUX_PA10D_SERCOM2_PAD2
- #define SERCOM2_PAD3_DEFAULT PINMUX_PA11D_SERCOM2_PAD3
-
- /* SERCOM3 */
- #define SERCOM3_PAD0_DEFAULT PINMUX_PA16D_SERCOM3_PAD0
- #define SERCOM3_PAD1_DEFAULT PINMUX_PA17D_SERCOM3_PAD1
- #define SERCOM3_PAD2_DEFAULT PINMUX_PA18D_SERCOM3_PAD2
- #define SERCOM3_PAD3_DEFAULT PINMUX_PA19D_SERCOM3_PAD3
-
- #if !SAM_PART_IS_DEFINED(SAML21E18A)
- /* SERCOM4 */
- #define SERCOM4_PAD0_DEFAULT 0 /* No available pin */
- #define SERCOM4_PAD1_DEFAULT 0 /* No available pin */
- #define SERCOM4_PAD2_DEFAULT PINMUX_PA14D_SERCOM4_PAD2
- #define SERCOM4_PAD3_DEFAULT PINMUX_PA15D_SERCOM4_PAD3
-
- /* SERCOM5 */
- #define SERCOM5_PAD0_DEFAULT PINMUX_PA22D_SERCOM5_PAD0
- #define SERCOM5_PAD1_DEFAULT PINMUX_PA23D_SERCOM5_PAD1
- #define SERCOM5_PAD2_DEFAULT PINMUX_PA24D_SERCOM5_PAD2
- #define SERCOM5_PAD3_DEFAULT PINMUX_PA25D_SERCOM5_PAD3
- #endif
-
-#elif (SAMR30E)
-
- /* SERCOM0 */
- #define SERCOM0_PAD0_DEFAULT 0 /* No available pin */
- #define SERCOM0_PAD1_DEFAULT 0 /* No available pin */
- #define SERCOM0_PAD2_DEFAULT PINMUX_PA06D_SERCOM0_PAD2
- #define SERCOM0_PAD3_DEFAULT PINMUX_PA07D_SERCOM0_PAD3
-
- /* SERCOM1 */
- #define SERCOM1_PAD0_DEFAULT 0 /* No available pin */
- #define SERCOM1_PAD1_DEFAULT 0 /* No available pin */
- #define SERCOM1_PAD2_DEFAULT PINMUX_PA30D_SERCOM1_PAD2
- #define SERCOM1_PAD3_DEFAULT PINMUX_PA31D_SERCOM1_PAD3
-
- /* SERCOM2 */
- #define SERCOM2_PAD0_DEFAULT PINMUX_PA08D_SERCOM2_PAD0
- #define SERCOM2_PAD1_DEFAULT PINMUX_PA09D_SERCOM2_PAD1
- #define SERCOM2_PAD2_DEFAULT 0 /* No available pin */
- #define SERCOM2_PAD3_DEFAULT 0 /* No available pin */
-
- /* SERCOM3 */
- #define SERCOM3_PAD0_DEFAULT PINMUX_PA16D_SERCOM3_PAD0
- #define SERCOM3_PAD1_DEFAULT PINMUX_PA17D_SERCOM3_PAD1
- #define SERCOM3_PAD2_DEFAULT PINMUX_PA18D_SERCOM3_PAD2
- #define SERCOM3_PAD3_DEFAULT PINMUX_PA19D_SERCOM3_PAD3
-
- /* SERCOM4 */
- #define SERCOM4_PAD0_DEFAULT 0 /* No available pin */
- #define SERCOM4_PAD1_DEFAULT 0 /* No available pin */
- #define SERCOM4_PAD2_DEFAULT PINMUX_PA14D_SERCOM4_PAD2
- #define SERCOM4_PAD3_DEFAULT PINMUX_PA15D_SERCOM4_PAD3
-
- /* SERCOM5 */
- #define SERCOM5_PAD0_DEFAULT 0
- #define SERCOM5_PAD1_DEFAULT 0
- #define SERCOM5_PAD2_DEFAULT PINMUX_PA24D_SERCOM5_PAD2
- #define SERCOM5_PAD3_DEFAULT PINMUX_PA25D_SERCOM5_PAD3
-
-#else
- /* SERCOM0 */
- #define SERCOM0_PAD0_DEFAULT PINMUX_PA04D_SERCOM0_PAD0
- #define SERCOM0_PAD1_DEFAULT PINMUX_PA05D_SERCOM0_PAD1
- #define SERCOM0_PAD2_DEFAULT PINMUX_PA06D_SERCOM0_PAD2
- #define SERCOM0_PAD3_DEFAULT PINMUX_PA07D_SERCOM0_PAD3
-
- /* SERCOM1 */
-#if SAM_PART_IS_DEFINED(SAMD21G15L) || SAM_PART_IS_DEFINED(SAMD21G16L)
- #define SERCOM1_PAD0_DEFAULT PINMUX_PA16C_SERCOM1_PAD0
- #define SERCOM1_PAD1_DEFAULT PINMUX_PA17C_SERCOM1_PAD1
- #define SERCOM1_PAD2_DEFAULT PINMUX_PA18C_SERCOM1_PAD2
- #define SERCOM1_PAD3_DEFAULT PINMUX_PA19C_SERCOM1_PAD3
-#else
- #define SERCOM1_PAD0_DEFAULT PINMUX_PA00D_SERCOM1_PAD0
- #define SERCOM1_PAD1_DEFAULT PINMUX_PA01D_SERCOM1_PAD1
- #define SERCOM1_PAD2_DEFAULT PINMUX_PA30D_SERCOM1_PAD2
- #define SERCOM1_PAD3_DEFAULT PINMUX_PA31D_SERCOM1_PAD3
-#endif
-
- /* SERCOM2 */
- #define SERCOM2_PAD0_DEFAULT PINMUX_PA08D_SERCOM2_PAD0
- #define SERCOM2_PAD1_DEFAULT PINMUX_PA09D_SERCOM2_PAD1
- #define SERCOM2_PAD2_DEFAULT PINMUX_PA10D_SERCOM2_PAD2
- #define SERCOM2_PAD3_DEFAULT PINMUX_PA11D_SERCOM2_PAD3
-
- /* SERCOM3 */
- #define SERCOM3_PAD0_DEFAULT PINMUX_PA16D_SERCOM3_PAD0
- #define SERCOM3_PAD1_DEFAULT PINMUX_PA17D_SERCOM3_PAD1
- #define SERCOM3_PAD2_DEFAULT PINMUX_PA18D_SERCOM3_PAD2
- #define SERCOM3_PAD3_DEFAULT PINMUX_PA19D_SERCOM3_PAD3
-
- #if !(SAMD20E || SAMD21E)
- /* SERCOM4 */
- #define SERCOM4_PAD0_DEFAULT PINMUX_PA12D_SERCOM4_PAD0
- #define SERCOM4_PAD1_DEFAULT PINMUX_PA13D_SERCOM4_PAD1
- #define SERCOM4_PAD2_DEFAULT PINMUX_PA14D_SERCOM4_PAD2
- #define SERCOM4_PAD3_DEFAULT PINMUX_PA15D_SERCOM4_PAD3
-
- /* SERCOM5 */
- #define SERCOM5_PAD0_DEFAULT PINMUX_PA22D_SERCOM5_PAD0
- #define SERCOM5_PAD1_DEFAULT PINMUX_PA23D_SERCOM5_PAD1
- #define SERCOM5_PAD2_DEFAULT PINMUX_PA24D_SERCOM5_PAD2
- #define SERCOM5_PAD3_DEFAULT PINMUX_PA25D_SERCOM5_PAD3
- #endif
-
-#endif
-#endif /* SERCOM_PINOUT_H_INCLUDED */
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/clock/clock.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/clock/clock.h
deleted file mode 100644
index 9abd168..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/clock/clock.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * \file
- *
- * \brief SAM Clock Driver
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef SYSTEM_CLOCK_H_INCLUDED
-#define SYSTEM_CLOCK_H_INCLUDED
-
-#include
-#include
-#include
-
-#endif /* SYSTEM_CLOCK_H_INCLUDED */
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/clock.c b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/clock.c
deleted file mode 100644
index ecbf122..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/clock.c
+++ /dev/null
@@ -1,1031 +0,0 @@
-/**
- * \file
- *
- * \brief SAM D21/R21/DA/HA Clock Driver
- *
- * Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#include
-#include
-#include
-
-#ifndef SYSCTRL_FUSES_OSC32K_ADDR
-#if (SAMR21) || (SAMD) || (SAMHA1) || (SAMHA0)
-# define SYSCTRL_FUSES_OSC32K_ADDR FUSES_OSC32K_CAL_ADDR
-# define SYSCTRL_FUSES_OSC32K_Pos FUSES_OSC32K_CAL_Pos
-#elif (SAML21)
-# define SYSCTRL_FUSES_OSC32K_ADDR NVMCTRL_OTP4
-# define SYSCTRL_FUSES_OSC32K_Pos 6
-
-#else
-# define SYSCTRL_FUSES_OSC32K_ADDR SYSCTRL_FUSES_OSC32K_CAL_ADDR
-# define SYSCTRL_FUSES_OSC32K_Pos SYSCTRL_FUSES_OSC32K_CAL_Pos
-#endif
-#endif
-
-/**
- * \internal
- * \brief DFLL-specific data container.
- */
-struct _system_clock_dfll_config {
- uint32_t control;
- uint32_t val;
- uint32_t mul;
-};
-
-/**
- * \internal
- * \brief DPLL-specific data container.
- */
-struct _system_clock_dpll_config {
- uint32_t frequency;
-};
-
-
-/**
- * \internal
- * \brief XOSC-specific data container.
- */
-struct _system_clock_xosc_config {
- uint32_t frequency;
-};
-
-/**
- * \internal
- * \brief System clock module data container.
- */
-struct _system_clock_module {
- volatile struct _system_clock_dfll_config dfll;
-
-#ifdef FEATURE_SYSTEM_CLOCK_DPLL
- volatile struct _system_clock_dpll_config dpll;
-#endif
-
- volatile struct _system_clock_xosc_config xosc;
- volatile struct _system_clock_xosc_config xosc32k;
-};
-
-/**
- * \internal
- * \brief Internal module instance to cache configuration values.
- */
-static struct _system_clock_module _system_clock_inst = {
- .dfll = {
- .control = 0,
- .val = 0,
- .mul = 0,
- },
-
-#ifdef FEATURE_SYSTEM_CLOCK_DPLL
- .dpll = {
- .frequency = 0,
- },
-#endif
- .xosc = {
- .frequency = 0,
- },
- .xosc32k = {
- .frequency = 0,
- },
- };
-
-/**
- * \internal
- * \brief Wait for sync to the DFLL control registers.
- */
-static inline void _system_dfll_wait_for_sync(void)
-{
- while (!(SYSCTRL->PCLKSR.reg & SYSCTRL_PCLKSR_DFLLRDY)) {
- /* Wait for DFLL sync */
- }
-}
-
-/**
- * \internal
- * \brief Wait for sync to the OSC32K control registers.
- */
-static inline void _system_osc32k_wait_for_sync(void)
-{
- while (!(SYSCTRL->PCLKSR.reg & SYSCTRL_PCLKSR_OSC32KRDY)) {
- /* Wait for OSC32K sync */
- }
-}
-
-static inline void _system_clock_source_dfll_set_config_errata_9905(void)
-{
-
- /* Disable ONDEMAND mode while writing configurations */
- SYSCTRL->DFLLCTRL.reg = SYSCTRL_DFLLCTRL_ENABLE;
- _system_dfll_wait_for_sync();
-
- SYSCTRL->DFLLMUL.reg = _system_clock_inst.dfll.mul;
- SYSCTRL->DFLLVAL.reg = _system_clock_inst.dfll.val;
-
- /* Write full configuration to DFLL control register */
- SYSCTRL->DFLLCTRL.reg = 0;
- _system_dfll_wait_for_sync();
- SYSCTRL->DFLLCTRL.reg = _system_clock_inst.dfll.control;
-}
-
-/**
- * \brief Retrieve the frequency of a clock source.
- *
- * Determines the current operating frequency of a given clock source.
- *
- * \param[in] clock_source Clock source to get the frequency
- *
- * \returns Frequency of the given clock source, in Hz.
- */
-uint32_t system_clock_source_get_hz(
- const enum system_clock_source clock_source)
-{
- switch (clock_source) {
- case SYSTEM_CLOCK_SOURCE_XOSC:
- return _system_clock_inst.xosc.frequency;
-
- case SYSTEM_CLOCK_SOURCE_OSC8M:
- return 8000000UL >> SYSCTRL->OSC8M.bit.PRESC;
-
- case SYSTEM_CLOCK_SOURCE_OSC32K:
- return 32768UL;
-
- case SYSTEM_CLOCK_SOURCE_ULP32K:
- return 32768UL;
-
- case SYSTEM_CLOCK_SOURCE_XOSC32K:
- return _system_clock_inst.xosc32k.frequency;
-
- case SYSTEM_CLOCK_SOURCE_DFLL:
-
- /* Check if the DFLL has been configured */
- if (!(_system_clock_inst.dfll.control & SYSCTRL_DFLLCTRL_ENABLE))
- return 0;
-
- /* Make sure that the DFLL module is ready */
- _system_dfll_wait_for_sync();
-
- /* Check if operating in closed loop (USB) mode */
- switch(_system_clock_inst.dfll.control &
- (SYSCTRL_DFLLCTRL_MODE | SYSCTRL_DFLLCTRL_USBCRM)) {
- case SYSCTRL_DFLLCTRL_MODE:
- return system_gclk_chan_get_hz(SYSCTRL_GCLK_ID_DFLL48) *
- (_system_clock_inst.dfll.mul & 0xffff);
- default:
- return 48000000UL;
- }
-
-#ifdef FEATURE_SYSTEM_CLOCK_DPLL
- case SYSTEM_CLOCK_SOURCE_DPLL:
- if (!(SYSCTRL->DPLLSTATUS.reg & SYSCTRL_DPLLSTATUS_ENABLE)) {
- return 0;
- }
-
- return _system_clock_inst.dpll.frequency;
-#endif
-
- default:
- return 0;
- }
-}
-
-/**
- * \brief Configure the internal OSC8M oscillator clock source.
- *
- * Configures the 8MHz (nominal) internal RC oscillator with the given
- * configuration settings.
- *
- * \param[in] config OSC8M configuration structure containing the new config
- */
-void system_clock_source_osc8m_set_config(
- struct system_clock_source_osc8m_config *const config)
-{
- SYSCTRL_OSC8M_Type temp = SYSCTRL->OSC8M;
-
- /* Use temporary struct to reduce register access */
- temp.bit.PRESC = config->prescaler;
- temp.bit.ONDEMAND = config->on_demand;
- temp.bit.RUNSTDBY = config->run_in_standby;
-
- SYSCTRL->OSC8M = temp;
-}
-
-/**
- * \brief Configure the internal OSC32K oscillator clock source.
- *
- * Configures the 32KHz (nominal) internal RC oscillator with the given
- * configuration settings.
- *
- * \param[in] config OSC32K configuration structure containing the new config
- */
-void system_clock_source_osc32k_set_config(
- struct system_clock_source_osc32k_config *const config)
-{
- SYSCTRL_OSC32K_Type temp = SYSCTRL->OSC32K;
-
- /* Update settings via a temporary struct to reduce register access */
- temp.bit.EN1K = config->enable_1khz_output;
- temp.bit.EN32K = config->enable_32khz_output;
- temp.bit.STARTUP = config->startup_time;
- temp.bit.ONDEMAND = config->on_demand;
- temp.bit.RUNSTDBY = config->run_in_standby;
- temp.bit.WRTLOCK = config->write_once;
-
- SYSCTRL->OSC32K = temp;
-}
-
-/**
- * \brief Configure the external oscillator clock source.
- *
- * Configures the external oscillator clock source with the given configuration
- * settings.
- *
- * \param[in] config External oscillator configuration structure containing
- * the new config
- */
-void system_clock_source_xosc_set_config(
- struct system_clock_source_xosc_config *const config)
-{
- SYSCTRL_XOSC_Type temp = SYSCTRL->XOSC;
-
- temp.bit.STARTUP = config->startup_time;
-
- if (config->external_clock == SYSTEM_CLOCK_EXTERNAL_CRYSTAL) {
- temp.bit.XTALEN = 1;
- } else {
- temp.bit.XTALEN = 0;
- }
-
- temp.bit.AMPGC = config->auto_gain_control;
-
- /* Set gain */
- if (config->frequency <= 2000000) {
- temp.bit.GAIN = 0;
- } else if (config->frequency <= 4000000) {
- temp.bit.GAIN = 1;
- } else if (config->frequency <= 8000000) {
- temp.bit.GAIN = 2;
- } else if (config->frequency <= 16000000) {
- temp.bit.GAIN = 3;
- } else if (config->frequency <= 32000000) {
- temp.bit.GAIN = 4;
- }
-
- temp.bit.ONDEMAND = config->on_demand;
- temp.bit.RUNSTDBY = config->run_in_standby;
-
- /* Store XOSC frequency for internal use */
- _system_clock_inst.xosc.frequency = config->frequency;
-
- SYSCTRL->XOSC = temp;
-}
-
-/**
- * \brief Configure the XOSC32K external 32KHz oscillator clock source.
- *
- * Configures the external 32KHz oscillator clock source with the given
- * configuration settings.
- *
- * \param[in] config XOSC32K configuration structure containing the new config
- */
-void system_clock_source_xosc32k_set_config(
- struct system_clock_source_xosc32k_config *const config)
-{
- SYSCTRL_XOSC32K_Type temp = SYSCTRL->XOSC32K;
-
- temp.bit.STARTUP = config->startup_time;
-
- if (config->external_clock == SYSTEM_CLOCK_EXTERNAL_CRYSTAL) {
- temp.bit.XTALEN = 1;
- } else {
- temp.bit.XTALEN = 0;
- }
-
- temp.bit.AAMPEN = config->auto_gain_control;
- temp.bit.EN1K = config->enable_1khz_output;
- temp.bit.EN32K = config->enable_32khz_output;
-
- temp.bit.ONDEMAND = config->on_demand;
- temp.bit.RUNSTDBY = config->run_in_standby;
- temp.bit.WRTLOCK = config->write_once;
-
- /* Cache the new frequency in case the user needs to check the current
- * operating frequency later */
- _system_clock_inst.xosc32k.frequency = config->frequency;
-
- SYSCTRL->XOSC32K = temp;
-}
-
-/**
- * \brief Configure the DFLL clock source.
- *
- * Configures the Digital Frequency Locked Loop clock source with the given
- * configuration settings.
- *
- * \note The DFLL will be running when this function returns, as the DFLL module
- * needs to be enabled in order to perform the module configuration.
- *
- * \param[in] config DFLL configuration structure containing the new config
- */
-void system_clock_source_dfll_set_config(
- struct system_clock_source_dfll_config *const config)
-{
- _system_clock_inst.dfll.val =
- SYSCTRL_DFLLVAL_COARSE(config->coarse_value) |
- SYSCTRL_DFLLVAL_FINE(config->fine_value);
-
- _system_clock_inst.dfll.control =
- (uint32_t)config->wakeup_lock |
- (uint32_t)config->stable_tracking |
- (uint32_t)config->quick_lock |
- (uint32_t)config->chill_cycle |
- ((uint32_t)config->on_demand << SYSCTRL_DFLLCTRL_ONDEMAND_Pos);
-
- if (config->loop_mode == SYSTEM_CLOCK_DFLL_LOOP_MODE_CLOSED) {
-
- _system_clock_inst.dfll.mul =
- SYSCTRL_DFLLMUL_CSTEP(config->coarse_max_step) |
- SYSCTRL_DFLLMUL_FSTEP(config->fine_max_step) |
- SYSCTRL_DFLLMUL_MUL(config->multiply_factor);
-
- /* Enable the closed loop mode */
- _system_clock_inst.dfll.control |= config->loop_mode;
- }
- if (config->loop_mode == SYSTEM_CLOCK_DFLL_LOOP_MODE_USB_RECOVERY) {
-
- _system_clock_inst.dfll.mul =
- SYSCTRL_DFLLMUL_CSTEP(config->coarse_max_step) |
- SYSCTRL_DFLLMUL_FSTEP(config->fine_max_step) |
- SYSCTRL_DFLLMUL_MUL(config->multiply_factor);
-
- /* Enable the USB recovery mode */
- _system_clock_inst.dfll.control |= config->loop_mode |
- SYSCTRL_DFLLCTRL_MODE | SYSCTRL_DFLLCTRL_BPLCKC;
- }
-}
-
-#ifdef FEATURE_SYSTEM_CLOCK_DPLL
-/**
- * \brief Configure the DPLL clock source.
- *
- * Configures the Digital Phase-Locked Loop clock source with the given
- * configuration settings.
- *
- * \note The DPLL will be running when this function returns, as the DPLL module
- * needs to be enabled in order to perform the module configuration.
- *
- * \param[in] config DPLL configuration structure containing the new config
- */
-void system_clock_source_dpll_set_config(
- struct system_clock_source_dpll_config *const config)
-{
-
- uint32_t tmpldr;
- uint8_t tmpldrfrac;
- uint32_t refclk;
-
- refclk = config->reference_frequency;
-
- /* Only reference clock REF1 can be divided */
- if (config->reference_clock == SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_XOSC) {
- refclk = refclk / (2 * (config->reference_divider + 1));
- }
-
- /* Calculate LDRFRAC and LDR */
- tmpldr = (config->output_frequency << 4) / refclk;
- tmpldrfrac = tmpldr & 0x0f;
- tmpldr = (tmpldr >> 4) - 1;
-
- SYSCTRL->DPLLCTRLA.reg =
- ((uint32_t)config->on_demand << SYSCTRL_DPLLCTRLA_ONDEMAND_Pos) |
- ((uint32_t)config->run_in_standby << SYSCTRL_DPLLCTRLA_RUNSTDBY_Pos);
-
- SYSCTRL->DPLLRATIO.reg =
- SYSCTRL_DPLLRATIO_LDRFRAC(tmpldrfrac) |
- SYSCTRL_DPLLRATIO_LDR(tmpldr);
-
- SYSCTRL->DPLLCTRLB.reg =
- SYSCTRL_DPLLCTRLB_DIV(config->reference_divider) |
- ((uint32_t)config->lock_bypass << SYSCTRL_DPLLCTRLB_LBYPASS_Pos) |
- SYSCTRL_DPLLCTRLB_LTIME(config->lock_time) |
- SYSCTRL_DPLLCTRLB_REFCLK(config->reference_clock) |
- ((uint32_t)config->wake_up_fast << SYSCTRL_DPLLCTRLB_WUF_Pos) |
- ((uint32_t)config->low_power_enable << SYSCTRL_DPLLCTRLB_LPEN_Pos) |
- SYSCTRL_DPLLCTRLB_FILTER(config->filter);
-
- /*
- * Fck = Fckrx * (LDR + 1 + LDRFRAC / 16)
- */
- _system_clock_inst.dpll.frequency =
- (refclk * (((tmpldr + 1) << 4) + tmpldrfrac)) >> 4;
-}
-#endif
-
-/**
- * \brief Writes the calibration values for a given oscillator clock source.
- *
- * Writes an oscillator calibration value to the given oscillator control
- * registers. The acceptable ranges are:
- *
- * For OSC32K:
- * - 7 bits (max value 128)
- * For OSC8MHZ:
- * - 8 bits (Max value 255)
- * For OSCULP:
- * - 5 bits (Max value 32)
- *
- * \note The frequency range parameter applies only when configuring the 8MHz
- * oscillator and will be ignored for the other oscillators.
- *
- * \param[in] clock_source Clock source to calibrate
- * \param[in] calibration_value Calibration value to write
- * \param[in] freq_range Frequency range (8MHz oscillator only)
- *
- * \retval STATUS_OK The calibration value was written
- * successfully.
- * \retval STATUS_ERR_INVALID_ARG The setting is not valid for selected clock
- * source.
- */
-enum status_code system_clock_source_write_calibration(
- const enum system_clock_source clock_source,
- const uint16_t calibration_value,
- const uint8_t freq_range)
-{
- switch (clock_source) {
- case SYSTEM_CLOCK_SOURCE_OSC8M:
-
- if (calibration_value > 0xfff || freq_range > 4) {
- return STATUS_ERR_INVALID_ARG;
- }
-
- SYSCTRL->OSC8M.bit.CALIB = calibration_value;
- SYSCTRL->OSC8M.bit.FRANGE = freq_range;
- break;
-
- case SYSTEM_CLOCK_SOURCE_OSC32K:
-
- if (calibration_value > 128) {
- return STATUS_ERR_INVALID_ARG;
- }
-
- _system_osc32k_wait_for_sync();
- SYSCTRL->OSC32K.bit.CALIB = calibration_value;
- break;
-
- case SYSTEM_CLOCK_SOURCE_ULP32K:
-
- if (calibration_value > 32) {
- return STATUS_ERR_INVALID_ARG;
- }
-
- SYSCTRL->OSCULP32K.bit.CALIB = calibration_value;
- break;
-
- default:
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
- break;
- }
-
- return STATUS_OK;
-}
-
-/**
- * \brief Enables a clock source.
- *
- * Enables a clock source which has been previously configured.
- *
- * \param[in] clock_source Clock source to enable
- *
- * \retval STATUS_OK Clock source was enabled successfully and
- * is ready
- * \retval STATUS_ERR_INVALID_ARG The clock source is not available on this
- * device
- */
-enum status_code system_clock_source_enable(
- const enum system_clock_source clock_source)
-{
- switch (clock_source) {
- case SYSTEM_CLOCK_SOURCE_OSC8M:
- SYSCTRL->OSC8M.reg |= SYSCTRL_OSC8M_ENABLE;
- return STATUS_OK;
-
- case SYSTEM_CLOCK_SOURCE_OSC32K:
- SYSCTRL->OSC32K.reg |= SYSCTRL_OSC32K_ENABLE;
- break;
-
- case SYSTEM_CLOCK_SOURCE_XOSC:
- SYSCTRL->XOSC.reg |= SYSCTRL_XOSC_ENABLE;
- break;
-
- case SYSTEM_CLOCK_SOURCE_XOSC32K:
- SYSCTRL->XOSC32K.reg |= SYSCTRL_XOSC32K_ENABLE;
- break;
-
- case SYSTEM_CLOCK_SOURCE_DFLL:
- _system_clock_inst.dfll.control |= SYSCTRL_DFLLCTRL_ENABLE;
- _system_clock_source_dfll_set_config_errata_9905();
- break;
-
-#ifdef FEATURE_SYSTEM_CLOCK_DPLL
- case SYSTEM_CLOCK_SOURCE_DPLL:
- SYSCTRL->DPLLCTRLA.reg |= SYSCTRL_DPLLCTRLA_ENABLE;
- break;
-#endif
-
- case SYSTEM_CLOCK_SOURCE_ULP32K:
- /* Always enabled */
- return STATUS_OK;
-
- default:
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
- }
-
- return STATUS_OK;
-}
-
-/**
- * \brief Disables a clock source.
- *
- * Disables a clock source that was previously enabled.
- *
- * \param[in] clock_source Clock source to disable
- *
- * \retval STATUS_OK Clock source was disabled successfully
- * \retval STATUS_ERR_INVALID_ARG An invalid or unavailable clock source was
- * given
- */
-enum status_code system_clock_source_disable(
- const enum system_clock_source clock_source)
-{
- switch (clock_source) {
- case SYSTEM_CLOCK_SOURCE_OSC8M:
- SYSCTRL->OSC8M.reg &= ~SYSCTRL_OSC8M_ENABLE;
- break;
-
- case SYSTEM_CLOCK_SOURCE_OSC32K:
- SYSCTRL->OSC32K.reg &= ~SYSCTRL_OSC32K_ENABLE;
- break;
-
- case SYSTEM_CLOCK_SOURCE_XOSC:
- SYSCTRL->XOSC.reg &= ~SYSCTRL_XOSC_ENABLE;
- break;
-
- case SYSTEM_CLOCK_SOURCE_XOSC32K:
- SYSCTRL->XOSC32K.reg &= ~SYSCTRL_XOSC32K_ENABLE;
- break;
-
- case SYSTEM_CLOCK_SOURCE_DFLL:
- _system_clock_inst.dfll.control &= ~SYSCTRL_DFLLCTRL_ENABLE;
- SYSCTRL->DFLLCTRL.reg = _system_clock_inst.dfll.control;
- break;
-
-#ifdef FEATURE_SYSTEM_CLOCK_DPLL
- case SYSTEM_CLOCK_SOURCE_DPLL:
- SYSCTRL->DPLLCTRLA.reg &= ~SYSCTRL_DPLLCTRLA_ENABLE;
- break;
-#endif
-
- case SYSTEM_CLOCK_SOURCE_ULP32K:
- /* Not possible to disable */
-
- default:
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
-
- }
-
- return STATUS_OK;
-}
-
-/**
- * \brief Checks if a clock source is ready.
- *
- * Checks if a given clock source is ready to be used.
- *
- * \param[in] clock_source Clock source to check if ready
- *
- * \returns Ready state of the given clock source.
- *
- * \retval true Clock source is enabled and ready
- * \retval false Clock source is disabled or not yet ready
- */
-bool system_clock_source_is_ready(
- const enum system_clock_source clock_source)
-{
- uint32_t mask = 0;
-
- switch (clock_source) {
- case SYSTEM_CLOCK_SOURCE_OSC8M:
- mask = SYSCTRL_PCLKSR_OSC8MRDY;
- break;
-
- case SYSTEM_CLOCK_SOURCE_OSC32K:
- mask = SYSCTRL_PCLKSR_OSC32KRDY;
- break;
-
- case SYSTEM_CLOCK_SOURCE_XOSC:
- mask = SYSCTRL_PCLKSR_XOSCRDY;
- break;
-
- case SYSTEM_CLOCK_SOURCE_XOSC32K:
- mask = SYSCTRL_PCLKSR_XOSC32KRDY;
- break;
-
- case SYSTEM_CLOCK_SOURCE_DFLL:
- if (CONF_CLOCK_DFLL_LOOP_MODE == SYSTEM_CLOCK_DFLL_LOOP_MODE_CLOSED) {
- mask = (SYSCTRL_PCLKSR_DFLLRDY |
- SYSCTRL_PCLKSR_DFLLLCKF | SYSCTRL_PCLKSR_DFLLLCKC);
- } else {
- mask = SYSCTRL_PCLKSR_DFLLRDY;
- }
- break;
-
-#ifdef FEATURE_SYSTEM_CLOCK_DPLL
- case SYSTEM_CLOCK_SOURCE_DPLL:
- return ((SYSCTRL->DPLLSTATUS.reg &
- (SYSCTRL_DPLLSTATUS_CLKRDY | SYSCTRL_DPLLSTATUS_LOCK)) ==
- (SYSCTRL_DPLLSTATUS_CLKRDY | SYSCTRL_DPLLSTATUS_LOCK));
-#endif
-
- case SYSTEM_CLOCK_SOURCE_ULP32K:
- /* Not possible to disable */
- return true;
-
- default:
- return false;
- }
-
- return ((SYSCTRL->PCLKSR.reg & mask) == mask);
-}
-
-/* Include some checks for conf_clocks.h validation */
-#include "clock_config_check.h"
-
-#if !defined(__DOXYGEN__)
-/** \internal
- *
- * Configures a Generic Clock Generator with the configuration from \c conf_clocks.h.
- */
-# define _CONF_CLOCK_GCLK_CONFIG(n, unused) \
- if (CONF_CLOCK_GCLK_##n##_ENABLE == true) { \
- struct system_gclk_gen_config gclk_conf; \
- system_gclk_gen_get_config_defaults(&gclk_conf); \
- gclk_conf.source_clock = CONF_CLOCK_GCLK_##n##_CLOCK_SOURCE; \
- gclk_conf.division_factor = CONF_CLOCK_GCLK_##n##_PRESCALER; \
- gclk_conf.run_in_standby = CONF_CLOCK_GCLK_##n##_RUN_IN_STANDBY; \
- gclk_conf.output_enable = CONF_CLOCK_GCLK_##n##_OUTPUT_ENABLE; \
- system_gclk_gen_set_config(GCLK_GENERATOR_##n, &gclk_conf); \
- system_gclk_gen_enable(GCLK_GENERATOR_##n); \
- }
-
-/** \internal
- *
- * Configures a Generic Clock Generator with the configuration from \c conf_clocks.h,
- * provided that it is not the main Generic Clock Generator channel.
- */
-# define _CONF_CLOCK_GCLK_CONFIG_NONMAIN(n, unused) \
- if (n > 0) { _CONF_CLOCK_GCLK_CONFIG(n, unused); }
-#endif
-
-/** \internal
- *
- * Switch all peripheral clock to a not enabled general clock
- * to save power.
- */
-static void _switch_peripheral_gclk(void)
-{
- uint32_t gclk_id;
- struct system_gclk_chan_config gclk_conf;
-
-#if CONF_CLOCK_GCLK_1_ENABLE == false
- gclk_conf.source_generator = GCLK_GENERATOR_1;
-#elif CONF_CLOCK_GCLK_2_ENABLE == false
- gclk_conf.source_generator = GCLK_GENERATOR_2;
-#elif CONF_CLOCK_GCLK_3_ENABLE == false
- gclk_conf.source_generator = GCLK_GENERATOR_3;
-#elif CONF_CLOCK_GCLK_4_ENABLE == false
- gclk_conf.source_generator = GCLK_GENERATOR_4;
-#elif CONF_CLOCK_GCLK_5_ENABLE == false
- gclk_conf.source_generator = GCLK_GENERATOR_5;
-#elif CONF_CLOCK_GCLK_6_ENABLE == false
- gclk_conf.source_generator = GCLK_GENERATOR_6;
-#elif CONF_CLOCK_GCLK_7_ENABLE == false
- gclk_conf.source_generator = GCLK_GENERATOR_7;
-#else
- gclk_conf.source_generator = GCLK_GENERATOR_7;
-#endif
-
- for (gclk_id = 0; gclk_id < GCLK_NUM; gclk_id++) {
- system_gclk_chan_set_config(gclk_id, &gclk_conf);
- }
-}
-
-/**
- * \brief Initialize clock system based on the configuration in conf_clocks.h.
- *
- * This function will apply the settings in conf_clocks.h when run from the user
- * application. All clock sources and GCLK generators are running when this function
- * returns.
- *
- * \note OSC8M is always enabled and if user selects other clocks for GCLK generators,
- * the OSC8M default enable can be disabled after system_clock_init. Make sure the
- * clock switch successfully before disabling OSC8M.
- */
-void system_clock_init(void)
-{
- /* Various bits in the INTFLAG register can be set to one at startup.
- This will ensure that these bits are cleared */
- SYSCTRL->INTFLAG.reg = SYSCTRL_INTFLAG_BOD33RDY | SYSCTRL_INTFLAG_BOD33DET |
- SYSCTRL_INTFLAG_DFLLRDY;
-
- system_flash_set_waitstates(CONF_CLOCK_FLASH_WAIT_STATES);
-
- /* Switch all peripheral clock to a not enabled general clock to save power. */
- _switch_peripheral_gclk();
-
- /* XOSC */
-#if CONF_CLOCK_XOSC_ENABLE == true
- struct system_clock_source_xosc_config xosc_conf;
- system_clock_source_xosc_get_config_defaults(&xosc_conf);
-
- xosc_conf.external_clock = CONF_CLOCK_XOSC_EXTERNAL_CRYSTAL;
- xosc_conf.startup_time = CONF_CLOCK_XOSC_STARTUP_TIME;
- xosc_conf.frequency = CONF_CLOCK_XOSC_EXTERNAL_FREQUENCY;
- xosc_conf.run_in_standby = CONF_CLOCK_XOSC_RUN_IN_STANDBY;
-
- system_clock_source_xosc_set_config(&xosc_conf);
- system_clock_source_enable(SYSTEM_CLOCK_SOURCE_XOSC);
- while(!system_clock_source_is_ready(SYSTEM_CLOCK_SOURCE_XOSC));
- if (CONF_CLOCK_XOSC_ON_DEMAND || CONF_CLOCK_XOSC_AUTO_GAIN_CONTROL) {
- SYSCTRL->XOSC.reg |=
- (CONF_CLOCK_XOSC_ON_DEMAND << SYSCTRL_XOSC_ONDEMAND_Pos) |
- (CONF_CLOCK_XOSC_AUTO_GAIN_CONTROL << SYSCTRL_XOSC_AMPGC_Pos);
- }
-#endif
-
-
- /* XOSC32K */
-#if CONF_CLOCK_XOSC32K_ENABLE == true
- struct system_clock_source_xosc32k_config xosc32k_conf;
- system_clock_source_xosc32k_get_config_defaults(&xosc32k_conf);
-
- xosc32k_conf.frequency = 32768UL;
- xosc32k_conf.external_clock = CONF_CLOCK_XOSC32K_EXTERNAL_CRYSTAL;
- xosc32k_conf.startup_time = CONF_CLOCK_XOSC32K_STARTUP_TIME;
- xosc32k_conf.auto_gain_control = CONF_CLOCK_XOSC32K_AUTO_AMPLITUDE_CONTROL;
- xosc32k_conf.enable_1khz_output = CONF_CLOCK_XOSC32K_ENABLE_1KHZ_OUPUT;
- xosc32k_conf.enable_32khz_output = CONF_CLOCK_XOSC32K_ENABLE_32KHZ_OUTPUT;
- xosc32k_conf.on_demand = false;
- xosc32k_conf.run_in_standby = CONF_CLOCK_XOSC32K_RUN_IN_STANDBY;
-
- system_clock_source_xosc32k_set_config(&xosc32k_conf);
- system_clock_source_enable(SYSTEM_CLOCK_SOURCE_XOSC32K);
- while(!system_clock_source_is_ready(SYSTEM_CLOCK_SOURCE_XOSC32K));
- if (CONF_CLOCK_XOSC32K_ON_DEMAND) {
- SYSCTRL->XOSC32K.bit.ONDEMAND = 1;
- }
-#endif
-
-
- /* OSCK32K */
-#if CONF_CLOCK_OSC32K_ENABLE == true
- SYSCTRL->OSC32K.bit.CALIB =
- ((*(uint32_t *)SYSCTRL_FUSES_OSC32K_ADDR >>
- SYSCTRL_FUSES_OSC32K_Pos) & 0x7Ful);
-
- struct system_clock_source_osc32k_config osc32k_conf;
- system_clock_source_osc32k_get_config_defaults(&osc32k_conf);
-
- osc32k_conf.startup_time = CONF_CLOCK_OSC32K_STARTUP_TIME;
- osc32k_conf.enable_1khz_output = CONF_CLOCK_OSC32K_ENABLE_1KHZ_OUTPUT;
- osc32k_conf.enable_32khz_output = CONF_CLOCK_OSC32K_ENABLE_32KHZ_OUTPUT;
- osc32k_conf.on_demand = CONF_CLOCK_OSC32K_ON_DEMAND;
- osc32k_conf.run_in_standby = CONF_CLOCK_OSC32K_RUN_IN_STANDBY;
-
- system_clock_source_osc32k_set_config(&osc32k_conf);
- system_clock_source_enable(SYSTEM_CLOCK_SOURCE_OSC32K);
-#endif
-
-
- /* DFLL Config (Open and Closed Loop) */
-#if CONF_CLOCK_DFLL_ENABLE == true
- struct system_clock_source_dfll_config dfll_conf;
- system_clock_source_dfll_get_config_defaults(&dfll_conf);
-
- dfll_conf.loop_mode = CONF_CLOCK_DFLL_LOOP_MODE;
- dfll_conf.on_demand = false;
-
- /* Using DFLL48M COARSE CAL value from NVM Software Calibration Area Mapping
- in DFLL.COARSE helps to output a frequency close to 48 MHz.*/
-#define NVM_DFLL_COARSE_POS 58 /* DFLL48M Coarse calibration value bit position.*/
-#define NVM_DFLL_COARSE_SIZE 6 /* DFLL48M Coarse calibration value bit size.*/
-
- uint32_t coarse =( *((uint32_t *)(NVMCTRL_OTP4)
- + (NVM_DFLL_COARSE_POS / 32))
- >> (NVM_DFLL_COARSE_POS % 32))
- & ((1 << NVM_DFLL_COARSE_SIZE) - 1);
- /* In some revision chip, the coarse calibration value is not correct. */
- if (coarse == 0x3f) {
- coarse = 0x1f;
- }
- dfll_conf.coarse_value = coarse;
-
- if (CONF_CLOCK_DFLL_LOOP_MODE == SYSTEM_CLOCK_DFLL_LOOP_MODE_OPEN) {
- dfll_conf.fine_value = CONF_CLOCK_DFLL_FINE_VALUE;
- }
-
-# if CONF_CLOCK_DFLL_QUICK_LOCK == true
- dfll_conf.quick_lock = SYSTEM_CLOCK_DFLL_QUICK_LOCK_ENABLE;
-# else
- dfll_conf.quick_lock = SYSTEM_CLOCK_DFLL_QUICK_LOCK_DISABLE;
-# endif
-
-# if CONF_CLOCK_DFLL_TRACK_AFTER_FINE_LOCK == true
- dfll_conf.stable_tracking = SYSTEM_CLOCK_DFLL_STABLE_TRACKING_TRACK_AFTER_LOCK;
-# else
- dfll_conf.stable_tracking = SYSTEM_CLOCK_DFLL_STABLE_TRACKING_FIX_AFTER_LOCK;
-# endif
-
-# if CONF_CLOCK_DFLL_KEEP_LOCK_ON_WAKEUP == true
- dfll_conf.wakeup_lock = SYSTEM_CLOCK_DFLL_WAKEUP_LOCK_KEEP;
-# else
- dfll_conf.wakeup_lock = SYSTEM_CLOCK_DFLL_WAKEUP_LOCK_LOSE;
-# endif
-
-# if CONF_CLOCK_DFLL_ENABLE_CHILL_CYCLE == true
- dfll_conf.chill_cycle = SYSTEM_CLOCK_DFLL_CHILL_CYCLE_ENABLE;
-# else
- dfll_conf.chill_cycle = SYSTEM_CLOCK_DFLL_CHILL_CYCLE_DISABLE;
-# endif
-
- if (CONF_CLOCK_DFLL_LOOP_MODE == SYSTEM_CLOCK_DFLL_LOOP_MODE_CLOSED) {
- dfll_conf.multiply_factor = CONF_CLOCK_DFLL_MULTIPLY_FACTOR;
- }
-
- dfll_conf.coarse_max_step = CONF_CLOCK_DFLL_MAX_COARSE_STEP_SIZE;
- dfll_conf.fine_max_step = CONF_CLOCK_DFLL_MAX_FINE_STEP_SIZE;
-
- if (CONF_CLOCK_DFLL_LOOP_MODE == SYSTEM_CLOCK_DFLL_LOOP_MODE_USB_RECOVERY) {
- dfll_conf.fine_max_step = 10;
- dfll_conf.fine_value = 0x1ff;
- dfll_conf.quick_lock = SYSTEM_CLOCK_DFLL_QUICK_LOCK_ENABLE;
- dfll_conf.stable_tracking = SYSTEM_CLOCK_DFLL_STABLE_TRACKING_TRACK_AFTER_LOCK;
- dfll_conf.wakeup_lock = SYSTEM_CLOCK_DFLL_WAKEUP_LOCK_KEEP;
- dfll_conf.chill_cycle = SYSTEM_CLOCK_DFLL_CHILL_CYCLE_DISABLE;
-
- dfll_conf.multiply_factor = 48000;
- }
-
- system_clock_source_dfll_set_config(&dfll_conf);
-#endif
-
-
- /* OSC8M */
- struct system_clock_source_osc8m_config osc8m_conf;
- system_clock_source_osc8m_get_config_defaults(&osc8m_conf);
-
- osc8m_conf.prescaler = CONF_CLOCK_OSC8M_PRESCALER;
- osc8m_conf.on_demand = CONF_CLOCK_OSC8M_ON_DEMAND;
- osc8m_conf.run_in_standby = CONF_CLOCK_OSC8M_RUN_IN_STANDBY;
-
- system_clock_source_osc8m_set_config(&osc8m_conf);
- system_clock_source_enable(SYSTEM_CLOCK_SOURCE_OSC8M);
-
-
- /* GCLK */
-#if CONF_CLOCK_CONFIGURE_GCLK == true
- system_gclk_init();
-
- /* Configure all GCLK generators except for the main generator, which
- * is configured later after all other clock systems are set up */
- MREPEAT(GCLK_GEN_NUM, _CONF_CLOCK_GCLK_CONFIG_NONMAIN, ~);
-
-# if CONF_CLOCK_DFLL_ENABLE == true
- /* Enable DFLL reference clock if in closed loop mode */
- if (CONF_CLOCK_DFLL_LOOP_MODE == SYSTEM_CLOCK_DFLL_LOOP_MODE_CLOSED) {
- struct system_gclk_chan_config dfll_gclk_chan_conf;
-
- system_gclk_chan_get_config_defaults(&dfll_gclk_chan_conf);
- dfll_gclk_chan_conf.source_generator = CONF_CLOCK_DFLL_SOURCE_GCLK_GENERATOR;
- system_gclk_chan_set_config(SYSCTRL_GCLK_ID_DFLL48, &dfll_gclk_chan_conf);
- system_gclk_chan_enable(SYSCTRL_GCLK_ID_DFLL48);
- }
-# endif
-
-# if CONF_CLOCK_DPLL_ENABLE == true
- /* Enable DPLL internal lock timer and reference clock */
- struct system_gclk_chan_config dpll_gclk_chan_conf;
- system_gclk_chan_get_config_defaults(&dpll_gclk_chan_conf);
- if (CONF_CLOCK_DPLL_LOCK_TIME != SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_DEFAULT) {
- dpll_gclk_chan_conf.source_generator = CONF_CLOCK_DPLL_LOCK_GCLK_GENERATOR;
- system_gclk_chan_set_config(SYSCTRL_GCLK_ID_FDPLL32K, &dpll_gclk_chan_conf);
- system_gclk_chan_enable(SYSCTRL_GCLK_ID_FDPLL32K);
- }
-
- if (CONF_CLOCK_DPLL_REFERENCE_CLOCK == SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_GCLK) {
- dpll_gclk_chan_conf.source_generator = CONF_CLOCK_DPLL_REFERENCE_GCLK_GENERATOR;
- system_gclk_chan_set_config(SYSCTRL_GCLK_ID_FDPLL, &dpll_gclk_chan_conf);
- system_gclk_chan_enable(SYSCTRL_GCLK_ID_FDPLL);
- }
-# endif
-#endif
-
-
- /* DFLL Enable (Open and Closed Loop) */
-#if CONF_CLOCK_DFLL_ENABLE == true
- system_clock_source_enable(SYSTEM_CLOCK_SOURCE_DFLL);
- while(!system_clock_source_is_ready(SYSTEM_CLOCK_SOURCE_DFLL));
- if (CONF_CLOCK_DFLL_ON_DEMAND) {
- SYSCTRL->DFLLCTRL.bit.ONDEMAND = 1;
- }
-#endif
-
- /* DPLL */
-#ifdef FEATURE_SYSTEM_CLOCK_DPLL
-# if (CONF_CLOCK_DPLL_ENABLE == true)
-
- /* Enable DPLL reference clock */
- if (CONF_CLOCK_DPLL_REFERENCE_CLOCK == SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_XOSC32K) {
- /* XOSC32K should have been enabled for DPLL_REF0 */
- Assert(CONF_CLOCK_XOSC32K_ENABLE);
- } else if (CONF_CLOCK_DPLL_REFERENCE_CLOCK == SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_XOSC) {
- /* XOSC should have been enabled for DPLL_REF1 */
- Assert(CONF_CLOCK_XOSC_ENABLE);
- }
- else if (CONF_CLOCK_DPLL_REFERENCE_CLOCK == SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_GCLK) {
- /* GCLK should have been enabled */
- Assert(CONF_CLOCK_CONFIGURE_GCLK);
- }
- else {
- Assert(false);
- }
-
- struct system_clock_source_dpll_config dpll_config;
- system_clock_source_dpll_get_config_defaults(&dpll_config);
-
- dpll_config.on_demand = false;
- dpll_config.run_in_standby = CONF_CLOCK_DPLL_RUN_IN_STANDBY;
- dpll_config.lock_bypass = CONF_CLOCK_DPLL_LOCK_BYPASS;
- dpll_config.wake_up_fast = CONF_CLOCK_DPLL_WAKE_UP_FAST;
- dpll_config.low_power_enable = CONF_CLOCK_DPLL_LOW_POWER_ENABLE;
-
- dpll_config.filter = CONF_CLOCK_DPLL_FILTER;
- dpll_config.lock_time = CONF_CLOCK_DPLL_LOCK_TIME;
-
- dpll_config.reference_clock = CONF_CLOCK_DPLL_REFERENCE_CLOCK;
- dpll_config.reference_frequency = CONF_CLOCK_DPLL_REFERENCE_FREQUENCY;
- dpll_config.reference_divider = CONF_CLOCK_DPLL_REFERENCE_DIVIDER;
- dpll_config.output_frequency = CONF_CLOCK_DPLL_OUTPUT_FREQUENCY;
-
- system_clock_source_dpll_set_config(&dpll_config);
- system_clock_source_enable(SYSTEM_CLOCK_SOURCE_DPLL);
- while(!system_clock_source_is_ready(SYSTEM_CLOCK_SOURCE_DPLL));
- if (CONF_CLOCK_DPLL_ON_DEMAND) {
- SYSCTRL->DPLLCTRLA.bit.ONDEMAND = 1;
- }
-
-# endif
-#endif
-
- /* CPU and BUS clocks */
- system_cpu_clock_set_divider(CONF_CLOCK_CPU_DIVIDER);
-
- system_apb_clock_set_divider(SYSTEM_CLOCK_APB_APBA, CONF_CLOCK_APBA_DIVIDER);
- system_apb_clock_set_divider(SYSTEM_CLOCK_APB_APBB, CONF_CLOCK_APBB_DIVIDER);
- system_apb_clock_set_divider(SYSTEM_CLOCK_APB_APBC, CONF_CLOCK_APBC_DIVIDER);
-
- /* GCLK 0 */
-#if CONF_CLOCK_CONFIGURE_GCLK == true
- /* Configure the main GCLK last as it might depend on other generators */
- _CONF_CLOCK_GCLK_CONFIG(0, ~);
-#endif
-}
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/clock_config_check.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/clock_config_check.h
deleted file mode 100644
index a18e31b..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/clock_config_check.h
+++ /dev/null
@@ -1,444 +0,0 @@
-/**
- * \file
- *
- * \brief SAM D21/R21/DA/HA Clock Driver
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef CLOCK_CONFIG_CHECK_H
-# define CLOCK_CONFIG_CHECK_H
-
-#if !defined(CONF_CLOCK_FLASH_WAIT_STATES)
-# error CONF_CLOCK_FLASH_WAIT_STATES not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_CPU_DIVIDER)
-# error CONF_CLOCK_CPU_DIVIDER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_APBA_DIVIDER)
-# error CONF_CLOCK_APBA_DIVIDER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_APBB_DIVIDER)
-# error CONF_CLOCK_APBB_DIVIDER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_APBC_DIVIDER)
-# error CONF_CLOCK_APBC_DIVIDER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_OSC8M_PRESCALER)
-# error CONF_CLOCK_OSC8M_PRESCALER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_OSC8M_ON_DEMAND)
-# error CONF_CLOCK_OSC8M_ON_DEMAND not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_OSC8M_RUN_IN_STANDBY)
-# error CONF_CLOCK_OSC8M_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC_ENABLE)
-# error CONF_CLOCK_XOSC_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC_EXTERNAL_CRYSTAL)
-# error CONF_CLOCK_XOSC_EXTERNAL_CRYSTAL not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC_EXTERNAL_FREQUENCY)
-# error CONF_CLOCK_XOSC_EXTERNAL_FREQUENCY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC_STARTUP_TIME)
-# error CONF_CLOCK_XOSC_STARTUP_TIME not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC_AUTO_GAIN_CONTROL)
-# error CONF_CLOCK_XOSC_AUTO_GAIN_CONTROL not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC_ON_DEMAND)
-# error CONF_CLOCK_XOSC_ON_DEMAND not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC_RUN_IN_STANDBY)
-# error CONF_CLOCK_XOSC_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC32K_ENABLE)
-# error CONF_CLOCK_XOSC32K_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC32K_EXTERNAL_CRYSTAL)
-# error CONF_CLOCK_XOSC32K_EXTERNAL_CRYSTAL not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC32K_STARTUP_TIME)
-# error CONF_CLOCK_XOSC32K_STARTUP_TIME not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC32K_AUTO_AMPLITUDE_CONTROL)
-# error CONF_CLOCK_XOSC32K_AUTO_AMPLITUDE_CONTROL not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC32K_ENABLE_1KHZ_OUPUT)
-# error CONF_CLOCK_XOSC32K_ENABLE_1KHZ_OUPUT not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC32K_ENABLE_32KHZ_OUTPUT)
-# error CONF_CLOCK_XOSC32K_ENABLE_32KHZ_OUTPUT not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC32K_ON_DEMAND)
-# error CONF_CLOCK_XOSC32K_ON_DEMAND not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_XOSC32K_RUN_IN_STANDBY)
-# error CONF_CLOCK_XOSC32K_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_OSC32K_ENABLE)
-# error CONF_CLOCK_OSC32K_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_OSC32K_STARTUP_TIME)
-# error CONF_CLOCK_OSC32K_STARTUP_TIME not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_OSC32K_ENABLE_1KHZ_OUTPUT)
-# error CONF_CLOCK_OSC32K_ENABLE_1KHZ_OUTPUT not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_OSC32K_ENABLE_32KHZ_OUTPUT)
-# error CONF_CLOCK_OSC32K_ENABLE_32KHZ_OUTPUT not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_OSC32K_ON_DEMAND)
-# error CONF_CLOCK_OSC32K_ON_DEMAND not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_OSC32K_RUN_IN_STANDBY)
-# error CONF_CLOCK_OSC32K_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_ENABLE)
-# error CONF_CLOCK_DFLL_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_LOOP_MODE)
-# error CONF_CLOCK_DFLL_LOOP_MODE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_ON_DEMAND)
-# error CONF_CLOCK_DFLL_ON_DEMAND not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_FINE_VALUE)
-# error CONF_CLOCK_DFLL_FINE_VALUE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_SOURCE_GCLK_GENERATOR)
-# error CONF_CLOCK_DFLL_SOURCE_GCLK_GENERATOR not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_MULTIPLY_FACTOR)
-# error CONF_CLOCK_DFLL_MULTIPLY_FACTOR not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_QUICK_LOCK)
-# error CONF_CLOCK_DFLL_QUICK_LOCK not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_TRACK_AFTER_FINE_LOCK)
-# error CONF_CLOCK_DFLL_TRACK_AFTER_FINE_LOCK not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_KEEP_LOCK_ON_WAKEUP)
-# error CONF_CLOCK_DFLL_KEEP_LOCK_ON_WAKEUP not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_ENABLE_CHILL_CYCLE)
-# error CONF_CLOCK_DFLL_ENABLE_CHILL_CYCLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_MAX_COARSE_STEP_SIZE)
-# error CONF_CLOCK_DFLL_MAX_COARSE_STEP_SIZE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DFLL_MAX_FINE_STEP_SIZE)
-# error CONF_CLOCK_DFLL_MAX_FINE_STEP_SIZE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_ENABLE)
-# error CONF_CLOCK_DPLL_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_ON_DEMAND)
-# error CONF_CLOCK_DPLL_ON_DEMAND not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_RUN_IN_STANDBY)
-# error CONF_CLOCK_DPLL_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_LOCK_BYPASS)
-# error CONF_CLOCK_DPLL_LOCK_BYPASS not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_WAKE_UP_FAST)
-# error CONF_CLOCK_DPLL_WAKE_UP_FAST not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_LOW_POWER_ENABLE)
-# error CONF_CLOCK_DPLL_LOW_POWER_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_LOCK_TIME)
-# error CONF_CLOCK_DPLL_LOCK_TIME not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_REFERENCE_CLOCK)
-# error CONF_CLOCK_DPLL_REFERENCE_CLOCK not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_FILTER)
-# error CONF_CLOCK_DPLL_FILTER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_REFERENCE_FREQUENCY)
-# error CONF_CLOCK_DPLL_REFERENCE_FREQUENCY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_REFERENCE_DIVIDER)
-# error CONF_CLOCK_DPLL_REFERENCE_DIVIDER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_OUTPUT_FREQUENCY)
-# error CONF_CLOCK_DPLL_OUTPUT_FREQUENCY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_REFERENCE_GCLK_GENERATOR)
-# error CONF_CLOCK_DPLL_REFERENCE_GCLK_GENERATOR not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_DPLL_LOCK_GCLK_GENERATOR)
-# error CONF_CLOCK_DPLL_LOCK_GCLK_GENERATOR not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_CONFIGURE_GCLK)
-# error CONF_CLOCK_CONFIGURE_GCLK not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_0_ENABLE)
-# error CONF_CLOCK_GCLK_0_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_0_RUN_IN_STANDBY)
-# error CONF_CLOCK_GCLK_0_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_0_CLOCK_SOURCE)
-# error CONF_CLOCK_GCLK_0_CLOCK_SOURCE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_0_PRESCALER)
-# error CONF_CLOCK_GCLK_0_PRESCALER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_0_OUTPUT_ENABLE)
-# error CONF_CLOCK_GCLK_0_OUTPUT_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_1_ENABLE)
-# error CONF_CLOCK_GCLK_1_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_1_RUN_IN_STANDBY)
-# error CONF_CLOCK_GCLK_1_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_1_CLOCK_SOURCE)
-# error CONF_CLOCK_GCLK_1_CLOCK_SOURCE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_1_PRESCALER)
-# error CONF_CLOCK_GCLK_1_PRESCALER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_1_OUTPUT_ENABLE)
-# error CONF_CLOCK_GCLK_1_OUTPUT_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_2_ENABLE)
-# error CONF_CLOCK_GCLK_2_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_2_RUN_IN_STANDBY)
-# error CONF_CLOCK_GCLK_2_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_2_CLOCK_SOURCE)
-# error CONF_CLOCK_GCLK_2_CLOCK_SOURCE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_2_PRESCALER)
-# error CONF_CLOCK_GCLK_2_PRESCALER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_2_OUTPUT_ENABLE)
-# error CONF_CLOCK_GCLK_2_OUTPUT_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_3_ENABLE)
-# error CONF_CLOCK_GCLK_3_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_3_RUN_IN_STANDBY)
-# error CONF_CLOCK_GCLK_3_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_3_CLOCK_SOURCE)
-# error CONF_CLOCK_GCLK_3_CLOCK_SOURCE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_3_PRESCALER)
-# error CONF_CLOCK_GCLK_3_PRESCALER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_3_OUTPUT_ENABLE)
-# error CONF_CLOCK_GCLK_3_OUTPUT_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_4_ENABLE)
-# error CONF_CLOCK_GCLK_4_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_4_RUN_IN_STANDBY)
-# error CONF_CLOCK_GCLK_4_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_4_CLOCK_SOURCE)
-# error CONF_CLOCK_GCLK_4_CLOCK_SOURCE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_4_PRESCALER)
-# error CONF_CLOCK_GCLK_4_PRESCALER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_4_OUTPUT_ENABLE)
-# error CONF_CLOCK_GCLK_4_OUTPUT_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_5_ENABLE)
-# error CONF_CLOCK_GCLK_5_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_5_RUN_IN_STANDBY)
-# error CONF_CLOCK_GCLK_5_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_5_CLOCK_SOURCE)
-# error CONF_CLOCK_GCLK_5_CLOCK_SOURCE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_5_PRESCALER)
-# error CONF_CLOCK_GCLK_5_PRESCALER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_5_OUTPUT_ENABLE)
-# error CONF_CLOCK_GCLK_5_OUTPUT_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_6_ENABLE)
-# error CONF_CLOCK_GCLK_6_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_6_RUN_IN_STANDBY)
-# error CONF_CLOCK_GCLK_6_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_6_CLOCK_SOURCE)
-# error CONF_CLOCK_GCLK_6_CLOCK_SOURCE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_6_PRESCALER)
-# error CONF_CLOCK_GCLK_6_PRESCALER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_6_OUTPUT_ENABLE)
-# error CONF_CLOCK_GCLK_6_OUTPUT_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_7_ENABLE)
-# error CONF_CLOCK_GCLK_7_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_7_RUN_IN_STANDBY)
-# error CONF_CLOCK_GCLK_7_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_7_CLOCK_SOURCE)
-# error CONF_CLOCK_GCLK_7_CLOCK_SOURCE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_7_PRESCALER)
-# error CONF_CLOCK_GCLK_7_PRESCALER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_7_OUTPUT_ENABLE)
-# error CONF_CLOCK_GCLK_7_OUTPUT_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_8_ENABLE)
-# error CONF_CLOCK_GCLK_8_ENABLE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_8_RUN_IN_STANDBY)
-# error CONF_CLOCK_GCLK_8_RUN_IN_STANDBY not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_8_CLOCK_SOURCE)
-# error CONF_CLOCK_GCLK_8_CLOCK_SOURCE not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_8_PRESCALER)
-# error CONF_CLOCK_GCLK_8_PRESCALER not defined in conf_clocks.h
-#endif
-
-#if !defined(CONF_CLOCK_GCLK_8_OUTPUT_ENABLE)
-# error CONF_CLOCK_GCLK_8_OUTPUT_ENABLE not defined in conf_clocks.h
-#endif
-
-#endif /* CLOCK_CONFIG_CHECK_H */
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/clock_feature.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/clock_feature.h
deleted file mode 100644
index 425581d..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/clock_feature.h
+++ /dev/null
@@ -1,1483 +0,0 @@
-/**
- * \file
- *
- * \brief SAM Clock Driver
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef SYSTEM_CLOCK_FEATURE_H_INCLUDED
-#define SYSTEM_CLOCK_FEATURE_H_INCLUDED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \defgroup asfdoc_sam0_system_clock_group SAM System Clock Management (SYSTEM CLOCK) Driver
- *
- * This driver for Atmel® | SMART ARM®-based microcontrollers provides an interface for the configuration
- * and management of the device's clocking related functions. This includes
- * the various clock sources, bus clocks, and generic clocks within the device,
- * with functions to manage the enabling, disabling, source selection, and
- * prescaling of clocks to various internal peripherals.
- *
- * The following peripherals are used by this module:
- *
- * - GCLK (Generic Clock Management)
- * - PM (Power Management)
- * - SYSCTRL (Clock Source Control)
- *
- * The following devices can use this module:
- * - Atmel | SMART SAM D20/D21
- * - Atmel | SMART SAM R21
- * - Atmel | SMART SAM D09/D10/D11
- * - Atmel | SMART SAM DA1
- * - Atmel | SMART SAM HA1
- *
- * The outline of this documentation is as follows:
- * - \ref asfdoc_sam0_system_clock_prerequisites
- * - \ref asfdoc_sam0_system_clock_module_overview
- * - \ref asfdoc_sam0_system_clock_special_considerations
- * - \ref asfdoc_sam0_system_clock_extra_info
- * - \ref asfdoc_sam0_system_clock_examples
- * - \ref asfdoc_sam0_system_clock_api_overview
- *
- *
- * \section asfdoc_sam0_system_clock_prerequisites Prerequisites
- *
- * There are no prerequisites for this module.
- *
- *
- * \section asfdoc_sam0_system_clock_module_overview Module Overview
- * The SAM devices contain a sophisticated clocking system, which is designed
- * to give the maximum flexibility to the user application. This system allows
- * a system designer to tune the performance and power consumption of the device
- * in a dynamic manner, to achieve the best trade-off between the two for a
- * particular application.
- *
- * This driver provides a set of functions for the configuration and management
- * of the various clock related functionality within the device.
- *
- * \subsection asfdoc_sam0_system_clock_module_features Driver Feature Macro Definition
- *
- *
- *
Driver Feature Macro
- *
Supported devices
- *
- *
- *
FEATURE_SYSTEM_CLOCK_DPLL
- *
SAM D21, SAM R21, SAM D10, SAM D11, SAM DA1
- *
- *
- * \note The specific features are only available in the driver when the
- * selected device supports those features.
- *
- * \subsection asfdoc_sam0_system_clock_module_overview_clock_sources Clock Sources
- * The SAM devices have a number of master clock source modules, each of
- * which being capable of producing a stabilized output frequency, which can then
- * be fed into the various peripherals and modules within the device.
- *
- * Possible clock source modules include internal R/C oscillators, internal
- * DFLL modules, as well as external crystal oscillators and/or clock inputs.
- *
- * \subsection asfdoc_sam0_system_clock_module_overview_cpu_clock CPU / Bus Clocks
- * The CPU and AHB/APBx buses are clocked by the same physical clock source
- * (referred in this module as the Main Clock), however the APBx buses may
- * have additional prescaler division ratios set to give each peripheral bus a
- * different clock speed.
- *
- * The general main clock tree for the CPU and associated buses is shown in
- * \ref asfdoc_sam0_system_clock_module_clock_tree "the figure below".
- *
- * \anchor asfdoc_sam0_system_clock_module_clock_tree
- * \dot
- * digraph overview {
- * rankdir=LR;
- * clk_src [label="Clock Sources", shape=none, height=0];
- * node [label="CPU Bus" shape=ellipse] cpu_bus;
- * node [label="AHB Bus" shape=ellipse] ahb_bus;
- * node [label="APBA Bus" shape=ellipse] apb_a_bus;
- * node [label="APBB Bus" shape=ellipse] apb_b_bus;
- * node [label="APBC Bus" shape=ellipse] apb_c_bus;
- * node [label="Main Bus\nPrescaler" shape=square] main_prescaler;
- * node [label="APBA Bus\nPrescaler" shape=square] apb_a_prescaler;
- * node [label="APBB Bus\nPrescaler" shape=square] apb_b_prescaler;
- * node [label="APBC Bus\nPrescaler" shape=square] apb_c_prescaler;
- * node [label="", shape=polygon, sides=4, distortion=0.6, orientation=90, style=filled, fillcolor=black, height=0.9, width=0.2] main_clock_mux;
- *
- * clk_src -> main_clock_mux;
- * main_clock_mux -> main_prescaler;
- * main_prescaler -> cpu_bus;
- * main_prescaler -> ahb_bus;
- * main_prescaler -> apb_a_prescaler;
- * main_prescaler -> apb_b_prescaler;
- * main_prescaler -> apb_c_prescaler;
- * apb_a_prescaler -> apb_a_bus;
- * apb_b_prescaler -> apb_b_bus;
- * apb_c_prescaler -> apb_c_bus;
- * }
- * \enddot
- *
- * \subsection asfdoc_sam0_system_clock_module_overview_clock_masking Clock Masking
- * To save power, the input clock to one or more peripherals on the AHB and APBx
- * buses can be masked away - when masked, no clock is passed into the module.
- * Disabling of clocks of unused modules will prevent all access to the masked
- * module, but will reduce the overall device power consumption.
- *
- * \subsection asfdoc_sam0_system_clock_module_overview_gclk Generic Clocks
- * Within the SAM devices there are a number of Generic Clocks; these are used to
- * provide clocks to the various peripheral clock domains in the device in a
- * standardized manner. One or more master source clocks can be selected as the
- * input clock to a Generic Clock Generator, which can prescale down the input
- * frequency to a slower rate for use in a peripheral.
- *
- * Additionally, a number of individually selectable Generic Clock Channels are
- * provided, which multiplex and gate the various generator outputs for one or
- * more peripherals within the device. This setup allows for a single common
- * generator to feed one or more channels, which can then be enabled or disabled
- * individually as required.
- *
- * \anchor asfdoc_sam0_system_clock_module_chain_overview
- * \dot
- * digraph overview {
- * rankdir=LR;
- * node [label="Clock\nSource a" shape=square] system_clock_source;
- * node [label="Generator 1" shape=square] clock_gen;
- * node [label="Channel x" shape=square] clock_chan0;
- * node [label="Channel y" shape=square] clock_chan1;
- * node [label="Peripheral x" shape=ellipse style=filled fillcolor=lightgray] peripheral0;
- * node [label="Peripheral y" shape=ellipse style=filled fillcolor=lightgray] peripheral1;
- *
- * system_clock_source -> clock_gen;
- * clock_gen -> clock_chan0;
- * clock_chan0 -> peripheral0;
- * clock_gen -> clock_chan1;
- * clock_chan1 -> peripheral1;
- * }
- * \enddot
- *
- * \subsubsection asfdoc_sam0_system_clock_module_chain_example Clock Chain Example
- * An example setup of a complete clock chain within the device is shown in
- * \ref asfdoc_sam0_system_clock_module_chain_example_fig "the figure below".
- *
- * \anchor asfdoc_sam0_system_clock_module_chain_example_fig
- * \dot
- * digraph overview {
- * rankdir=LR;
- * node [label="External\nOscillator" shape=square] system_clock_source0;
- * node [label="Generator 0" shape=square] clock_gen0;
- * node [label="Channel x" shape=square] clock_chan0;
- * node [label="Core CPU" shape=ellipse style=filled fillcolor=lightgray] peripheral0;
- *
- * system_clock_source0 -> clock_gen0;
- * clock_gen0 -> clock_chan0;
- * clock_chan0 -> peripheral0;
- * node [label="8MHz R/C\nOscillator (OSC8M)" shape=square fillcolor=white] system_clock_source1;
- * node [label="Generator 1" shape=square] clock_gen1;
- * node [label="Channel y" shape=square] clock_chan1;
- * node [label="Channel z" shape=square] clock_chan2;
- * node [label="SERCOM\nModule" shape=ellipse style=filled fillcolor=lightgray] peripheral1;
- * node [label="Timer\nModule" shape=ellipse style=filled fillcolor=lightgray] peripheral2;
- *
- * system_clock_source1 -> clock_gen1;
- * clock_gen1 -> clock_chan1;
- * clock_gen1 -> clock_chan2;
- * clock_chan1 -> peripheral1;
- * clock_chan2 -> peripheral2;
- * }
- * \enddot
- *
- * \subsubsection asfdoc_sam0_system_clock_module_overview_gclk_generators Generic Clock Generators
- * Each Generic Clock generator within the device can source its input clock
- * from one of the provided Source Clocks, and prescale the output for one or
- * more Generic Clock Channels in a one-to-many relationship. The generators
- * thus allow for several clocks to be generated of different frequencies,
- * power usages, and accuracies, which can be turned on and off individually to
- * disable the clocks to multiple peripherals as a group.
- *
- * \subsubsection asfdoc_sam0_system_clock_module_overview_gclk_channels Generic Clock Channels
- * To connect a Generic Clock Generator to a peripheral within the
- * device, a Generic Clock Channel is used. Each peripheral or
- * peripheral group has an associated Generic Clock Channel, which serves as the
- * clock input for the peripheral(s). To supply a clock to the peripheral
- * module(s), the associated channel must be connected to a running Generic
- * Clock Generator and the channel enabled.
- *
- * \section asfdoc_sam0_system_clock_special_considerations Special Considerations
- *
- * There are no special considerations for this module.
- *
- *
- * \section asfdoc_sam0_system_clock_extra_info Extra Information
- *
- * For extra information, see \ref asfdoc_sam0_system_clock_extra. This includes:
- * - \ref asfdoc_sam0_system_clock_extra_acronyms
- * - \ref asfdoc_sam0_system_clock_extra_dependencies
- * - \ref asfdoc_sam0_system_clock_extra_errata
- * - \ref asfdoc_sam0_system_clock_extra_history
- *
- *
- * \section asfdoc_sam0_system_clock_examples Examples
- *
- * For a list of examples related to this driver, see
- * \ref asfdoc_sam0_system_clock_exqsg.
- *
- *
- * \section asfdoc_sam0_system_clock_api_overview API Overview
- * @{
- */
-
-#include
-#include
-
-/**
- * \name Driver Feature Definition
- * Define system clock features set according to different device family.
- * @{
- */
-#if (SAMD21) || (SAMR21) || (SAMD11) || (SAMD10) || (SAMDA1) || (SAMHA1) || (SAMHA0) || defined(__DOXYGEN__)
-/** Digital Phase Locked Loop (DPLL) feature support. */
-# define FEATURE_SYSTEM_CLOCK_DPLL
-#endif
-/*@}*/
-
-/**
- * \brief Available start-up times for the XOSC32K.
- *
- * Available external 32KHz oscillator start-up times, as a number of external
- * clock cycles.
- */
-enum system_xosc32k_startup {
- /** Wait zero clock cycles until the clock source is considered stable */
- SYSTEM_XOSC32K_STARTUP_0,
- /** Wait 32 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC32K_STARTUP_32,
- /** Wait 2048 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC32K_STARTUP_2048,
- /** Wait 4096 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC32K_STARTUP_4096,
- /** Wait 16384 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC32K_STARTUP_16384,
- /** Wait 32768 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC32K_STARTUP_32768,
- /** Wait 65536 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC32K_STARTUP_65536,
- /** Wait 131072 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC32K_STARTUP_131072,
-};
-
-/**
- * \brief Available start-up times for the XOSC.
- *
- * Available external oscillator start-up times, as a number of external clock
- * cycles.
- */
-enum system_xosc_startup {
- /** Wait one clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_1,
- /** Wait two clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_2,
- /** Wait four clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_4,
- /** Wait eight clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_8,
- /** Wait 16 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_16,
- /** Wait 32 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_32,
- /** Wait 64 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_64,
- /** Wait 128 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_128,
- /** Wait 256 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_256,
- /** Wait 512 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_512,
- /** Wait 1024 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_1024,
- /** Wait 2048 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_2048,
- /** Wait 4096 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_4096,
- /** Wait 8192 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_8192,
- /** Wait 16384 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_16384,
- /** Wait 32768 clock cycles until the clock source is considered stable */
- SYSTEM_XOSC_STARTUP_32768,
-};
-
-/**
- * \brief Available start-up times for the OSC32K.
- *
- * Available internal 32KHz oscillator start-up times, as a number of internal
- * OSC32K clock cycles.
- */
-enum system_osc32k_startup {
- /** Wait three clock cycles until the clock source is considered stable */
- SYSTEM_OSC32K_STARTUP_3,
- /** Wait four clock cycles until the clock source is considered stable */
- SYSTEM_OSC32K_STARTUP_4,
- /** Wait six clock cycles until the clock source is considered stable */
- SYSTEM_OSC32K_STARTUP_6,
- /** Wait ten clock cycles until the clock source is considered stable */
- SYSTEM_OSC32K_STARTUP_10,
- /** Wait 18 clock cycles until the clock source is considered stable */
- SYSTEM_OSC32K_STARTUP_18,
- /** Wait 34 clock cycles until the clock source is considered stable */
- SYSTEM_OSC32K_STARTUP_34,
- /** Wait 66 clock cycles until the clock source is considered stable */
- SYSTEM_OSC32K_STARTUP_66,
- /** Wait 130 clock cycles until the clock source is considered stable */
- SYSTEM_OSC32K_STARTUP_130,
-};
-
-/**
- * \brief Division prescalers for the internal 8MHz system clock.
- *
- * Available prescalers for the internal 8MHz (nominal) system clock.
- */
-enum system_osc8m_div {
- /** Do not divide the 8MHz RC oscillator output */
- SYSTEM_OSC8M_DIV_1,
- /** Divide the 8MHz RC oscillator output by two */
- SYSTEM_OSC8M_DIV_2,
- /** Divide the 8MHz RC oscillator output by four */
- SYSTEM_OSC8M_DIV_4,
- /** Divide the 8MHz RC oscillator output by eight */
- SYSTEM_OSC8M_DIV_8,
-};
-
-/**
- * \brief Frequency range for the internal 8MHz RC oscillator.
- *
- * Internal 8MHz RC oscillator frequency range setting.
- */
-enum system_osc8m_frequency_range {
- /** Frequency range 4MHz to 6MHz */
- SYSTEM_OSC8M_FREQUENCY_RANGE_4_TO_6,
- /** Frequency range 6MHz to 8MHz */
- SYSTEM_OSC8M_FREQUENCY_RANGE_6_TO_8,
- /** Frequency range 8MHz to 11MHz */
- SYSTEM_OSC8M_FREQUENCY_RANGE_8_TO_11,
- /** Frequency range 11MHz to 15MHz */
- SYSTEM_OSC8M_FREQUENCY_RANGE_11_TO_15,
-};
-
-/**
- * \brief Main CPU and APB/AHB bus clock source prescaler values.
- *
- * Available division ratios for the CPU and APB/AHB bus clocks.
- */
-enum system_main_clock_div {
- /** Divide Main clock by one */
- SYSTEM_MAIN_CLOCK_DIV_1,
- /** Divide Main clock by two */
- SYSTEM_MAIN_CLOCK_DIV_2,
- /** Divide Main clock by four */
- SYSTEM_MAIN_CLOCK_DIV_4,
- /** Divide Main clock by eight */
- SYSTEM_MAIN_CLOCK_DIV_8,
- /** Divide Main clock by 16 */
- SYSTEM_MAIN_CLOCK_DIV_16,
- /** Divide Main clock by 32 */
- SYSTEM_MAIN_CLOCK_DIV_32,
- /** Divide Main clock by 64 */
- SYSTEM_MAIN_CLOCK_DIV_64,
- /** Divide Main clock by 128 */
- SYSTEM_MAIN_CLOCK_DIV_128,
-};
-
-/**
- * \brief External clock source types.
- *
- * Available external clock source types.
- */
-enum system_clock_external {
- /** The external clock source is a crystal oscillator */
- SYSTEM_CLOCK_EXTERNAL_CRYSTAL,
- /** The connected clock source is an external logic level clock signal */
- SYSTEM_CLOCK_EXTERNAL_CLOCK,
-};
-
-/**
- * \brief Operating modes of the DFLL clock source.
- *
- * Available operating modes of the DFLL clock source module.
- */
-enum system_clock_dfll_loop_mode {
- /** The DFLL is operating in open loop mode with no feedback */
- SYSTEM_CLOCK_DFLL_LOOP_MODE_OPEN,
- /** The DFLL is operating in closed loop mode with frequency feedback from
- * a low frequency reference clock
- */
- SYSTEM_CLOCK_DFLL_LOOP_MODE_CLOSED = SYSCTRL_DFLLCTRL_MODE,
-
-#ifdef SYSCTRL_DFLLCTRL_USBCRM
- /** The DFLL is operating in USB recovery mode with frequency feedback
- * from USB SOF.
- */
- SYSTEM_CLOCK_DFLL_LOOP_MODE_USB_RECOVERY = SYSCTRL_DFLLCTRL_USBCRM,
-#endif
-};
-
-/**
- * \brief Locking behavior for the DFLL during device wake-up.
- *
- * DFLL lock behavior modes on device wake-up from sleep.
- */
-enum system_clock_dfll_wakeup_lock {
- /** Keep DFLL lock when the device wakes from sleep */
- SYSTEM_CLOCK_DFLL_WAKEUP_LOCK_KEEP,
- /** Lose DFLL lock when the devices wakes from sleep */
- SYSTEM_CLOCK_DFLL_WAKEUP_LOCK_LOSE = SYSCTRL_DFLLCTRL_LLAW,
-};
-
-/**
- * \brief Fine tracking behavior for the DFLL once a lock has been acquired.
- *
- * DFLL fine tracking behavior modes after a lock has been acquired.
- */
-enum system_clock_dfll_stable_tracking {
- /** Keep tracking after the DFLL has gotten a fine lock */
- SYSTEM_CLOCK_DFLL_STABLE_TRACKING_TRACK_AFTER_LOCK,
- /** Stop tracking after the DFLL has gotten a fine lock */
- SYSTEM_CLOCK_DFLL_STABLE_TRACKING_FIX_AFTER_LOCK = SYSCTRL_DFLLCTRL_STABLE,
-};
-
-/**
- * \brief Chill-cycle behavior of the DFLL module.
- *
- * DFLL chill-cycle behavior modes of the DFLL module. A chill cycle is a period
- * of time when the DFLL output frequency is not measured by the unit, to allow
- * the output to stabilize after a change in the input clock source.
- */
-enum system_clock_dfll_chill_cycle {
- /** Enable a chill cycle, where the DFLL output frequency is not measured */
- SYSTEM_CLOCK_DFLL_CHILL_CYCLE_ENABLE,
- /** Disable a chill cycle, where the DFLL output frequency is not measured */
- SYSTEM_CLOCK_DFLL_CHILL_CYCLE_DISABLE = SYSCTRL_DFLLCTRL_CCDIS,
-};
-
-/**
- * \brief QuickLock settings for the DFLL module.
- *
- * DFLL QuickLock settings for the DFLL module, to allow for a faster lock of
- * the DFLL output frequency at the expense of accuracy.
- */
-enum system_clock_dfll_quick_lock {
- /** Enable the QuickLock feature for looser lock requirements on the DFLL */
- SYSTEM_CLOCK_DFLL_QUICK_LOCK_ENABLE,
- /** Disable the QuickLock feature for strict lock requirements on the DFLL */
- SYSTEM_CLOCK_DFLL_QUICK_LOCK_DISABLE = SYSCTRL_DFLLCTRL_QLDIS,
-};
-
-/**
- * \brief Available clock sources in the system.
- *
- * Clock sources available to the GCLK generators.
- */
-enum system_clock_source {
- /** Internal 8MHz RC oscillator */
- SYSTEM_CLOCK_SOURCE_OSC8M = GCLK_SOURCE_OSC8M,
- /** Internal 32KHz RC oscillator */
- SYSTEM_CLOCK_SOURCE_OSC32K = GCLK_SOURCE_OSC32K,
- /** External oscillator */
- SYSTEM_CLOCK_SOURCE_XOSC = GCLK_SOURCE_XOSC ,
- /** External 32KHz oscillator */
- SYSTEM_CLOCK_SOURCE_XOSC32K = GCLK_SOURCE_XOSC32K,
- /** Digital Frequency Locked Loop (DFLL) */
- SYSTEM_CLOCK_SOURCE_DFLL = GCLK_SOURCE_DFLL48M,
- /** Internal Ultra Low Power 32KHz oscillator */
- SYSTEM_CLOCK_SOURCE_ULP32K = GCLK_SOURCE_OSCULP32K,
- /** Generator input pad */
- SYSTEM_CLOCK_SOURCE_GCLKIN = GCLK_SOURCE_GCLKIN,
- /** Generic clock generator one output */
- SYSTEM_CLOCK_SOURCE_GCLKGEN1 = GCLK_SOURCE_GCLKGEN1,
-#ifdef FEATURE_SYSTEM_CLOCK_DPLL
- /** Digital Phase Locked Loop (DPLL).
- * Check \c FEATURE_SYSTEM_CLOCK_DPLL for which device support it.
- */
- SYSTEM_CLOCK_SOURCE_DPLL = GCLK_SOURCE_FDPLL,
-#endif
-};
-
-/**
- * \brief List of APB peripheral buses.
- *
- * Available bus clock domains on the APB bus.
- */
-enum system_clock_apb_bus {
- /** Peripheral bus A on the APB bus */
- SYSTEM_CLOCK_APB_APBA,
- /** Peripheral bus B on the APB bus */
- SYSTEM_CLOCK_APB_APBB,
- /** Peripheral bus C on the APB bus */
- SYSTEM_CLOCK_APB_APBC,
-};
-
-/**
- * \brief Configuration structure for XOSC.
- *
- * External oscillator clock configuration structure.
- */
-struct system_clock_source_xosc_config {
- /** External clock type */
- enum system_clock_external external_clock;
- /** Crystal oscillator start-up time */
- enum system_xosc_startup startup_time;
- /** Enable automatic amplitude gain control */
- bool auto_gain_control;
- /** External clock/crystal frequency */
- uint32_t frequency;
- /** Keep the XOSC enabled in standby sleep mode */
- bool run_in_standby;
- /** Run On Demand. If this is set the XOSC won't run
- * until requested by a peripheral. */
- bool on_demand;
-};
-
-/**
- * \brief Configuration structure for XOSC32K.
- *
- * External 32KHz oscillator clock configuration structure.
- */
-struct system_clock_source_xosc32k_config {
- /** External clock type */
- enum system_clock_external external_clock;
- /** Crystal oscillator start-up time */
- enum system_xosc32k_startup startup_time;
- /** Enable automatic amplitude control */
- bool auto_gain_control;
- /** Enable 1KHz output */
- bool enable_1khz_output;
- /** Enable 32KHz output */
- bool enable_32khz_output;
- /** External clock/crystal frequency */
- uint32_t frequency;
- /** Keep the XOSC32K enabled in standby sleep mode */
- bool run_in_standby;
- /** Run On Demand. If this is set the XOSC32K won't run
- * until requested by a peripheral. */
- bool on_demand;
- /** Lock configuration after it has been written,
- * a device reset will release the lock */
- bool write_once;
-};
-
-/**
- * \brief Configuration structure for OSC8M.
- *
- * Internal 8MHz (nominal) oscillator configuration structure.
- */
-struct system_clock_source_osc8m_config {
- /** Internal 8MHz RC oscillator prescaler */
- enum system_osc8m_div prescaler;
- /** Keep the OSC8M enabled in standby sleep mode */
- bool run_in_standby;
- /** Run On Demand. If this is set the OSC8M won't run
- * until requested by a peripheral. */
- bool on_demand;
-};
-
-/**
- * \brief Configuration structure for OSC32K.
- *
- * Internal 32KHz (nominal) oscillator configuration structure.
- */
-struct system_clock_source_osc32k_config {
- /** Startup time */
- enum system_osc32k_startup startup_time;
- /** Enable 1KHz output */
- bool enable_1khz_output;
- /** Enable 32KHz output */
- bool enable_32khz_output;
- /** Keep the OSC32K enabled in standby sleep mode */
- bool run_in_standby;
- /** Run On Demand. If this is set the OSC32K won't run
- * until requested by a peripheral */
- bool on_demand;
- /** Lock configuration after it has been written,
- * a device reset will release the lock */
- bool write_once;
-};
-
-/**
- * \brief Configuration structure for DFLL.
- *
- * DFLL oscillator configuration structure.
- */
-struct system_clock_source_dfll_config {
- /** Loop mode */
- enum system_clock_dfll_loop_mode loop_mode;
- /** Run On Demand. If this is set the DFLL won't run
- * until requested by a peripheral. */
- bool on_demand;
- /** Enable Quick Lock */
- enum system_clock_dfll_quick_lock quick_lock;
- /** Enable Chill Cycle */
- enum system_clock_dfll_chill_cycle chill_cycle;
- /** DFLL lock state on wakeup */
- enum system_clock_dfll_wakeup_lock wakeup_lock;
- /** DFLL tracking after fine lock */
- enum system_clock_dfll_stable_tracking stable_tracking;
- /** Coarse calibration value (Open loop mode) */
- uint8_t coarse_value;
- /** Fine calibration value (Open loop mode) */
- uint16_t fine_value;
- /** Coarse adjustment maximum step size (Closed loop mode) */
- uint8_t coarse_max_step;
- /** Fine adjustment maximum step size (Closed loop mode) */
- uint16_t fine_max_step;
- /** DFLL multiply factor (Closed loop mode */
- uint16_t multiply_factor;
-};
-
-/**
- * \name External Oscillator Management
- * @{
- */
-
-/**
- * \brief Retrieve the default configuration for XOSC.
- *
- * Fills a configuration structure with the default configuration for an
- * external oscillator module:
- * - External Crystal
- * - Start-up time of 16384 external clock cycles
- * - Automatic crystal gain control mode disabled
- * - Frequency of 12MHz
- * - Don't run in STANDBY sleep mode
- * - Run when it's enabled (not on demand)
- *
- * \param[out] config Configuration structure to fill with default values
- */
-static inline void system_clock_source_xosc_get_config_defaults(
- struct system_clock_source_xosc_config *const config)
-{
- Assert(config);
-
- config->external_clock = SYSTEM_CLOCK_EXTERNAL_CRYSTAL;
- config->startup_time = SYSTEM_XOSC_STARTUP_16384;
- config->auto_gain_control = false;
- config->frequency = 12000000UL;
- config->run_in_standby = false;
- config->on_demand = false;
-}
-
-void system_clock_source_xosc_set_config(
- struct system_clock_source_xosc_config *const config);
-
-/**
- * @}
- */
-
-
-/**
- * \name External 32KHz Oscillator Management
- * @{
- */
-
-/**
- * \brief Retrieve the default configuration for XOSC32K.
- *
- * Fills a configuration structure with the default configuration for an
- * external 32KHz oscillator module:
- * - External Crystal
- * - Start-up time of 16384 external clock cycles
- * - Automatic crystal gain control mode disabled
- * - Frequency of 32.768KHz
- * - 1KHz clock output disabled
- * - 32KHz clock output enabled
- * - Don't run in STANDBY sleep mode
- * - Run only when requested by peripheral (on demand)
- * - Don't lock registers after configuration has been written
- *
- * \param[out] config Configuration structure to fill with default values
- */
-static inline void system_clock_source_xosc32k_get_config_defaults(
- struct system_clock_source_xosc32k_config *const config)
-{
- Assert(config);
-
- config->external_clock = SYSTEM_CLOCK_EXTERNAL_CRYSTAL;
- config->startup_time = SYSTEM_XOSC32K_STARTUP_16384;
- config->auto_gain_control = false;
- config->frequency = 32768UL;
- config->enable_1khz_output = false;
- config->enable_32khz_output = true;
- config->run_in_standby = false;
- config->on_demand = true;
- config->write_once = false;
-}
-
-void system_clock_source_xosc32k_set_config(
- struct system_clock_source_xosc32k_config *const config);
-/**
- * @}
- */
-
-
-/**
- * \name Internal 32KHz Oscillator Management
- * @{
- */
-
-/**
- * \brief Retrieve the default configuration for OSC32K.
- *
- * Fills a configuration structure with the default configuration for an
- * internal 32KHz oscillator module:
- * - 1KHz clock output enabled
- * - 32KHz clock output enabled
- * - Don't run in STANDBY sleep mode
- * - Run only when requested by peripheral (on demand)
- * - Set startup time to 130 cycles
- * - Don't lock registers after configuration has been written
- *
- * \param[out] config Configuration structure to fill with default values
- */
-static inline void system_clock_source_osc32k_get_config_defaults(
- struct system_clock_source_osc32k_config *const config)
-{
- Assert(config);
-
- config->enable_1khz_output = true;
- config->enable_32khz_output = true;
- config->run_in_standby = false;
- config->on_demand = true;
- config->startup_time = SYSTEM_OSC32K_STARTUP_130;
- config->write_once = false;
-}
-
-void system_clock_source_osc32k_set_config(
- struct system_clock_source_osc32k_config *const config);
-
-/**
- * @}
- */
-
-
-/**
- * \name Internal 8MHz Oscillator Management
- * @{
- */
-
-/**
- * \brief Retrieve the default configuration for OSC8M.
- *
- * Fills a configuration structure with the default configuration for an
- * internal 8MHz (nominal) oscillator module:
- * - Clock output frequency divided by a factor of eight
- * - Don't run in STANDBY sleep mode
- * - Run only when requested by peripheral (on demand)
- *
- * \param[out] config Configuration structure to fill with default values
- */
-static inline void system_clock_source_osc8m_get_config_defaults(
- struct system_clock_source_osc8m_config *const config)
-{
- Assert(config);
-
- config->prescaler = SYSTEM_OSC8M_DIV_8;
- config->run_in_standby = false;
- config->on_demand = true;
-}
-
-void system_clock_source_osc8m_set_config(
- struct system_clock_source_osc8m_config *const config);
-
-/**
- * @}
- */
-
-
-/**
- * \name Internal DFLL Management
- * @{
- */
-
-/**
- * \brief Retrieve the default configuration for DFLL.
- *
- * Fills a configuration structure with the default configuration for a
- * DFLL oscillator module:
- * - Open loop mode
- * - QuickLock mode enabled
- * - Chill cycle enabled
- * - Output frequency lock maintained during device wake-up
- * - Continuous tracking of the output frequency
- * - Default tracking values at the mid-points for both coarse and fine
- * tracking parameters
- * - Don't run in STANDBY sleep mode
- * - Run only when requested by peripheral (on demand)
- *
- * \param[out] config Configuration structure to fill with default values
- */
-static inline void system_clock_source_dfll_get_config_defaults(
- struct system_clock_source_dfll_config *const config)
-{
- Assert(config);
-
- config->loop_mode = SYSTEM_CLOCK_DFLL_LOOP_MODE_OPEN;
- config->quick_lock = SYSTEM_CLOCK_DFLL_QUICK_LOCK_ENABLE;
- config->chill_cycle = SYSTEM_CLOCK_DFLL_CHILL_CYCLE_ENABLE;
- config->wakeup_lock = SYSTEM_CLOCK_DFLL_WAKEUP_LOCK_KEEP;
- config->stable_tracking = SYSTEM_CLOCK_DFLL_STABLE_TRACKING_TRACK_AFTER_LOCK;
- config->on_demand = true;
-
- /* Open loop mode calibration value */
- config->coarse_value = 0x1f / 4; /* Midpoint */
- config->fine_value = 0xff / 4; /* Midpoint */
-
- /* Closed loop mode */
- config->coarse_max_step = 1;
- config->fine_max_step = 1;
- config->multiply_factor = 6; /* Multiply 8MHz by 6 to get 48MHz */
-}
-
-void system_clock_source_dfll_set_config(
- struct system_clock_source_dfll_config *const config);
-
-/**
- * @}
- */
-
-/**
- * \name Clock Source Management
- * @{
- */
-enum status_code system_clock_source_write_calibration(
- const enum system_clock_source system_clock_source,
- const uint16_t calibration_value,
- const uint8_t freq_range);
-
-enum status_code system_clock_source_enable(
- const enum system_clock_source system_clock_source);
-
-enum status_code system_clock_source_disable(
- const enum system_clock_source clk_source);
-
-bool system_clock_source_is_ready(
- const enum system_clock_source clk_source);
-
-uint32_t system_clock_source_get_hz(
- const enum system_clock_source clk_source);
-
-/**
- * @}
- */
-
-/**
- * \name Main Clock Management
- * @{
- */
-
-/**
- * \brief Set main CPU clock divider.
- *
- * Sets the clock divider used on the main clock to provide the CPU clock.
- *
- * \param[in] divider CPU clock divider to set
- */
-static inline void system_cpu_clock_set_divider(
- const enum system_main_clock_div divider)
-{
- Assert(((uint32_t)divider & PM_CPUSEL_CPUDIV_Msk) == divider);
- PM->CPUSEL.reg = (uint32_t)divider;
-}
-
-/**
- * \brief Retrieves the current frequency of the CPU core.
- *
- * Retrieves the operating frequency of the CPU core, obtained from the main
- * generic clock and the set CPU bus divider.
- *
- * \return Current CPU frequency in Hz.
- */
-static inline uint32_t system_cpu_clock_get_hz(void)
-{
- return (system_gclk_gen_get_hz(GCLK_GENERATOR_0) >> PM->CPUSEL.reg);
-}
-
-/**
- * \brief Set APBx clock divider.
- *
- * Set the clock divider used on the main clock to provide the clock for the
- * given APBx bus.
- *
- * \param[in] divider APBx bus divider to set
- * \param[in] bus APBx bus to set divider
- *
- * \returns Status of the clock division change operation.
- *
- * \retval STATUS_ERR_INVALID_ARG Invalid bus ID was given
- * \retval STATUS_OK The APBx clock was set successfully
- */
-static inline enum status_code system_apb_clock_set_divider(
- const enum system_clock_apb_bus bus,
- const enum system_main_clock_div divider)
-{
- switch (bus) {
- case SYSTEM_CLOCK_APB_APBA:
- PM->APBASEL.reg = (uint32_t)divider;
- break;
- case SYSTEM_CLOCK_APB_APBB:
- PM->APBBSEL.reg = (uint32_t)divider;
- break;
- case SYSTEM_CLOCK_APB_APBC:
- PM->APBCSEL.reg = (uint32_t)divider;
- break;
- default:
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
- }
-
- return STATUS_OK;
-}
-
-/**
- * \brief Retrieves the current frequency of a ABPx.
- *
- * Retrieves the operating frequency of an APBx bus, obtained from the main
- * generic clock and the set APBx bus divider.
- *
- * \return Current APBx bus frequency in Hz.
- */
-static inline uint32_t system_apb_clock_get_hz(
- const enum system_clock_apb_bus bus)
-{
- uint16_t bus_divider = 0;
-
- switch (bus) {
- case SYSTEM_CLOCK_APB_APBA:
- bus_divider = PM->APBASEL.reg;
- break;
- case SYSTEM_CLOCK_APB_APBB:
- bus_divider = PM->APBBSEL.reg;
- break;
- case SYSTEM_CLOCK_APB_APBC:
- bus_divider = PM->APBCSEL.reg;
- break;
- default:
- Assert(false);
- return 0;
- }
-
- return (system_gclk_gen_get_hz(GCLK_GENERATOR_0) >> bus_divider);
-}
-
-
-/**
- * @}
- */
-
-/**
- * \name Bus Clock Masking
- * @{
- */
-
-/**
- * \brief Set bits in the clock mask for the AHB bus.
- *
- * This function will set bits in the clock mask for the AHB bus.
- * Any bits set to 1 will enable that clock, 0 bits in the mask
- * will be ignored.
- *
- * \param[in] ahb_mask AHB clock mask to enable
- */
-static inline void system_ahb_clock_set_mask(
- const uint32_t ahb_mask)
-{
- PM->AHBMASK.reg |= ahb_mask;
-}
-
-/**
- * \brief Clear bits in the clock mask for the AHB bus.
- *
- * This function will clear bits in the clock mask for the AHB bus.
- * Any bits set to 1 will disable that clock, 0 bits in the mask
- * will be ignored.
- *
- * \param[in] ahb_mask AHB clock mask to disable
- */
-static inline void system_ahb_clock_clear_mask(
- const uint32_t ahb_mask)
-{
- PM->AHBMASK.reg &= ~ahb_mask;
-}
-
-/**
- * \brief Set bits in the clock mask for an APBx bus.
- *
- * This function will set bits in the clock mask for an APBx bus.
- * Any bits set to 1 will enable the corresponding module clock, zero bits in
- * the mask will be ignored.
- *
- * \param[in] mask APBx clock mask, a \c SYSTEM_CLOCK_APB_APBx constant from
- * the device header files
- * \param[in] bus Bus to set clock mask bits for, a mask of \c PM_APBxMASK_*
- * constants from the device header files
- *
- * \returns Status indicating the result of the clock mask change operation.
- *
- * \retval STATUS_ERR_INVALID_ARG Invalid bus given
- * \retval STATUS_OK The clock mask was set successfully
- */
-static inline enum status_code system_apb_clock_set_mask(
- const enum system_clock_apb_bus bus,
- const uint32_t mask)
-{
- switch (bus) {
- case SYSTEM_CLOCK_APB_APBA:
- PM->APBAMASK.reg |= mask;
- break;
-
- case SYSTEM_CLOCK_APB_APBB:
- PM->APBBMASK.reg |= mask;
- break;
-
- case SYSTEM_CLOCK_APB_APBC:
- PM->APBCMASK.reg |= mask;
- break;
-
- default:
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
-
- }
-
- return STATUS_OK;
-}
-
-/**
- * \brief Clear bits in the clock mask for an APBx bus.
- *
- * This function will clear bits in the clock mask for an APBx bus.
- * Any bits set to 1 will disable the corresponding module clock, zero bits in
- * the mask will be ignored.
- *
- * \param[in] mask APBx clock mask, a \c SYSTEM_CLOCK_APB_APBx constant from
- * the device header files
- * \param[in] bus Bus to clear clock mask bits
- *
- * \returns Status indicating the result of the clock mask change operation.
- *
- * \retval STATUS_ERR_INVALID_ARG Invalid bus ID was given
- * \retval STATUS_OK The clock mask was changed successfully
- */
-static inline enum status_code system_apb_clock_clear_mask(
- const enum system_clock_apb_bus bus,
- const uint32_t mask)
-{
- switch (bus) {
- case SYSTEM_CLOCK_APB_APBA:
- PM->APBAMASK.reg &= ~mask;
- break;
-
- case SYSTEM_CLOCK_APB_APBB:
- PM->APBBMASK.reg &= ~mask;
- break;
-
- case SYSTEM_CLOCK_APB_APBC:
- PM->APBCMASK.reg &= ~mask;
- break;
-
- default:
- Assert(false);
- return STATUS_ERR_INVALID_ARG;
- }
-
- return STATUS_OK;
-}
-
-/**
- * @}
- */
-
-#ifdef FEATURE_SYSTEM_CLOCK_DPLL
-/**
- * \brief Reference clock source of the DPLL module.
- */
-enum system_clock_source_dpll_reference_clock {
- /** Select XOSC32K as clock reference. */
- SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_XOSC32K,
- /** Select XOSC as clock reference. */
- SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_XOSC,
- /** Select GCLK as clock reference. */
- SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_GCLK,
-};
-
-/**
- * \brief Lock time-out value of the DPLL module.
- */
-enum system_clock_source_dpll_lock_time {
- /** Set no time-out as default. */
- SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_DEFAULT,
- /** Set time-out if no lock within 8ms. */
- SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_8MS = 0x04,
- /** Set time-out if no lock within 9ms. */
- SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_9MS,
- /** Set time-out if no lock within 10ms. */
- SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_10MS,
- /** Set time-out if no lock within 11ms. */
- SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_11MS,
-};
-
-/**
- * \brief Filter type of the DPLL module.
- */
-enum system_clock_source_dpll_filter {
- /** Default filter mode. */
- SYSTEM_CLOCK_SOURCE_DPLL_FILTER_DEFAULT,
- /** Low bandwidth filter. */
- SYSTEM_CLOCK_SOURCE_DPLL_FILTER_LOW_BANDWIDTH_FILTER,
- /** High bandwidth filter. */
- SYSTEM_CLOCK_SOURCE_DPLL_FILTER_HIGH_BANDWIDTH_FILTER,
- /** High damping filter. */
- SYSTEM_CLOCK_SOURCE_DPLL_FILTER_HIGH_DAMPING_FILTER,
-};
-
-/**
- * \brief Configuration structure for DPLL.
- *
- * DPLL oscillator configuration structure.
- */
-struct system_clock_source_dpll_config {
- /** Run On Demand. If this is set the DPLL won't run
- * until requested by a peripheral. */
- bool on_demand;
- /** Keep the DPLL enabled in standby sleep mode. */
- bool run_in_standby;
- /** Bypass lock signal. */
- bool lock_bypass;
- /** Wake up fast. If this is set DPLL output clock is enabled after
- * the startup time. */
- bool wake_up_fast;
- /** Enable low power mode. */
- bool low_power_enable;
-
- /** Output frequency of the clock. */
- uint32_t output_frequency;
- /** Reference frequency of the clock. */
- uint32_t reference_frequency;
- /** Devider of reference clock. */
- uint16_t reference_divider;
-
- /** Filter type of the DPLL module. */
- enum system_clock_source_dpll_filter filter;
- /** Lock time-out value of the DPLL module. */
- enum system_clock_source_dpll_lock_time lock_time;
- /** Reference clock source of the DPLL module. */
- enum system_clock_source_dpll_reference_clock reference_clock;
-};
-
-/**
- * \name Internal DPLL Management
- * @{
- */
-
-/**
- * \brief Retrieve the default configuration for DPLL.
- *
- * Fills a configuration structure with the default configuration for a
- * DPLL oscillator module:
- * - Run only when requested by peripheral (on demand)
- * - Don't run in STANDBY sleep mode
- * - Lock bypass disabled
- * - Fast wake up disabled
- * - Low power mode disabled
- * - Output frequency is 48MHz
- * - Reference clock frequency is 32768Hz
- * - Not divide reference clock
- * - Select REF0 as reference clock
- * - Set lock time to default mode
- * - Use default filter
- *
- * \param[out] config Configuration structure to fill with default values
- */
-static inline void system_clock_source_dpll_get_config_defaults(
- struct system_clock_source_dpll_config *const config)
-{
- config->on_demand = true;
- config->run_in_standby = false;
- config->lock_bypass = false;
- config->wake_up_fast = false;
- config->low_power_enable = false;
-
- config->output_frequency = 48000000;
- config->reference_frequency = 32768;
- config->reference_divider = 1;
- config->reference_clock = SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_XOSC32K;
-
- config->lock_time = SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_DEFAULT;
- config->filter = SYSTEM_CLOCK_SOURCE_DPLL_FILTER_DEFAULT;
-};
-
-void system_clock_source_dpll_set_config(
- struct system_clock_source_dpll_config *const config);
-
-/* @} */
-#endif
-
-/**
- * \name System Clock Initialization
- * @{
- */
-
-void system_clock_init(void);
-
-/**
- * @}
- */
-
-/**
- * \name System Flash Wait States
- * @{
- */
-
-/**
- * \brief Set flash controller wait states.
- *
- * Will set the number of wait states that are used by the onboard
- * flash memory. The number of wait states depend on both device
- * supply voltage and CPU speed. The required number of wait states
- * can be found in the electrical characteristics of the device.
- *
- * \param[in] wait_states Number of wait states to use for internal flash
- */
-static inline void system_flash_set_waitstates(uint8_t wait_states)
-{
- Assert(NVMCTRL_CTRLB_RWS((uint32_t)wait_states) ==
- ((uint32_t)wait_states << NVMCTRL_CTRLB_RWS_Pos));
-
- NVMCTRL->CTRLB.bit.RWS = wait_states;
-}
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * \page asfdoc_sam0_system_clock_extra Extra Information for SYSTEM CLOCK Driver
- *
- * \section asfdoc_sam0_system_clock_extra_acronyms Acronyms
- * Below is a table listing the acronyms used in this module, along with their
- * intended meanings.
- *
- *
- *
- *
Acronym
- *
Description
- *
- *
- *
DFLL
- *
Digital Frequency Locked Loop
- *
- *
- *
MUX
- *
Multiplexer
- *
- *
- *
OSC32K
- *
Internal 32KHz Oscillator
- *
- *
- *
OSC8M
- *
Internal 8MHz Oscillator
- *
- *
- *
PLL
- *
Phase Locked Loop
- *
- *
- *
OSC
- *
Oscillator
- *
- *
- *
XOSC
- *
External Oscillator
- *
- *
- *
XOSC32K
- *
External 32KHz Oscillator
- *
- *
- *
AHB
- *
Advanced High-performance Bus
- *
- *
- *
APB
- *
Advanced Peripheral Bus
- *
- *
- *
DPLL
- *
Digital Phase Locked Loop
- *
- *
- *
- *
- * \section asfdoc_sam0_system_clock_extra_dependencies Dependencies
- * This driver has the following dependencies:
- *
- * - None
- *
- *
- * \section asfdoc_sam0_system_clock_extra_errata Errata
- *
- * - This driver implements experimental workaround for errata 9905
- *
- * "The DFLL clock must be requested before being configured otherwise a
- * write access to a DFLL register can freeze the device."
- * This driver will enable and configure the DFLL before the ONDEMAND bit is set.
- *
- *
- * \section asfdoc_sam0_system_clock_extra_history Module History
- * An overview of the module history is presented in the table below, with
- * details on the enhancements and fixes made to the module since its first
- * release. The current version of this corresponds to the newest version in
- * the table.
- *
- *
- *
- *
Changelog
- *
- *
- *
- * \li Corrected OSC32K startup time definitions
- * \li Support locking of OSC32K and XOSC32K config register (default: false)
- * \li Added DPLL support, functions added:
- * \c system_clock_source_dpll_get_config_defaults() and
- * \c system_clock_source_dpll_set_config()
- * \li Moved gclk channel locking feature out of the config struct
- * functions added:
- * \c system_gclk_chan_lock(),
- * \c system_gclk_chan_is_locked()
- * \c system_gclk_chan_is_enabled() and
- * \c system_gclk_gen_is_enabled()
- *
- *
- *
- *
Fixed \c system_gclk_chan_disable() deadlocking if a channel is enabled
- * and configured to a failed/not running clock generator
- *
- *
- *
- * \li Changed default value for CONF_CLOCK_DFLL_ON_DEMAND from \c true to \c false
- * \li Fixed system_flash_set_waitstates() failing with an assertion
- * if an odd number of wait states provided
- *
- *
- *
- *
- * \li Updated DFLL configuration function to implement workaround for
- * errata 9905 in the DFLL module
- * \li Updated \c system_clock_init() to reset interrupt flags before
- * they are used
- * \li Fixed \c system_clock_source_get_hz() to return correcy DFLL
- * frequency number
- *
- *
- *
- *
\li Fixed \c system_clock_source_is_ready not returning the correct
- * state for \c SYSTEM_CLOCK_SOURCE_OSC8M
- * \li Renamed the various \c system_clock_source_*_get_default_config()
- * functions to \c system_clock_source_*_get_config_defaults() to
- * match the remainder of ASF
- * \li Added OSC8M calibration constant loading from the device signature
- * row when the oscillator is initialized
- * \li Updated default configuration of the XOSC32 to disable Automatic
- * Gain Control due to silicon errata
- *
- *
- *
- *
Initial Release
- *
- *
- */
-
-/**
- * \page asfdoc_sam0_system_clock_exqsg Examples for System Clock Driver
- *
- * This is a list of the available Quick Start guides (QSGs) and example
- * applications for \ref asfdoc_sam0_system_clock_group. QSGs are simple
- * examples with step-by-step instructions to configure and use this driver in
- * a selection of use cases. Note that a QSG can be compiled as a standalone
- * application or be added to the user application.
- *
- * - \subpage asfdoc_sam0_system_clock_basic_use_case
- * - \subpage asfdoc_sam0_system_gclk_basic_use_case
- *
- * \page asfdoc_sam0_system_clock_document_revision_history Document Revision History
- *
- *
- *
- *
Doc. Rev.
- *
Date
- *
Comments
- *
- *
- *
42119E
- *
12/2015
- *
Added support for SAM DA1 and SAM D09
- *
- *
- *
42119D
- *
12/2014
- *
Added support for SAM R21 and SAM D10/D11
- *
- *
- *
42119C
- *
01/2014
- *
Added support for SAM D21
- *
- *
- *
42119B
- *
06/2013
- *
Corrected documentation typos. Fixed missing steps in the Basic
- * Use Case Quick Start Guide
- *
- *
- *
42119A
- *
06/2013
- *
Initial release
- *
- *
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* SYSTEM_CLOCK_FEATURE_H_INCLUDED */
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/gclk.c b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/gclk.c
deleted file mode 100644
index 61c2084..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/clock/clock_samd21_r21_da_ha1/gclk.c
+++ /dev/null
@@ -1,512 +0,0 @@
-/**
- * \file
- *
- * \brief SAM D21/R21/DA/HA Generic Clock Driver
- *
- * Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#include
-#include
-#include
-
-/**
- * \brief Determines if the hardware module(s) are currently synchronizing to the bus.
- *
- * Checks to see if the underlying hardware peripheral module(s) are currently
- * synchronizing across multiple clock domains to the hardware bus, This
- * function can be used to delay further operations on a module until such time
- * that it is ready, to prevent blocking delays for synchronization in the
- * user application.
- *
- * \return Synchronization status of the underlying hardware module(s).
- *
- * \retval false if the module has completed synchronization
- * \retval true if the module synchronization is ongoing
- */
-static inline bool system_gclk_is_syncing(void)
-{
- if (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY){
- return true;
- }
-
- return false;
-}
-
-/**
- * \brief Initializes the GCLK driver.
- *
- * Initializes the Generic Clock module, disabling and resetting all active
- * Generic Clock Generators and Channels to their power-on default values.
- */
-void system_gclk_init(void)
-{
- /* Turn on the digital interface clock */
- system_apb_clock_set_mask(SYSTEM_CLOCK_APB_APBA, PM_APBAMASK_GCLK);
-
- /* Software reset the module to ensure it is re-initialized correctly */
- GCLK->CTRL.reg = GCLK_CTRL_SWRST;
- while (GCLK->CTRL.reg & GCLK_CTRL_SWRST) {
- /* Wait for reset to complete */
- }
-}
-
-/**
- * \brief Writes a Generic Clock Generator configuration to the hardware module.
- *
- * Writes out a given configuration of a Generic Clock Generator configuration
- * to the hardware module.
- *
- * \note Changing the clock source on the fly (on a running
- * generator) can take additional time if the clock source is configured
- * to only run on-demand (ONDEMAND bit is set) and it is not currently
- * running (no peripheral is requesting the clock source). In this case
- * the GCLK will request the new clock while still keeping a request to
- * the old clock source until the new clock source is ready.
- *
- * \note This function will not start a generator that is not already running;
- * to start the generator, call \ref system_gclk_gen_enable()
- * after configuring a generator.
- *
- * \param[in] generator Generic Clock Generator index to configure
- * \param[in] config Configuration settings for the generator
- */
-void system_gclk_gen_set_config(
- const uint8_t generator,
- struct system_gclk_gen_config *const config)
-{
- /* Sanity check arguments */
- Assert(config);
-
- /* Cache new register configurations to minimize sync requirements. */
- uint32_t new_genctrl_config = (generator << GCLK_GENCTRL_ID_Pos);
- uint32_t new_gendiv_config = (generator << GCLK_GENDIV_ID_Pos);
-
- /* Select the requested source clock for the generator */
- new_genctrl_config |= config->source_clock << GCLK_GENCTRL_SRC_Pos;
-
- /* Configure the clock to be either high or low when disabled */
- if (config->high_when_disabled) {
- new_genctrl_config |= GCLK_GENCTRL_OOV;
- }
-
- /* Configure if the clock output to I/O pin should be enabled. */
- if (config->output_enable) {
- new_genctrl_config |= GCLK_GENCTRL_OE;
- }
-
- /* Set division factor */
- if (config->division_factor > 1) {
- /* Check if division is a power of two */
- if (((config->division_factor & (config->division_factor - 1)) == 0)) {
- /* Determine the index of the highest bit set to get the
- * division factor that must be loaded into the division
- * register */
-
- uint32_t div2_count = 0;
-
- uint32_t mask;
- for (mask = (1UL << 1); mask < config->division_factor;
- mask <<= 1) {
- div2_count++;
- }
-
- /* Set binary divider power of 2 division factor */
- new_gendiv_config |= div2_count << GCLK_GENDIV_DIV_Pos;
- new_genctrl_config |= GCLK_GENCTRL_DIVSEL;
- } else {
- /* Set integer division factor */
-
- new_gendiv_config |=
- (config->division_factor) << GCLK_GENDIV_DIV_Pos;
-
- /* Enable non-binary division with increased duty cycle accuracy */
- new_genctrl_config |= GCLK_GENCTRL_IDC;
- }
-
- }
-
- /* Enable or disable the clock in standby mode */
- if (config->run_in_standby) {
- new_genctrl_config |= GCLK_GENCTRL_RUNSTDBY;
- }
-
- while (system_gclk_is_syncing()) {
- /* Wait for synchronization */
- };
-
- system_interrupt_enter_critical_section();
-
- /* Select the correct generator */
- *((uint8_t*)&GCLK->GENDIV.reg) = generator;
-
- /* Write the new generator configuration */
- while (system_gclk_is_syncing()) {
- /* Wait for synchronization */
- };
- GCLK->GENDIV.reg = new_gendiv_config;
-
- while (system_gclk_is_syncing()) {
- /* Wait for synchronization */
- };
- GCLK->GENCTRL.reg = new_genctrl_config | (GCLK->GENCTRL.reg & GCLK_GENCTRL_GENEN);
-
- system_interrupt_leave_critical_section();
-}
-
-/**
- * \brief Enables a Generic Clock Generator that was previously configured.
- *
- * Starts the clock generation of a Generic Clock Generator that was previously
- * configured via a call to \ref system_gclk_gen_set_config().
- *
- * \param[in] generator Generic Clock Generator index to enable
- */
-void system_gclk_gen_enable(
- const uint8_t generator)
-{
- while (system_gclk_is_syncing()) {
- /* Wait for synchronization */
- };
-
- system_interrupt_enter_critical_section();
-
- /* Select the requested generator */
- *((uint8_t*)&GCLK->GENCTRL.reg) = generator;
- while (system_gclk_is_syncing()) {
- /* Wait for synchronization */
- };
-
- /* Enable generator */
- GCLK->GENCTRL.reg |= GCLK_GENCTRL_GENEN;
-
- system_interrupt_leave_critical_section();
-}
-
-/**
- * \brief Disables a Generic Clock Generator that was previously enabled.
- *
- * Stops the clock generation of a Generic Clock Generator that was previously
- * started via a call to \ref system_gclk_gen_enable().
- *
- * \param[in] generator Generic Clock Generator index to disable
- */
-void system_gclk_gen_disable(
- const uint8_t generator)
-{
- while (system_gclk_is_syncing()) {
- /* Wait for synchronization */
- };
-
- system_interrupt_enter_critical_section();
-
- /* Select the requested generator */
- *((uint8_t*)&GCLK->GENCTRL.reg) = generator;
- while (system_gclk_is_syncing()) {
- /* Wait for synchronization */
- };
-
- /* Disable generator */
- GCLK->GENCTRL.reg &= ~GCLK_GENCTRL_GENEN;
- while (GCLK->GENCTRL.reg & GCLK_GENCTRL_GENEN) {
- /* Wait for clock to become disabled */
- }
-
- system_interrupt_leave_critical_section();
-}
-
-/**
- * \brief Determins if the specified Generic Clock Generator is enabled.
- *
- * \param[in] generator Generic Clock Generator index to check
- *
- * \return The enabled status.
- * \retval true The Generic Clock Generator is enabled
- * \retval false The Generic Clock Generator is disabled
- */
-bool system_gclk_gen_is_enabled(
- const uint8_t generator)
-{
- bool enabled;
-
- system_interrupt_enter_critical_section();
-
- /* Select the requested generator */
- *((uint8_t*)&GCLK->GENCTRL.reg) = generator;
- /* Obtain the enabled status */
- enabled = (GCLK->GENCTRL.reg & GCLK_GENCTRL_GENEN);
-
- system_interrupt_leave_critical_section();
-
- return enabled;
-}
-
-/**
- * \brief Retrieves the clock frequency of a Generic Clock generator.
- *
- * Determines the clock frequency (in Hz) of a specified Generic Clock
- * generator, used as a source to a Generic Clock Channel module.
- *
- * \param[in] generator Generic Clock Generator index
- *
- * \return The frequency of the generic clock generator, in Hz.
- */
-uint32_t system_gclk_gen_get_hz(
- const uint8_t generator)
-{
- while (system_gclk_is_syncing()) {
- /* Wait for synchronization */
- };
-
- system_interrupt_enter_critical_section();
-
- /* Select the appropriate generator */
- *((uint8_t*)&GCLK->GENCTRL.reg) = generator;
- while (system_gclk_is_syncing()) {
- /* Wait for synchronization */
- };
-
- /* Get the frequency of the source connected to the GCLK generator */
- uint32_t gen_input_hz = system_clock_source_get_hz(
- (enum system_clock_source)GCLK->GENCTRL.bit.SRC);
-
- *((uint8_t*)&GCLK->GENCTRL.reg) = generator;
-
- uint8_t divsel = GCLK->GENCTRL.bit.DIVSEL;
-
- /* Select the appropriate generator division register */
- *((uint8_t*)&GCLK->GENDIV.reg) = generator;
- while (system_gclk_is_syncing()) {
- /* Wait for synchronization */
- };
-
- uint32_t divider = GCLK->GENDIV.bit.DIV;
-
- system_interrupt_leave_critical_section();
-
- /* Check if the generator is using fractional or binary division */
- if (!divsel && divider > 1) {
- gen_input_hz /= divider;
- } else if (divsel) {
- gen_input_hz >>= (divider+1);
- }
-
- return gen_input_hz;
-}
-
-/**
- * \brief Writes a Generic Clock configuration to the hardware module.
- *
- * Writes out a given configuration of a Generic Clock configuration to the
- * hardware module. If the clock is currently running, it will be stopped.
- *
- * \note Once called the clock will not be running; to start the clock,
- * call \ref system_gclk_chan_enable() after configuring a clock channel.
- *
- * \param[in] channel Generic Clock channel to configure
- * \param[in] config Configuration settings for the clock
- *
- */
-void system_gclk_chan_set_config(
- const uint8_t channel,
- struct system_gclk_chan_config *const config)
-{
- /* Sanity check arguments */
- Assert(config);
-
- /* Cache the new config to reduce sync requirements */
- uint32_t new_clkctrl_config = (channel << GCLK_CLKCTRL_ID_Pos);
-
- /* Select the desired generic clock generator */
- new_clkctrl_config |= config->source_generator << GCLK_CLKCTRL_GEN_Pos;
-
- /* Disable generic clock channel */
- system_gclk_chan_disable(channel);
-
- /* Write the new configuration */
- GCLK->CLKCTRL.reg = new_clkctrl_config;
-}
-
-/**
- * \brief Enables a Generic Clock that was previously configured.
- *
- * Starts the clock generation of a Generic Clock that was previously
- * configured via a call to \ref system_gclk_chan_set_config().
- *
- * \param[in] channel Generic Clock channel to enable
- */
-void system_gclk_chan_enable(
- const uint8_t channel)
-{
- system_interrupt_enter_critical_section();
-
- /* Select the requested generator channel */
- *((uint8_t*)&GCLK->CLKCTRL.reg) = channel;
-
- /* Enable the generic clock */
- GCLK->CLKCTRL.reg |= GCLK_CLKCTRL_CLKEN;
-
- system_interrupt_leave_critical_section();
-}
-
-/**
- * \brief Disables a Generic Clock that was previously enabled.
- *
- * Stops the clock generation of a Generic Clock that was previously started
- * via a call to \ref system_gclk_chan_enable().
- *
- * \param[in] channel Generic Clock channel to disable
- */
-void system_gclk_chan_disable(
- const uint8_t channel)
-{
- system_interrupt_enter_critical_section();
-
- /* Select the requested generator channel */
- *((uint8_t*)&GCLK->CLKCTRL.reg) = channel;
-
- /* Sanity check WRTLOCK */
- Assert(!GCLK->CLKCTRL.bit.WRTLOCK);
-
- /* Switch to known-working source so that the channel can be disabled */
- uint32_t prev_gen_id = GCLK->CLKCTRL.bit.GEN;
- GCLK->CLKCTRL.bit.GEN = 0;
-
- /* Disable the generic clock */
- GCLK->CLKCTRL.reg &= ~GCLK_CLKCTRL_CLKEN;
- while (GCLK->CLKCTRL.reg & GCLK_CLKCTRL_CLKEN) {
- /* Wait for clock to become disabled */
- }
-
- /* Restore previous configured clock generator */
- GCLK->CLKCTRL.bit.GEN = prev_gen_id;
-
- system_interrupt_leave_critical_section();
-}
-
-/**
- * \brief Determins if the specified Generic Clock channel is enabled.
- *
- * \param[in] channel Generic Clock Channel index
- *
- * \return The enabled status.
- * \retval true The Generic Clock channel is enabled
- * \retval false The Generic Clock channel is disabled
- */
-bool system_gclk_chan_is_enabled(
- const uint8_t channel)
-{
- bool enabled;
-
- system_interrupt_enter_critical_section();
-
- /* Select the requested generic clock channel */
- *((uint8_t*)&GCLK->CLKCTRL.reg) = channel;
- enabled = GCLK->CLKCTRL.bit.CLKEN;
-
- system_interrupt_leave_critical_section();
-
- return enabled;
-}
-
-/**
- * \brief Locks a Generic Clock channel from further configuration writes.
- *
- * Locks a generic clock channel from further configuration writes. It is only
- * possible to unlock the channel configuration through a power on reset.
- *
- * \param[in] channel Generic Clock channel to enable
- */
-void system_gclk_chan_lock(
- const uint8_t channel)
-{
- system_interrupt_enter_critical_section();
-
- /* Select the requested generator channel */
- *((uint8_t*)&GCLK->CLKCTRL.reg) = channel;
-
- /* Lock the generic clock */
- GCLK->CLKCTRL.reg |= GCLK_CLKCTRL_WRTLOCK | GCLK_CLKCTRL_CLKEN;
-
- system_interrupt_leave_critical_section();
-}
-
-/**
- * \brief Determins if the specified Generic Clock channel is locked.
- *
- * \param[in] channel Generic Clock Channel index
- *
- * \return The lock status.
- * \retval true The Generic Clock channel is locked
- * \retval false The Generic Clock channel is not locked
- */
-bool system_gclk_chan_is_locked(
- const uint8_t channel)
-{
- bool locked;
-
- system_interrupt_enter_critical_section();
-
- /* Select the requested generic clock channel */
- *((uint8_t*)&GCLK->CLKCTRL.reg) = channel;
- locked = GCLK->CLKCTRL.bit.WRTLOCK;
-
- system_interrupt_leave_critical_section();
-
- return locked;
-}
-
-/**
- * \brief Retrieves the clock frequency of a Generic Clock channel.
- *
- * Determines the clock frequency (in Hz) of a specified Generic Clock
- * channel, used as a source to a device peripheral module.
- *
- * \param[in] channel Generic Clock Channel index
- *
- * \return The frequency of the generic clock channel, in Hz.
- */
-uint32_t system_gclk_chan_get_hz(
- const uint8_t channel)
-{
- uint8_t gen_id;
-
- system_interrupt_enter_critical_section();
-
- /* Select the requested generic clock channel */
- *((uint8_t*)&GCLK->CLKCTRL.reg) = channel;
- gen_id = GCLK->CLKCTRL.bit.GEN;
-
- system_interrupt_leave_critical_section();
-
- /* Return the clock speed of the associated GCLK generator */
- return system_gclk_gen_get_hz(gen_id);
-}
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/clock/gclk.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/clock/gclk.h
deleted file mode 100644
index 6b0582c..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/clock/gclk.h
+++ /dev/null
@@ -1,297 +0,0 @@
-/**
- * \file
- *
- * \brief SAM Generic Clock Driver
- *
- * Copyright (c) 2012-2020 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef SYSTEM_CLOCK_GCLK_H_INCLUDED
-#define SYSTEM_CLOCK_GCLK_H_INCLUDED
-
-/**
- * \addtogroup asfdoc_sam0_system_clock_group
- *
- * @{
- */
-
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief List of available GCLK generators.
- *
- * List of Available GCLK generators. This enum is used in the peripheral
- * device drivers to select the GCLK generator to be used for its operation.
- *
- * The number of GCLK generators available is device dependent.
- */
-enum gclk_generator {
- /** GCLK generator channel 0 */
- GCLK_GENERATOR_0,
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 0)
- /** GCLK generator channel 1 */
- GCLK_GENERATOR_1,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 1)
- /** GCLK generator channel 2 */
- GCLK_GENERATOR_2,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 2)
- /** GCLK generator channel 3 */
- GCLK_GENERATOR_3,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 3)
- /** GCLK generator channel 4 */
- GCLK_GENERATOR_4,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 4)
- /** GCLK generator channel 5 */
- GCLK_GENERATOR_5,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 5)
- /** GCLK generator channel 6 */
- GCLK_GENERATOR_6,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 6)
- /** GCLK generator channel 7 */
- GCLK_GENERATOR_7,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 7)
- /** GCLK generator channel 8 */
- GCLK_GENERATOR_8,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 8)
- /** GCLK generator channel 9 */
- GCLK_GENERATOR_9,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 9)
- /** GCLK generator channel 10 */
- GCLK_GENERATOR_10,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 10)
- /** GCLK generator channel 11 */
- GCLK_GENERATOR_11,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 11)
- /** GCLK generator channel 12 */
- GCLK_GENERATOR_12,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 12)
- /** GCLK generator channel 13 */
- GCLK_GENERATOR_13,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 13)
- /** GCLK generator channel 14 */
- GCLK_GENERATOR_14,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 14)
- /** GCLK generator channel 15 */
- GCLK_GENERATOR_15,
-#endif
-#if defined(__DOXYGEN__) || (GCLK_GEN_NUM_MSB > 15)
- /** GCLK generator channel 16 */
- GCLK_GENERATOR_16,
-#endif
-};
-
-/**
- * \brief Generic Clock Generator configuration structure.
- *
- * Configuration structure for a Generic Clock Generator channel. This
- * structure should be initialized by the
- * \ref system_gclk_gen_get_config_defaults() function before being modified by
- * the user application.
- */
-struct system_gclk_gen_config {
- /** Source clock input channel index, see the \ref system_clock_source */
- uint8_t source_clock;
- /** If \c true, the generator output level is high when disabled */
- bool high_when_disabled;
- /** Integer division factor of the clock output compared to the input */
- uint32_t division_factor;
- /** If \c true, the clock is kept enabled during device standby mode */
- bool run_in_standby;
- /** If \c true, enables GCLK generator clock output to a GPIO pin */
- bool output_enable;
-};
-
-/**
- * \brief Generic Clock configuration structure.
- *
- * Configuration structure for a Generic Clock channel. This structure
- * should be initialized by the \ref system_gclk_chan_get_config_defaults()
- * function before being modified by the user application.
- */
-struct system_gclk_chan_config {
- /** Generic Clock Generator source channel */
- enum gclk_generator source_generator;
-};
-
-/** \name Generic Clock Management
- * @{
- */
-void system_gclk_init(void);
-
-/** @} */
-
-
-/**
- * \name Generic Clock Management (Generators)
- * @{
- */
-
-/**
- * \brief Initializes a Generic Clock Generator configuration structure to defaults.
- *
- * Initializes a given Generic Clock Generator configuration structure to
- * a set of known default values. This function should be called on all
- * new instances of these configuration structures before being modified
- * by the user application.
- *
- * The default configuration is:
- * \li The clock is generated undivided from the source frequency
- * \li The clock generator output is low when the generator is disabled
- * \li The input clock is sourced from input clock channel 0
- * \li The clock will be disabled during sleep
- * \li The clock output will not be routed to a physical GPIO pin
- *
- * \param[out] config Configuration structure to initialize to default values
- */
-static inline void system_gclk_gen_get_config_defaults(
- struct system_gclk_gen_config *const config)
-{
- /* Sanity check arguments */
- Assert(config);
-
- /* Default configuration values */
- config->division_factor = 1;
- config->high_when_disabled = false;
-#if SAML21 || SAML22 || SAMR30 || SAMR34 || SAMR35 || (WLR089)
- config->source_clock = GCLK_SOURCE_OSC16M;
-#elif (SAMC20) || (SAMC21)
- config->source_clock = GCLK_SOURCE_OSC48M;
-#else
- config->source_clock = GCLK_SOURCE_OSC8M;
-#endif
- config->run_in_standby = false;
- config->output_enable = false;
-}
-
-void system_gclk_gen_set_config(
- const uint8_t generator,
- struct system_gclk_gen_config *const config);
-
-void system_gclk_gen_enable(
- const uint8_t generator);
-
-void system_gclk_gen_disable(
- const uint8_t generator);
-
-bool system_gclk_gen_is_enabled(
- const uint8_t generator);
-
-/** @} */
-
-
-/**
- * \name Generic Clock Management (Channels)
- * @{
- */
-
-/**
- * \brief Initializes a Generic Clock configuration structure to defaults.
- *
- * Initializes a given Generic Clock configuration structure to a set of
- * known default values. This function should be called on all new
- * instances of these configuration structures before being modified by the
- * user application.
- *
- * The default configuration is as follows:
- * \li The clock is sourced from the Generic Clock Generator channel 0
- * \li The clock configuration will not be write-locked when set
- *
- * \param[out] config Configuration structure to initialize to default values
- */
-static inline void system_gclk_chan_get_config_defaults(
- struct system_gclk_chan_config *const config)
-{
- /* Sanity check arguments */
- Assert(config);
-
- /* Default configuration values */
- config->source_generator = GCLK_GENERATOR_0;
-}
-
-void system_gclk_chan_set_config(
- const uint8_t channel,
- struct system_gclk_chan_config *const config);
-
-void system_gclk_chan_enable(
- const uint8_t channel);
-
-void system_gclk_chan_disable(
- const uint8_t channel);
-
-bool system_gclk_chan_is_enabled(
- const uint8_t channel);
-
-void system_gclk_chan_lock(
- const uint8_t channel);
-
-bool system_gclk_chan_is_locked(
- const uint8_t channel);
-
-/** @} */
-
-
-/**
- * \name Generic Clock Frequency Retrieval
- * @{
- */
-
-uint32_t system_gclk_gen_get_hz(
- const uint8_t generator);
-
-uint32_t system_gclk_chan_get_hz(
- const uint8_t channel);
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-#endif
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/interrupt/system_interrupt.c b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/interrupt/system_interrupt.c
deleted file mode 100644
index 348a774..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/interrupt/system_interrupt.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/**
- * \file
- *
- * \brief SAM System Interrupt Driver
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#include "system_interrupt.h"
-
-/**
- * \brief Check if a interrupt line is pending.
- *
- * Checks if the requested interrupt vector is pending.
- *
- * \param[in] vector Interrupt vector number to check
- *
- * \returns A boolean identifying if the requested interrupt vector is pending.
- *
- * \retval true Specified interrupt vector is pending
- * \retval false Specified interrupt vector is not pending
- *
- */
-bool system_interrupt_is_pending(
- const enum system_interrupt_vector vector)
-{
- bool result;
-
- if (vector >= _SYSTEM_INTERRUPT_EXTERNAL_VECTOR_START) {
- result = ((NVIC->ISPR[0] & (1 << vector)) != 0);
- } else if (vector == SYSTEM_INTERRUPT_SYSTICK) {
- result = ((SCB->ICSR & SCB_ICSR_PENDSTSET_Msk) != 0);
- } else {
- Assert(false);
- result = false;
- }
-
- return result;
-}
-
-/**
- * \brief Set a interrupt vector as pending.
- *
- * Set the requested interrupt vector as pending (i.e. issues a software
- * interrupt request for the specified vector). The software handler will be
- * handled (if enabled) in a priority order based on vector number and
- * configured priority settings.
- *
- * \param[in] vector Interrupt vector number which is set as pending
- *
- * \returns Status code identifying if the vector was successfully set as
- * pending.
- *
- * \retval STATUS_OK If no error was detected
- * \retval STATUS_INVALID_ARG If an unsupported interrupt vector number was given
- */
-enum status_code system_interrupt_set_pending(
- const enum system_interrupt_vector vector)
-{
- enum status_code status = STATUS_OK;
-
- if (vector >= _SYSTEM_INTERRUPT_EXTERNAL_VECTOR_START) {
- NVIC->ISPR[0] = (1 << vector);
- } else if (vector == SYSTEM_INTERRUPT_NON_MASKABLE) {
- /* Note: Because NMI has highest priority it will be executed
- * immediately after it has been set pending */
- SCB->ICSR = SCB_ICSR_NMIPENDSET_Msk;
- } else if (vector == SYSTEM_INTERRUPT_SYSTICK) {
- SCB->ICSR = SCB_ICSR_PENDSTSET_Msk;
- } else {
- /* The user want to set something unsupported as pending */
- Assert(false);
- status = STATUS_ERR_INVALID_ARG;
- }
-
- return status;
-}
-
-/**
- * \brief Clear pending interrupt vector.
- *
- * Clear a pending interrupt vector, so the software handler is not executed.
- *
- * \param[in] vector Interrupt vector number to clear
- *
- * \returns A status code identifying if the interrupt pending state was
- * successfully cleared.
- *
- * \retval STATUS_OK If no error was detected
- * \retval STATUS_INVALID_ARG If an unsupported interrupt vector number was given
- */
-enum status_code system_interrupt_clear_pending(
- const enum system_interrupt_vector vector)
-{
- enum status_code status = STATUS_OK;
-
- if (vector >= _SYSTEM_INTERRUPT_EXTERNAL_VECTOR_START) {
- NVIC->ICPR[0] = (1 << vector);
- } else if (vector == SYSTEM_INTERRUPT_NON_MASKABLE) {
- /* Note: Clearing of NMI pending interrupts does not make sense and is
- * not supported by the device, as it has the highest priority and will
- * always be executed at the moment it is set */
- return STATUS_ERR_INVALID_ARG;
- } else if (vector == SYSTEM_INTERRUPT_SYSTICK) {
- SCB->ICSR = SCB_ICSR_PENDSTCLR_Msk;
- } else {
- Assert(false);
- status = STATUS_ERR_INVALID_ARG;
- }
-
- return status;
-}
-
-/**
- * \brief Set interrupt vector priority level.
- *
- * Set the priority level of an external interrupt or exception.
- *
- * \param[in] vector Interrupt vector to change
- * \param[in] priority_level New vector priority level to set
- *
- * \returns Status code indicating if the priority level of the interrupt was
- * successfully set.
- *
- * \retval STATUS_OK If no error was detected
- * \retval STATUS_INVALID_ARG If an unsupported interrupt vector number was given
- */
-enum status_code system_interrupt_set_priority(
- const enum system_interrupt_vector vector,
- const enum system_interrupt_priority_level priority_level)
-{
- enum status_code status = STATUS_OK;
-
- if (vector >= _SYSTEM_INTERRUPT_EXTERNAL_VECTOR_START) {
- uint8_t register_num = vector / 4;
- uint8_t priority_pos = ((vector % 4) * 8) + (8 - __NVIC_PRIO_BITS);
-
- NVIC->IP[register_num] =
- (NVIC->IP[register_num] & ~(_SYSTEM_INTERRUPT_PRIORITY_MASK << priority_pos)) |
- (priority_level << priority_pos);
-
- } else if (vector == SYSTEM_INTERRUPT_SYSTICK) {
- SCB->SHP[1] = (priority_level << _SYSTEM_INTERRUPT_SYSTICK_PRI_POS);
- } else {
- Assert(false);
- status = STATUS_ERR_INVALID_ARG;
- }
-
- return status;
-}
-
-/**
- * \brief Get interrupt vector priority level.
- *
- * Retrieves the priority level of the requested external interrupt or exception.
- *
- * \param[in] vector Interrupt vector of which the priority level will be read
- *
- * \return Currently configured interrupt priority level of the given interrupt
- * vector.
- */
-enum system_interrupt_priority_level system_interrupt_get_priority(
- const enum system_interrupt_vector vector)
-{
- uint8_t register_num = vector / 4;
- uint8_t priority_pos = ((vector % 4) * 8) + (8 - __NVIC_PRIO_BITS);
-
- enum system_interrupt_priority_level priority = SYSTEM_INTERRUPT_PRIORITY_LEVEL_0;
-
- if (vector >= 0) {
- priority = (enum system_interrupt_priority_level)
- ((NVIC->IP[register_num] >> priority_pos) & _SYSTEM_INTERRUPT_PRIORITY_MASK);
- } else if (vector == SYSTEM_INTERRUPT_SYSTICK) {
- priority = (enum system_interrupt_priority_level)
- ((SCB->SHP[1] >> _SYSTEM_INTERRUPT_SYSTICK_PRI_POS) & _SYSTEM_INTERRUPT_PRIORITY_MASK);
- }
-
- return priority;
-}
-
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/interrupt/system_interrupt.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/interrupt/system_interrupt.h
deleted file mode 100644
index 76ee5e6..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/interrupt/system_interrupt.h
+++ /dev/null
@@ -1,423 +0,0 @@
-/**
- * \file
- *
- * \brief SAM System Interrupt Driver
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef SYSTEM_INTERRUPT_H_INCLUDED
-#define SYSTEM_INTERRUPT_H_INCLUDED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \defgroup asfdoc_sam0_system_interrupt_group SAM System Interrupt (SYSTEM INTERRUPT) Driver
- *
- * This driver for Atmel® | SMART ARM®-based microcontrollers provides
- * an interface for the configuration and management of internal software and
- * hardware interrupts/exceptions.
- *
- * The following peripheral is used by this module:
- * - NVIC (Nested Vector Interrupt Controller)
- *
- * The following devices can use this module:
- * - Atmel | SMART SAM D20/D21
- * - Atmel | SMART SAM R21
- * - Atmel | SMART SAM D09/D10/D11
- * - Atmel | SMART SAM L21/L22
- * - Atmel | SMART SAM DA1
- * - Atmel | SMART SAM C20/C21
- * - Atmel | SMART SAM HA1
- * - Atmel | SMART SAM R30
- * - Atmel | SMART SAM R34
- * - Atmel | SMART SAM R35
- *
- * The outline of this documentation is as follows:
- * - \ref asfdoc_sam0_system_interrupt_prerequisites
- * - \ref asfdoc_sam0_system_interrupt_module_overview
- * - \ref asfdoc_sam0_system_interrupt_special_considerations
- * - \ref asfdoc_sam0_system_interrupt_extra_info
- * - \ref asfdoc_sam0_system_interrupt_examples
- * - \ref asfdoc_sam0_system_interrupt_api_overview
- *
- *
- * \section asfdoc_sam0_system_interrupt_prerequisites Prerequisites
- *
- * There are no prerequisites for this module.
- *
- *
- * \section asfdoc_sam0_system_interrupt_module_overview Module Overview
- *
- * The ARM® Cortex® M0+ core contains an interrupt and exception vector table, which
- * can be used to configure the device's interrupt handlers; individual
- * interrupts and exceptions can be enabled and disabled, as well as configured
- * with a variable priority.
- *
- * This driver provides a set of wrappers around the core interrupt functions,
- * to expose a simple API for the management of global and individual interrupts
- * within the device.
- *
- * \subsection asfdoc_sam0_system_interrupt_module_overview_criticalsec Critical Sections
- * In some applications it is important to ensure that no interrupts may be
- * executed by the system whilst a critical portion of code is being run; for
- * example, a buffer may be copied from one context to another - during which
- * interrupts must be disabled to avoid corruption of the source buffer contents
- * until the copy has completed. This driver provides a basic API to enter and
- * exit nested critical sections, so that global interrupts can be kept disabled
- * for as long as necessary to complete a critical application code section.
- *
- * \subsection asfdoc_sam0_system_interrupt_module_overview_softints Software Interrupts
- * For some applications, it may be desirable to raise a module or core
- * interrupt via software. For this reason, a set of APIs to set an interrupt or
- * exception as pending are provided to the user application.
- *
- * \section asfdoc_sam0_system_interrupt_special_considerations Special Considerations
- *
- * Interrupts from peripherals in the SAM devices are on a per-module basis;
- * an interrupt raised from any source within a module will cause a single,
- * module-common handler to execute. It is the user application or driver's
- * responsibility to de-multiplex the module-common interrupt to determine the
- * exact interrupt cause.
- *
- * \section asfdoc_sam0_system_interrupt_extra_info Extra Information
- *
- * For extra information, see \ref asfdoc_sam0_system_interrupt_extra. This includes:
- * - \ref asfdoc_sam0_system_interrupt_extra_acronyms
- * - \ref asfdoc_sam0_system_interrupt_extra_dependencies
- * - \ref asfdoc_sam0_system_interrupt_extra_errata
- * - \ref asfdoc_sam0_system_interrupt_extra_history
- *
- *
- * \section asfdoc_sam0_system_interrupt_examples Examples
- *
- * For a list of examples related to this driver, see
- * \ref asfdoc_sam0_system_interrupt_exqsg.
- *
- * \section asfdoc_sam0_system_interrupt_api_overview API Overview
- * @{
- */
-
-#include
-#include
-#include "system_interrupt_features.h"
-
-/**
- * \brief Table of possible system interrupt/exception vector priorities.
- *
- * Table of all possible interrupt and exception vector priorities within the
- * device.
- */
-enum system_interrupt_priority_level {
- /** Priority level 0, the highest possible interrupt priority */
- SYSTEM_INTERRUPT_PRIORITY_LEVEL_0 = 0,
- /** Priority level 1 */
- SYSTEM_INTERRUPT_PRIORITY_LEVEL_1 = 1,
- /** Priority level 2 */
- SYSTEM_INTERRUPT_PRIORITY_LEVEL_2 = 2,
- /** Priority level 3, the lowest possible interrupt priority */
- SYSTEM_INTERRUPT_PRIORITY_LEVEL_3 = 3,
-};
-
-/**
- * \name Critical Section Management
- * @{
- */
-
-/**
- * \brief Enters a critical section.
- *
- * Disables global interrupts. To support nested critical sections, an internal
- * count of the critical section nesting will be kept, so that global interrupts
- * are only re-enabled upon leaving the outermost nested critical section.
- *
- */
-static inline void system_interrupt_enter_critical_section(void)
-{
- cpu_irq_enter_critical();
-}
-
-/**
- * \brief Leaves a critical section.
- *
- * Enables global interrupts. To support nested critical sections, an internal
- * count of the critical section nesting will be kept, so that global interrupts
- * are only re-enabled upon leaving the outermost nested critical section.
- *
- */
-static inline void system_interrupt_leave_critical_section(void)
-{
- cpu_irq_leave_critical();
-}
-
-/** @} */
-
-/**
- * \name Interrupt Enabling/Disabling
- * @{
- */
-
-/**
- * \brief Check if global interrupts are enabled.
- *
- * Checks if global interrupts are currently enabled.
- *
- * \returns A boolean that identifies if the global interrupts are enabled or not.
- *
- * \retval true Global interrupts are currently enabled
- * \retval false Global interrupts are currently disabled
- *
- */
-static inline bool system_interrupt_is_global_enabled(void)
-{
- return cpu_irq_is_enabled();
-}
-
-/**
- * \brief Enables global interrupts.
- *
- * Enables global interrupts in the device to fire any enabled interrupt handlers.
- */
-static inline void system_interrupt_enable_global(void)
-{
- cpu_irq_enable();
-}
-
-/**
- * \brief Disables global interrupts.
- *
- * Disabled global interrupts in the device, preventing any enabled interrupt
- * handlers from executing.
- */
-static inline void system_interrupt_disable_global(void)
-{
- cpu_irq_disable();
-}
-
-/**
- * \brief Checks if an interrupt vector is enabled or not.
- *
- * Checks if a specific interrupt vector is currently enabled.
- *
- * \param[in] vector Interrupt vector number to check
- *
- * \returns A variable identifying if the requested interrupt vector is enabled.
- *
- * \retval true Specified interrupt vector is currently enabled
- * \retval false Specified interrupt vector is currently disabled
- *
- */
-static inline bool system_interrupt_is_enabled(
- const enum system_interrupt_vector vector)
-{
- return (bool)((NVIC->ISER[0] >> (uint32_t)vector) & 0x00000001);
-}
-
-/**
- * \brief Enable interrupt vector.
- *
- * Enables execution of the software handler for the requested interrupt vector.
- *
- * \param[in] vector Interrupt vector to enable
- */
-static inline void system_interrupt_enable(
- const enum system_interrupt_vector vector)
-{
- NVIC->ISER[0] = (uint32_t)(1 << ((uint32_t)vector & 0x0000001f));
-}
-
-/**
- * \brief Disable interrupt vector.
- *
- * Disables execution of the software handler for the requested interrupt vector.
- *
- * \param[in] vector Interrupt vector to disable
- */
-static inline void system_interrupt_disable(
- const enum system_interrupt_vector vector)
-{
- NVIC->ICER[0] = (uint32_t)(1 << ((uint32_t)vector & 0x0000001f));
-}
-
-/** @} */
-
-/**
- * \name Interrupt State Management
- * @{
- */
-
-/**
- * \brief Get active interrupt (if any).
- *
- * Return the vector number for the current executing software handler, if any.
- *
- * \return Interrupt number that is currently executing.
- */
-static inline enum system_interrupt_vector system_interrupt_get_active(void)
-{
- uint32_t IPSR = __get_IPSR();
- /* The IPSR returns the Exception number, which with an offset 16 to IRQ number. */
- return (enum system_interrupt_vector)((IPSR & _SYSTEM_INTERRUPT_IPSR_MASK) - 16);
-}
-
-bool system_interrupt_is_pending(
- const enum system_interrupt_vector vector);
-
-enum status_code system_interrupt_set_pending(
- const enum system_interrupt_vector vector);
-
-enum status_code system_interrupt_clear_pending(
- const enum system_interrupt_vector vector);
-
-/** @} */
-
-/**
- * \name Interrupt Priority Management
- * @{
- */
-
-enum status_code system_interrupt_set_priority(
- const enum system_interrupt_vector vector,
- const enum system_interrupt_priority_level priority_level);
-
-enum system_interrupt_priority_level system_interrupt_get_priority(
- const enum system_interrupt_vector vector);
-
-/** @} */
-
-/** @} */
-
-/**
- * \page asfdoc_sam0_system_interrupt_extra Extra Information for SYSTEM INTERRUPT Driver
- *
- * \section asfdoc_sam0_system_interrupt_extra_acronyms Acronyms
- * The table below presents the acronyms used in this module:
- *
- *
- *
- *
Acronym
- *
Description
- *
- *
- *
ISR
- *
Interrupt Service Routine
- *
- *
- *
NMI
- *
Non-maskable Interrupt
- *
- *
- *
SERCOM
- *
Serial Communication Interface
- *
- *
- *
- *
- * \section asfdoc_sam0_system_interrupt_extra_dependencies Dependencies
- * This driver has the following dependencies:
- *
- * - None
- *
- *
- * \section asfdoc_sam0_system_interrupt_extra_errata Errata
- * There are no errata related to this driver.
- *
- *
- * \section asfdoc_sam0_system_interrupt_extra_history Module History
- * An overview of the module history is presented in the table below, with
- * details on the enhancements and fixes made to the module since its first
- * release. The current version of this corresponds to the newest version in
- * the table.
- *
- *
- *
- *
Changelog
- *
- *
- *
Initial Release
- *
- *
- */
-
-/**
- * \page asfdoc_sam0_system_interrupt_exqsg Examples for SYSTEM INTERRUPT Driver
- *
- * This is a list of the available Quick Start guides (QSGs) and example
- * applications for \ref asfdoc_sam0_system_interrupt_group. QSGs are simple examples with
- * step-by-step instructions to configure and use this driver in a selection of
- * use cases. Note that a QSG can be compiled as a standalone application or be
- * added to the user application.
- *
- * - \subpage asfdoc_sam0_system_interrupt_critsec_use_case
- * - \subpage asfdoc_sam0_system_interrupt_enablemodint_use_case
- *
- * \page asfdoc_sam0_system_interrupt_document_revision_history Document Revision History
- *
- *
- *
- *
Doc. Rev.
- *
Date
- *
Comments
- *
- *
- *
42122E
- *
12/2015
- *
Added support for SAM L21/L22, SAM DA1, SAM D09, and SAM C20/C21
- *
- *
- *
42122D
- *
12/2014
- *
Added support for SAM R21 and SAM D10/D11
- *
- *
- *
42122C
- *
01/2014
- *
Added support for SAM D21
- *
- *
- *
42122B
- *
06/2013
- *
Corrected documentation typos
- *
- *
- *
42122A
- *
06/2013
- *
Initial release
- *
- *
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // #ifndef SYSTEM_INTERRUPT_H_INCLUDED
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21/system_interrupt_features.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21/system_interrupt_features.h
deleted file mode 100644
index 7c40bf6..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/interrupt/system_interrupt_samd21/system_interrupt_features.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/**
- * \file
- *
- * \brief SAM D21 System Interrupt Driver
- *
- * Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#ifndef SYSTEM_INTERRUPT_FEATURES_H_INCLUDED
-#define SYSTEM_INTERRUPT_FEATURES_H_INCLUDED
-
-#if !defined(__DOXYGEN__)
-
-/* Generates a interrupt vector table enum list entry for a given module type
- and index (e.g. "SYSTEM_INTERRUPT_MODULE_TC0 = TC0_IRQn,"). */
-# define _MODULE_IRQn(n, module) \
- SYSTEM_INTERRUPT_MODULE_##module##n = module##n##_IRQn,
-
-/* Generates interrupt vector table enum list entries for all instances of a
- given module type on the selected device. */
-# define _SYSTEM_INTERRUPT_MODULES(name) \
- MREPEAT(name##_INST_NUM, _MODULE_IRQn, name)
-
-# define _SYSTEM_INTERRUPT_IPSR_MASK 0x0000003f
-# define _SYSTEM_INTERRUPT_PRIORITY_MASK 0x00000003
-
-# define _SYSTEM_INTERRUPT_EXTERNAL_VECTOR_START 0
-
-# define _SYSTEM_INTERRUPT_SYSTICK_PRI_POS 30
-#endif
-
-/**
- * \addtogroup asfdoc_sam0_system_interrupt_group
- * @{
- */
-
-/**
- * \brief Table of possible system interrupt/exception vector numbers.
- *
- * Table of all possible interrupt and exception vector indexes within the
- * SAM D21 device. Check peripherals configuration in SAM D21 datasheet for
- * available vector index for specific device.
- *
- */
-#if defined(__DOXYGEN__)
-/** \note The actual enumeration name is "system_interrupt_vector". */
-enum system_interrupt_vector_samd21 {
-#else
-enum system_interrupt_vector {
-#endif
- /** Interrupt vector index for a NMI interrupt */
- SYSTEM_INTERRUPT_NON_MASKABLE = NonMaskableInt_IRQn,
- /** Interrupt vector index for a Hard Fault memory access exception */
- SYSTEM_INTERRUPT_HARD_FAULT = HardFault_IRQn,
- /** Interrupt vector index for a Supervisor Call exception */
- SYSTEM_INTERRUPT_SV_CALL = SVCall_IRQn,
- /** Interrupt vector index for a Pending Supervisor interrupt */
- SYSTEM_INTERRUPT_PENDING_SV = PendSV_IRQn,
- /** Interrupt vector index for a System Tick interrupt */
- SYSTEM_INTERRUPT_SYSTICK = SysTick_IRQn,
-
- /** Interrupt vector index for a Power Manager peripheral interrupt */
- SYSTEM_INTERRUPT_MODULE_PM = PM_IRQn,
- /** Interrupt vector index for a System Control peripheral interrupt */
- SYSTEM_INTERRUPT_MODULE_SYSCTRL = SYSCTRL_IRQn,
- /** Interrupt vector index for a Watch Dog peripheral interrupt */
- SYSTEM_INTERRUPT_MODULE_WDT = WDT_IRQn,
- /** Interrupt vector index for a Real Time Clock peripheral interrupt */
- SYSTEM_INTERRUPT_MODULE_RTC = RTC_IRQn,
- /** Interrupt vector index for an External Interrupt peripheral interrupt */
- SYSTEM_INTERRUPT_MODULE_EIC = EIC_IRQn,
- /** Interrupt vector index for a Non Volatile Memory Controller interrupt */
- SYSTEM_INTERRUPT_MODULE_NVMCTRL = NVMCTRL_IRQn,
- /** Interrupt vector index for a Direct Memory Access interrupt */
- SYSTEM_INTERRUPT_MODULE_DMA = DMAC_IRQn,
-#if defined(__DOXYGEN__) || defined(ID_USB)
- /** Interrupt vector index for a Universal Serial Bus interrupt */
- SYSTEM_INTERRUPT_MODULE_USB = USB_IRQn,
-#endif
- /** Interrupt vector index for an Event System interrupt */
- SYSTEM_INTERRUPT_MODULE_EVSYS = EVSYS_IRQn,
-#if defined(__DOXYGEN__)
- /** Interrupt vector index for a SERCOM peripheral interrupt.
- *
- * Each specific device may contain several SERCOM peripherals; each module
- * instance will have its own entry in the table, with the instance number
- * substituted for "n" in the entry name (e.g.
- * \c SYSTEM_INTERRUPT_MODULE_SERCOM0).
- */
- SYSTEM_INTERRUPT_MODULE_SERCOMn = SERCOMn_IRQn,
-
- /** Interrupt vector index for a Timer/Counter Control peripheral interrupt.
- *
- * Each specific device may contain several TCC peripherals; each module
- * instance will have its own entry in the table, with the instance number
- * substituted for "n" in the entry name (e.g.
- * \c SYSTEM_INTERRUPT_MODULE_TCC0).
- */
- SYSTEM_INTERRUPT_MODULE_TCCn = TCCn_IRQn,
-
- /** Interrupt vector index for a Timer/Counter peripheral interrupt.
- *
- * Each specific device may contain several TC peripherals; each module
- * instance will have its own entry in the table, with the instance number
- * substituted for "n" in the entry name (e.g.
- * \c SYSTEM_INTERRUPT_MODULE_TC3).
- */
- SYSTEM_INTERRUPT_MODULE_TCn = TCn_IRQn,
-#else
- _SYSTEM_INTERRUPT_MODULES(SERCOM)
-
- _SYSTEM_INTERRUPT_MODULES(TCC)
-
- SYSTEM_INTERRUPT_MODULE_TC3 = TC3_IRQn,
- SYSTEM_INTERRUPT_MODULE_TC4 = TC4_IRQn,
- SYSTEM_INTERRUPT_MODULE_TC5 = TC5_IRQn,
-# if defined(ID_TC6)
- SYSTEM_INTERRUPT_MODULE_TC6 = TC6_IRQn,
-# endif
-# if defined(ID_TC7)
- SYSTEM_INTERRUPT_MODULE_TC7 = TC7_IRQn,
-# endif
-#endif
-
-#if defined(__DOXYGEN__) || defined(ID_ADC)
- /** Interrupt vector index for an Analog-to-Digital peripheral interrupt */
- SYSTEM_INTERRUPT_MODULE_ADC = ADC_IRQn,
-#endif
-
-#if defined(__DOXYGEN__) || defined(ID_AC)
- /** Interrupt vector index for an Analog Comparator peripheral interrupt */
- SYSTEM_INTERRUPT_MODULE_AC = AC_IRQn,
-#endif
-
-#if defined(__DOXYGEN__) || defined(ID_DAC)
- /** Interrupt vector index for a Digital-to-Analog peripheral interrupt */
- SYSTEM_INTERRUPT_MODULE_DAC = DAC_IRQn,
-#endif
-#if defined(__DOXYGEN__) || defined(ID_PTC)
- /** Interrupt vector index for a Peripheral Touch Controller peripheral
- * interrupt */
- SYSTEM_INTERRUPT_MODULE_PTC = PTC_IRQn,
-#endif
-#if defined(__DOXYGEN__) || defined(ID_I2S)
- /** Interrupt vector index for a Inter-IC Sound Interface peripheral
- * interrupt */
- SYSTEM_INTERRUPT_MODULE_I2S = I2S_IRQn,
-#endif
-#if defined(__DOXYGEN__) || defined(ID_AC1)
- /** Interrupt vector index for an Analog Comparator 1 peripheral interrupt */
- SYSTEM_INTERRUPT_MODULE_AC1 = AC1_IRQn,
-#endif
-};
-
-/** @} */
-
-#endif
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/pinmux/pinmux.c b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/pinmux/pinmux.c
deleted file mode 100644
index 7eeba52..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/pinmux/pinmux.c
+++ /dev/null
@@ -1,301 +0,0 @@
-/**
- * \file
- *
- * \brief SAM Pin Multiplexer Driver
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#include
-
-/**
- * \internal
- * Writes out a given configuration of a Port pin configuration to the
- * hardware module.
- *
- * \note If the pin direction is set as an output, the pull-up/pull-down input
- * configuration setting is ignored.
- *
- * \param[in] port Base of the PORT module to configure
- * \param[in] pin_mask Mask of the port pin to configure
- * \param[in] config Configuration settings for the pin
- */
-static void _system_pinmux_config(
- PortGroup *const port,
- const uint32_t pin_mask,
- const struct system_pinmux_config *const config)
-{
- Assert(port);
- Assert(config);
-
- /* Track the configuration bits into a temporary variable before writing */
- uint32_t pin_cfg = 0;
-
- /* Enabled powersave mode, don't create configuration */
- if (!config->powersave) {
- /* Enable the pin peripheral MUX flag if non-GPIO selected (pinmux will
- * be written later) and store the new MUX mask */
- if (config->mux_position != SYSTEM_PINMUX_GPIO) {
- pin_cfg |= PORT_WRCONFIG_PMUXEN;
- pin_cfg |= (config->mux_position << PORT_WRCONFIG_PMUX_Pos);
- }
-
- /* Check if the user has requested that the input buffer be enabled */
- if ((config->direction == SYSTEM_PINMUX_PIN_DIR_INPUT) ||
- (config->direction == SYSTEM_PINMUX_PIN_DIR_OUTPUT_WITH_READBACK)) {
- /* Enable input buffer flag */
- pin_cfg |= PORT_WRCONFIG_INEN;
-
- /* Enable pull-up/pull-down control flag if requested */
- if (config->input_pull != SYSTEM_PINMUX_PIN_PULL_NONE) {
- pin_cfg |= PORT_WRCONFIG_PULLEN;
- }
-
- /* Clear the port DIR bits to disable the output buffer */
- port->DIRCLR.reg = pin_mask;
- }
-
- /* Check if the user has requested that the output buffer be enabled */
- if ((config->direction == SYSTEM_PINMUX_PIN_DIR_OUTPUT) ||
- (config->direction == SYSTEM_PINMUX_PIN_DIR_OUTPUT_WITH_READBACK)) {
- /* Cannot use a pull-up if the output driver is enabled,
- * if requested the input buffer can only sample the current
- * output state */
- pin_cfg &= ~PORT_WRCONFIG_PULLEN;
- }
- } else {
- port->DIRCLR.reg = pin_mask;
- }
-
- /* The Write Configuration register (WRCONFIG) requires the
- * pins to to grouped into two 16-bit half-words - split them out here */
- uint32_t lower_pin_mask = (pin_mask & 0xFFFF);
- uint32_t upper_pin_mask = (pin_mask >> 16);
-
- /* Configure the lower 16-bits of the port to the desired configuration,
- * including the pin peripheral multiplexer just in case it is enabled */
- port->WRCONFIG.reg
- = (lower_pin_mask << PORT_WRCONFIG_PINMASK_Pos) |
- pin_cfg | PORT_WRCONFIG_WRPMUX | PORT_WRCONFIG_WRPINCFG;
-
- /* Configure the upper 16-bits of the port to the desired configuration,
- * including the pin peripheral multiplexer just in case it is enabled */
- port->WRCONFIG.reg
- = (upper_pin_mask << PORT_WRCONFIG_PINMASK_Pos) |
- pin_cfg | PORT_WRCONFIG_WRPMUX | PORT_WRCONFIG_WRPINCFG |
- PORT_WRCONFIG_HWSEL;
-
- if(!config->powersave) {
- /* Set the pull-up state once the port pins are configured if one was
- * requested and it does not violate the valid set of port
- * configurations */
- if (pin_cfg & PORT_WRCONFIG_PULLEN) {
- /* Set the OUT register bits to enable the pull-up if requested,
- * clear to enable pull-down */
- if (config->input_pull == SYSTEM_PINMUX_PIN_PULL_UP) {
- port->OUTSET.reg = pin_mask;
- } else {
- port->OUTCLR.reg = pin_mask;
- }
- }
-
- /* Check if the user has requested that the output buffer be enabled */
- if ((config->direction == SYSTEM_PINMUX_PIN_DIR_OUTPUT) ||
- (config->direction == SYSTEM_PINMUX_PIN_DIR_OUTPUT_WITH_READBACK)) {
- /* Set the port DIR bits to enable the output buffer */
- port->DIRSET.reg = pin_mask;
- }
- }
-}
-
-/**
- * \brief Writes a Port pin configuration to the hardware module.
- *
- * Writes out a given configuration of a Port pin configuration to the hardware
- * module.
- *
- * \note If the pin direction is set as an output, the pull-up/pull-down input
- * configuration setting is ignored.
- *
- * \param[in] gpio_pin Index of the GPIO pin to configure
- * \param[in] config Configuration settings for the pin
- */
-void system_pinmux_pin_set_config(
- const uint8_t gpio_pin,
- const struct system_pinmux_config *const config)
-{
- PortGroup *const port = system_pinmux_get_group_from_gpio_pin(gpio_pin);
- uint32_t pin_mask = (1UL << (gpio_pin % 32));
-
- _system_pinmux_config(port, pin_mask, config);
-}
-
-/**
- * \brief Writes a Port pin group configuration to the hardware module.
- *
- * Writes out a given configuration of a Port pin group configuration to the
- * hardware module.
- *
- * \note If the pin direction is set as an output, the pull-up/pull-down input
- * configuration setting is ignored.
- *
- * \param[in] port Base of the PORT module to configure
- * \param[in] mask Mask of the port pin(s) to configure
- * \param[in] config Configuration settings for the pin
- */
-void system_pinmux_group_set_config(
- PortGroup *const port,
- const uint32_t mask,
- const struct system_pinmux_config *const config)
-{
- Assert(port);
-
- for (int i = 0; i < 32; i++) {
- if (mask & (1UL << i)) {
- _system_pinmux_config(port, (1UL << i), config);
- }
- }
-}
-
-/**
- * \brief Configures the input sampling mode for a group of pins.
- *
- * Configures the input sampling mode for a group of pins, to
- * control when the physical I/O pin value is sampled and
- * stored inside the microcontroller.
- *
- * \param[in] port Base of the PORT module to configure
- * \param[in] mask Mask of the port pin(s) to configure
- * \param[in] mode New pin sampling mode to configure
- */
-void system_pinmux_group_set_input_sample_mode(
- PortGroup *const port,
- const uint32_t mask,
- const enum system_pinmux_pin_sample mode)
-{
- Assert(port);
-
- if (mode == SYSTEM_PINMUX_PIN_SAMPLE_ONDEMAND) {
- port->CTRL.reg |= mask;
- } else {
- port->CTRL.reg &= ~mask;
- }
-}
-
-#ifdef FEATURE_SYSTEM_PINMUX_SLEWRATE_LIMITER
-/**
- * \brief Configures the output slew rate mode for a group of pins.
- *
- * Configures the output slew rate mode for a group of pins, to
- * control the speed at which the physical output pin can react to
- * logical changes of the I/O pin value.
- *
- * \param[in] port Base of the PORT module to configure
- * \param[in] mask Mask of the port pin(s) to configure
- * \param[in] mode New pin slew rate mode to configure
- */
-void system_pinmux_group_set_output_slew_rate(
- PortGroup *const port,
- const uint32_t mask,
- const enum system_pinmux_pin_slew_rate mode)
-{
- Assert(port);
-
- for (int i = 0; i < 32; i++) {
- if (mask & (1UL << i)) {
- if (mode == SYSTEM_PINMUX_PIN_SLEW_RATE_LIMITED) {
- port->PINCFG[i].reg |= PORT_PINCFG_SLEWLIM;
- } else {
- port->PINCFG[i].reg &= ~PORT_PINCFG_SLEWLIM;
- }
- }
- }
-}
-#endif
-
-#ifdef FEATURE_SYSTEM_PINMUX_DRIVE_STRENGTH
-/**
- * \brief Configures the output driver strength mode for a group of pins.
- *
- * Configures the output drive strength for a group of pins, to
- * control the amount of current the pad is able to sink/source.
- *
- * \param[in] port Base of the PORT module to configure
- * \param[in] mask Mask of the port pin(s) to configure
- * \param[in] mode New output driver strength mode to configure
- */
-void system_pinmux_group_set_output_strength(
- PortGroup *const port,
- const uint32_t mask,
- const enum system_pinmux_pin_strength mode)
-{
- Assert(port);
-
- for (int i = 0; i < 32; i++) {
- if (mask & (1UL << i)) {
- if (mode == SYSTEM_PINMUX_PIN_STRENGTH_HIGH) {
- port->PINCFG[i].reg |= PORT_PINCFG_DRVSTR;
- } else {
- port->PINCFG[i].reg &= ~PORT_PINCFG_DRVSTR;
- }
- }
- }
-}
-#endif
-
-#ifdef FEATURE_SYSTEM_PINMUX_OPEN_DRAIN
-/**
- * \brief Configures the output driver mode for a group of pins.
- *
- * Configures the output driver mode for a group of pins, to
- * control the pad behavior.
- *
- * \param[in] port Base of the PORT module to configure
- * \param[in] mask Mask of the port pin(s) to configure
- * \param[in] mode New pad output driver mode to configure
- */
-void system_pinmux_group_set_output_drive(
- PortGroup *const port,
- const uint32_t mask,
- const enum system_pinmux_pin_drive mode)
-{
- Assert(port);
-
- for (int i = 0; i < 32; i++) {
- if (mask & (1UL << i)) {
- if (mode == SYSTEM_PINMUX_PIN_DRIVE_OPEN_DRAIN) {
- port->PINCFG[i].reg |= PORT_PINCFG_ODRAIN;
- } else {
- port->PINCFG[i].reg &= ~PORT_PINCFG_ODRAIN;
- }
- }
- }
-}
-#endif
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/pinmux/pinmux.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/pinmux/pinmux.h
deleted file mode 100644
index 40dd09e..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/pinmux/pinmux.h
+++ /dev/null
@@ -1,669 +0,0 @@
-/**
- * \file
- *
- * \brief SAM Pin Multiplexer Driver
- *
- * Copyright (c) 2012-2020 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef PINMUX_H_INCLUDED
-#define PINMUX_H_INCLUDED
-
-/**
- * \defgroup asfdoc_sam0_system_pinmux_group SAM System Pin Multiplexer (SYSTEM PINMUX) Driver
- *
- * This driver for Atmel® | SMART ARM®-based microcontrollers provides
- * an interface for the configuration and management of the device's physical
- * I/O Pins, to alter the direction and input/drive characteristics as well as
- * to configure the pin peripheral multiplexer selection.
- *
- * The following peripheral is used by this module:
- * - PORT (Port I/O Management)
- *
- * The following devices can use this module:
- * - Atmel | SMART SAM D20/D21
- * - Atmel | SMART SAM R21
- * - Atmel | SMART SAM D09/D10/D11
- * - Atmel | SMART SAM L21/L22
- * - Atmel | SMART SAM DA1
- * - Atmel | SMART SAM C20/C21
- * - Atmel | SMART SAM HA1
- * - Atmel | SMART SAM R30
- * - Atmel | SMART SAM R34
- * - Atmel | SMART SAM R35
- *
- * The outline of this documentation is as follows:
- * - \ref asfdoc_sam0_system_pinmux_prerequisites
- * - \ref asfdoc_sam0_system_pinmux_module_overview
- * - \ref asfdoc_sam0_system_pinmux_special_considerations
- * - \ref asfdoc_sam0_system_pinmux_extra_info
- * - \ref asfdoc_sam0_system_pinmux_examples
- * - \ref asfdoc_sam0_system_pinmux_api_overview
- *
- *
- * \section asfdoc_sam0_system_pinmux_prerequisites Prerequisites
- *
- * There are no prerequisites for this module.
- *
- *
- * \section asfdoc_sam0_system_pinmux_module_overview Module Overview
- *
- * The SAM devices contain a number of General Purpose I/O pins, used to
- * interface the user application logic and internal hardware peripherals to
- * an external system. The Pin Multiplexer (PINMUX) driver provides a method
- * of configuring the individual pin peripheral multiplexers to select
- * alternate pin functions.
- *
- * \subsection asfdoc_sam0_system_pinmux_features Driver Feature Macro Definition
- *
- *
- *
Driver Feature Macro
- *
Supported devices
- *
- *
- *
FEATURE_SYSTEM_PINMUX_DRIVE_STRENGTH
- *
SAM L21, SAM C20/C21, SAM R34/R35
- *
- *
- * \note The specific features are only available in the driver when the
- * selected device supports those features.
- *
- * \subsection asfdoc_sam0_system_pinmux_physical_logical_pins Physical and Logical GPIO Pins
- * SAM devices use two naming conventions for the I/O pins in the device; one
- * physical and one logical. Each physical pin on a device package is assigned
- * both a physical port and pin identifier (e.g. "PORTA.0") as well as a
- * monotonically incrementing logical GPIO number (e.g. "GPIO0"). While the
- * former is used to map physical pins to their physical internal device module
- * counterparts, for simplicity the design of this driver uses the logical GPIO
- * numbers instead.
- *
- * \subsection asfdoc_sam0_system_pinmux_peripheral_muxing Peripheral Multiplexing
- * SAM devices contain a peripheral MUX, which is individually controllable
- * for each I/O pin of the device. The peripheral MUX allows you to select the
- * function of a physical package pin - whether it will be controlled as a user
- * controllable GPIO pin, or whether it will be connected internally to one of
- * several peripheral modules (such as an I2C module). When a pin is
- * configured in GPIO mode, other peripherals connected to the same pin will be
- * disabled.
- *
- * \subsection asfdoc_sam0_system_pinmux_pad_characteristics Special Pad Characteristics
- * There are several special modes that can be selected on one or more I/O pins
- * of the device, which alter the input and output characteristics of the pad.
- *
- * \subsubsection asfdoc_sam0_system_pinmux_drive_strength Drive Strength
- * The Drive Strength configures the strength of the output driver on the
- * pad. Normally, there is a fixed current limit that each I/O pin can safely
- * drive, however some I/O pads offer a higher drive mode which increases this
- * limit for that I/O pin at the expense of an increased power consumption.
- *
- * \subsubsection asfdoc_sam0_system_pinmux_slew_rate Slew Rate
- * The Slew Rate configures the slew rate of the output driver, limiting the
- * rate at which the pad output voltage can change with time.
- *
- * \subsubsection asfdoc_sam0_system_pinmux_input_sample_mode Input Sample Mode
- * The Input Sample Mode configures the input sampler buffer of the pad. By
- * default, the input buffer is only sampled "on-demand", i.e. when the user
- * application attempts to read from the input buffer. This mode is the most
- * power efficient, but increases the latency of the input sample by two clock
- * cycles of the port clock. To reduce latency, the input sampler can instead
- * be configured to always sample the input buffer on each port clock cycle, at
- * the expense of an increased power consumption.
- *
- * \subsection asfdoc_sam0_system_pinmux_module_overview_physical Physical Connection
- *
- * \ref asfdoc_sam0_system_pinmux_intconnections "The diagram below" shows
- * how this module is interconnected within the device:
- *
- * \anchor asfdoc_sam0_system_pinmux_intconnections
- * \dot
- * digraph overview {
- * node [label="Port Pad" shape=square] pad;
- *
- * subgraph driver {
- * node [label="Peripheral MUX" shape=trapezium] pinmux;
- * node [label="GPIO Module" shape=ellipse shape=ellipse style=filled fillcolor=lightgray] gpio;
- * node [label="Other Peripheral Modules" shape=ellipse style=filled fillcolor=lightgray] peripherals;
- * }
- *
- * pinmux -> gpio;
- * pad -> pinmux;
- * pinmux -> peripherals;
- * }
- * \enddot
- *
- * \section asfdoc_sam0_system_pinmux_special_considerations Special Considerations
- *
- * The SAM port pin input sampling mode is set in groups of four physical
- * pins; setting the sampling mode of any pin in a sub-group of eight I/O pins
- * will configure the sampling mode of the entire sub-group.
- *
- * High Drive Strength output driver mode is not available on all device pins -
- * refer to your device specific datasheet.
- *
- *
- * \section asfdoc_sam0_system_pinmux_extra_info Extra Information
- *
- * For extra information, see \ref asfdoc_sam0_system_pinmux_extra. This includes:
- * - \ref asfdoc_sam0_system_pinmux_extra_acronyms
- * - \ref asfdoc_sam0_system_pinmux_extra_dependencies
- * - \ref asfdoc_sam0_system_pinmux_extra_errata
- * - \ref asfdoc_sam0_system_pinmux_extra_history
- *
- *
- * \section asfdoc_sam0_system_pinmux_examples Examples
- *
- * For a list of examples related to this driver, see
- * \ref asfdoc_sam0_system_pinmux_exqsg.
- *
- *
- * \section asfdoc_sam0_system_pinmux_api_overview API Overview
- * @{
- */
-
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*@{*/
-#if (SAML21) || (SAMC20) || (SAMC21) || (SAMD21) || (SAMD10) || (SAMD11) || (SAMR30) || (SAMR34) || (SAMR35) || (WLR089) || defined(__DOXYGEN__)
-/** Output Driver Strength Selection feature support */
-# define FEATURE_SYSTEM_PINMUX_DRIVE_STRENGTH
-#endif
-/*@}*/
-
-/** Peripheral multiplexer index to select GPIO mode for a pin */
-#define SYSTEM_PINMUX_GPIO (1 << 7)
-
-/**
- * \brief Port pin direction configuration enum.
- *
- * Enum for the possible pin direction settings of the port pin configuration
- * structure, to indicate the direction the pin should use.
- */
-enum system_pinmux_pin_dir {
- /** The pin's input buffer should be enabled, so that the pin state can
- * be read */
- SYSTEM_PINMUX_PIN_DIR_INPUT,
- /** The pin's output buffer should be enabled, so that the pin state can
- * be set (but not read back) */
- SYSTEM_PINMUX_PIN_DIR_OUTPUT,
- /** The pin's output and input buffers should both be enabled, so that the
- * pin state can be set and read back */
- SYSTEM_PINMUX_PIN_DIR_OUTPUT_WITH_READBACK,
-};
-
-/**
- * \brief Port pin input pull configuration enum.
- *
- * Enum for the possible pin pull settings of the port pin configuration
- * structure, to indicate the type of logic level pull the pin should use.
- */
-enum system_pinmux_pin_pull {
- /** No logical pull should be applied to the pin */
- SYSTEM_PINMUX_PIN_PULL_NONE,
- /** Pin should be pulled up when idle */
- SYSTEM_PINMUX_PIN_PULL_UP,
- /** Pin should be pulled down when idle */
- SYSTEM_PINMUX_PIN_PULL_DOWN,
-};
-
-/**
- * \brief Port pin digital input sampling mode enum.
- *
- * Enum for the possible input sampling modes for the port pin configuration
- * structure, to indicate the type of sampling a port pin should use.
- */
-enum system_pinmux_pin_sample {
- /** Pin input buffer should continuously sample the pin state */
- SYSTEM_PINMUX_PIN_SAMPLE_CONTINUOUS,
- /** Pin input buffer should be enabled when the IN register is read */
- SYSTEM_PINMUX_PIN_SAMPLE_ONDEMAND,
-};
-
-/**
- * \brief Port pin configuration structure.
- *
- * Configuration structure for a port pin instance. This structure should
- * be initialized by the \ref system_pinmux_get_config_defaults() function
- * before being modified by the user application.
- */
-struct system_pinmux_config {
- /** MUX index of the peripheral that should control the pin, if peripheral
- * control is desired. For GPIO use, this should be set to
- * \ref SYSTEM_PINMUX_GPIO. */
- uint8_t mux_position;
-
- /** Port buffer input/output direction */
- enum system_pinmux_pin_dir direction;
-
- /** Logic level pull of the input buffer */
- enum system_pinmux_pin_pull input_pull;
-
- /** Enable lowest possible powerstate on the pin
- *
- * \note All other configurations will be ignored, the pin will be disabled.
- */
- bool powersave;
-};
-
-/** \name Configuration and Initialization
- * @{
- */
-
-/**
- * \brief Initializes a Port pin configuration structure to defaults.
- *
- * Initializes a given Port pin configuration structure to a set of
- * known default values. This function should be called on all new
- * instances of these configuration structures before being modified by the
- * user application.
- *
- * The default configuration is as follows:
- * \li Non peripheral (i.e. GPIO) controlled
- * \li Input mode with internal pull-up enabled
- *
- * \param[out] config Configuration structure to initialize to default values
- */
-static inline void system_pinmux_get_config_defaults(
- struct system_pinmux_config *const config)
-{
- /* Sanity check arguments */
- Assert(config);
-
- /* Default configuration values */
- config->mux_position = SYSTEM_PINMUX_GPIO;
- config->direction = SYSTEM_PINMUX_PIN_DIR_INPUT;
- config->input_pull = SYSTEM_PINMUX_PIN_PULL_UP;
- config->powersave = false;
-}
-
-void system_pinmux_pin_set_config(
- const uint8_t gpio_pin,
- const struct system_pinmux_config *const config);
-
-void system_pinmux_group_set_config(
- PortGroup *const port,
- const uint32_t mask,
- const struct system_pinmux_config *const config);
-
-/** @} */
-
-/** \name Special Mode Configuration (Physical Group Orientated)
- * @{
- */
-
-/**
- * \brief Retrieves the PORT module group instance from a given GPIO pin number.
- *
- * Retrieves the PORT module group instance associated with a given logical
- * GPIO pin number.
- *
- * \param[in] gpio_pin Index of the GPIO pin to convert
- *
- * \return Base address of the associated PORT module.
- */
-static inline PortGroup* system_pinmux_get_group_from_gpio_pin(
- const uint8_t gpio_pin)
-{
- uint8_t port_index = (gpio_pin / 128);
- uint8_t group_index = (gpio_pin / 32);
-
- /* Array of available ports */
- Port *const ports[PORT_INST_NUM] = PORT_INSTS;
-
- if (port_index < PORT_INST_NUM) {
- return &(ports[port_index]->Group[group_index]);
- } else {
- Assert(false);
- return NULL;
- }
-}
-
-void system_pinmux_group_set_input_sample_mode(
- PortGroup *const port,
- const uint32_t mask,
- const enum system_pinmux_pin_sample mode);
-
-/** @} */
-
-/** \name Special Mode Configuration (Logical Pin Orientated)
- * @{
- */
-
-/**
- * \brief Retrieves the currently selected MUX position of a logical pin.
- *
- * Retrieves the selected MUX peripheral on a given logical GPIO pin.
- *
- * \param[in] gpio_pin Index of the GPIO pin to configure
- *
- * \return Currently selected peripheral index on the specified pin.
- */
-static inline uint8_t system_pinmux_pin_get_mux_position(
- const uint8_t gpio_pin)
-{
- PortGroup *const port = system_pinmux_get_group_from_gpio_pin(gpio_pin);
- uint32_t pin_index = (gpio_pin % 32);
-
- if (!(port->PINCFG[pin_index].reg & PORT_PINCFG_PMUXEN)) {
- return SYSTEM_PINMUX_GPIO;
- }
-
- uint32_t pmux_reg = port->PMUX[pin_index / 2].reg;
-
- if (pin_index & 1) {
- return (pmux_reg & PORT_PMUX_PMUXO_Msk) >> PORT_PMUX_PMUXO_Pos;
- }
- else {
- return (pmux_reg & PORT_PMUX_PMUXE_Msk) >> PORT_PMUX_PMUXE_Pos;
- }
-}
-
-/**
- * \brief Configures the input sampling mode for a GPIO pin.
- *
- * Configures the input sampling mode for a GPIO input, to
- * control when the physical I/O pin value is sampled and
- * stored inside the microcontroller.
- *
- * \param[in] gpio_pin Index of the GPIO pin to configure
- * \param[in] mode New pin sampling mode to configure
- */
-static inline void system_pinmux_pin_set_input_sample_mode(
- const uint8_t gpio_pin,
- const enum system_pinmux_pin_sample mode)
-{
- PortGroup* const port = system_pinmux_get_group_from_gpio_pin(gpio_pin);
- uint32_t pin_index = (gpio_pin % 32);
-
- if (mode == SYSTEM_PINMUX_PIN_SAMPLE_ONDEMAND) {
- port->CTRL.reg |= (1 << pin_index);
- } else {
- port->CTRL.reg &= ~(1 << pin_index);
- }
-}
-
-/** @} */
-
-#ifdef FEATURE_SYSTEM_PINMUX_DRIVE_STRENGTH
-/**
- * \brief Port pin drive output strength enum.
- *
- * Enum for the possible output drive strengths for the port pin
- * configuration structure, to indicate the driver strength the pin should
- * use.
- */
-enum system_pinmux_pin_strength {
- /** Normal output driver strength */
- SYSTEM_PINMUX_PIN_STRENGTH_NORMAL,
- /** High current output driver strength */
- SYSTEM_PINMUX_PIN_STRENGTH_HIGH,
-};
-
-/**
- * \brief Configures the output driver strength mode for a GPIO pin.
- *
- * Configures the output drive strength for a GPIO output, to
- * control the amount of current the pad is able to sink/source.
- *
- * \param[in] gpio_pin Index of the GPIO pin to configure
- * \param[in] mode New output driver strength mode to configure
- */
-static inline void system_pinmux_pin_set_output_strength(
- const uint8_t gpio_pin,
- const enum system_pinmux_pin_strength mode)
-{
- PortGroup* const port = system_pinmux_get_group_from_gpio_pin(gpio_pin);
- uint32_t pin_index = (gpio_pin % 32);
-
- if (mode == SYSTEM_PINMUX_PIN_STRENGTH_HIGH) {
- port->PINCFG[pin_index].reg |= PORT_PINCFG_DRVSTR;
- }
- else {
- port->PINCFG[pin_index].reg &= ~PORT_PINCFG_DRVSTR;
- }
-}
-
-void system_pinmux_group_set_output_strength(
- PortGroup *const port,
- const uint32_t mask,
- const enum system_pinmux_pin_strength mode);
-#endif
-
-#ifdef FEATURE_SYSTEM_PINMUX_SLEWRATE_LIMITER
-/**
- * \brief Port pin output slew rate enum.
- *
- * Enum for the possible output drive slew rates for the port pin
- * configuration structure, to indicate the driver slew rate the pin should
- * use.
- */
-enum system_pinmux_pin_slew_rate {
- /** Normal pin output slew rate */
- SYSTEM_PINMUX_PIN_SLEW_RATE_NORMAL,
- /** Enable slew rate limiter on the pin */
- SYSTEM_PINMUX_PIN_SLEW_RATE_LIMITED,
-};
-
-/**
- * \brief Configures the output slew rate mode for a GPIO pin.
- *
- * Configures the output slew rate mode for a GPIO output, to
- * control the speed at which the physical output pin can react to
- * logical changes of the I/O pin value.
- *
- * \param[in] gpio_pin Index of the GPIO pin to configure
- * \param[in] mode New pin slew rate mode to configure
- */
-static inline void system_pinmux_pin_set_output_slew_rate(
- const uint8_t gpio_pin,
- const enum system_pinmux_pin_slew_rate mode)
-{
- PortGroup* const port = system_pinmux_get_group_from_gpio_pin(gpio_pin);
- uint32_t pin_index = (gpio_pin % 32);
-
- if (mode == SYSTEM_PINMUX_PIN_SLEW_RATE_LIMITED) {
- port->PINCFG[pin_index].reg |= PORT_PINCFG_SLEWLIM;
- }
- else {
- port->PINCFG[pin_index].reg &= ~PORT_PINCFG_SLEWLIM;
- }
-}
-
-void system_pinmux_group_set_output_slew_rate(
- PortGroup *const port,
- const uint32_t mask,
- const enum system_pinmux_pin_slew_rate mode);
-#endif
-
-#ifdef FEATURE_SYSTEM_PINMUX_OPEN_DRAIN
-/**
- * \brief Port pin output drive mode enum.
- *
- * Enum for the possible output drive modes for the port pin configuration
- * structure, to indicate the output mode the pin should use.
- */
-enum system_pinmux_pin_drive {
- /** Use totem pole output drive mode */
- SYSTEM_PINMUX_PIN_DRIVE_TOTEM,
- /** Use open drain output drive mode */
- SYSTEM_PINMUX_PIN_DRIVE_OPEN_DRAIN,
-};
-
-/**
- * \brief Configures the output driver mode for a GPIO pin.
- *
- * Configures the output driver mode for a GPIO output, to
- * control the pad behavior.
- *
- * \param[in] gpio_pin Index of the GPIO pin to configure
- * \param[in] mode New pad output driver mode to configure
- */
-static inline void system_pinmux_pin_set_output_drive(
- const uint8_t gpio_pin,
- const enum system_pinmux_pin_drive mode)
-{
- PortGroup* const port = system_pinmux_get_group_from_gpio_pin(gpio_pin);
- uint32_t pin_index = (gpio_pin % 32);
-
- if (mode == SYSTEM_PINMUX_PIN_DRIVE_OPEN_DRAIN) {
- port->PINCFG[pin_index].reg |= PORT_PINCFG_ODRAIN;
- }
- else {
- port->PINCFG[pin_index].reg &= ~PORT_PINCFG_ODRAIN;
- }
-}
-
-void system_pinmux_group_set_output_drive(
- PortGroup *const port,
- const uint32_t mask,
- const enum system_pinmux_pin_drive mode);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-/** @} */
-
-/**
- * \page asfdoc_sam0_system_pinmux_extra Extra Information for SYSTEM PINMUX Driver
- *
- * \section asfdoc_sam0_system_pinmux_extra_acronyms Acronyms
- * The table below presents the acronyms used in this module:
- *
- *
- *
- *
Acronym
- *
Description
- *
- *
- *
GPIO
- *
General Purpose Input/Output
- *
- *
- *
MUX
- *
Multiplexer
- *
- *
- *
- *
- * \section asfdoc_sam0_system_pinmux_extra_dependencies Dependencies
- * This driver has the following dependencies:
- *
- * - None
- *
- *
- * \section asfdoc_sam0_system_pinmux_extra_errata Errata
- * There are no errata related to this driver.
- *
- *
- * \section asfdoc_sam0_system_pinmux_extra_history Module History
- * An overview of the module history is presented in the table below, with
- * details on the enhancements and fixes made to the module since its first
- * release. The current version of this corresponds to the newest version in
- * the table.
- *
- *
- *
- *
Changelog
- *
- *
- *
Removed code of open drain, slew limit and drive strength
- * features
- *
- *
- *
Fixed broken sampling mode function implementations, which wrote
- * corrupt configuration values to the device registers
- *
- *
- *
Added missing NULL pointer asserts to the PORT driver functions
- *
- *
- *
Initial Release
- *
- *
- */
-
-/**
- * \page asfdoc_sam0_system_pinmux_exqsg Examples for SYSTEM PINMUX Driver
- *
- * This is a list of the available Quick Start guides (QSGs) and example
- * applications for \ref asfdoc_sam0_system_pinmux_group. QSGs are simple
- * examples with step-by-step instructions to configure and use this driver in a
- * selection of use cases. Note that a QSG can be compiled as a standalone
- * application or be added to the user application.
- *
- * - \subpage asfdoc_sam0_system_pinmux_basic_use_case
- *
- * \page asfdoc_sam0_system_pinmux_document_revision_history Document Revision History
- *
- *
- *
- *
Doc. Rev.
- *
Date
- *
Comments
- *
- *
- *
42121F
- *
12/2015
- *
Added support for SAM L21/L22, SAM DA1, SAM D09, and SAM C20/C21
- *
- *
- *
42121E
- *
12/2014
- *
Added support for SAM R21 and SAM D10/D11
- *
- *
- *
42121D
- *
01/2014
- *
Added support for SAM D21
- *
- *
- *
42121C
- *
09/2013
- *
Fixed incorrect documentation for the device pin sampling mode
- *
- *
- *
42121B
- *
06/2013
- *
Corrected documentation typos
- *
- *
- *
42121A
- *
06/2013
- *
Initial release
- *
- *
- */
-
-#endif
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/pinmux/quick_start/qs_pinmux_basic.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/pinmux/quick_start/qs_pinmux_basic.h
deleted file mode 100644
index 2d0b417..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/pinmux/quick_start/qs_pinmux_basic.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/**
- * \file
- *
- * \brief SAM PINMUX Driver Quick Start
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-
-/**
- * \page asfdoc_sam0_system_pinmux_basic_use_case Quick Start Guide for SYSTEM PINMUX - Basic
- *
- * In this use case, the PINMUX module is configured for:
- * \li One pin in input mode, with pull-up enabled, connected to the GPIO
- * module
- * \li Sampling mode of the pin changed to sample on demand
- *
- * This use case sets up the PINMUX to configure a physical I/O pin set as
- * an input with pull-up and changes the sampling mode of the pin to reduce
- * power by only sampling the physical pin state when the user application
- * attempts to read it.
- *
- * \section asfdoc_sam0_system_pinmux_basic_use_case_setup Setup
- *
- * \subsection asfdoc_sam0_system_pinmux_basic_use_case_setup_prereq Prerequisites
- * There are no special setup requirements for this use-case.
- *
- * \subsection asfdoc_sam0_system_pinmux_basic_use_case_setup_code Code
- * Copy-paste the following setup code to your application:
- * \snippet qs_pinmux_basic.c setup
- *
- * \subsection asfdoc_sam0_system_pinmux_basic_use_case_setup_flow Workflow
- * -# Create a PINMUX module pin configuration struct, which can be filled out
- * to adjust the configuration of a single port pin.
- * \snippet qs_pinmux_basic.c pinmux_config
- * -# Initialize the pin configuration struct with the module's default values.
- * \snippet qs_pinmux_basic.c pinmux_config_defaults
- * \note This should always be performed before using the configuration
- * struct to ensure that all values are initialized to known default
- * settings.
- *
- * -# Adjust the configuration struct to request an input pin with pull-up
- * connected to the GPIO peripheral.
- * \snippet qs_pinmux_basic.c pinmux_update_config_values
- * -# Configure GPIO10 with the initialized pin configuration struct, to enable
- * the input sampler on the pin.
- * \snippet qs_pinmux_basic.c pinmux_set_config
- *
- * \section asfdoc_sam0_system_pinmux_basic_use_case_use_main Use Case
- *
- * \subsection asfdoc_sam0_system_pinmux_basic_use_case_code Code
- * Copy-paste the following code to your user application:
- * \snippet qs_pinmux_basic.c main
- *
- * \subsection asfdoc_sam0_system_pinmux_basic_use_case_flow Workflow
-
- * -# Adjust the configuration of the pin to enable on-demand sampling mode.
- * \snippet qs_pinmux_basic.c pinmux_change_input_sampling
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/power/power_sam_d_r_h/power.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/power/power_sam_d_r_h/power.h
deleted file mode 100644
index 90a5b91..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/power/power_sam_d_r_h/power.h
+++ /dev/null
@@ -1,239 +0,0 @@
-/**
- * \file
- *
- * \brief SAM Power related functionality
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef POWER_H_INCLUDED
-#define POWER_H_INCLUDED
-
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* MCU revision number */
-#define _SYSTEM_MCU_REVISION_D 3
-#define _SYSTEM_MCU_REVISION_E 4
-
-/**
- * \addtogroup asfdoc_sam0_system_group
- * @{
- */
-
-/**
- * \brief Voltage references within the device.
- *
- * List of available voltage references (VREF) that may be used within the
- * device.
- */
-enum system_voltage_reference {
- /** Temperature sensor voltage reference */
- SYSTEM_VOLTAGE_REFERENCE_TEMPSENSE,
- /** Bandgap voltage reference */
- SYSTEM_VOLTAGE_REFERENCE_BANDGAP,
-};
-
-/**
- * \brief Device sleep modes.
- *
- * List of available sleep modes in the device. A table of clocks available in
- * different sleep modes can be found in \ref asfdoc_sam0_system_module_overview_sleep_mode.
- */
-enum system_sleepmode {
- /** IDLE 0 sleep mode */
- SYSTEM_SLEEPMODE_IDLE_0,
- /** IDLE 1 sleep mode */
- SYSTEM_SLEEPMODE_IDLE_1,
- /** IDLE 2 sleep mode */
- SYSTEM_SLEEPMODE_IDLE_2,
- /** Standby sleep mode */
- SYSTEM_SLEEPMODE_STANDBY,
-};
-
-
-
-/**
- * \name Voltage References
- * @{
- */
-
-/**
- * \brief Enable the selected voltage reference
- *
- * Enables the selected voltage reference source, making the voltage reference
- * available on a pin as well as an input source to the analog peripherals.
- *
- * \param[in] vref Voltage reference to enable
- */
-static inline void system_voltage_reference_enable(
- const enum system_voltage_reference vref)
-{
- switch (vref) {
- case SYSTEM_VOLTAGE_REFERENCE_TEMPSENSE:
- SYSCTRL->VREF.reg |= SYSCTRL_VREF_TSEN;
- break;
-
- case SYSTEM_VOLTAGE_REFERENCE_BANDGAP:
- SYSCTRL->VREF.reg |= SYSCTRL_VREF_BGOUTEN;
- break;
-
- default:
- Assert(false);
- return;
- }
-}
-
-/**
- * \brief Disable the selected voltage reference
- *
- * Disables the selected voltage reference source.
- *
- * \param[in] vref Voltage reference to disable
- */
-static inline void system_voltage_reference_disable(
- const enum system_voltage_reference vref)
-{
- switch (vref) {
- case SYSTEM_VOLTAGE_REFERENCE_TEMPSENSE:
- SYSCTRL->VREF.reg &= ~SYSCTRL_VREF_TSEN;
- break;
-
- case SYSTEM_VOLTAGE_REFERENCE_BANDGAP:
- SYSCTRL->VREF.reg &= ~SYSCTRL_VREF_BGOUTEN;
- break;
-
- default:
- Assert(false);
- return;
- }
-}
-
-/**
- * @}
- */
-
-
-/**
- * \name Device Sleep Control
- * @{
- */
-
-/**
- * \brief Set the sleep mode of the device
- *
- * Sets the sleep mode of the device; the configured sleep mode will be entered
- * upon the next call of the \ref system_sleep() function.
- *
- * For an overview of which systems are disabled in sleep for the different
- * sleep modes, see \ref asfdoc_sam0_system_module_overview_sleep_mode.
- *
- * \param[in] sleep_mode Sleep mode to configure for the next sleep operation
- *
- * \retval STATUS_OK Operation completed successfully
- * \retval STATUS_ERR_INVALID_ARG The requested sleep mode was invalid or not
- * available
- */
-static inline enum status_code system_set_sleepmode(
- const enum system_sleepmode sleep_mode)
-{
-
-#if (SAMD20 || SAMD21 || SAMR21)
-
- /* Get MCU revision */
- uint32_t rev = DSU->DID.reg;
-
- rev &= DSU_DID_REVISION_Msk;
- rev = rev >> DSU_DID_REVISION_Pos;
-
-#if (SAMD20)
- if (rev < _SYSTEM_MCU_REVISION_E) {
- /* Errata 13140: Make sure that the Flash does not power all the way down
- * when in sleep mode. */
- NVMCTRL->CTRLB.bit.SLEEPPRM = NVMCTRL_CTRLB_SLEEPPRM_DISABLED_Val;
- }
-#endif
-
-#if (SAMD21 || SAMR21)
- if (rev < _SYSTEM_MCU_REVISION_D) {
- /* Errata 13140: Make sure that the Flash does not power all the way down
- * when in sleep mode. */
- NVMCTRL->CTRLB.bit.SLEEPPRM = NVMCTRL_CTRLB_SLEEPPRM_DISABLED_Val;
- }
-#endif
-
-#endif
-
- switch (sleep_mode) {
- case SYSTEM_SLEEPMODE_IDLE_0:
- case SYSTEM_SLEEPMODE_IDLE_1:
- case SYSTEM_SLEEPMODE_IDLE_2:
- SCB->SCR &= ~SCB_SCR_SLEEPDEEP_Msk;
- PM->SLEEP.reg = sleep_mode;
- break;
-
- case SYSTEM_SLEEPMODE_STANDBY:
- SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;
- break;
-
- default:
- return STATUS_ERR_INVALID_ARG;
- }
-
- return STATUS_OK;
-}
-
-/**
- * \brief Put the system to sleep waiting for interrupt
- *
- * Executes a device DSB (Data Synchronization Barrier) instruction to ensure
- * all ongoing memory accesses have completed, then a WFI (Wait For Interrupt)
- * instruction to place the device into the sleep mode specified by
- * \ref system_set_sleepmode until woken by an interrupt.
- */
-static inline void system_sleep(void)
-{
- __DSB();
- __WFI();
-}
-
-/**
- * @}
- */
-
-/** @} */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* POWER_H_INCLUDED */
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/reset/reset_sam_d_r_h/reset.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/reset/reset_sam_d_r_h/reset.h
deleted file mode 100644
index d7b21ce..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/reset/reset_sam_d_r_h/reset.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/**
- * \file
- *
- * \brief SAM Reset related functionality
- *
- * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef RESET_H_INCLUDED
-#define RESET_H_INCLUDED
-
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \addtogroup asfdoc_sam0_system_group
- * @{
- */
-
-/**
- * \brief Reset causes of the system.
- *
- * List of possible reset causes of the system.
- */
-enum system_reset_cause {
- /** The system was last reset by a software reset */
- SYSTEM_RESET_CAUSE_SOFTWARE = PM_RCAUSE_SYST,
- /** The system was last reset by the watchdog timer */
- SYSTEM_RESET_CAUSE_WDT = PM_RCAUSE_WDT,
- /** The system was last reset because the external reset line was pulled low */
- SYSTEM_RESET_CAUSE_EXTERNAL_RESET = PM_RCAUSE_EXT,
- /** The system was last reset by the BOD33 */
- SYSTEM_RESET_CAUSE_BOD33 = PM_RCAUSE_BOD33,
- /** The system was last reset by the BOD12 */
- SYSTEM_RESET_CAUSE_BOD12 = PM_RCAUSE_BOD12,
- /** The system was last reset by the POR (Power on reset) */
- SYSTEM_RESET_CAUSE_POR = PM_RCAUSE_POR,
-};
-
-
-/**
- * \name Reset Control
- * @{
- */
-
-/**
- * \brief Reset the MCU.
- *
- * Resets the MCU and all associated peripherals and registers, except RTC, all 32KHz sources,
- * WDT (if ALWAYSON is set) and GCLK (if WRTLOCK is set).
- *
- */
-static inline void system_reset(void)
-{
- NVIC_SystemReset();
-}
-
-/**
- * \brief Return the reset cause.
- *
- * Retrieves the cause of the last system reset.
- *
- * \return An enum value indicating the cause of the last system reset.
- */
-static inline enum system_reset_cause system_get_reset_cause(void)
-{
- return (enum system_reset_cause)PM->RCAUSE.reg;
-}
-
-/**
- * @}
- */
-
-/** @} */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* RESET_H_INCLUDED */
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/system.c b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/system.c
deleted file mode 100644
index f5f6709..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/system.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/**
- * \file
- *
- * \brief SAM System related functionality
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-
-#include
-
-/**
- * \internal
- * Dummy initialization function, used as a weak alias target for the various
- * init functions called by \ref system_init().
- */
-void _system_dummy_init(void);
-void _system_dummy_init(void)
-{
- return;
-}
-
-#if !defined(__DOXYGEN__)
-# if defined(__GNUC__)
-void system_clock_init(void) WEAK __attribute__((alias("_system_dummy_init")));
-void system_board_init(void) WEAK __attribute__((alias("_system_dummy_init")));
-void _system_events_init(void) WEAK __attribute__((alias("_system_dummy_init")));
-void _system_extint_init(void) WEAK __attribute__((alias("_system_dummy_init")));
-void _system_divas_init(void) WEAK __attribute__((alias("_system_dummy_init")));
-# elif defined(__ICCARM__)
-void system_clock_init(void);
-void system_board_init(void);
-void _system_events_init(void);
-void _system_extint_init(void);
-void _system_divas_init(void);
-# pragma weak system_clock_init=_system_dummy_init
-# pragma weak system_board_init=_system_dummy_init
-# pragma weak _system_events_init=_system_dummy_init
-# pragma weak _system_extint_init=_system_dummy_init
-# pragma weak _system_divas_init=_system_dummy_init
-# endif
-#endif
-
-/**
- * \brief Initialize system
- *
- * This function will call the various initialization functions within the
- * system namespace. If a given optional system module is not available, the
- * associated call will effectively be a NOP (No Operation).
- *
- * Currently the following initialization functions are supported:
- * - System clock initialization (via the SYSTEM CLOCK sub-module)
- * - Board hardware initialization (via the Board module)
- * - Event system driver initialization (via the EVSYS module)
- * - External Interrupt driver initialization (via the EXTINT module)
- */
-void system_init(void)
-{
- /* Configure GCLK and clock sources according to conf_clocks.h */
- system_clock_init();
-
- /* Initialize board hardware */
- system_board_init();
-
- /* Initialize EVSYS hardware */
- _system_events_init();
-
- /* Initialize External hardware */
- _system_extint_init();
-
- /* Initialize DIVAS hardware */
- _system_divas_init();
-}
-
diff --git a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/system.h b/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/system.h
deleted file mode 100644
index 49a410d..0000000
--- a/I2C_QUICK_START_MASTER_BASIC_USE1/src/ASF/sam0/drivers/system/system.h
+++ /dev/null
@@ -1,721 +0,0 @@
-/**
- * \file
- *
- * \brief SAM System related functionality
- *
- * Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
- *
- * \asf_license_start
- *
- * \page License
- *
- * Subject to your compliance with these terms, you may use Microchip
- * software and any derivatives exclusively with Microchip products.
- * It is your responsibility to comply with third party license terms applicable
- * to your use of third party software (including open source software) that
- * may accompany Microchip software.
- *
- * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
- * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
- * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
- * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
- * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
- * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
- * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
- * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
- * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
- * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
- * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
- *
- * \asf_license_stop
- *
- */
-/*
- * Support and FAQ: visit Microchip Support
- */
-#ifndef SYSTEM_H_INCLUDED
-#define SYSTEM_H_INCLUDED
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \defgroup asfdoc_sam0_system_group SAM System (SYSTEM) Driver
- *
- * This driver for Atmel® | SMART ARM®-based microcontrollers provides an interface for the configuration
- * and management of the device's system relation functionality, necessary for
- * the basic device operation. This is not limited to a single peripheral, but
- * extends across multiple hardware peripherals.
- *
- * The following peripherals are used by this module:
- * \if DEVICE_SAML21_SYSTEM_SUPPORT
- * - PM (Power Manager)
- * - RSTC (Reset Controller)
- * - SUPC (Supply Controller)
- * \endif
- * \if DEVICE_SAMC21_SYSTEM_SUPPORT
- * - PM (Power Manager)
- * - RSTC (Reset Controller)
- * - SUPC (Supply Controller)
- * \endif
- * \if DEVICE_SAMD21_SYSTEM_SUPPORT
- * - SYSCTRL (System Control)
- * - PM (Power Manager)
- * \endif
- *
- * The following devices can use this module:
- * \if DEVICE_SAML21_SYSTEM_SUPPORT
- * - Atmel | SMART SAM L21
- * - Atmel | SMART SAM R30
- * - Atmel | SMART SAM R34
- * - Atmel | SMART SAM R35
- * \endif
- * \if DEVICE_SAMC21_SYSTEM_SUPPORT
- * - Atmel | SMART SAM C20/C21
- * \endif
- * \if DEVICE_SAMD21_SYSTEM_SUPPORT
- * - Atmel | SMART SAM D20/D21
- * - Atmel | SMART SAM R21
- * - Atmel | SMART SAM D09/D10/D11
- * - Atmel | SMART SAM DA1
- * \endif
- *
- * The outline of this documentation is as follows:
- * - \ref asfdoc_sam0_system_prerequisites
- * - \ref asfdoc_sam0_system_module_overview
- * - \ref asfdoc_sam0_system_special_considerations
- * - \ref asfdoc_sam0_system_extra_info
- * - \ref asfdoc_sam0_system_examples
- * - \ref asfdoc_sam0_system_api_overview
- *
- *
- * \section asfdoc_sam0_system_prerequisites Prerequisites
- *
- * There are no prerequisites for this module.
- *
- *
- * \section asfdoc_sam0_system_module_overview Module Overview
- *
- * The System driver provides a collection of interfaces between the user
- * application logic, and the core device functionality (such as clocks, reset
- * cause determination, etc.) that is required for all applications. It contains
- * a number of sub-modules that control one specific aspect of the device:
- *
- * - System Core (this module)
- * - \ref asfdoc_sam0_system_clock_group "System Clock Control" (sub-module)
- * - \ref asfdoc_sam0_system_interrupt_group "System Interrupt Control" (sub-module)
- * - \ref asfdoc_sam0_system_pinmux_group "System Pin Multiplexer Control" (sub-module)
- *
- *
- * \if DEVICE_SAML21_SYSTEM_SUPPORT
- * \subsection asfdoc_sam0_system_module_overview_vreg_l21 Voltage Regulator
- * The SAM device controls the voltage regulators for the core (VDDCORE) and
- * backup (VDDBU) domains. It sets the voltage regulators according to the sleep
- * modes, the performance level, or the user configuration.
- *
- * In active mode, the voltage regulator can be chosen on the fly between a LDO
- * or a Buck converter. In standby mode, the low power voltage regulator is used
- * to supply VDDCORE.
- *
- * \subsection asfdoc_sam0_system_module_overview_bbps Battery Backup Power Switch
- * The SAM device supports connection of a battery backup to the VBAT power pin.
- * It includes functionality that enables automatic power switching between main
- * power and battery backup power. This will ensure power to the backup domain,
- * when the main battery or power source is unavailable.
- * \endif
- *
- * \if DEVICE_SAMC21_SYSTEM_SUPPORT
- * \subsection asfdoc_sam0_system_module_overview_vreg_c21 Voltage Regulator
- * The SAM device controls the voltage regulators for the core (VDDCORE). It sets
- * the voltage regulators according to the sleep modes.
- *
- * There are a selectable reference voltage and voltage dependent on the temperature
- * which can be used by analog modules like the ADC.
- * \endif
- *
- * \subsection asfdoc_sam0_system_module_overview_vref Voltage References
- * The various analog modules within the SAM devices (such as AC, ADC, and
- * DAC) require a voltage reference to be configured to act as a reference point
- * for comparisons and conversions.
- *
- * The SAM devices contain multiple references, including an internal
- * temperature sensor and a fixed band-gap voltage source. When enabled, the
- * associated voltage reference can be selected within the desired peripheral
- * where applicable.
- *
- * \subsection asfdoc_sam0_system_module_overview_reset_cause System Reset Cause
- * In some applications there may be a need to execute a different program
- * flow based on how the device was reset. For example, if the cause of reset
- * was the Watchdog timer (WDT), this might indicate an error in the application,
- * and a form of error handling or error logging might be needed.
- *
- * For this reason, an API is provided to retrieve the cause of the last system
- * reset, so that appropriate action can be taken.
- *
- * \if DEVICE_SAML21_SYSTEM_SUPPORT
- * There are three groups of reset sources:
- * - Power supply reset: Resets caused by an electrical issue. It covers POR and BOD reset.
- * - User reset: Resets caused by the application. It covers external reset,
- * system reset, and watchdog reset.
- * - Backup reset: Resets caused by a backup mode exit condition.
- *
- * \subsection asfdoc_sam0_system_module_overview_performance_level Performance Level
- * Performance level allows the user to adjust the regulator output voltage to reduce
- * power consumption. The user can on the fly select the most suitable performance
- * level, depending on the application demands.
- *
- * The SAM device can operate at two different performance levels (PL0 and PL2).
- * When operating at PL0, the voltage applied on the full logic area is reduced
- * by voltage scaling. This voltage scaling technique allows to reduce the active
- * power consumption while decreasing the maximum frequency of the device. When
- * operating at PL2, the voltage regulator supplies the highest voltage, allowing
- * the device to run at higher clock speeds.
- *
- * Performance level transition is possible only when the device is in active
- * mode. After a reset, the device starts at the lowest performance level
- * (lowest power consumption and lowest max. frequency). The application can then
- * switch to another performance level at any time without any stop in the code
- * execution. As shown in \ref asfdoc_sam0_system_performance_level_transition_figure.
- *
- * \note When scaling down the performance level, the bus frequency should first be
- * scaled down in order to not exceed the maximum frequency allowed for the
- * low performance level.
- * When scaling up the performance level (e.g. from PL0 to PL2), check the performance
- * level status before increasing the bus frequency. It can be increased only
- * when the performance level transition is completed.
- *
- * \anchor asfdoc_sam0_system_performance_level_transition_figure
- * \image html performance_level_transition.svg "Performance Level Transition"
- *
- * \subsection asfdoc_sam0_system_module_overview_power_domain Power Domain Gating
- * Power domain gating allows power saving by reducing the voltage in logic
- * areas in the device to a low-power supply. The feature is available in
- * Standby sleep mode and will reduce the voltage in domains where all peripherals
- * are idle. Internal logic will maintain its content, meaning the corresponding
- * peripherals will not need to be reconfigured when normal operating voltage
- * is returned. Most power domains can be in the following three states:
- *
- * - Active state: The power domain is powered on.
- * - Retention state: The main voltage supply for the power domain is switched off,
- * while maintaining a secondary low-power supply for the sequential cells. The
- * logic context is restored when waking up.
- * - Off state: The power domain is entirely powered off. The logic context is lost.
- *
- * The SAM L21 device contains three power domains which can be controlled using
- * power domain gating, namely PD0, PD1, and PD2. These power domains can be
- * configured to the following cases:
- * - Default with no sleepwalking peripherals: A power domain is automatically set
- * to retention state in standby sleep mode if no activity require it. The application
- * can force all power domains to remain in active state during standby sleep mode
- * in order to accelerate wakeup time.
- * - Default with sleepwalking peripherals: If one or more peripherals are enabled
- * to perform sleepwalking tasks in standby sleep mode, the corresponding power
- * domain (PDn) remains in active state as well as all inferior power domains (PDn) in order
- * to perform a sleepwalking task. The superior power domain is then automatically
- * set to active state. At the end of the sleepwalking task, the device can either
- * be woken up or the superior power domain can return to retention state.
- *
- * Power domains can be linked to each other, it allows a power domain (PDn) to be kept
- * in active state if the inferior power domain (PDn-1) is in active state too.
- *
- * \ref asfdoc_sam0_system_power_domain_overview_table illustrates the
- * four cases to consider in standby mode.
- *
- * \anchor asfdoc_sam0_system_power_domain_overview_table
- *
- *
Sleep Mode versus Power Domain State Overview
- *
- *
Sleep mode
- *
PD0
- *
PD1
- *
PD2
- *
PDTOP
- *
PDBACKUP
- *
- *
- *
Idle
- *
active
- *
active
- *
active
- *
active
- *
active
- *
- *
- *
Standby - Case 1
- *
active
- *
active
- *
active
- *
active
- *
active
- *
- *
- *
Standby - Case 2
- *
active
- *
active
- *
retention
- *
active
- *
active
- *
- *
- *
Standby - Case 3
- *
active
- *
retention
- *
retention
- *
active
- *
active
- *
- *
- *
Standby - Case 4
- *
retention
- *
retention
- *
retention
- *
active
- *
active
- *
- *
- *
Backup
- *
off
- *
off
- *
off
- *
off
- *
active
- *
- *
- *
Off
- *
off
- *
off
- *
off
- *
off
- *
off
- *
- *
- *
- * \subsection asfdoc_sam0_system_module_overview_ram_state RAMs Low Power Mode
- * By default, in standby sleep mode, RAM is in low power mode (back biased)
- * if its power domain is in retention state.
- * \ref asfdoc_sam0_system_power_ram_state_table lists RAMs low power mode.
- *
- * \anchor asfdoc_sam0_system_power_ram_state_table
- *
- *
RAM Back-biasing Mode
- *
- *
RAM mode
- *
Description
- *
- *
- *
Retention Back-biasing mode
- *
RAM is back-biased if its power domain is in retention mode
- *
- *
- *
Standby Back-biasing mode
- *
RAM is back-biased if the device is in standby mode
- *
- *
- *
Standby OFF mode
- *
RAM is OFF if the device is in standby mode
- *
- *
- *
Always OFF mode
- *
RAM is OFF if the device is in RET mode
- *
- *
- *
- * \endif
- *
- * \subsection asfdoc_sam0_system_module_overview_sleep_mode Sleep Modes
- * The SAM devices have several sleep modes. The sleep mode controls
- * which clock systems on the device will remain enabled or disabled when the
- * device enters a low power sleep mode.
- * \ref asfdoc_sam0_system_module_sleep_mode_table "The table below" lists the
- * clock settings of the different sleep modes.
- *
- * \anchor asfdoc_sam0_system_module_sleep_mode_table
- *
- *
SAM Device Sleep Modes
- * \if DEVICE_SAML21_SYSTEM_SUPPORT
- *
- *
Sleep mode
- *
System clock
- *
CPU clock
- *
AHB/AHB clock
- *
GCLK clocks
- *
Oscillators (ONDEMAND = 0)
- *
Oscillators (ONDEMAND = 1)
- *
Regulator mode
- *
RAM mode
- *
- *
- *
Idle
- *
Run
- *
Stop
- *
Run if requested
- *
Run
- *
Run
- *
Run if requested
- *
Normal
- *
Normal
- *
- *
- *
Standby
- *
Stop
- *
Stop
- *
Run if requested
- *
Run if requested
- *
Run if requested or RUNSTDBY = 1
- *
Run if requested
- *
Low pwer
- *
Low pwer
- *
- *
- *
Backup
- *
Stop
- *
Stop
- *
Stop
- *
Stop
- *
Stop
- *
Stop
- *
Backup
- *
Off
- *
- *
- *
Off
- *
Off
- *
Off
- *
Off
- *
Off
- *
Off
- *
Off
- *
Off
- *
Off
- *
- * \else
- *
- *
Sleep mode
- *
CPU clock
- *
AHB clock
- *
APB clocks
- *
Clock sources
- *
System clock
- *
32KHz
- *
Reg mode
- *
RAM mode
- *
- *
- *
Idle 0
- *
Stop
- *
Run
- *
Run
- *
Run
- *
Run
- *
Run
- *
Normal
- *
Normal
- *
- *
- *
Idle 1
- *
Stop
- *
Stop
- *
Run
- *
Run
- *
Run
- *
Run
- *
Normal
- *
Normal
- *
- *
- *
Idle 2
- *
Stop
- *
Stop
- *
Stop
- *
Run
- *
Run
- *
Run
- *
Normal
- *
Normal
- *
- *
- *
Standby
- *
Stop
- *
Stop
- *
Stop
- *
Stop
- *
Stop
- *
Stop
- *
Low Power
- *
Source/Drain biasing
- *
- * \endif
- *
- *
- * Before entering device sleep, one of the available sleep modes must be set.
- * The device will automatically wake up in response to an interrupt being
- * generated or upon any other sleep mode exit condition.
- *
- * Some peripheral clocks will remain enabled during sleep, depending on their
- * configuration. If desired, the modules can remain clocked during sleep to allow
- * them continue to operate while other parts of the system are powered down
- * to save power.
- *
- *
- * \section asfdoc_sam0_system_special_considerations Special Considerations
- *
- * Most of the functions in this driver have device specific restrictions and
- * caveats; refer to your device datasheet.
- *
- *
- * \section asfdoc_sam0_system_extra_info Extra Information
- *
- * For extra information, see \ref asfdoc_sam0_system_extra. This includes:
- * - \ref asfdoc_sam0_system_extra_acronyms
- * - \ref asfdoc_sam0_system_extra_dependencies
- * - \ref asfdoc_sam0_system_extra_errata
- * - \ref asfdoc_sam0_system_extra_history
- *
- *
- * \section asfdoc_sam0_system_examples Examples
- *
- * For SYSTEM module related examples, refer to the sub-modules listed in
- * the \ref asfdoc_sam0_system_module_overview "Module Overview".
- *
- * \if DEVICE_SAML21_SYSTEM_SUPPORT
- * For a list of examples related to this driver, see
- * \ref asfdoc_sam0_drivers_power_exqsg.
- * \endif
- *
- *
- * \section asfdoc_sam0_system_api_overview API Overview
- * @{
- */
-
-/**
- * \name System Debugger
- * @{
- */
-
-/**
- * \brief Check if debugger is present.
- *
- * Check if debugger is connected to the onboard debug system (DAP).
- *
- * \return A bool identifying if a debugger is present.
- *
- * \retval true Debugger is connected to the system
- * \retval false Debugger is not connected to the system
- *
- */
-static inline bool system_is_debugger_present(void)
-{
- return DSU->STATUSB.reg & DSU_STATUSB_DBGPRES;
-}
-
-/**
- * @}
- */
-
-/**
- * \name System Identification
- * @{
- */
-
-/**
- * \brief Retrieve the device identification signature.
- *
- * Retrieves the signature of the current device.
- *
- * \return Device ID signature as a 32-bit integer.
- */
-static inline uint32_t system_get_device_id(void)
-{
- return DSU->DID.reg;
-}
-
-/**
- * @}
- */
-
-/**
- * \name System Initialization
- * @{
- */
-
-void system_init(void);
-
-/**
- * @}
- */
-
-
-/**
- * @}
- */
-
-/**
- *
- * \if DEVICE_SAML21_SYSTEM_SUPPORT
- * \page asfdoc_sam0_drivers_power_exqsg Examples for SYSTEM Driver
- *
- * This is a list of the available Quick Start Guides (QSGs) and example
- * applications for \ref asfdoc_sam0_system_group. QSGs are simple examples with step-by-step instructions to
- * configure and use this driver in a selection of
- * use cases. Note that a QSG can be compiled as a standalone application or be
- * added to the user application.
- *
- * - \subpage asfdoc_sam0_power_basic_use_case
- * \endif
- *
- * \page asfdoc_sam0_system_extra Extra Information for SYSTEM Driver
- *
- * \section asfdoc_sam0_system_extra_acronyms Acronyms
- * Below is a table listing the acronyms used in this module, along with their
- * intended meanings.
- *
- *
- *
- *
- * \section asfdoc_sam0_system_extra_dependencies Dependencies
- * This driver has the following dependencies:
- *
- * - None
- *
- *
- * \section asfdoc_sam0_system_extra_errata Errata
- * There are no errata related to this driver.
- *
- *
- * \section asfdoc_sam0_system_extra_history Module History
- * An overview of the module history is presented in the table below, with
- * details on the enhancements and fixes made to the module since its first
- * release. The current version of this corresponds to the newest version in
- * the table.
- *
- *