/* Auto-generated config file hpl_sercom_config.h */
#ifndef HPL_SERCOM_CONFIG_H
#define HPL_SERCOM_CONFIG_H

// <<< Use Configuration Wizard in Context Menu >>>

#include <peripheral_clk_config.h>

#ifndef CONF_SERCOM_0_USART_ENABLE
#define CONF_SERCOM_0_USART_ENABLE 1
#endif

// <h> Basic Configuration

// <q> Receive buffer enable
// <i> Enable input buffer in SERCOM module
// <id> usart_rx_enable
#ifndef CONF_SERCOM_0_USART_RXEN
#define CONF_SERCOM_0_USART_RXEN 1
#endif

// <q> Transmitt buffer enable
// <i> Enable output buffer in SERCOM module
// <id> usart_tx_enable
#ifndef CONF_SERCOM_0_USART_TXEN
#define CONF_SERCOM_0_USART_TXEN 1
#endif

// <o> Frame parity
// <0x1=>Even parity
// <i> Parity bit mode for USART frame
// <id> usart_parity
#ifndef CONF_SERCOM_0_USART_PARITY
#define CONF_SERCOM_0_USART_PARITY 1
#endif

// <o> Character Size
// <0x0=>8 bits
// <0x1=>9 bits
// <0x5=>5 bits
// <0x6=>6 bits
// <0x7=>7 bits
// <i> Data character size in USART frame
// <id> usart_character_size
#ifndef CONF_SERCOM_0_USART_CHSIZE
#define CONF_SERCOM_0_USART_CHSIZE 0x0
#endif

// <o> Stop Bit
// <0=>One stop bit
// <1=>Two stop bits
// <i> Number of stop bits in USART frame
// <id> usart_stop_bit
#ifndef CONF_SERCOM_0_USART_SBMODE
#define CONF_SERCOM_0_USART_SBMODE 1
#endif

// <o> Baud rate <1-3000000>
// <i> USART baud rate setting
// <id> usart_baud_rate
#ifndef CONF_SERCOM_0_USART_BAUD
#define CONF_SERCOM_0_USART_BAUD 6720
#endif
// </h>

// <h> ISO7816 configuration
// <o> ISO7816 Protocol Type
// <0x1=> T=0
// <0x0=> T=1
// <i> Define ISO7816 protocol type as 0.
// <id> usart_iso7816_type
#ifndef CONF_SERCOM_0_USART_ISO7816_PROTOCOL_T
#define CONF_SERCOM_0_USART_ISO7816_PROTOCOL_T 0x0
#endif

// <o> ISO7816 Inhibit Not Acknowledge
// <0x0=> NACK is transmitted when a parity error is received.
// <0x1=> NACK is not transmitted when a parity error is received.
// <i> Define whether a NACK is transmitted when a parity error is received.
// <id> usart_inack
#ifndef CONF_SERCOM_0_USART_INACK
#define CONF_SERCOM_0_USART_INACK 0x0
#endif

// <o> ISO7816 Disable Successive Not Acknowledge
// <0x0=> The successive receive NACK is disable.
// <0x1=> The successive receive NACK is enable.
// <i> Define whether NACK will be sent on parity error reception.
// <id> usart_dsnack
#ifndef CONF_SERCOM_0_USART_DSNACK
#define CONF_SERCOM_0_USART_DSNACK 0x0
#endif

// <o> ISO7816 Maximum Iterations<0-7>
// <i> Define the maximum number of retransmit iterations.
// <id> usart_maxiter
#ifndef CONF_SERCOM_0_USART_MAXITER
#define CONF_SERCOM_0_USART_MAXITER 0x7
#endif

// <o> ISO7816 Guard Time
// <0x2=> 2-bit times
// <0x3=> 3-bit times
// <0x4=> 4-bit times
// <0x5=> 5-bit times
// <0x6=> 6-bit times
// <0x7=> 7-bit times
// <i> Define the guard time.
// <id> usart_gtime
#ifndef CONF_SERCOM_0_USART_GTIME
#define CONF_SERCOM_0_USART_GTIME 0x2
#endif

// <q> Inverse transmission and reception enabled
// <i> Define inverse transmission and reception enabled.
// <id> usart_inverse_enabled
#ifndef CONF_SERCOM_0_USART_INVERSE_ENABLED
#define CONF_SERCOM_0_USART_INVERSE_ENABLED 0x0
#endif

#if (CONF_SERCOM_0_USART_INVERSE_ENABLED == 1)
#define CONF_SERCOM_0_USART_RXINV 0x1
#define CONF_SERCOM_0_USART_TXINV 0x1
#else
#define CONF_SERCOM_0_USART_RXINV 0x0
#define CONF_SERCOM_0_USART_TXINV 0x0
#endif

// </h>

// <e> Advanced configuration
// <id> usart_advanced
#ifndef CONF_SERCOM_0_USART_ADVANCED_CONFIG
#define CONF_SERCOM_0_USART_ADVANCED_CONFIG 0
#endif

// <q> Run in stand-by
// <i> Keep the module running in standby sleep mode
// <id> usart_arch_runstdby
#ifndef CONF_SERCOM_0_USART_RUNSTDBY
#define CONF_SERCOM_0_USART_RUNSTDBY 0
#endif

// <q> Immediate Buffer Overflow Notification
// <i> Controls when the BUFOVF status bit is asserted
// <id> usart_arch_ibon
#ifndef CONF_SERCOM_0_USART_IBON
#define CONF_SERCOM_0_USART_IBON 0
#endif

// <q> Start of Frame Detection Enable
// <i> Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled)
// <id> usart_arch_sfde
#ifndef CONF_SERCOM_0_USART_SFDE
#define CONF_SERCOM_0_USART_SFDE 0
#endif

// <q> Collision Detection Enable
// <i> Collision detection enable
// <id> usart_arch_cloden
#ifndef CONF_SERCOM_0_USART_CLODEN
#define CONF_SERCOM_0_USART_CLODEN 0
#endif

// <o> Operating Mode
// <0x1=>USART with internal clock
// <i> Drive the shift register by an internal clock generated by the baud rate generator.
// <id> usart_arch_clock_mode
#ifndef CONF_SERCOM_0_USART_MODE
#define CONF_SERCOM_0_USART_MODE 0x1
#endif

// <o> Data Order
// <0=>MSB is transmitted first
// <1=>LSB is transmitted first
// <i> Data order of the data bits in the frame
// <id> usart_arch_dord
#ifndef CONF_SERCOM_0_USART_DORD
#define CONF_SERCOM_0_USART_DORD 1
#endif

// <o> Debug Stop Mode
// <i> Behavior of the baud-rate generator when CPU is halted by external debugger.
// <0=>Keep running
// <1=>Halt
// <id> usart_arch_dbgstop
#ifndef CONF_SERCOM_0_USART_DEBUG_STOP_MODE
#define CONF_SERCOM_0_USART_DEBUG_STOP_MODE 0
#endif

// Does not do anything in USRT mode
#define CONF_SERCOM_0_USART_SAMPR 0x0
#define CONF_SERCOM_0_USART_SAMPA 0x0
#define CONF_SERCOM_0_USART_FRACTIONAL 0x0

// Does not do anything in UART mode
#define CONF_SERCOM_0_USART_CPOL 0

// Does not do anything in USRT mode
#define CONF_SERCOM_0_USART_ENC 0

// </e>

#ifndef CONF_SERCOM_0_USART_CMODE
#define CONF_SERCOM_0_USART_CMODE CONF_SERCOM_0_USART_ISO7816_PROTOCOL_T
#endif

/* RX is on PIN_PA04 */
#ifndef CONF_SERCOM_0_USART_RXPO
#define CONF_SERCOM_0_USART_RXPO 0
#endif

/* TX uses the same pin with RX */
#ifndef CONF_SERCOM_0_USART_TXPO
#define CONF_SERCOM_0_USART_TXPO 2
#endif

/* Set iso7816 mode */
#define CONF_SERCOM_0_USART_PMODE (CONF_SERCOM_0_USART_PARITY - 1)
#define CONF_SERCOM_0_USART_FORM 7

#if CONF_SERCOM_0_USART_CMODE == 0
// Calculate BAUD register value in UART mode
#if CONF_SERCOM_0_USART_SAMPR == 0
#ifndef CONF_SERCOM_0_USART_BAUD_RATE
#define CONF_SERCOM_0_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 16.0f * CONF_SERCOM_0_USART_BAUD) / CONF_GCLK_SERCOM0_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_0_USART_SAMPR == 1
#ifndef CONF_SERCOM_0_USART_BAUD_RATE
#define CONF_SERCOM_0_USART_BAUD_RATE                                                                                  \
	((CONF_GCLK_SERCOM0_CORE_FREQUENCY) / (CONF_SERCOM_0_USART_BAUD * 16)) - (CONF_SERCOM_0_USART_FRACTIONAL / 8)
#endif
#ifndef CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_0_USART_SAMPR == 2
#ifndef CONF_SERCOM_0_USART_BAUD_RATE
#define CONF_SERCOM_0_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 8.0f * CONF_SERCOM_0_USART_BAUD) / CONF_GCLK_SERCOM0_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_0_USART_SAMPR == 3
#ifndef CONF_SERCOM_0_USART_BAUD_RATE
#define CONF_SERCOM_0_USART_BAUD_RATE                                                                                  \
	((CONF_GCLK_SERCOM0_CORE_FREQUENCY) / (CONF_SERCOM_0_USART_BAUD * 8)) - (CONF_SERCOM_0_USART_FRACTIONAL / 8)
#endif
#ifndef CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_0_USART_SAMPR == 4
#ifndef CONF_SERCOM_0_USART_BAUD_RATE
#define CONF_SERCOM_0_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 3.0f * CONF_SERCOM_0_USART_BAUD) / CONF_GCLK_SERCOM0_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH 0
#endif
#endif

#elif CONF_SERCOM_0_USART_CMODE == 1
#ifndef CONF_SERCOM_0_USART_BAUD_RATE
// Calculate BAUD register value in USRT mode
#define CONF_SERCOM_0_USART_BAUD_RATE (CONF_GCLK_SERCOM0_CORE_FREQUENCY) / (2 * CONF_SERCOM_0_USART_BAUD) - 1
#endif

#ifndef CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH 0
#endif
#else
#error CMODE value for SERCOM 0 in USART mode not known
#endif

#include <peripheral_clk_config.h>

#ifndef CONF_SERCOM_1_USART_ENABLE
#define CONF_SERCOM_1_USART_ENABLE 1
#endif

// <h> Basic Configuration

// <q> Receive buffer enable
// <i> Enable input buffer in SERCOM module
// <id> usart_rx_enable
#ifndef CONF_SERCOM_1_USART_RXEN
#define CONF_SERCOM_1_USART_RXEN 1
#endif

// <q> Transmitt buffer enable
// <i> Enable output buffer in SERCOM module
// <id> usart_tx_enable
#ifndef CONF_SERCOM_1_USART_TXEN
#define CONF_SERCOM_1_USART_TXEN 1
#endif

// <o> Frame parity
// <0x1=>Even parity
// <i> Parity bit mode for USART frame
// <id> usart_parity
#ifndef CONF_SERCOM_1_USART_PARITY
#define CONF_SERCOM_1_USART_PARITY 1
#endif

// <o> Character Size
// <0x0=>8 bits
// <0x1=>9 bits
// <0x5=>5 bits
// <0x6=>6 bits
// <0x7=>7 bits
// <i> Data character size in USART frame
// <id> usart_character_size
#ifndef CONF_SERCOM_1_USART_CHSIZE
#define CONF_SERCOM_1_USART_CHSIZE 0x0
#endif

// <o> Stop Bit
// <0=>One stop bit
// <1=>Two stop bits
// <i> Number of stop bits in USART frame
// <id> usart_stop_bit
#ifndef CONF_SERCOM_1_USART_SBMODE
#define CONF_SERCOM_1_USART_SBMODE 0
#endif

// <o> Baud rate <1-3000000>
// <i> USART baud rate setting
// <id> usart_baud_rate
#ifndef CONF_SERCOM_1_USART_BAUD
#define CONF_SERCOM_1_USART_BAUD 6720
#endif
// </h>

// <h> ISO7816 configuration
// <o> ISO7816 Protocol Type
// <0x1=> T=0
// <0x0=> T=1
// <i> Define ISO7816 protocol type as 0.
// <id> usart_iso7816_type
#ifndef CONF_SERCOM_1_USART_ISO7816_PROTOCOL_T
#define CONF_SERCOM_1_USART_ISO7816_PROTOCOL_T 0x1
#endif

// <o> ISO7816 Inhibit Not Acknowledge
// <0x0=> NACK is transmitted when a parity error is received.
// <0x1=> NACK is not transmitted when a parity error is received.
// <i> Define whether a NACK is transmitted when a parity error is received.
// <id> usart_inack
#ifndef CONF_SERCOM_1_USART_INACK
#define CONF_SERCOM_1_USART_INACK 0x0
#endif

// <o> ISO7816 Disable Successive Not Acknowledge
// <0x0=> The successive receive NACK is disable.
// <0x1=> The successive receive NACK is enable.
// <i> Define whether NACK will be sent on parity error reception.
// <id> usart_dsnack
#ifndef CONF_SERCOM_1_USART_DSNACK
#define CONF_SERCOM_1_USART_DSNACK 0x0
#endif

// <o> ISO7816 Maximum Iterations<0-7>
// <i> Define the maximum number of retransmit iterations.
// <id> usart_maxiter
#ifndef CONF_SERCOM_1_USART_MAXITER
#define CONF_SERCOM_1_USART_MAXITER 0x7
#endif

// <o> ISO7816 Guard Time
// <0x2=> 2-bit times
// <0x3=> 3-bit times
// <0x4=> 4-bit times
// <0x5=> 5-bit times
// <0x6=> 6-bit times
// <0x7=> 7-bit times
// <i> Define the guard time.
// <id> usart_gtime
#ifndef CONF_SERCOM_1_USART_GTIME
#define CONF_SERCOM_1_USART_GTIME 0x2
#endif

// <q> Inverse transmission and reception enabled
// <i> Define inverse transmission and reception enabled.
// <id> usart_inverse_enabled
#ifndef CONF_SERCOM_1_USART_INVERSE_ENABLED
#define CONF_SERCOM_1_USART_INVERSE_ENABLED 0x0
#endif

#if (CONF_SERCOM_1_USART_INVERSE_ENABLED == 1)
#define CONF_SERCOM_1_USART_RXINV 0x1
#define CONF_SERCOM_1_USART_TXINV 0x1
#else
#define CONF_SERCOM_1_USART_RXINV 0x0
#define CONF_SERCOM_1_USART_TXINV 0x0
#endif

// </h>

// <e> Advanced configuration
// <id> usart_advanced
#ifndef CONF_SERCOM_1_USART_ADVANCED_CONFIG
#define CONF_SERCOM_1_USART_ADVANCED_CONFIG 0
#endif

// <q> Run in stand-by
// <i> Keep the module running in standby sleep mode
// <id> usart_arch_runstdby
#ifndef CONF_SERCOM_1_USART_RUNSTDBY
#define CONF_SERCOM_1_USART_RUNSTDBY 0
#endif

// <q> Immediate Buffer Overflow Notification
// <i> Controls when the BUFOVF status bit is asserted
// <id> usart_arch_ibon
#ifndef CONF_SERCOM_1_USART_IBON
#define CONF_SERCOM_1_USART_IBON 0
#endif

// <q> Start of Frame Detection Enable
// <i> Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled)
// <id> usart_arch_sfde
#ifndef CONF_SERCOM_1_USART_SFDE
#define CONF_SERCOM_1_USART_SFDE 0
#endif

// <q> Collision Detection Enable
// <i> Collision detection enable
// <id> usart_arch_cloden
#ifndef CONF_SERCOM_1_USART_CLODEN
#define CONF_SERCOM_1_USART_CLODEN 0
#endif

// <o> Operating Mode
// <0x1=>USART with internal clock
// <i> Drive the shift register by an internal clock generated by the baud rate generator.
// <id> usart_arch_clock_mode
#ifndef CONF_SERCOM_1_USART_MODE
#define CONF_SERCOM_1_USART_MODE 0x1
#endif

// <o> Data Order
// <0=>MSB is transmitted first
// <1=>LSB is transmitted first
// <i> Data order of the data bits in the frame
// <id> usart_arch_dord
#ifndef CONF_SERCOM_1_USART_DORD
#define CONF_SERCOM_1_USART_DORD 1
#endif

// <o> Debug Stop Mode
// <i> Behavior of the baud-rate generator when CPU is halted by external debugger.
// <0=>Keep running
// <1=>Halt
// <id> usart_arch_dbgstop
#ifndef CONF_SERCOM_1_USART_DEBUG_STOP_MODE
#define CONF_SERCOM_1_USART_DEBUG_STOP_MODE 0
#endif

// Does not do anything in USRT mode
#define CONF_SERCOM_1_USART_SAMPR 0x0
#define CONF_SERCOM_1_USART_SAMPA 0x0
#define CONF_SERCOM_1_USART_FRACTIONAL 0x0

// Does not do anything in UART mode
#define CONF_SERCOM_1_USART_CPOL 0

// Does not do anything in USRT mode
#define CONF_SERCOM_1_USART_ENC 0

// </e>

#ifndef CONF_SERCOM_1_USART_CMODE
#define CONF_SERCOM_1_USART_CMODE CONF_SERCOM_1_USART_ISO7816_PROTOCOL_T
#endif

/* RX is on PIN_PA16 */
#ifndef CONF_SERCOM_1_USART_RXPO
#define CONF_SERCOM_1_USART_RXPO 0
#endif

/* TX uses the same pin with RX */
#ifndef CONF_SERCOM_1_USART_TXPO
#define CONF_SERCOM_1_USART_TXPO 2
#endif

/* Set iso7816 mode */
#define CONF_SERCOM_1_USART_PMODE (CONF_SERCOM_1_USART_PARITY - 1)
#define CONF_SERCOM_1_USART_FORM 7

#if CONF_SERCOM_1_USART_CMODE == 0
// Calculate BAUD register value in UART mode
#if CONF_SERCOM_1_USART_SAMPR == 0
#ifndef CONF_SERCOM_1_USART_BAUD_RATE
#define CONF_SERCOM_1_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 16.0f * CONF_SERCOM_1_USART_BAUD) / CONF_GCLK_SERCOM1_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_1_USART_SAMPR == 1
#ifndef CONF_SERCOM_1_USART_BAUD_RATE
#define CONF_SERCOM_1_USART_BAUD_RATE                                                                                  \
	((CONF_GCLK_SERCOM1_CORE_FREQUENCY) / (CONF_SERCOM_1_USART_BAUD * 16)) - (CONF_SERCOM_1_USART_FRACTIONAL / 8)
#endif
#ifndef CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_1_USART_SAMPR == 2
#ifndef CONF_SERCOM_1_USART_BAUD_RATE
#define CONF_SERCOM_1_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 8.0f * CONF_SERCOM_1_USART_BAUD) / CONF_GCLK_SERCOM1_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_1_USART_SAMPR == 3
#ifndef CONF_SERCOM_1_USART_BAUD_RATE
#define CONF_SERCOM_1_USART_BAUD_RATE                                                                                  \
	((CONF_GCLK_SERCOM1_CORE_FREQUENCY) / (CONF_SERCOM_1_USART_BAUD * 8)) - (CONF_SERCOM_1_USART_FRACTIONAL / 8)
#endif
#ifndef CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_1_USART_SAMPR == 4
#ifndef CONF_SERCOM_1_USART_BAUD_RATE
#define CONF_SERCOM_1_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 3.0f * CONF_SERCOM_1_USART_BAUD) / CONF_GCLK_SERCOM1_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH 0
#endif
#endif

#elif CONF_SERCOM_1_USART_CMODE == 1
#ifndef CONF_SERCOM_1_USART_BAUD_RATE
// Calculate BAUD register value in USRT mode
#define CONF_SERCOM_1_USART_BAUD_RATE (CONF_GCLK_SERCOM1_CORE_FREQUENCY) / (2 * CONF_SERCOM_1_USART_BAUD) - 1
#endif

#ifndef CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH 0
#endif
#else
#error CMODE value for SERCOM 1 in USART mode not known
#endif

#include <peripheral_clk_config.h>

#ifndef CONF_SERCOM_2_USART_ENABLE
#define CONF_SERCOM_2_USART_ENABLE 1
#endif

// <h> Basic Configuration

// <q> Receive buffer enable
// <i> Enable input buffer in SERCOM module
// <id> usart_rx_enable
#ifndef CONF_SERCOM_2_USART_RXEN
#define CONF_SERCOM_2_USART_RXEN 1
#endif

// <q> Transmitt buffer enable
// <i> Enable output buffer in SERCOM module
// <id> usart_tx_enable
#ifndef CONF_SERCOM_2_USART_TXEN
#define CONF_SERCOM_2_USART_TXEN 1
#endif

// <o> Frame parity
// <0x1=>Even parity
// <i> Parity bit mode for USART frame
// <id> usart_parity
#ifndef CONF_SERCOM_2_USART_PARITY
#define CONF_SERCOM_2_USART_PARITY 1
#endif

// <o> Character Size
// <0x0=>8 bits
// <0x1=>9 bits
// <0x5=>5 bits
// <0x6=>6 bits
// <0x7=>7 bits
// <i> Data character size in USART frame
// <id> usart_character_size
#ifndef CONF_SERCOM_2_USART_CHSIZE
#define CONF_SERCOM_2_USART_CHSIZE 0x0
#endif

// <o> Stop Bit
// <0=>One stop bit
// <1=>Two stop bits
// <i> Number of stop bits in USART frame
// <id> usart_stop_bit
#ifndef CONF_SERCOM_2_USART_SBMODE
#define CONF_SERCOM_2_USART_SBMODE 0
#endif

// <o> Baud rate <1-3000000>
// <i> USART baud rate setting
// <id> usart_baud_rate
#ifndef CONF_SERCOM_2_USART_BAUD
#define CONF_SERCOM_2_USART_BAUD 6720
#endif
// </h>

// <h> ISO7816 configuration
// <o> ISO7816 Protocol Type
// <0x1=> T=0
// <0x0=> T=1
// <i> Define ISO7816 protocol type as 0.
// <id> usart_iso7816_type
#ifndef CONF_SERCOM_2_USART_ISO7816_PROTOCOL_T
#define CONF_SERCOM_2_USART_ISO7816_PROTOCOL_T 0x1
#endif

// <o> ISO7816 Inhibit Not Acknowledge
// <0x0=> NACK is transmitted when a parity error is received.
// <0x1=> NACK is not transmitted when a parity error is received.
// <i> Define whether a NACK is transmitted when a parity error is received.
// <id> usart_inack
#ifndef CONF_SERCOM_2_USART_INACK
#define CONF_SERCOM_2_USART_INACK 0x0
#endif

// <o> ISO7816 Disable Successive Not Acknowledge
// <0x0=> The successive receive NACK is disable.
// <0x1=> The successive receive NACK is enable.
// <i> Define whether NACK will be sent on parity error reception.
// <id> usart_dsnack
#ifndef CONF_SERCOM_2_USART_DSNACK
#define CONF_SERCOM_2_USART_DSNACK 0x0
#endif

// <o> ISO7816 Maximum Iterations<0-7>
// <i> Define the maximum number of retransmit iterations.
// <id> usart_maxiter
#ifndef CONF_SERCOM_2_USART_MAXITER
#define CONF_SERCOM_2_USART_MAXITER 0x7
#endif

// <o> ISO7816 Guard Time
// <0x2=> 2-bit times
// <0x3=> 3-bit times
// <0x4=> 4-bit times
// <0x5=> 5-bit times
// <0x6=> 6-bit times
// <0x7=> 7-bit times
// <i> Define the guard time.
// <id> usart_gtime
#ifndef CONF_SERCOM_2_USART_GTIME
#define CONF_SERCOM_2_USART_GTIME 0x2
#endif

// <q> Inverse transmission and reception enabled
// <i> Define inverse transmission and reception enabled.
// <id> usart_inverse_enabled
#ifndef CONF_SERCOM_2_USART_INVERSE_ENABLED
#define CONF_SERCOM_2_USART_INVERSE_ENABLED 0x0
#endif

#if (CONF_SERCOM_2_USART_INVERSE_ENABLED == 1)
#define CONF_SERCOM_2_USART_RXINV 0x1
#define CONF_SERCOM_2_USART_TXINV 0x1
#else
#define CONF_SERCOM_2_USART_RXINV 0x0
#define CONF_SERCOM_2_USART_TXINV 0x0
#endif

// </h>

// <e> Advanced configuration
// <id> usart_advanced
#ifndef CONF_SERCOM_2_USART_ADVANCED_CONFIG
#define CONF_SERCOM_2_USART_ADVANCED_CONFIG 0
#endif

// <q> Run in stand-by
// <i> Keep the module running in standby sleep mode
// <id> usart_arch_runstdby
#ifndef CONF_SERCOM_2_USART_RUNSTDBY
#define CONF_SERCOM_2_USART_RUNSTDBY 0
#endif

// <q> Immediate Buffer Overflow Notification
// <i> Controls when the BUFOVF status bit is asserted
// <id> usart_arch_ibon
#ifndef CONF_SERCOM_2_USART_IBON
#define CONF_SERCOM_2_USART_IBON 0
#endif

// <q> Start of Frame Detection Enable
// <i> Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled)
// <id> usart_arch_sfde
#ifndef CONF_SERCOM_2_USART_SFDE
#define CONF_SERCOM_2_USART_SFDE 0
#endif

// <q> Collision Detection Enable
// <i> Collision detection enable
// <id> usart_arch_cloden
#ifndef CONF_SERCOM_2_USART_CLODEN
#define CONF_SERCOM_2_USART_CLODEN 0
#endif

// <o> Operating Mode
// <0x1=>USART with internal clock
// <i> Drive the shift register by an internal clock generated by the baud rate generator.
// <id> usart_arch_clock_mode
#ifndef CONF_SERCOM_2_USART_MODE
#define CONF_SERCOM_2_USART_MODE 0x1
#endif

// <o> Data Order
// <0=>MSB is transmitted first
// <1=>LSB is transmitted first
// <i> Data order of the data bits in the frame
// <id> usart_arch_dord
#ifndef CONF_SERCOM_2_USART_DORD
#define CONF_SERCOM_2_USART_DORD 1
#endif

// <o> Debug Stop Mode
// <i> Behavior of the baud-rate generator when CPU is halted by external debugger.
// <0=>Keep running
// <1=>Halt
// <id> usart_arch_dbgstop
#ifndef CONF_SERCOM_2_USART_DEBUG_STOP_MODE
#define CONF_SERCOM_2_USART_DEBUG_STOP_MODE 0
#endif

// Does not do anything in USRT mode
#define CONF_SERCOM_2_USART_SAMPR 0x0
#define CONF_SERCOM_2_USART_SAMPA 0x0
#define CONF_SERCOM_2_USART_FRACTIONAL 0x0

// Does not do anything in UART mode
#define CONF_SERCOM_2_USART_CPOL 0

// Does not do anything in USRT mode
#define CONF_SERCOM_2_USART_ENC 0

// </e>

#ifndef CONF_SERCOM_2_USART_CMODE
#define CONF_SERCOM_2_USART_CMODE CONF_SERCOM_2_USART_ISO7816_PROTOCOL_T
#endif

/* RX is on PIN_PA09 */
#ifndef CONF_SERCOM_2_USART_RXPO
#define CONF_SERCOM_2_USART_RXPO 0
#endif

/* TX uses the same pin with RX */
#ifndef CONF_SERCOM_2_USART_TXPO
#define CONF_SERCOM_2_USART_TXPO 2
#endif

/* Set iso7816 mode */
#define CONF_SERCOM_2_USART_PMODE (CONF_SERCOM_2_USART_PARITY - 1)
#define CONF_SERCOM_2_USART_FORM 7

#if CONF_SERCOM_2_USART_CMODE == 0
// Calculate BAUD register value in UART mode
#if CONF_SERCOM_2_USART_SAMPR == 0
#ifndef CONF_SERCOM_2_USART_BAUD_RATE
#define CONF_SERCOM_2_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 16.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_2_USART_SAMPR == 1
#ifndef CONF_SERCOM_2_USART_BAUD_RATE
#define CONF_SERCOM_2_USART_BAUD_RATE                                                                                  \
	((CONF_GCLK_SERCOM2_CORE_FREQUENCY) / (CONF_SERCOM_2_USART_BAUD * 16)) - (CONF_SERCOM_2_USART_FRACTIONAL / 8)
#endif
#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_2_USART_SAMPR == 2
#ifndef CONF_SERCOM_2_USART_BAUD_RATE
#define CONF_SERCOM_2_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 8.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_2_USART_SAMPR == 3
#ifndef CONF_SERCOM_2_USART_BAUD_RATE
#define CONF_SERCOM_2_USART_BAUD_RATE                                                                                  \
	((CONF_GCLK_SERCOM2_CORE_FREQUENCY) / (CONF_SERCOM_2_USART_BAUD * 8)) - (CONF_SERCOM_2_USART_FRACTIONAL / 8)
#endif
#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_2_USART_SAMPR == 4
#ifndef CONF_SERCOM_2_USART_BAUD_RATE
#define CONF_SERCOM_2_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 3.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0
#endif
#endif

#elif CONF_SERCOM_2_USART_CMODE == 1
#ifndef CONF_SERCOM_2_USART_BAUD_RATE
// Calculate BAUD register value in USRT mode
#define CONF_SERCOM_2_USART_BAUD_RATE (CONF_GCLK_SERCOM2_CORE_FREQUENCY) / (2 * CONF_SERCOM_2_USART_BAUD) - 1
#endif

#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0
#endif
#else
#error CMODE value for SERCOM 2 in USART mode not known
#endif

#include <peripheral_clk_config.h>

#ifndef CONF_SERCOM_3_USART_ENABLE
#define CONF_SERCOM_3_USART_ENABLE 1
#endif

// <h> Basic Configuration

// <q> Receive buffer enable
// <i> Enable input buffer in SERCOM module
// <id> usart_rx_enable
#ifndef CONF_SERCOM_3_USART_RXEN
#define CONF_SERCOM_3_USART_RXEN 1
#endif

// <q> Transmitt buffer enable
// <i> Enable output buffer in SERCOM module
// <id> usart_tx_enable
#ifndef CONF_SERCOM_3_USART_TXEN
#define CONF_SERCOM_3_USART_TXEN 1
#endif

// <o> Frame parity
// <0x1=>Even parity
// <i> Parity bit mode for USART frame
// <id> usart_parity
#ifndef CONF_SERCOM_3_USART_PARITY
#define CONF_SERCOM_3_USART_PARITY 1
#endif

// <o> Character Size
// <0x0=>8 bits
// <0x1=>9 bits
// <0x5=>5 bits
// <0x6=>6 bits
// <0x7=>7 bits
// <i> Data character size in USART frame
// <id> usart_character_size
#ifndef CONF_SERCOM_3_USART_CHSIZE
#define CONF_SERCOM_3_USART_CHSIZE 0x0
#endif

// <o> Stop Bit
// <0=>One stop bit
// <1=>Two stop bits
// <i> Number of stop bits in USART frame
// <id> usart_stop_bit
#ifndef CONF_SERCOM_3_USART_SBMODE
#define CONF_SERCOM_3_USART_SBMODE 0
#endif

// <o> Baud rate <1-3000000>
// <i> USART baud rate setting
// <id> usart_baud_rate
#ifndef CONF_SERCOM_3_USART_BAUD
#define CONF_SERCOM_3_USART_BAUD 6720
#endif
// </h>

// <h> ISO7816 configuration
// <o> ISO7816 Protocol Type
// <0x1=> T=0
// <0x0=> T=1
// <i> Define ISO7816 protocol type as 0.
// <id> usart_iso7816_type
#ifndef CONF_SERCOM_3_USART_ISO7816_PROTOCOL_T
#define CONF_SERCOM_3_USART_ISO7816_PROTOCOL_T 0x1
#endif

// <o> ISO7816 Inhibit Not Acknowledge
// <0x0=> NACK is transmitted when a parity error is received.
// <0x1=> NACK is not transmitted when a parity error is received.
// <i> Define whether a NACK is transmitted when a parity error is received.
// <id> usart_inack
#ifndef CONF_SERCOM_3_USART_INACK
#define CONF_SERCOM_3_USART_INACK 0x0
#endif

// <o> ISO7816 Disable Successive Not Acknowledge
// <0x0=> The successive receive NACK is disable.
// <0x1=> The successive receive NACK is enable.
// <i> Define whether NACK will be sent on parity error reception.
// <id> usart_dsnack
#ifndef CONF_SERCOM_3_USART_DSNACK
#define CONF_SERCOM_3_USART_DSNACK 0x0
#endif

// <o> ISO7816 Maximum Iterations<0-7>
// <i> Define the maximum number of retransmit iterations.
// <id> usart_maxiter
#ifndef CONF_SERCOM_3_USART_MAXITER
#define CONF_SERCOM_3_USART_MAXITER 0x7
#endif

// <o> ISO7816 Guard Time
// <0x2=> 2-bit times
// <0x3=> 3-bit times
// <0x4=> 4-bit times
// <0x5=> 5-bit times
// <0x6=> 6-bit times
// <0x7=> 7-bit times
// <i> Define the guard time.
// <id> usart_gtime
#ifndef CONF_SERCOM_3_USART_GTIME
#define CONF_SERCOM_3_USART_GTIME 0x2
#endif

// <q> Inverse transmission and reception enabled
// <i> Define inverse transmission and reception enabled.
// <id> usart_inverse_enabled
#ifndef CONF_SERCOM_3_USART_INVERSE_ENABLED
#define CONF_SERCOM_3_USART_INVERSE_ENABLED 0x0
#endif

#if (CONF_SERCOM_3_USART_INVERSE_ENABLED == 1)
#define CONF_SERCOM_3_USART_RXINV 0x1
#define CONF_SERCOM_3_USART_TXINV 0x1
#else
#define CONF_SERCOM_3_USART_RXINV 0x0
#define CONF_SERCOM_3_USART_TXINV 0x0
#endif

// </h>

// <e> Advanced configuration
// <id> usart_advanced
#ifndef CONF_SERCOM_3_USART_ADVANCED_CONFIG
#define CONF_SERCOM_3_USART_ADVANCED_CONFIG 0
#endif

// <q> Run in stand-by
// <i> Keep the module running in standby sleep mode
// <id> usart_arch_runstdby
#ifndef CONF_SERCOM_3_USART_RUNSTDBY
#define CONF_SERCOM_3_USART_RUNSTDBY 0
#endif

// <q> Immediate Buffer Overflow Notification
// <i> Controls when the BUFOVF status bit is asserted
// <id> usart_arch_ibon
#ifndef CONF_SERCOM_3_USART_IBON
#define CONF_SERCOM_3_USART_IBON 0
#endif

// <q> Start of Frame Detection Enable
// <i> Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled)
// <id> usart_arch_sfde
#ifndef CONF_SERCOM_3_USART_SFDE
#define CONF_SERCOM_3_USART_SFDE 0
#endif

// <q> Collision Detection Enable
// <i> Collision detection enable
// <id> usart_arch_cloden
#ifndef CONF_SERCOM_3_USART_CLODEN
#define CONF_SERCOM_3_USART_CLODEN 0
#endif

// <o> Operating Mode
// <0x1=>USART with internal clock
// <i> Drive the shift register by an internal clock generated by the baud rate generator.
// <id> usart_arch_clock_mode
#ifndef CONF_SERCOM_3_USART_MODE
#define CONF_SERCOM_3_USART_MODE 0x1
#endif

// <o> Data Order
// <0=>MSB is transmitted first
// <1=>LSB is transmitted first
// <i> Data order of the data bits in the frame
// <id> usart_arch_dord
#ifndef CONF_SERCOM_3_USART_DORD
#define CONF_SERCOM_3_USART_DORD 1
#endif

// <o> Debug Stop Mode
// <i> Behavior of the baud-rate generator when CPU is halted by external debugger.
// <0=>Keep running
// <1=>Halt
// <id> usart_arch_dbgstop
#ifndef CONF_SERCOM_3_USART_DEBUG_STOP_MODE
#define CONF_SERCOM_3_USART_DEBUG_STOP_MODE 0
#endif

// Does not do anything in USRT mode
#define CONF_SERCOM_3_USART_SAMPR 0x0
#define CONF_SERCOM_3_USART_SAMPA 0x0
#define CONF_SERCOM_3_USART_FRACTIONAL 0x0

// Does not do anything in UART mode
#define CONF_SERCOM_3_USART_CPOL 0

// Does not do anything in USRT mode
#define CONF_SERCOM_3_USART_ENC 0

// </e>

#ifndef CONF_SERCOM_3_USART_CMODE
#define CONF_SERCOM_3_USART_CMODE CONF_SERCOM_3_USART_ISO7816_PROTOCOL_T
#endif

/* RX is on PIN_PB20 */
#ifndef CONF_SERCOM_3_USART_RXPO
#define CONF_SERCOM_3_USART_RXPO 0
#endif

/* TX uses the same pin with RX */
#ifndef CONF_SERCOM_3_USART_TXPO
#define CONF_SERCOM_3_USART_TXPO 2
#endif

/* Set iso7816 mode */
#define CONF_SERCOM_3_USART_PMODE (CONF_SERCOM_3_USART_PARITY - 1)
#define CONF_SERCOM_3_USART_FORM 7

#if CONF_SERCOM_3_USART_CMODE == 0
// Calculate BAUD register value in UART mode
#if CONF_SERCOM_3_USART_SAMPR == 0
#ifndef CONF_SERCOM_3_USART_BAUD_RATE
#define CONF_SERCOM_3_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 16.0f * CONF_SERCOM_3_USART_BAUD) / CONF_GCLK_SERCOM3_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_3_USART_SAMPR == 1
#ifndef CONF_SERCOM_3_USART_BAUD_RATE
#define CONF_SERCOM_3_USART_BAUD_RATE                                                                                  \
	((CONF_GCLK_SERCOM3_CORE_FREQUENCY) / (CONF_SERCOM_3_USART_BAUD * 16)) - (CONF_SERCOM_3_USART_FRACTIONAL / 8)
#endif
#ifndef CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_3_USART_SAMPR == 2
#ifndef CONF_SERCOM_3_USART_BAUD_RATE
#define CONF_SERCOM_3_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 8.0f * CONF_SERCOM_3_USART_BAUD) / CONF_GCLK_SERCOM3_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_3_USART_SAMPR == 3
#ifndef CONF_SERCOM_3_USART_BAUD_RATE
#define CONF_SERCOM_3_USART_BAUD_RATE                                                                                  \
	((CONF_GCLK_SERCOM3_CORE_FREQUENCY) / (CONF_SERCOM_3_USART_BAUD * 8)) - (CONF_SERCOM_3_USART_FRACTIONAL / 8)
#endif
#ifndef CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_3_USART_SAMPR == 4
#ifndef CONF_SERCOM_3_USART_BAUD_RATE
#define CONF_SERCOM_3_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 3.0f * CONF_SERCOM_3_USART_BAUD) / CONF_GCLK_SERCOM3_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH 0
#endif
#endif

#elif CONF_SERCOM_3_USART_CMODE == 1
#ifndef CONF_SERCOM_3_USART_BAUD_RATE
// Calculate BAUD register value in USRT mode
#define CONF_SERCOM_3_USART_BAUD_RATE (CONF_GCLK_SERCOM3_CORE_FREQUENCY) / (2 * CONF_SERCOM_3_USART_BAUD) - 1
#endif

#ifndef CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH 0
#endif
#else
#error CMODE value for SERCOM 3 in USART mode not known
#endif

#include <peripheral_clk_config.h>

#ifndef CONF_SERCOM_4_USART_ENABLE
#define CONF_SERCOM_4_USART_ENABLE 1
#endif

// <h> Basic Configuration

// <q> Receive buffer enable
// <i> Enable input buffer in SERCOM module
// <id> usart_rx_enable
#ifndef CONF_SERCOM_4_USART_RXEN
#define CONF_SERCOM_4_USART_RXEN 1
#endif

// <q> Transmitt buffer enable
// <i> Enable output buffer in SERCOM module
// <id> usart_tx_enable
#ifndef CONF_SERCOM_4_USART_TXEN
#define CONF_SERCOM_4_USART_TXEN 1
#endif

// <o> Frame parity
// <0x1=>Even parity
// <i> Parity bit mode for USART frame
// <id> usart_parity
#ifndef CONF_SERCOM_4_USART_PARITY
#define CONF_SERCOM_4_USART_PARITY 1
#endif

// <o> Character Size
// <0x0=>8 bits
// <0x1=>9 bits
// <0x5=>5 bits
// <0x6=>6 bits
// <0x7=>7 bits
// <i> Data character size in USART frame
// <id> usart_character_size
#ifndef CONF_SERCOM_4_USART_CHSIZE
#define CONF_SERCOM_4_USART_CHSIZE 0x0
#endif

// <o> Stop Bit
// <0=>One stop bit
// <1=>Two stop bits
// <i> Number of stop bits in USART frame
// <id> usart_stop_bit
#ifndef CONF_SERCOM_4_USART_SBMODE
#define CONF_SERCOM_4_USART_SBMODE 0
#endif

// <o> Baud rate <1-3000000>
// <i> USART baud rate setting
// <id> usart_baud_rate
#ifndef CONF_SERCOM_4_USART_BAUD
#define CONF_SERCOM_4_USART_BAUD 6720
#endif
// </h>

// <h> ISO7816 configuration
// <o> ISO7816 Protocol Type
// <0x1=> T=0
// <0x0=> T=1
// <i> Define ISO7816 protocol type as 0.
// <id> usart_iso7816_type
#ifndef CONF_SERCOM_4_USART_ISO7816_PROTOCOL_T
#define CONF_SERCOM_4_USART_ISO7816_PROTOCOL_T 0x1
#endif

// <o> ISO7816 Inhibit Not Acknowledge
// <0x0=> NACK is transmitted when a parity error is received.
// <0x1=> NACK is not transmitted when a parity error is received.
// <i> Define whether a NACK is transmitted when a parity error is received.
// <id> usart_inack
#ifndef CONF_SERCOM_4_USART_INACK
#define CONF_SERCOM_4_USART_INACK 0x0
#endif

// <o> ISO7816 Disable Successive Not Acknowledge
// <0x0=> The successive receive NACK is disable.
// <0x1=> The successive receive NACK is enable.
// <i> Define whether NACK will be sent on parity error reception.
// <id> usart_dsnack
#ifndef CONF_SERCOM_4_USART_DSNACK
#define CONF_SERCOM_4_USART_DSNACK 0x0
#endif

// <o> ISO7816 Maximum Iterations<0-7>
// <i> Define the maximum number of retransmit iterations.
// <id> usart_maxiter
#ifndef CONF_SERCOM_4_USART_MAXITER
#define CONF_SERCOM_4_USART_MAXITER 0x7
#endif

// <o> ISO7816 Guard Time
// <0x2=> 2-bit times
// <0x3=> 3-bit times
// <0x4=> 4-bit times
// <0x5=> 5-bit times
// <0x6=> 6-bit times
// <0x7=> 7-bit times
// <i> Define the guard time.
// <id> usart_gtime
#ifndef CONF_SERCOM_4_USART_GTIME
#define CONF_SERCOM_4_USART_GTIME 0x2
#endif

// <q> Inverse transmission and reception enabled
// <i> Define inverse transmission and reception enabled.
// <id> usart_inverse_enabled
#ifndef CONF_SERCOM_4_USART_INVERSE_ENABLED
#define CONF_SERCOM_4_USART_INVERSE_ENABLED 0x0
#endif

#if (CONF_SERCOM_4_USART_INVERSE_ENABLED == 1)
#define CONF_SERCOM_4_USART_RXINV 0x1
#define CONF_SERCOM_4_USART_TXINV 0x1
#else
#define CONF_SERCOM_4_USART_RXINV 0x0
#define CONF_SERCOM_4_USART_TXINV 0x0
#endif

// </h>

// <e> Advanced configuration
// <id> usart_advanced
#ifndef CONF_SERCOM_4_USART_ADVANCED_CONFIG
#define CONF_SERCOM_4_USART_ADVANCED_CONFIG 0
#endif

// <q> Run in stand-by
// <i> Keep the module running in standby sleep mode
// <id> usart_arch_runstdby
#ifndef CONF_SERCOM_4_USART_RUNSTDBY
#define CONF_SERCOM_4_USART_RUNSTDBY 0
#endif

// <q> Immediate Buffer Overflow Notification
// <i> Controls when the BUFOVF status bit is asserted
// <id> usart_arch_ibon
#ifndef CONF_SERCOM_4_USART_IBON
#define CONF_SERCOM_4_USART_IBON 0
#endif

// <q> Start of Frame Detection Enable
// <i> Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled)
// <id> usart_arch_sfde
#ifndef CONF_SERCOM_4_USART_SFDE
#define CONF_SERCOM_4_USART_SFDE 0
#endif

// <q> Collision Detection Enable
// <i> Collision detection enable
// <id> usart_arch_cloden
#ifndef CONF_SERCOM_4_USART_CLODEN
#define CONF_SERCOM_4_USART_CLODEN 0
#endif

// <o> Operating Mode
// <0x1=>USART with internal clock
// <i> Drive the shift register by an internal clock generated by the baud rate generator.
// <id> usart_arch_clock_mode
#ifndef CONF_SERCOM_4_USART_MODE
#define CONF_SERCOM_4_USART_MODE 0x1
#endif

// <o> Data Order
// <0=>MSB is transmitted first
// <1=>LSB is transmitted first
// <i> Data order of the data bits in the frame
// <id> usart_arch_dord
#ifndef CONF_SERCOM_4_USART_DORD
#define CONF_SERCOM_4_USART_DORD 1
#endif

// <o> Debug Stop Mode
// <i> Behavior of the baud-rate generator when CPU is halted by external debugger.
// <0=>Keep running
// <1=>Halt
// <id> usart_arch_dbgstop
#ifndef CONF_SERCOM_4_USART_DEBUG_STOP_MODE
#define CONF_SERCOM_4_USART_DEBUG_STOP_MODE 0
#endif

// Does not do anything in USRT mode
#define CONF_SERCOM_4_USART_SAMPR 0x0
#define CONF_SERCOM_4_USART_SAMPA 0x0
#define CONF_SERCOM_4_USART_FRACTIONAL 0x0

// Does not do anything in UART mode
#define CONF_SERCOM_4_USART_CPOL 0

// Does not do anything in USRT mode
#define CONF_SERCOM_4_USART_ENC 0

// </e>

#ifndef CONF_SERCOM_4_USART_CMODE
#define CONF_SERCOM_4_USART_CMODE CONF_SERCOM_4_USART_ISO7816_PROTOCOL_T
#endif

/* RX is on PIN_PB08 */
#ifndef CONF_SERCOM_4_USART_RXPO
#define CONF_SERCOM_4_USART_RXPO 0
#endif

/* TX uses the same pin with RX */
#ifndef CONF_SERCOM_4_USART_TXPO
#define CONF_SERCOM_4_USART_TXPO 2
#endif

/* Set iso7816 mode */
#define CONF_SERCOM_4_USART_PMODE (CONF_SERCOM_4_USART_PARITY - 1)
#define CONF_SERCOM_4_USART_FORM 7

#if CONF_SERCOM_4_USART_CMODE == 0
// Calculate BAUD register value in UART mode
#if CONF_SERCOM_4_USART_SAMPR == 0
#ifndef CONF_SERCOM_4_USART_BAUD_RATE
#define CONF_SERCOM_4_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 16.0f * CONF_SERCOM_4_USART_BAUD) / CONF_GCLK_SERCOM4_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_4_USART_SAMPR == 1
#ifndef CONF_SERCOM_4_USART_BAUD_RATE
#define CONF_SERCOM_4_USART_BAUD_RATE                                                                                  \
	((CONF_GCLK_SERCOM4_CORE_FREQUENCY) / (CONF_SERCOM_4_USART_BAUD * 16)) - (CONF_SERCOM_4_USART_FRACTIONAL / 8)
#endif
#ifndef CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_4_USART_SAMPR == 2
#ifndef CONF_SERCOM_4_USART_BAUD_RATE
#define CONF_SERCOM_4_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 8.0f * CONF_SERCOM_4_USART_BAUD) / CONF_GCLK_SERCOM4_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_4_USART_SAMPR == 3
#ifndef CONF_SERCOM_4_USART_BAUD_RATE
#define CONF_SERCOM_4_USART_BAUD_RATE                                                                                  \
	((CONF_GCLK_SERCOM4_CORE_FREQUENCY) / (CONF_SERCOM_4_USART_BAUD * 8)) - (CONF_SERCOM_4_USART_FRACTIONAL / 8)
#endif
#ifndef CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_4_USART_SAMPR == 4
#ifndef CONF_SERCOM_4_USART_BAUD_RATE
#define CONF_SERCOM_4_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 3.0f * CONF_SERCOM_4_USART_BAUD) / CONF_GCLK_SERCOM4_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH 0
#endif
#endif

#elif CONF_SERCOM_4_USART_CMODE == 1
#ifndef CONF_SERCOM_4_USART_BAUD_RATE
// Calculate BAUD register value in USRT mode
#define CONF_SERCOM_4_USART_BAUD_RATE (CONF_GCLK_SERCOM4_CORE_FREQUENCY) / (2 * CONF_SERCOM_4_USART_BAUD) - 1
#endif

#ifndef CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH 0
#endif
#else
#error CMODE value for SERCOM 4 in USART mode not known
#endif

#include <peripheral_clk_config.h>

#ifndef CONF_SERCOM_5_USART_ENABLE
#define CONF_SERCOM_5_USART_ENABLE 1
#endif

// <h> Basic Configuration

// <q> Receive buffer enable
// <i> Enable input buffer in SERCOM module
// <id> usart_rx_enable
#ifndef CONF_SERCOM_5_USART_RXEN
#define CONF_SERCOM_5_USART_RXEN 1
#endif

// <q> Transmitt buffer enable
// <i> Enable output buffer in SERCOM module
// <id> usart_tx_enable
#ifndef CONF_SERCOM_5_USART_TXEN
#define CONF_SERCOM_5_USART_TXEN 1
#endif

// <o> Frame parity
// <0x1=>Even parity
// <i> Parity bit mode for USART frame
// <id> usart_parity
#ifndef CONF_SERCOM_5_USART_PARITY
#define CONF_SERCOM_5_USART_PARITY 1
#endif

// <o> Character Size
// <0x0=>8 bits
// <0x1=>9 bits
// <0x5=>5 bits
// <0x6=>6 bits
// <0x7=>7 bits
// <i> Data character size in USART frame
// <id> usart_character_size
#ifndef CONF_SERCOM_5_USART_CHSIZE
#define CONF_SERCOM_5_USART_CHSIZE 0x0
#endif

// <o> Stop Bit
// <0=>One stop bit
// <1=>Two stop bits
// <i> Number of stop bits in USART frame
// <id> usart_stop_bit
#ifndef CONF_SERCOM_5_USART_SBMODE
#define CONF_SERCOM_5_USART_SBMODE 0
#endif

// <o> Baud rate <1-3000000>
// <i> USART baud rate setting
// <id> usart_baud_rate
#ifndef CONF_SERCOM_5_USART_BAUD
#define CONF_SERCOM_5_USART_BAUD 6720
#endif
// </h>

// <h> ISO7816 configuration
// <o> ISO7816 Protocol Type
// <0x1=> T=0
// <0x0=> T=1
// <i> Define ISO7816 protocol type as 0.
// <id> usart_iso7816_type
#ifndef CONF_SERCOM_5_USART_ISO7816_PROTOCOL_T
#define CONF_SERCOM_5_USART_ISO7816_PROTOCOL_T 0x1
#endif

// <o> ISO7816 Inhibit Not Acknowledge
// <0x0=> NACK is transmitted when a parity error is received.
// <0x1=> NACK is not transmitted when a parity error is received.
// <i> Define whether a NACK is transmitted when a parity error is received.
// <id> usart_inack
#ifndef CONF_SERCOM_5_USART_INACK
#define CONF_SERCOM_5_USART_INACK 0x0
#endif

// <o> ISO7816 Disable Successive Not Acknowledge
// <0x0=> The successive receive NACK is disable.
// <0x1=> The successive receive NACK is enable.
// <i> Define whether NACK will be sent on parity error reception.
// <id> usart_dsnack
#ifndef CONF_SERCOM_5_USART_DSNACK
#define CONF_SERCOM_5_USART_DSNACK 0x0
#endif

// <o> ISO7816 Maximum Iterations<0-7>
// <i> Define the maximum number of retransmit iterations.
// <id> usart_maxiter
#ifndef CONF_SERCOM_5_USART_MAXITER
#define CONF_SERCOM_5_USART_MAXITER 0x7
#endif

// <o> ISO7816 Guard Time
// <0x2=> 2-bit times
// <0x3=> 3-bit times
// <0x4=> 4-bit times
// <0x5=> 5-bit times
// <0x6=> 6-bit times
// <0x7=> 7-bit times
// <i> Define the guard time.
// <id> usart_gtime
#ifndef CONF_SERCOM_5_USART_GTIME
#define CONF_SERCOM_5_USART_GTIME 0x2
#endif

// <q> Inverse transmission and reception enabled
// <i> Define inverse transmission and reception enabled.
// <id> usart_inverse_enabled
#ifndef CONF_SERCOM_5_USART_INVERSE_ENABLED
#define CONF_SERCOM_5_USART_INVERSE_ENABLED 0x0
#endif

#if (CONF_SERCOM_5_USART_INVERSE_ENABLED == 1)
#define CONF_SERCOM_5_USART_RXINV 0x1
#define CONF_SERCOM_5_USART_TXINV 0x1
#else
#define CONF_SERCOM_5_USART_RXINV 0x0
#define CONF_SERCOM_5_USART_TXINV 0x0
#endif

// </h>

// <e> Advanced configuration
// <id> usart_advanced
#ifndef CONF_SERCOM_5_USART_ADVANCED_CONFIG
#define CONF_SERCOM_5_USART_ADVANCED_CONFIG 0
#endif

// <q> Run in stand-by
// <i> Keep the module running in standby sleep mode
// <id> usart_arch_runstdby
#ifndef CONF_SERCOM_5_USART_RUNSTDBY
#define CONF_SERCOM_5_USART_RUNSTDBY 0
#endif

// <q> Immediate Buffer Overflow Notification
// <i> Controls when the BUFOVF status bit is asserted
// <id> usart_arch_ibon
#ifndef CONF_SERCOM_5_USART_IBON
#define CONF_SERCOM_5_USART_IBON 0
#endif

// <q> Start of Frame Detection Enable
// <i> Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled)
// <id> usart_arch_sfde
#ifndef CONF_SERCOM_5_USART_SFDE
#define CONF_SERCOM_5_USART_SFDE 0
#endif

// <q> Collision Detection Enable
// <i> Collision detection enable
// <id> usart_arch_cloden
#ifndef CONF_SERCOM_5_USART_CLODEN
#define CONF_SERCOM_5_USART_CLODEN 0
#endif

// <o> Operating Mode
// <0x1=>USART with internal clock
// <i> Drive the shift register by an internal clock generated by the baud rate generator.
// <id> usart_arch_clock_mode
#ifndef CONF_SERCOM_5_USART_MODE
#define CONF_SERCOM_5_USART_MODE 0x1
#endif

// <o> Data Order
// <0=>MSB is transmitted first
// <1=>LSB is transmitted first
// <i> Data order of the data bits in the frame
// <id> usart_arch_dord
#ifndef CONF_SERCOM_5_USART_DORD
#define CONF_SERCOM_5_USART_DORD 1
#endif

// <o> Debug Stop Mode
// <i> Behavior of the baud-rate generator when CPU is halted by external debugger.
// <0=>Keep running
// <1=>Halt
// <id> usart_arch_dbgstop
#ifndef CONF_SERCOM_5_USART_DEBUG_STOP_MODE
#define CONF_SERCOM_5_USART_DEBUG_STOP_MODE 0
#endif

// Does not do anything in USRT mode
#define CONF_SERCOM_5_USART_SAMPR 0x0
#define CONF_SERCOM_5_USART_SAMPA 0x0
#define CONF_SERCOM_5_USART_FRACTIONAL 0x0

// Does not do anything in UART mode
#define CONF_SERCOM_5_USART_CPOL 0

// Does not do anything in USRT mode
#define CONF_SERCOM_5_USART_ENC 0

// </e>

#ifndef CONF_SERCOM_5_USART_CMODE
#define CONF_SERCOM_5_USART_CMODE CONF_SERCOM_5_USART_ISO7816_PROTOCOL_T
#endif

/* RX is on PIN_PB16 */
#ifndef CONF_SERCOM_5_USART_RXPO
#define CONF_SERCOM_5_USART_RXPO 0
#endif

/* TX uses the same pin with RX */
#ifndef CONF_SERCOM_5_USART_TXPO
#define CONF_SERCOM_5_USART_TXPO 2
#endif

/* Set iso7816 mode */
#define CONF_SERCOM_5_USART_PMODE (CONF_SERCOM_5_USART_PARITY - 1)
#define CONF_SERCOM_5_USART_FORM 7

#if CONF_SERCOM_5_USART_CMODE == 0
// Calculate BAUD register value in UART mode
#if CONF_SERCOM_5_USART_SAMPR == 0
#ifndef CONF_SERCOM_5_USART_BAUD_RATE
#define CONF_SERCOM_5_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 16.0f * CONF_SERCOM_5_USART_BAUD) / CONF_GCLK_SERCOM5_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_5_USART_SAMPR == 1
#ifndef CONF_SERCOM_5_USART_BAUD_RATE
#define CONF_SERCOM_5_USART_BAUD_RATE                                                                                  \
	((CONF_GCLK_SERCOM5_CORE_FREQUENCY) / (CONF_SERCOM_5_USART_BAUD * 16)) - (CONF_SERCOM_5_USART_FRACTIONAL / 8)
#endif
#ifndef CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_5_USART_SAMPR == 2
#ifndef CONF_SERCOM_5_USART_BAUD_RATE
#define CONF_SERCOM_5_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 8.0f * CONF_SERCOM_5_USART_BAUD) / CONF_GCLK_SERCOM5_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_5_USART_SAMPR == 3
#ifndef CONF_SERCOM_5_USART_BAUD_RATE
#define CONF_SERCOM_5_USART_BAUD_RATE                                                                                  \
	((CONF_GCLK_SERCOM5_CORE_FREQUENCY) / (CONF_SERCOM_5_USART_BAUD * 8)) - (CONF_SERCOM_5_USART_FRACTIONAL / 8)
#endif
#ifndef CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_5_USART_SAMPR == 4
#ifndef CONF_SERCOM_5_USART_BAUD_RATE
#define CONF_SERCOM_5_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 3.0f * CONF_SERCOM_5_USART_BAUD) / CONF_GCLK_SERCOM5_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH 0
#endif
#endif

#elif CONF_SERCOM_5_USART_CMODE == 1
#ifndef CONF_SERCOM_5_USART_BAUD_RATE
// Calculate BAUD register value in USRT mode
#define CONF_SERCOM_5_USART_BAUD_RATE (CONF_GCLK_SERCOM5_CORE_FREQUENCY) / (2 * CONF_SERCOM_5_USART_BAUD) - 1
#endif

#ifndef CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH 0
#endif
#else
#error CMODE value for SERCOM 5 in USART mode not known
#endif

#include <peripheral_clk_config.h>

#ifndef CONF_SERCOM_6_USART_ENABLE
#define CONF_SERCOM_6_USART_ENABLE 1
#endif

// <h> Basic Configuration

// <q> Receive buffer enable
// <i> Enable input buffer in SERCOM module
// <id> usart_rx_enable
#ifndef CONF_SERCOM_6_USART_RXEN
#define CONF_SERCOM_6_USART_RXEN 1
#endif

// <q> Transmitt buffer enable
// <i> Enable output buffer in SERCOM module
// <id> usart_tx_enable
#ifndef CONF_SERCOM_6_USART_TXEN
#define CONF_SERCOM_6_USART_TXEN 1
#endif

// <o> Frame parity
// <0x1=>Even parity
// <i> Parity bit mode for USART frame
// <id> usart_parity
#ifndef CONF_SERCOM_6_USART_PARITY
#define CONF_SERCOM_6_USART_PARITY 1
#endif

// <o> Character Size
// <0x0=>8 bits
// <0x1=>9 bits
// <0x5=>5 bits
// <0x6=>6 bits
// <0x7=>7 bits
// <i> Data character size in USART frame
// <id> usart_character_size
#ifndef CONF_SERCOM_6_USART_CHSIZE
#define CONF_SERCOM_6_USART_CHSIZE 0x0
#endif

// <o> Stop Bit
// <0=>One stop bit
// <1=>Two stop bits
// <i> Number of stop bits in USART frame
// <id> usart_stop_bit
#ifndef CONF_SERCOM_6_USART_SBMODE
#define CONF_SERCOM_6_USART_SBMODE 0
#endif

// <o> Baud rate <1-3000000>
// <i> USART baud rate setting
// <id> usart_baud_rate
#ifndef CONF_SERCOM_6_USART_BAUD
#define CONF_SERCOM_6_USART_BAUD 6720
#endif
// </h>

// <h> ISO7816 configuration
// <o> ISO7816 Protocol Type
// <0x1=> T=0
// <0x0=> T=1
// <i> Define ISO7816 protocol type as 0.
// <id> usart_iso7816_type
#ifndef CONF_SERCOM_6_USART_ISO7816_PROTOCOL_T
#define CONF_SERCOM_6_USART_ISO7816_PROTOCOL_T 0x1
#endif

// <o> ISO7816 Inhibit Not Acknowledge
// <0x0=> NACK is transmitted when a parity error is received.
// <0x1=> NACK is not transmitted when a parity error is received.
// <i> Define whether a NACK is transmitted when a parity error is received.
// <id> usart_inack
#ifndef CONF_SERCOM_6_USART_INACK
#define CONF_SERCOM_6_USART_INACK 0x0
#endif

// <o> ISO7816 Disable Successive Not Acknowledge
// <0x0=> The successive receive NACK is disable.
// <0x1=> The successive receive NACK is enable.
// <i> Define whether NACK will be sent on parity error reception.
// <id> usart_dsnack
#ifndef CONF_SERCOM_6_USART_DSNACK
#define CONF_SERCOM_6_USART_DSNACK 0x0
#endif

// <o> ISO7816 Maximum Iterations<0-7>
// <i> Define the maximum number of retransmit iterations.
// <id> usart_maxiter
#ifndef CONF_SERCOM_6_USART_MAXITER
#define CONF_SERCOM_6_USART_MAXITER 0x7
#endif

// <o> ISO7816 Guard Time
// <0x2=> 2-bit times
// <0x3=> 3-bit times
// <0x4=> 4-bit times
// <0x5=> 5-bit times
// <0x6=> 6-bit times
// <0x7=> 7-bit times
// <i> Define the guard time.
// <id> usart_gtime
#ifndef CONF_SERCOM_6_USART_GTIME
#define CONF_SERCOM_6_USART_GTIME 0x2
#endif

// <q> Inverse transmission and reception enabled
// <i> Define inverse transmission and reception enabled.
// <id> usart_inverse_enabled
#ifndef CONF_SERCOM_6_USART_INVERSE_ENABLED
#define CONF_SERCOM_6_USART_INVERSE_ENABLED 0x0
#endif

#if (CONF_SERCOM_6_USART_INVERSE_ENABLED == 1)
#define CONF_SERCOM_6_USART_RXINV 0x1
#define CONF_SERCOM_6_USART_TXINV 0x1
#else
#define CONF_SERCOM_6_USART_RXINV 0x0
#define CONF_SERCOM_6_USART_TXINV 0x0
#endif

// </h>

// <e> Advanced configuration
// <id> usart_advanced
#ifndef CONF_SERCOM_6_USART_ADVANCED_CONFIG
#define CONF_SERCOM_6_USART_ADVANCED_CONFIG 0
#endif

// <q> Run in stand-by
// <i> Keep the module running in standby sleep mode
// <id> usart_arch_runstdby
#ifndef CONF_SERCOM_6_USART_RUNSTDBY
#define CONF_SERCOM_6_USART_RUNSTDBY 0
#endif

// <q> Immediate Buffer Overflow Notification
// <i> Controls when the BUFOVF status bit is asserted
// <id> usart_arch_ibon
#ifndef CONF_SERCOM_6_USART_IBON
#define CONF_SERCOM_6_USART_IBON 0
#endif

// <q> Start of Frame Detection Enable
// <i> Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled)
// <id> usart_arch_sfde
#ifndef CONF_SERCOM_6_USART_SFDE
#define CONF_SERCOM_6_USART_SFDE 0
#endif

// <q> Collision Detection Enable
// <i> Collision detection enable
// <id> usart_arch_cloden
#ifndef CONF_SERCOM_6_USART_CLODEN
#define CONF_SERCOM_6_USART_CLODEN 0
#endif

// <o> Operating Mode
// <0x1=>USART with internal clock
// <i> Drive the shift register by an internal clock generated by the baud rate generator.
// <id> usart_arch_clock_mode
#ifndef CONF_SERCOM_6_USART_MODE
#define CONF_SERCOM_6_USART_MODE 0x1
#endif

// <o> Data Order
// <0=>MSB is transmitted first
// <1=>LSB is transmitted first
// <i> Data order of the data bits in the frame
// <id> usart_arch_dord
#ifndef CONF_SERCOM_6_USART_DORD
#define CONF_SERCOM_6_USART_DORD 1
#endif

// <o> Debug Stop Mode
// <i> Behavior of the baud-rate generator when CPU is halted by external debugger.
// <0=>Keep running
// <1=>Halt
// <id> usart_arch_dbgstop
#ifndef CONF_SERCOM_6_USART_DEBUG_STOP_MODE
#define CONF_SERCOM_6_USART_DEBUG_STOP_MODE 0
#endif

// Does not do anything in USRT mode
#define CONF_SERCOM_6_USART_SAMPR 0x0
#define CONF_SERCOM_6_USART_SAMPA 0x0
#define CONF_SERCOM_6_USART_FRACTIONAL 0x0

// Does not do anything in UART mode
#define CONF_SERCOM_6_USART_CPOL 0

// Does not do anything in USRT mode
#define CONF_SERCOM_6_USART_ENC 0

// </e>

#ifndef CONF_SERCOM_6_USART_CMODE
#define CONF_SERCOM_6_USART_CMODE CONF_SERCOM_6_USART_ISO7816_PROTOCOL_T
#endif

/* RX is on PIN_PC16 */
#ifndef CONF_SERCOM_6_USART_RXPO
#define CONF_SERCOM_6_USART_RXPO 0
#endif

/* TX uses the same pin with RX */
#ifndef CONF_SERCOM_6_USART_TXPO
#define CONF_SERCOM_6_USART_TXPO 2
#endif

/* Set iso7816 mode */
#define CONF_SERCOM_6_USART_PMODE (CONF_SERCOM_6_USART_PARITY - 1)
#define CONF_SERCOM_6_USART_FORM 7

#if CONF_SERCOM_6_USART_CMODE == 0
// Calculate BAUD register value in UART mode
#if CONF_SERCOM_6_USART_SAMPR == 0
#ifndef CONF_SERCOM_6_USART_BAUD_RATE
#define CONF_SERCOM_6_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 16.0f * CONF_SERCOM_6_USART_BAUD) / CONF_GCLK_SERCOM6_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_6_USART_SAMPR == 1
#ifndef CONF_SERCOM_6_USART_BAUD_RATE
#define CONF_SERCOM_6_USART_BAUD_RATE                                                                                  \
	((CONF_GCLK_SERCOM6_CORE_FREQUENCY) / (CONF_SERCOM_6_USART_BAUD * 16)) - (CONF_SERCOM_6_USART_FRACTIONAL / 8)
#endif
#ifndef CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_6_USART_SAMPR == 2
#ifndef CONF_SERCOM_6_USART_BAUD_RATE
#define CONF_SERCOM_6_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 8.0f * CONF_SERCOM_6_USART_BAUD) / CONF_GCLK_SERCOM6_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_6_USART_SAMPR == 3
#ifndef CONF_SERCOM_6_USART_BAUD_RATE
#define CONF_SERCOM_6_USART_BAUD_RATE                                                                                  \
	((CONF_GCLK_SERCOM6_CORE_FREQUENCY) / (CONF_SERCOM_6_USART_BAUD * 8)) - (CONF_SERCOM_6_USART_FRACTIONAL / 8)
#endif
#ifndef CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_6_USART_SAMPR == 4
#ifndef CONF_SERCOM_6_USART_BAUD_RATE
#define CONF_SERCOM_6_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 3.0f * CONF_SERCOM_6_USART_BAUD) / CONF_GCLK_SERCOM6_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH 0
#endif
#endif

#elif CONF_SERCOM_6_USART_CMODE == 1
#ifndef CONF_SERCOM_6_USART_BAUD_RATE
// Calculate BAUD register value in USRT mode
#define CONF_SERCOM_6_USART_BAUD_RATE (CONF_GCLK_SERCOM6_CORE_FREQUENCY) / (2 * CONF_SERCOM_6_USART_BAUD) - 1
#endif

#ifndef CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH 0
#endif
#else
#error CMODE value for SERCOM 6 in USART mode not known
#endif

#include <peripheral_clk_config.h>

#ifndef CONF_SERCOM_7_USART_ENABLE
#define CONF_SERCOM_7_USART_ENABLE 1
#endif

// <h> Basic Configuration

// <q> Receive buffer enable
// <i> Enable input buffer in SERCOM module
// <id> usart_rx_enable
#ifndef CONF_SERCOM_7_USART_RXEN
#define CONF_SERCOM_7_USART_RXEN 1
#endif

// <q> Transmitt buffer enable
// <i> Enable output buffer in SERCOM module
// <id> usart_tx_enable
#ifndef CONF_SERCOM_7_USART_TXEN
#define CONF_SERCOM_7_USART_TXEN 1
#endif

// <o> Frame parity
// <0x0=>No parity
// <0x1=>Even parity
// <0x2=>Odd parity
// <i> Parity bit mode for USART frame
// <id> usart_parity
#ifndef CONF_SERCOM_7_USART_PARITY
#define CONF_SERCOM_7_USART_PARITY 0x0
#endif

// <o> Character Size
// <0x0=>8 bits
// <0x1=>9 bits
// <0x5=>5 bits
// <0x6=>6 bits
// <0x7=>7 bits
// <i> Data character size in USART frame
// <id> usart_character_size
#ifndef CONF_SERCOM_7_USART_CHSIZE
#define CONF_SERCOM_7_USART_CHSIZE 0x0
#endif

// <o> Stop Bit
// <0=>One stop bit
// <1=>Two stop bits
// <i> Number of stop bits in USART frame
// <id> usart_stop_bit
#ifndef CONF_SERCOM_7_USART_SBMODE
#define CONF_SERCOM_7_USART_SBMODE 0
#endif

// <o> Baud rate <1-6250000>
// <i> USART baud rate setting
// <id> usart_baud_rate
#ifndef CONF_SERCOM_7_USART_BAUD
#define CONF_SERCOM_7_USART_BAUD 921600
#endif

// </h>

// <e> Advanced configuration
// <id> usart_advanced
#ifndef CONF_SERCOM_7_USART_ADVANCED_CONFIG
#define CONF_SERCOM_7_USART_ADVANCED_CONFIG 0
#endif

// <q> Run in stand-by
// <i> Keep the module running in standby sleep mode
// <id> usart_arch_runstdby
#ifndef CONF_SERCOM_7_USART_RUNSTDBY
#define CONF_SERCOM_7_USART_RUNSTDBY 0
#endif

// <q> Immediate Buffer Overflow Notification
// <i> Controls when the BUFOVF status bit is asserted
// <id> usart_arch_ibon
#ifndef CONF_SERCOM_7_USART_IBON
#define CONF_SERCOM_7_USART_IBON 0
#endif

// <q> Start of Frame Detection Enable
// <i> Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled)
// <id> usart_arch_sfde
#ifndef CONF_SERCOM_7_USART_SFDE
#define CONF_SERCOM_7_USART_SFDE 0
#endif

// <q> Collision Detection Enable
// <i> Collision detection enable
// <id> usart_arch_cloden
#ifndef CONF_SERCOM_7_USART_CLODEN
#define CONF_SERCOM_7_USART_CLODEN 0
#endif

// <o> Operating Mode
// <0x0=>USART with external clock
// <0x1=>USART with internal clock
// <i> Drive the shift register by an internal clock generated by the baud rate generator or an external clock supplied on the XCK pin.
// <id> usart_arch_clock_mode
#ifndef CONF_SERCOM_7_USART_MODE
#define CONF_SERCOM_7_USART_MODE 0x1
#endif

// <o> Sample Rate
// <0x0=>16x arithmetic
// <0x1=>16x fractional
// <0x2=>8x arithmetic
// <0x3=>8x fractional
// <0x4=>3x arithmetic
// <i> How many over-sampling bits used when sampling data state
// <id> usart_arch_sampr
#ifndef CONF_SERCOM_7_USART_SAMPR
#define CONF_SERCOM_7_USART_SAMPR 0x0
#endif

// <o> Sample Adjustment
// <0x0=>7-8-9 (3-4-5 8-bit over-sampling)
// <0x1=>9-10-11 (4-5-6 8-bit over-sampling)
// <0x2=>11-12-13 (5-6-7 8-bit over-sampling)
// <0x3=>13-14-15 (6-7-8 8-bit over-sampling)
// <i> Adjust which samples to use for data sampling in asynchronous mode
// <id> usart_arch_sampa
#ifndef CONF_SERCOM_7_USART_SAMPA
#define CONF_SERCOM_7_USART_SAMPA 0x0
#endif

// <o> Fractional Part <0-7>
// <i> Fractional part of the baud rate if baud rate generator is in fractional mode
// <id> usart_arch_fractional
#ifndef CONF_SERCOM_7_USART_FRACTIONAL
#define CONF_SERCOM_7_USART_FRACTIONAL 0x0
#endif

// <o> Data Order
// <0=>MSB is transmitted first
// <1=>LSB is transmitted first
// <i> Data order of the data bits in the frame
// <id> usart_arch_dord
#ifndef CONF_SERCOM_7_USART_DORD
#define CONF_SERCOM_7_USART_DORD 1
#endif

// Does not do anything in UART mode
#define CONF_SERCOM_7_USART_CPOL 0

// <o> Encoding Format
// <0=>No encoding
// <1=>IrDA encoded
// <id> usart_arch_enc
#ifndef CONF_SERCOM_7_USART_ENC
#define CONF_SERCOM_7_USART_ENC 0
#endif

// <o> LIN Slave Enable
// <i> Break Character Detection and Auto-Baud/LIN Slave Enable.
// <i> Additional setting needed: 16x sample rate using fractional baud rate generation (CTRLA.SAMPR = 1).
// <0=>Disable
// <1=>Enable
// <id> usart_arch_lin_slave_enable
#ifndef CONF_SERCOM_7_USART_LIN_SLAVE_ENABLE
#define CONF_SERCOM_7_USART_LIN_SLAVE_ENABLE 0
#endif

// <o> Debug Stop Mode
// <i> Behavior of the baud-rate generator when CPU is halted by external debugger.
// <0=>Keep running
// <1=>Halt
// <id> usart_arch_dbgstop
#ifndef CONF_SERCOM_7_USART_DEBUG_STOP_MODE
#define CONF_SERCOM_7_USART_DEBUG_STOP_MODE 0
#endif

// </e>

#ifndef CONF_SERCOM_7_USART_INACK
#define CONF_SERCOM_7_USART_INACK 0x0
#endif

#ifndef CONF_SERCOM_7_USART_DSNACK
#define CONF_SERCOM_7_USART_DSNACK 0x0
#endif

#ifndef CONF_SERCOM_7_USART_MAXITER
#define CONF_SERCOM_7_USART_MAXITER 0x7
#endif

#ifndef CONF_SERCOM_7_USART_GTIME
#define CONF_SERCOM_7_USART_GTIME 0x2
#endif

#define CONF_SERCOM_7_USART_RXINV 0x0
#define CONF_SERCOM_7_USART_TXINV 0x0

#ifndef CONF_SERCOM_7_USART_CMODE
#define CONF_SERCOM_7_USART_CMODE 0
#endif

#ifndef CONF_SERCOM_7_USART_RXPO
#define CONF_SERCOM_7_USART_RXPO 1 /* RX is on PIN_PB31 */
#endif

#ifndef CONF_SERCOM_7_USART_TXPO
#define CONF_SERCOM_7_USART_TXPO 0 /* TX is on PIN_PB30 */
#endif

/* Set correct parity settings in register interface based on PARITY setting */
#if CONF_SERCOM_7_USART_LIN_SLAVE_ENABLE == 1
#if CONF_SERCOM_7_USART_PARITY == 0
#define CONF_SERCOM_7_USART_PMODE 0
#define CONF_SERCOM_7_USART_FORM 4
#else
#define CONF_SERCOM_7_USART_PMODE CONF_SERCOM_7_USART_PARITY - 1
#define CONF_SERCOM_7_USART_FORM 5
#endif
#else /* #if CONF_SERCOM_7_USART_LIN_SLAVE_ENABLE == 0 */
#if CONF_SERCOM_7_USART_PARITY == 0
#define CONF_SERCOM_7_USART_PMODE 0
#define CONF_SERCOM_7_USART_FORM 0
#else
#define CONF_SERCOM_7_USART_PMODE CONF_SERCOM_7_USART_PARITY - 1
#define CONF_SERCOM_7_USART_FORM 1
#endif
#endif

// Calculate BAUD register value in UART mode
#if CONF_SERCOM_7_USART_SAMPR == 0
#ifndef CONF_SERCOM_7_USART_BAUD_RATE
#define CONF_SERCOM_7_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 16.0f * CONF_SERCOM_7_USART_BAUD) / CONF_GCLK_SERCOM7_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_7_USART_SAMPR == 1
#ifndef CONF_SERCOM_7_USART_BAUD_RATE
#define CONF_SERCOM_7_USART_BAUD_RATE                                                                                  \
	((CONF_GCLK_SERCOM7_CORE_FREQUENCY) / (CONF_SERCOM_7_USART_BAUD * 16)) - (CONF_SERCOM_7_USART_FRACTIONAL / 8)
#endif
#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_7_USART_SAMPR == 2
#ifndef CONF_SERCOM_7_USART_BAUD_RATE
#define CONF_SERCOM_7_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 8.0f * CONF_SERCOM_7_USART_BAUD) / CONF_GCLK_SERCOM7_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_7_USART_SAMPR == 3
#ifndef CONF_SERCOM_7_USART_BAUD_RATE
#define CONF_SERCOM_7_USART_BAUD_RATE                                                                                  \
	((CONF_GCLK_SERCOM7_CORE_FREQUENCY) / (CONF_SERCOM_7_USART_BAUD * 8)) - (CONF_SERCOM_7_USART_FRACTIONAL / 8)
#endif
#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0
#endif
#elif CONF_SERCOM_7_USART_SAMPR == 4
#ifndef CONF_SERCOM_7_USART_BAUD_RATE
#define CONF_SERCOM_7_USART_BAUD_RATE                                                                                  \
	65536 - ((65536 * 3.0f * CONF_SERCOM_7_USART_BAUD) / CONF_GCLK_SERCOM7_CORE_FREQUENCY)
#endif
#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH
#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0
#endif
#endif

// <<< end of configuration section >>>

#endif // HPL_SERCOM_CONFIG_H
