| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- #ifndef _ARCH_CM3_NXP_MACH_LPC_SPI_H_
- #define _ARCH_CM3_NXP_MACH_LPC_SPI_H_
- /*
- * Copyright 2011 by egnite GmbH
- *
- * 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 of the copyright holders nor the names of
- * 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.
- *
- * For additional information see http://www.ethernut.de/
- */
- /*!
- * \file arch/cm3/nxp/mach/lpc_spi.h
- * \brief LPC SPI definitions
- *
- * \verbatim
- * $Id$
- * \endverbatim
- */
- /*!
- * \addtogroup xgNutArchArmv7mLpcSpi
- */
- /*@{*/
- /*! \name SPI Control Register */
- /*@{*/
- #define SPCR_OFF 0x00000000
- #define SPCR (LPC_SPI_BASE + SPCR_OFF)
- #define SPCR_EN (1 << 2)
- #define SPCR_CPHA (1 << 3)
- #define SPCR_CPOL (1 << 4)
- #define SPCR_MSTR (1 << 5)
- #define SPCR_LSBF (1 << 6)
- #define SPCR_SPIE (1 << 7)
- #define SPCR_BITS_LSB 8
- #define SPCR_BITS 0x00000F00
- #define SPCR_8BITS 0x00000800
- #define SPCR_9BITS 0x00000900
- #define SPCR_10BITS 0x00000A00
- #define SPCR_11BITS 0x00000B00
- #define SPCR_12BITS 0x00000C00
- #define SPCR_13BITS 0x00000D00
- #define SPCR_14BITS 0x00000E00
- #define SPCR_15BITS 0x00000F00
- #define SPCR_16BITS 0x00000000
- /*@}*/
- /*! \name SPI Status Register */
- /*@{*/
- #define SPSR_OFF 0x00000004
- #define SPSR (LPC_SPI_BASE + SPSR_OFF)
- #define SPSR_ABRT (1 << 3)
- #define SPSR_MODF (1 << 4)
- #define SPSR_ROVR (1 << 5)
- #define SPSR_WCOL (1 << 6)
- #define SPSR_SPIF (1 << 7)
- /*@}*/
- /*! \name SPI Data Register */
- /*@{*/
- #define SPDR_OFF 0x00000008
- #define SPDR (LPC_SPI_BASE + SPDR_OFF)
- /*@}*/
- /*! \name SPI Clock Counter Register */
- /*@{*/
- #define SPCCR_OFF 0x0000000C
- #define SPCCR (LPC_SPI_BASE + SPCCR_OFF)
- /*@}*/
- /*! \name SPI Interrupt Flag Register */
- /*@{*/
- #define SPINT_OFF 0x0000001C
- #define SPINT (LPC_SPI_BASE + SPINT_OFF)
- #define SPINT_SPIF (1 << 0)
- /*@}*/
- /*@}*/
- #endif
|