* arch/arm/src/lpc2378/lpc23xx_timer.h
*
* Copyright (C) 2010 Rommel Marcelo. All rights reserved.
* Author: Rommel Marcelo
*
* This file is part of the NuttX RTOS and based on the lpc2148 port:
*
* Copyright (C) 2010 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
#ifndef __ARCH_ARM_SRC_LPC2378_LPC23XX_TIMER_H
#define __ARCH_ARM_SRC_LPC2378_LPC23XX_TIMER_H
* Included Files
****************************************************************************/
* Pre-processor Definitions
****************************************************************************/
#define tmr_getreg8(o) getreg8(LPC23XX_TMR0_BASE+(o))
#define tmr_getreg16(o) getreg16(LPC23XX_TMR0_BASE+(o))
#define tmr_getreg32(o) getreg32(LPC23XX_TMR0_BASE+(o))
#define tmr_putreg8(v,o) putreg8((v), LPC23XX_TMR0_BASE+(o))
#define tmr_putreg16(v,o) putreg16((v), LPC23XX_TMR0_BASE+(o))
#define tmr_putreg32(v,o) putreg32((v), LPC23XX_TMR0_BASE+(o))
#define TMR_IR_MR0I (1 << 0)
#define TMR_IR_MR1I (1 << 1)
#define TMR_IR_MR2I (1 << 2)
#define TMR_IR_MR3I (1 << 3)
#define TMR_IR_CR0I (1 << 4)
#define TMR_IR_CR1I (1 << 5)
#define TMR_IR_CR2I (1 << 6)
#define TMR_IR_CR3I (1 << 7)
#define TMR_IR_ALLI (0xff)
#define TMR_CR_ENABLE (1 << 0)
#define TMR_CR_RESET (1 << 1)
#define TMR_MCR_MR0I (1 << 0)
#define TMR_MCR_MR0R (1 << 1)
#define TMR_MCR_MR0S (1 << 2)
#define TMR_MCR_MR1I (1 << 3)
#define TMR_MCR_MR1R (1 << 4)
#define TMR_MCR_MR1S (1 << 5)
#define TMR_MCR_MR2I (1 << 6)
#define TMR_MCR_MR2R (1 << 7)
#define TMR_MCR_MR2S (1 << 8)
#define TMR_MCR_MR3I (1 << 9)
#define TMR_MCR_MR3R (1 << 10)
#define TMR_MCR_MR3S (1 << 11)
#define TMR_CCR_CAP0RE (1 << 0)
#define TMR_CCR_CAP0FE (1 << 1)
#define TMR_CCR_CAP0I (1 << 2)
#define TMR_CCR_CAP1RE (1 << 3)
#define TMR_CCR_CAP1FE (1 << 4)
#define TMR_CCR_CAP1I (1 << 5)
* Enable Rising edge on CAPn.2 will load TC to CR2
*/
* Enable Falling edge on CAPn.2 will load TC to CR2
*/
* Enable Interrupt on load of CR2
*/
* Enable Rising edge on CAPn.3 will load TC to CR3
*/
* Enable Falling edge on CAPn.3 will load TC to CR3
*/
* Enable Interrupt on load of CR3
*/
#define TMR_EMR_EM0 (1 << 0)
#define TMR_EMR_EM1 (1 << 1)
#define TMR_EMR_EM2 (1 << 2)
#define TMR_EMR_EM3 (1 << 3)
#define TMR_EMR_EMC0(b) ((b) << 4)
#define TMR_EMR_EMC1(b) ((b) << 6)
#define TMR_EMR_EMC2(b) ((b) << 8)
#define TMR_EMR_EMC3(b) ((b) << 10)
#define TMR_EMR_MASK (3)
#define TMR_EMR_NOOP (0)
#define TMR_EMR_CLEAR (1)
#define TMR_EMR_SET (2)
#define TMR_EMR_TOGGLE (3)
#define TMR_CTCR_MODE_MASK (3 << 0)
#define TMR_CTCR_PCLK (0 << 0)
#define TMR_CTCR_RISING (1 << 0)
#define TMR_CTDR_FALLING (2 << 0)
#define TMR_CTCR_BOTH (3 << 0)
#define TMR_CTCR_INPUT_MASK (3 << 2)
#define TMR_CTCR_CR0 (0 << 2)
#define TMR_CTCR_CR1 (1 << 2)
#define TMR_CTCR_CR2 (2 << 2)
#define TMR_CTCR_CR3 (3 << 2)
* Public Types
****************************************************************************/
* Inline Functions
****************************************************************************/
* Public Function Prototypes
****************************************************************************/
#endif