diff options
Diffstat (limited to 'c/src/lib/libbsp/arm/atsam/libraries/libchip/include/pio_it.h')
-rw-r--r-- | c/src/lib/libbsp/arm/atsam/libraries/libchip/include/pio_it.h | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/pio_it.h b/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/pio_it.h deleted file mode 100644 index b03973caa1..0000000000 --- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/include/pio_it.h +++ /dev/null @@ -1,117 +0,0 @@ -/* ---------------------------------------------------------------------------- */ -/* Atmel Microcontroller Software Support */ -/* SAM Software Package License */ -/* ---------------------------------------------------------------------------- */ -/* Copyright (c) 2015, Atmel Corporation */ -/* */ -/* All rights reserved. */ -/* */ -/* Redistribution and use in source and binary forms, with or without */ -/* modification, are permitted provided that the following condition is met: */ -/* */ -/* - Redistributions of source code must retain the above copyright notice, */ -/* this list of conditions and the disclaimer below. */ -/* */ -/* Atmel's name may not be used to endorse or promote products derived from */ -/* this software without specific prior written permission. */ -/* */ -/* DISCLAIMER: 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 */ -/* 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. */ -/* ---------------------------------------------------------------------------- */ - -/** - * \file - * - * \par Purpose - * - * Configuration and handling of interrupts on PIO status changes. The API - * provided here have several advantages over the traditional PIO interrupt - * configuration approach: - * - It is highly portable - * - It automatically demultiplexes interrupts when multiples pins have been - * configured on a single PIO controller - * - It allows a group of pins to share the same interrupt - * - * However, it also has several minor drawbacks that may prevent from using it - * in particular applications: - * - It enables the clocks of all PIO controllers - * - PIO controllers all share the same interrupt handler, which does the - * demultiplexing and can be slower than direct configuration - * - It reserves space for a fixed number of interrupts, which can be - * increased by modifying the appropriate constant in pio_it.c. - * - * \par Usage - * - * -# Initialize the PIO interrupt mechanism using PIO_InitializeInterrupts() - * with the desired priority (0 ... 7). - * -# Configure a status change interrupt on one or more pin(s) with - * PIO_ConfigureIt(). - * -# Enable & disable interrupts on pins using PIO_EnableIt() and - * PIO_DisableIt(). - */ - -#ifndef _PIO_IT_ -#define _PIO_IT_ - -/* - * Headers - */ - -#include "pio.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Global functions - */ - -extern void PIO_InitializeInterrupts(uint32_t dwPriority); - -extern void PIO_ConfigureIt(const Pin *pPin, - void (*handler)(const Pin *, void *arg), void *arg); - - -/** - * Enables the given interrupt source if it has been configured. The status - * register of the corresponding PIO controller is cleared prior to enabling - * the interrupt. - * \param pPin Interrupt source to enable. - */ -static inline void PIO_EnableIt(const Pin *pPin) -{ - pPin->pio->PIO_ISR; - pPin->pio->PIO_IER = pPin->mask; -} - -/** - * Disables a given interrupt source, with no added side effects. - * - * \param pPin Interrupt source to disable. - */ -static inline void PIO_DisableIt(const Pin *pPin) -{ - pPin->pio->PIO_IDR = pPin->mask; -} - -extern void PIO_IT_InterruptHandler(void); - -extern void PioInterruptHandler(uint32_t id, Pio *pPio); - -extern void PIO_CaptureHandler(void); - -#ifdef __cplusplus -} -#endif - -#endif /* #ifndef _PIO_IT_ */ - |