19#include "periph_cpu.h"
32#define USE_XOSC_ONLY (0)
39#define XOSC1_FREQUENCY MHZ(12)
46#ifndef CLOCK_CORECLOCK
48#define CLOCK_CORECLOCK XOSC1_FREQUENCY
50#define CLOCK_CORECLOCK MHZ(120)
59#define EXTERNAL_OSC32_SOURCE 1
60#define ULTRA_LOW_POWER_INTERNAL_OSC_SOURCE 0
67#define USE_VREG_BUCK (1)
77 .mclk = &MCLK->APBAMASK.reg,
78 .mclk_mask = MCLK_APBAMASK_TC0 | MCLK_APBAMASK_TC1,
79 .gclk_id = TC0_GCLK_ID,
81 .flags = TC_CTRLA_MODE_COUNT32,
86 .mclk = &MCLK->APBBMASK.reg,
87 .mclk_mask = MCLK_APBBMASK_TC2 | MCLK_APBBMASK_TC3,
88 .gclk_id = TC2_GCLK_ID,
90 .flags = TC_CTRLA_MODE_COUNT32,
95#define TIMER_0_CHANNELS 2
96#define TIMER_0_ISR isr_tc0
99#define TIMER_1_CHANNELS 2
100#define TIMER_1_ISR isr_tc2
102#define TIMER_NUMOF ARRAY_SIZE(timer_config)
109#define AT6561_STBY_PIN GPIO_PIN(PC, 13)
125 .enable_pin_active_low =
true,
130#define ISR_CAN1 isr_can1
133#define CAN_NUMOF ARRAY_SIZE(candev_conf)
142 .dev = &SERCOM2->USART,
152 .dev = &SERCOM0->USART,
155#ifdef MODULE_PERIPH_UART_HW_FC
161#ifdef MODULE_PERIPH_UART_HW_FC
170 .dev = &SERCOM5->USART,
180 .dev = &SERCOM1->USART,
192#define UART_0_ISR isr_sercom2_2
193#define UART_0_ISR_TX isr_sercom2_0
195#define UART_1_ISR isr_sercom0_2
196#define UART_1_ISR_TX isr_sercom0_0
198#define UART_2_ISR isr_sercom5_2
199#define UART_2_ISR_TX isr_sercom5_0
201#define UART_3_ISR isr_sercom1_2
202#define UART_3_ISR_TX isr_sercom1_0
204#define UART_NUMOF ARRAY_SIZE(uart_config)
226 .chan = pwm_chan0_config,
228 .gclk_src = SAM0_GCLK_48MHZ,
233#define PWM_NUMOF ARRAY_SIZE(pwm_config)
242 .dev = &(SERCOM4->SPI),
252#ifdef MODULE_PERIPH_DMA
253 .tx_trigger = SERCOM4_DMAC_ID_TX,
254 .rx_trigger = SERCOM4_DMAC_ID_RX,
259 .dev = &(SERCOM6->SPI),
268 .gclk_src = SAM0_GCLK_48MHZ,
269#ifdef MODULE_PERIPH_DMA
270 .tx_trigger = SERCOM6_DMAC_ID_TX,
271 .rx_trigger = SERCOM6_DMAC_ID_RX,
274#ifdef MODULE_PERIPH_SPI_ON_QSPI
286#ifdef MODULE_PERIPH_DMA
287 .tx_trigger = QSPI_DMAC_ID_TX,
288 .rx_trigger = QSPI_DMAC_ID_RX,
294#define SPI_NUMOF ARRAY_SIZE(spi_config)
303 .dev = &(SERCOM3->I2CM),
312 .dev = &(SERCOM7->I2CM),
322#define I2C_NUMOF ARRAY_SIZE(i2c_config)
330#define RTT_FREQUENCY (32768U)
343 .device = &USB->DEVICE,
355#define ADC_GCLK_SRC SAM0_GCLK_PERIPH
356#define ADC_PRESCALER ADC_CTRLA_PRESCALER_DIV8
358#define ADC_NEG_INPUT ADC_INPUTCTRL_MUXNEG(0x18u)
359#define ADC_REF_DEFAULT ADC_REFCTRL_REFSEL_INTVCC1
368#define ADC_NUMOF ARRAY_SIZE(adc_channels)
376#define DAC_CLOCK SAM0_GCLK_TIMER
379#define DAC_VREF DAC_CTRLB_REFSEL_INTREF
390#define SDHC_DEV SDHC1
391#define SDHC_DEV_ISR isr_sdhc1
403#define SDHC_CONFIG_NUMOF 1
#define GPIO_PIN(x, y)
Define a CPU specific GPIO pin generator macro.
#define GPIO_UNDEF
Definition of a fitting UNDEF value.
@ GPIO_OUT
select GPIO MASK as output
@ I2C_SPEED_NORMAL
normal mode: ~100 kbit/s
#define AT6561_STBY_PIN
ATA6561 STANDBY pin definition.
static const sdhc_conf_t sdhc_config[]
SDHC devices.
#define ARRAY_SIZE(a)
Calculate the number of elements in a static array.
@ UART_PAD_RX_1
select pad 1
@ I2C_FLAG_NONE
No flags set.
@ SPI_PAD_MISO_0
use pad 0 for MISO line
@ SPI_PAD_MISO_3
use pad 3 for MISO line
@ UART_FLAG_NONE
No flags set.
@ UART_PAD_TX_0_RTS_2_CTS_3
TX is pad 0, on top RTS on pad 2 and CTS on pad 3.
@ UART_PAD_TX_0
select pad 0
#define TCC_CONFIG(tim)
Static initializer for TCC timer configuration.
@ GPIO_MUX_H
select peripheral function H
@ GPIO_MUX_D
select peripheral function D
@ GPIO_MUX_C
select peripheral function C
@ GPIO_MUX_F
select peripheral function F
@ SPI_PAD_MOSI_0_SCK_1
use pad 0 for MOSI, pad 1 for SCK
#define SAM0_GCLK_MAIN
120 MHz main clock
#define ADC0_INPUTCTRL_MUXPOS_PA07
Alias for AIN7.
#define SAM0_QSPI_PIN_CLK
Clock.
#define ADC0_INPUTCTRL_MUXPOS_PA05
Alias for AIN5.
#define SAM0_QSPI_PIN_DATA_0
D0 / MOSI.
#define SAM0_QSPI_PIN_DATA_1
D1 / MISO.
#define SAM0_QSPI_MUX
QSPI mux.
#define ADC0_INPUTCTRL_MUXPOS_PA03
Alias for AIN1.
#define SAM0_GCLK_TIMER
4-8 MHz clock for xTimer
#define SAM0_GCLK_32KHZ
32 kHz clock
#define SAM0_GCLK_PERIPH
12-48 MHz (DFLL) clock
ADC Channel Configuration.
ESP CAN device configuration.
Linux candev configuration.
Frequency meter configuration.
I2C configuration structure.
PWM channel configuration data structure.
PWM device configuration.
Ethernet parameters struct.
USB peripheral parameters.
SDHC peripheral configuration.
SPI device configuration.
Timer device configuration.
UART device configuration.