blob: 9f8b0e9dc04160b522926594c5dcbf29026454db [file] [log] [blame]
/****************************************************************************
* arch/arm/src/samd5e5/hardware/sam_evsys.h
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you 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
*
* http://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 __ARCH_ARM_SRC_SAMD5E5_HARDWARE_SAM_EVSYS_H
#define __ARCH_ARM_SRC_SAMD5E5_HARDWARE_SAM_EVSYS_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include "hardware/sam_memorymap.h"
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
#define SAM_EVSYS_NCHANNELS 32 /* 0-31 */
#define SAM_EVSYS_NUSER 67 /* 0-66 */
/* EVSYS register offsets ***************************************************/
#define SAM_EVSYS_CTRLA_OFFSET 0x0000 /* Control register */
#define SAM_EVSYS_SWEVT_OFFSET 0x0004 /* Software event register */
#define SAM_EVSYS_PRICTRL_OFFSET 0x0008 /* Software event register */
#define SAM_EVSYS_INTPEND_OFFSET 0x0010 /* Channel pending interrupt register */
#define SAM_EVSYS_INTSTATUS_OFFSET 0x0014 /* Channel pending interrupt register */
#define SAM_EVSYS_BUSYCH_OFFSET 0x0018 /* Busy channels register */
#define SAM_EVSYS_READYUSR_OFFSET 0x001c /* Busy channels register */
#define SAM_EVSYS_CHOFFSET(n) (0x0020 + ((n) << 3)) /* Channel registers */
# define SAM_EVSYS_CHANNEL_OFFSET 0x0000 /* Channel control register */
# define SAM_EVSYS_CHINTENCLR_OFFSET 0x0004 /* Channel interrupt clear register */
# define SAM_EVSYS_CHINTENSET_OFFSET 0x0005 /* Channel interrupt enable register */
# define SAM_EVSYS_CHINTFLAG_OFFSET 0x0006 /* Channel interrupt status register */
# define SAM_EVSYS_CHSTATUS_OFFSET 0x0007 /* Channel status register */
#define SAM_EVSYS_USER_OFFSET(n) (0x0120 + ((m)) /* User registers */
/* EVSYS register addresses *************************************************/
#define SAM_EVSYS_CTRLA (SAM_EVSYS_BASE + SAM_EVSYS_CTRLA_OFFSET)
#define SAM_EVSYS_SWEVT (SAM_EVSYS_BASE + SAM_EVSYS_SWEVT_OFFSET)
#define SAM_EVSYS_PRICTRL (SAM_EVSYS_BASE + SAM_EVSYS_PRICTRL_OFFSET)
#define SAM_EVSYS_INTPEND (SAM_EVSYS_BASE + SAM_EVSYS_INTPEND_OFFSET)
#define SAM_EVSYS_INTSTATUS (SAM_EVSYS_BASE + SAM_EVSYS_INTSTATUS_OFFSET)
#define SAM_EVSYS_BUSYCH (SAM_EVSYS_BASE + SAM_EVSYS_BUSYCH_OFFSET)
#define SAM_EVSYS_READYUSR (SAM_EVSYS_BASE + SAM_EVSYS_READYUSR_OFFSET)
#define SAM_EVSYS_CHBASEBASE(n) (SAM_EVSYS_BASE + SAM_EVSYS_CHOFFSET(n))
# define SAM_EVSYS_CHANNEL(n) (SAM_EVSYS_CHBASEBASE(n) + SAM_EVSYS_CHANNEL_OFFSET)
# define SAM_EVSYS_CHINTENCLR(n) (SAM_EVSYS_CHBASEBASE(n) + SAM_EVSYS_CHINTENCLR_OFFSET)
# define SAM_EVSYS_CHINTENSET(n) (SAM_EVSYS_CHBASEBASE(n) + SAM_EVSYS_CHINTENSET_OFFSET)
# define SAM_EVSYS_CHINTFLAG(n) (SAM_EVSYS_CHBASEBASE(n) + SAM_EVSYS_CHINTFLAG_OFFSET)
# define SAM_EVSYS_CHSTATUS(n) (SAM_EVSYS_CHBASEBASE(n) + SAM_EVSYS_CHSTATUS_OFFSET
#define SAM_EVSYS_USER(n) (SAM_EVSYS_BASE + SAM_EVSYS_USER_OFFSET(n))
/* EVSYS register bit definitions *******************************************/
/* Control register */
#define EVSYS_CTRLA_SWRST (1 << 0) /* Bit 0: Software reset */
/* Software event register */
#define EVSYS_SWEVT_CHAN(n) (1 << (n)) /* Bit n: Channel n software selection */
/* Software event register */
#define EVSYS_PRICTRL_PRI_SHIFT (0) /* Bist 0-4: Channel priority number */
#define EVSYS_PRICTRL_PRI_MASK (31 << EVSYS_PRICTRL_PRI_SHIFT)
# define EVSYS_PRICTRL_PRI(n) ((uint8_t)(n) << EVSYS_PRICTRL_PRI_SHIFT)
#define EVSYS_PRICTRL_RREN (1 << 7) /* Bit 7: Round-robin scheduling enable */
/* Channel pending interrupt register */
#define EVSYS_INTPEND_ID_SHIFT (0) /* Bits 0-4: Channel ID */
#define EVSYS_INTPEND_ID_MASK (31 << EVSYS_INTPEND_ID_SHIFT)
# define EVSYS_INTPEND_ID(n) ((uint16_t)(n) << EVSYS_INTPEND_ID_SHIFT)
#define EVSYS_INTPEND_OVR (1 << 8) /* Bit 8: Channel Overrun */
#define EVSYS_INTPEND_EVD (1 << 9) /* Bit 9: Channel Event Detected */
#define EVSYS_INTPEND_READY (1 << 14) /* Bit 14: Ready */
#define EVSYS_INTPEND_BUSY (1 << 15) /* Bit 15: Busy */
/* Channel pending interrupt register */
#define EVSYS_INTSTATUS_CHAN(n) (1 << (n)) /* Bit n: Channel n pending interrupt */
/* Busy channels register */
#define EVSYS_BUSYCH_CHAN(n) (1 << (n)) /* Bit n: Busy channel n */
/* Busy channels register */
#define EVSYS_READYUSR_CHAN(n) (1 << (n)) /* Bit n: Ready user for channel n */
/* Channel control register (see event generator selections below) */
#define EVSYS_CHANNEL_EVGEN_SHIFT (0) /* Bits 0-7: Event generator selection */
#define EVSYS_CHANNEL_EVGEN_MASK (0xff << EVSYS_CHANNEL_EVGEN_SHIFT)
# define EVSYS_CHANNEL_EVGEN(n) ((uint32_t)(n) << EVSYS_CHANNEL_EVGEN_SHIFT)
#define EVSYS_CHANNEL_PATH_SHIFT (8) /* Bits 8-9: Path Selection */
#define EVSYS_CHANNEL_PATH_MASK (3 << EVSYS_CHANNEL_PATH_SHIFT)
# define EVSYS_CHANNEL_PATH_SYNCH (0 << EVSYS_CHANNEL_PATH_SHIFT) /* Synchronous path */
# define EVSYS_CHANNEL_PATH_RESYNCH (1 << EVSYS_CHANNEL_PATH_SHIFT) /* Resynchronized path */
# define EVSYS_CHANNEL_PATH_ASYNCH (2 << EVSYS_CHANNEL_PATH_SHIFT) /* Asynchronous path */
#define EVSYS_CHANNEL_EDGSEL_SHIFT (10) /* Bits 10-11: Edge detection selection */
#define EVSYS_CHANNEL_EDGSEL_MASK (3 << EVSYS_CHANNEL_EDGSEL_SHIFT)
# define EVSYS_CHANNEL_EDGSEL_NONE (0 << EVSYS_CHANNEL_EDGSEL_SHIFT) /* No event output */
# define EVSYS_CHANNEL_EDGSEL_ RISING (1 << EVSYS_CHANNEL_EDGSEL_SHIFT) /* Event on rising edge */
# define EVSYS_CHANNEL_EDGSEL_FALLING (2 << EVSYS_CHANNEL_EDGSEL_SHIFT) /* Event on falling edge */
# define EVSYS_CHANNEL_EDGSEL_BOTH (3 << EVSYS_CHANNEL_EDGSEL_SHIFT) /* Event on both edges */
#define EVSYS_CHANNEL_RUNSTDBY (1 << 14) /* Bit 14: Run in standby */
#define EVSYS_CHANNEL_ONDEMAND (1 << 15) /* Bit 15: Generic clock on demand */
/* Channel interrupt clear register, Channel interrupt enable register,
* and Channel interrupt status register
*/
#define EVSYS_CHINT_OVR (1 << 0) /* Bit 0: Channel overrun */
#define EVSYS_CHINT_EVD (1 << 1) /* Bit 1: Channel event detected */
/* Channel status register */
#define EVSYS_CHSTATUS_RDYUSR (1 << 0) /* Bit 0: Ready user */
#define EVSYS_CHSTATUS_BUSYCH (1 << 1) /* Bit 1: Busy channel */
/* User registers (8-bit channel number.
* See user multiplexor numbers below
*/
/* Event generator channel event selection **********************************/
#define EVSYS_EVENT_NONE 0x00 /* No event generator selected */
#define EVSYS_EVENT_OSCCTRL_XOSC_FAIL0 0x01 /* XOSC fail detection 0 */
#define EVSYS_EVENT_OSCCTRL_XOSC_FAIL1 0x02 /* XOSC fail detection 1 */
#define EVSYS_EVENT_OSC32KCTRL_XOSC32K_FAIL 0x03 /* XOSC32K fail detection */
#define EVSYS_EVENT_RTC_PER0 0x04 /* RTC period 0 */
#define EVSYS_EVENT_RTC_PER1 0x05 /* RTC period 1 */
#define EVSYS_EVENT_RTC_PER2 0x06 /* RTC period 2 */
#define EVSYS_EVENT_RTC_PER3 0x07 /* RTC period 3 */
#define EVSYS_EVENT_RTC_PER4 0x08 /* RTC period 4 */
#define EVSYS_EVENT_RTC_PER5 0x09 /* RTC period 5 */
#define EVSYS_EVENT_RTC_PER6 0x0a /* RTC period 6 */
#define EVSYS_EVENT_RTC_PER7 0x0b /* RTC period 7 */
#define EVSYS_EVENT_RTC_CMP0 0x0c /* RTC comparison 0 */
#define EVSYS_EVENT_RTC_CMP1 0x0d /* RTC comparison 0 */
#define EVSYS_EVENT_RTC_CMP2 0x0e /* RTC comparison 0 */
#define EVSYS_EVENT_RTC_CMP3 0x0f /* RTC comparison 0 */
#define EVSYS_EVENT_RTC_TAMPER 0x10 /* RTC tamper detection */
#define EVSYS_EVENT_RTC_OVF 0x11 /* RTC overflow */
#define EVSYS_EVENT_EIC_EXTINT0 0x12 /* EIC external interrupt 0 */
#define EVSYS_EVENT_EIC_EXTINT1 0x13 /* EIC external interrupt 1 */
#define EVSYS_EVENT_EIC_EXTINT2 0x14 /* EIC external interrupt 2 */
#define EVSYS_EVENT_EIC_EXTINT3 0x15 /* EIC external interrupt 3 */
#define EVSYS_EVENT_EIC_EXTINT4 0x16 /* EIC external interrupt 4 */
#define EVSYS_EVENT_EIC_EXTINT5 0x17 /* EIC external interrupt 5 */
#define EVSYS_EVENT_EIC_EXTINT6 0x18 /* EIC external interrupt 6 */
#define EVSYS_EVENT_EIC_EXTINT7 0x19 /* EIC external interrupt 7 */
#define EVSYS_EVENT_EIC_EXTINT8 0x1a /* EIC external interrupt 8 */
#define EVSYS_EVENT_EIC_EXTINT9 0x1b /* EIC external interrupt 9 */
#define EVSYS_EVENT_EIC_EXTINT10 0x1c /* EIC external interrupt 10 */
#define EVSYS_EVENT_EIC_EXTINT11 0x1d /* EIC external interrupt 11 */
#define EVSYS_EVENT_EIC_EXTINT12 0x1e /* EIC external interrupt 12 */
#define EVSYS_EVENT_EIC_EXTINT13 0x1f /* EIC external interrupt 13 */
#define EVSYS_EVENT_EIC_EXTINT14 0x20 /* EIC external interrupt 14 */
#define EVSYS_EVENT_EIC_EXTINT15 0x21 /* EIC external interrupt 15 */
#define EVSYS_EVENT_DMAC_CH0 0x22 /* DMA channel 0 */
#define EVSYS_EVENT_DMAC_CH1 0x23 /* DMA channel 0 */
#define EVSYS_EVENT_DMAC_CH2 0x24 /* DMA channel 0 */
#define EVSYS_EVENT_DMAC_CH3 0x25 /* DMA channel 0 */
#define EVSYS_EVENT_PAC_ACCERR 0x26 /* PAC Acc. error */
#define EVSYS_EVENT_TCC0_OVF 0x29 /* TCC0 Overflow */
#define EVSYS_EVENT_TCC0_TRG 0x2a /* TCC0 Trigger Event */
#define EVSYS_EVENT_TCC0_CNT 0x2b /* TCC0 Counter */
#define EVSYS_EVENT_TCC0_MC0 0x2c /* TCC0 Match/Compare 0 */
#define EVSYS_EVENT_TCC0_MC1 0x2d /* TCC0 Match/Compare 1 */
#define EVSYS_EVENT_TCC0_MC2 0x2e /* TCC0 Match/Compare 2 */
#define EVSYS_EVENT_TCC0_MC3 0x2f /* TCC0 Match/Compare 3 */
#define EVSYS_EVENT_TCC0_MC4 0x30 /* TCC0 Match/Compare 4 */
#define EVSYS_EVENT_TCC0_MC5 0x31 /* TCC0 Match/Compare 5 */
#define EVSYS_EVENT_TCC1_OVF 0x32 /* TCC1 Overflow */
#define EVSYS_EVENT_TCC1_TRG 0x33 /* TCC1 Trigger Event */
#define EVSYS_EVENT_TCC1_CNT 0x34 /* TCC1 Counter */
#define EVSYS_EVENT_TCC1_MC0 0x35 /* TCC1 Match/Compare 0 */
#define EVSYS_EVENT_TCC1_MC1 0x36 /* TCC1 Match/Compare 1 */
#define EVSYS_EVENT_TCC1_MC2 0x37 /* TCC1 Match/Compare 2 */
#define EVSYS_EVENT_TCC1_MC3 0x38 /* TCC1 Match/Compare 3 */
#define EVSYS_EVENT_TCC2_OVF 0x39 /* TCC2 Overflow */
#define EVSYS_EVENT_TCC2 0x3a /* TCC2_TRG Trigger Event */
#define EVSYS_EVENT_TCC2_CNT 0x3b /* TCC2 Counter */
#define EVSYS_EVENT_TCC2_MC0 0x3c /* TCC2 Match/Compare 0 */
#define EVSYS_EVENT_TCC2_MC1 0x3d /* TCC2 Match/Compare 1 */
#define EVSYS_EVENT_TCC2_MC2 0x3e /* TCC2 Match/Compare 2 */
#define EVSYS_EVENT_TCC3_OVF 0x3f /* TCC3 Overflow */
#define EVSYS_EVENT_TCC3_TRG 0x40 /* TCC3 Trigger Event */
#define EVSYS_EVENT_TCC3_CNT 0x41 /* TCC3 Counter */
#define EVSYS_EVENT_TCC3_MC0 0x42 /* TCC3 Match/Compare 0 */
#define EVSYS_EVENT_TCC3_MC1 0x43 /* TCC3 Match/Compare 1 */
#define EVSYS_EVENT_TCC4_OVF 0x44 /* TCC4 Overflow */
#define EVSYS_EVENT_TCC4_TRG 0x45 /* TCC4 Trigger Event */
#define EVSYS_EVENT_TCC4_CNT 0x46 /* TCC4 Counter */
#define EVSYS_EVENT_TCC4_MC0 0x47 /* TCC4 Match/Compare 0 */
#define EVSYS_EVENT_TCC4_MC1 0x48 /* TCC4 Match/Compare 1 */
#define EVSYS_EVENT_TC0_OVF 0x49 /* TC0 Overflow */
#define EVSYS_EVENT_TC0_MC0 0x4a /* TC0 Match/Compare 0 */
#define EVSYS_EVENT_TC0_MC1 0x4b /* TC0 Match/Compare 1 */
#define EVSYS_EVENT_TC1_OVF 0x4c /* TC1 Overflow */
#define EVSYS_EVENT_TC1_MC0 0x4d /* TC1 Match/Compare 0 */
#define EVSYS_EVENT_TC1_MC1 0x4e /* TC1 Match/Compare 1 */
#define EVSYS_EVENT_TC2_OVF 0x4f /* TC2 Overflow */
#define EVSYS_EVENT_TC2_MC0 0x50 /* TC2 Match/Compare 0 */
#define EVSYS_EVENT_TC2_MC1 0x51 /* TC2 Match/Compare 1 */
#define EVSYS_EVENT_TC3_OVF 0x52 /* TC3 Overflow */
#define EVSYS_EVENT_TC3_MC0 0x53 /* TC3 Match/Compare 0 */
#define EVSYS_EVENT_TC3_MC1 0x54 /* TC3 Match/Compare 1 */
#define EVSYS_EVENT_TC4_OVF 0x55 /* TC4 Overflow */
#define EVSYS_EVENT_TC4_MC0 0x56 /* TC4 Match/Compare 0 */
#define EVSYS_EVENT_TC4_MC1 0x57 /* TC4 Match/Compare 1 */
#define EVSYS_EVENT_TC5_OVF 0x58 /* TC5 Overflow */
#define EVSYS_EVENT_TC5_MC0 0x59 /* TC5 Match/Compare 0 */
#define EVSYS_EVENT_TC5_MC1 0x5a /* TC5 Match/Compare 1 */
#define EVSYS_EVENT_TC6_OVF 0x5b /* TC6 Overflow */
#define EVSYS_EVENT_TC6_MC0 0x5c /* TC6 Match/Compare 0 */
#define EVSYS_EVENT_TC6_MC1 0x5d /* TC6 Match/Compare 1 */
#define EVSYS_EVENT_TC7_OVF 0x5e /* TC7 Overflow */
#define EVSYS_EVENT_TC7_MC0 0x5f /* TC7 Match/Compare 0 */
#define EVSYS_EVENT_TC7_MC1 0x60 /* TC7 Match/Compare 1 */
#define EVSYS_EVENT_PDEC_OVF 0x61 /* PDEC Overflow */
#define EVSYS_EVENT_PDEC_ERR 0x62 /* PDEC Error */
#define EVSYS_EVENT_PDEC_DIR 0x63 /* PDEC Direction */
#define EVSYS_EVENT_PDEC_VLC 0x64 /* PDEC VLC */
#define EVSYS_EVENT_PDEC_MC0 0x65 /* PDEC MC0 */
#define EVSYS_EVENT_PDEC_MC1 0x66 /* PDEC MC1 */
#define EVSYS_EVENT_ADC0_RESRDY 0x67 /* ADC0 RESRDY */
#define EVSYS_EVENT_ADC0_WINMON 0x68 /* ADC0 Window Monitor */
#define EVSYS_EVENT_ADC1_RESRDY 0x69 /* ADC1 RESRDY */
#define EVSYS_EVENT_ADC1_WINMON 0x6a /* ADC1 Window Monitor */
#define EVSYS_EVENT_AC_COMP0 0x6b /* AC Comparator 0 */
#define EVSYS_EVENT_AC_COMP1 0x6c /* AC Comparator 1 */
#define EVSYS_EVENT_AC_WIN 0x6d /* AC0 Window */
#define EVSYS_EVENT_DAC_EMPTY0 0x6e /* DAC empty 0 */
#define EVSYS_EVENT_DAC_EMPTY1 0x6f /* DAC empty 1 */
#define EVSYS_EVENT_DAC_RESRDY0 0x70 /* DAC RSRDY 0 */
#define EVSYS_EVENT_DAC_RESRDY1 0x71 /* DAC RSRDY 1 */
#define EVSYS_EVENT_GMAC_TSU_CMP 0x72 /* GMAC Timestamp CMP */
#define EVSYS_EVENT_TRNG_READY 0x73 /* TRNG ready */
#define EVSYS_EVENT_CCL_LUTOUT0 0x74 /* CCL LUTOUT 0 */
#define EVSYS_EVENT_CCL_LUTOUT1 0x75 /* CCL LUTOUT 1 */
#define EVSYS_EVENT_CCL_LUTOUT2 0x76 /* CCL LUTOUT 2 */
#define EVSYS_EVENT_CCL_LUTOUT3 0x77 /* CCL LUTOUT 3 */
/* User multiplexer numbers ************************************************/
/* These are indices that may be used with the SAM_EVSYS_USER(n) macro to get
* the address of the correct user register.
*/
#define EVSYS_USER_RTC_TAMPER 0 /* RTC Tamper A */
#define EVSYS_USER_PORT_EV0 1 /* Port 0 event */
#define EVSYS_USER_PORT_EV1 2 /* Port 1 event */
#define EVSYS_USER_PORT_EV2 3 /* Port 2 event */
#define EVSYS_USER_PORT_EV3 4 /* Port 3 event */
#define EVSYS_USER_DMAC_CH0 5 /* DMA channel 0 event */
#define EVSYS_USER_DMAC_CH1 6 /* DMA channel 1 event */
#define EVSYS_USER_DMAC_CH2 7 /* DMA channel 2 event */
#define EVSYS_USER_DMAC_CH3 8 /* DMA channel 3 event */
#define EVSYS_USER_DMAC_CH4 9 /* DMA channel 4 event */
#define EVSYS_USER_DMAC_CH5 10 /* DMA channel 5 event */
#define EVSYS_USER_DMAC_CH6 11 /* DMA channel 6 event */
#define EVSYS_USER_DMAC_CH7 12 /* DMA channel 7 event */
#define EVSYS_USER_CM4_TRACE_START 14 /* CM4 trace start */
#define EVSYS_USER_CM4_TRACE_STOP 15 /* CM4 trace stop */
#define EVSYS_USER_CM4_TRACE_TRIG 16 /* CM4 trace trigger */
#define EVSYS_USER_TCC0_EV0 17 /* TCC0 EV0 */
#define EVSYS_USER_TCC0_EV1 18 /* TCC0 EV1 */
#define EVSYS_USER_TCC0_MC0 19 /* TCC0 MC0 */
#define EVSYS_USER_TCC0_MC1 20 /* TCC0 MC1 */
#define EVSYS_USER_TCC0_MC2 21 /* TCC0 MC2 */
#define EVSYS_USER_TCC0_MC3 22 /* TCC0 MC3 */
#define EVSYS_USER_TCC0_MC4 23 /* TCC0 MC4 */
#define EVSYS_USER_TCC0_MC5 24 /* TCC0 MC5 */
#define EVSYS_USER_TCC1_EV0 25 /* TCC1 EV0 */
#define EVSYS_USER_TCC1_EV1 26 /* TCC1 EV1 */
#define EVSYS_USER_TCC1_MC0 27 /* TCC1 MC0 */
#define EVSYS_USER_TCC1_MC1 28 /* TCC1 MC1 */
#define EVSYS_USER_TCC1_MC2 29 /* TCC1 MC2 */
#define EVSYS_USER_TCC1_MC3 30 /* TCC1 MC3 */
#define EVSYS_USER_TCC2_EV0 31 /* TCC2 EV0 */
#define EVSYS_USER_TCC2_EV1 32 /* TCC2 EV1 */
#define EVSYS_USER_TCC2_MC0 33 /* TCC2 MC0 */
#define EVSYS_USER_TCC2_MC1 34 /* TCC2 MC1 */
#define EVSYS_USER_TCC2_MC2 35 /* TCC2 MC2 */
#define EVSYS_USER_TCC3_EV0 36 /* TCC3 EV0 */
#define EVSYS_USER_TCC3_EV1 37 /* TCC3 EV1 */
#define EVSYS_USER_TCC3_MC0 38 /* TCC3 MC0 */
#define EVSYS_USER_TCC3_MC1 39 /* TCC3 MC1 */
#define EVSYS_USER_TCC4_EV0 40 /* TCC4 EV0 */
#define EVSYS_USER_TCC4_EV1 41 /* TCC4 EV1 */
#define EVSYS_USER_TCC4_MC0 42 /* TCC4 MC0 */
#define EVSYS_USER_TCC4_MC1 43 /* TCC4 MC1 */
#define EVSYS_USER_TC0_EVU 44 /* TC0 EVU */
#define EVSYS_USER_TC1_EVU 45 /* TC1 EVU */
#define EVSYS_USER_TC2_EVU 46 /* TC2 EVU */
#define EVSYS_USER_TC3_EVU 47 /* TC3 EVU */
#define EVSYS_USER_TC4_EVU 48 /* TC4 EVU */
#define EVSYS_USER_TC5_EVU 49 /* TC5 EVU */
#define EVSYS_USER_TC6_EVU 50 /* TC6 EVU */
#define EVSYS_USER_TC7_EVU 51 /* TC7 EVU */
#define EVSYS_USER_PDEC_EVU0 52 /* PDEC EVU 0 */
#define EVSYS_USER_PDEC_EVU1 53 /* PDEC EVU 1 */
#define EVSYS_USER_PDEC_EVU2 54 /* PDEC EVU 2 */
#define EVSYS_USER_ADC0_START 55 /* ADC0 start conversion */
#define EVSYS_USER_ADC0_SYNC 56 /* SYNC Flush ADC0 */
#define EVSYS_USER_ADC1_START 57 /* ADC1 start conversion */
#define EVSYS_USER_ADC1_SYNC 58 /* SYNC Flush ADC1 */
#define EVSYS_USER_AC_SOC0 59 /* AC SOC 0 */
#define EVSYS_USER_AC_SOC1 60 /* AC SOC 1 */
#define EVSYS_USER_DAC_START0 61 /* DAC0 start conversion */
#define EVSYS_USER_DAC_START1 62 /* DAC1 start conversion */
#define EVSYS_USER_CCL_LUTIN0 63 /* CCL input 0 */
#define EVSYS_USER_CCL_LUTIN1 64 /* CCL input 1 */
#define EVSYS_USER_CCL_LUTIN2 65 /* CCL input 2 */
#define EVSYS_USER_CCL_LUTIN3 66 /* CCL input 3 */
/****************************************************************************
* Public Types
****************************************************************************/
/****************************************************************************
* Public Data
****************************************************************************/
/****************************************************************************
* Public Functions Prototypes
****************************************************************************/
#endif /* __ARCH_ARM_SRC_SAMD5E5_HARDWARE_SAM_EVSYS_H */