/* ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 2011,2012 Giovanni Di Sirio. This file is part of ChibiOS/RT. ChibiOS/RT is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. ChibiOS/RT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /** * @defgroup LPC214x LPC214x Drivers * @details This section describes all the supported drivers on the LPC214x * platform and the implementation details of the single drivers. * * @ingroup platforms */ /** * @defgroup LPC214x_HAL LPC214x Initialization Support * @details The LPC214x HAL support is responsible for system initialization. * * @section lpc214x_hal_1 Supported HW resources * - PLL0. * - MAM. * - VPBDIV. * . * @section lpc214x_hal_2 LPC214x HAL driver implementation features * - Clock tree initialization. * - Clock source selection. * - MAM initialization. * . * @ingroup LPC214x */ /** * @defgroup LPC214x_PAL LPC214x PAL Support * @details The LPC214x PAL driver uses the FIO peripherals. * * @section lpc214x_pal_1 Supported HW resources * - FIO0. * - FIO1. * . * @section lpc214x_pal_2 LPC214x PAL driver implementation features * - 32 bits wide ports. * - Atomic set/reset functions. * - Output latched regardless of the pad setting. * - Direct read of input pads regardless of the pad setting. * . * @section lpc214x_pal_3 Supported PAL setup modes * - @p PAL_MODE_RESET. * - @p PAL_MODE_UNCONNECTED. * - @p PAL_MODE_INPUT. * - @p PAL_MODE_INPUT_ANALOG (same as @p PAL_MODE_INPUT). * - @p PAL_MODE_OUTPUT_PUSHPULL. * . * Any attempt to setup an invalid mode is ignored. * * @section lpc214x_pal_4 Suboptimal behavior * Some FIO features are less than optimal: * - Pad/port toggling operations are not atomic. * - Pad/group mode setup is not atomic. * . * @ingroup LPC214x */ /** * @defgroup LPC214x_SERIAL LPC214x Serial Support * @details The LPC214x Serial driver uses the UART peripherals in a * buffered, interrupt driven, implementation. The serial driver * also takes advantage of the LPC214x UARTs deep hardware buffers. * * @section lpc214x_serial_1 Supported HW resources * The serial driver can support any of the following hardware resources: * - UART0. * - UART1. * . * @section lpc214x_serial_2 LPC214x Serial driver implementation features * - Clock stop for reduced power usage when the driver is in stop state. * - Fully interrupt driven. * - Programmable interrupt priority levels for each UART. * - Takes advantage of the input and output FIFOs. * . * @ingroup LPC214x */ /** * @defgroup LPC214x_SPI LPC214x SPI Support * @details The SPI driver supports the LPC214x SSP peripheral in an interrupt * driven implementation. * @note Being the SPI a fast peripheral, much care must be taken to * not saturate the CPU bandwidth with an excessive IRQ rate. The * maximum transfer bit rate is likely limited by the IRQ * handling. * * @section lpc214x_spi_1 Supported HW resources * - SSP (SPI0). * . * @section lpc214x_spi_2 LPC214x SPI driver implementation features * - Clock stop for reduced power usage when the driver is in stop state. * - Programmable interrupt priority level. * . * @ingroup LPC214x */ /** * @defgroup LPC214x_VIC LPC214x VIC Support * @details This VIC helper driver is used by the other drivers in order to * access the shared VIC resources in a consistent way. * * @ingroup LPC214x */