/*
    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 <http://www.gnu.org/licenses/>.
*/

/**
 * @defgroup AT91SAM7 AT91SAM7 Drivers
 * @details This section describes all the supported drivers on the AT91SAM7
 *          platform and the implementation details of the single drivers.
 *
 * @ingroup platforms
 */

/**
 * @defgroup AT91SAM7_HAL AT91SAM7 Initialization Support
 * @details The AT91SAM7 HAL support is responsible for system initialization.
 *
 * @section at91sam7_hal_1 Supported HW resources
 * - MC.
 * - PMC.
 * .
 * @section at91sam7_hal_2 AT91SAM7 HAL driver implementation features
 * - PLLs startup and stabilization.
 * - Clock source selection.
 * - Flash wait states.
 * .
* @ingroup AT91SAM7
 */

/**
 * @defgroup AT91SAM7_MAC AT91SAM7 MAC Support
 * @details The AT91SAM7 MAC driver supports the EMAC peripheral.
 *
 * @section at91sam7_mac_1 Supported HW resources
 * - EMAC.
 * .
 * @ingroup AT91SAM7
 */

/**
 * @defgroup AT91SAM7_MII AT91SAM7 MII Support
 * @details This driver supports the AT91SAM7 EMAC peripheral communicating
 *          with an external PHY transceiver. The driver currently supports
 *          the Micrel KS8721 PHY and the Davicom DV9161 modules. This driver
 *          is used internally by the MAC driver.
 *
 * @ingroup AT91SAM7
 */

/**
 * @defgroup AT91SAM7_PAL AT91SAM7 PAL Support
 * @details The AT91SAM7 PAL driver supports the PIO peripherals.
 *
 * @section at91sam7_pal_1 Supported HW resources
 * - PIOA.
 * - PIOB.
 * .
 * @section at91sam7_pal_2 AT91SAM7 PAL driver implementation features
 * The PAL driver implementation fully supports the following hardware
 * capabilities:
 * - 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 at91sam7_pal_3 Supported PAL setup modes
 * The AT91SAM7 PAL driver supports the following I/O 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_INPUT_PULLUP.
 * - @p PAL_MODE_OUTPUT_PUSHPULL.
 * - @p PAL_MODE_OUTPUT_OPENDRAIN.
 * .
 * Any attempt to setup an invalid mode is ignored.
 *
 * @section at91sam7_pal_4 Suboptimal behavior
 * The AT91SAM7 PIO is less than optimal in several areas, the limitations
 * should be taken in account while using the PAL driver:
 * - Pad/port toggling operations are not atomic.
 * - Pad/group mode setup is not atomic.
 * .
 * @ingroup AT91SAM7
 */

/**
 * @defgroup AT91SAM7_SERIAL AT91SAM7 Serial Support
 * @details The AT91SAM7 Serial driver uses the USART/UART peripherals in a
 *          buffered, interrupt driven, implementation.
 *
 * @section at91sam7_serial_1 Supported HW resources
 * The serial driver can support any of the following hardware resources:
 * - USART1.
 * - USART2.
 * - DBGU.
 * .
 * @section at91sam7_serial_2 AT91SAM7 Serial driver implementation features
 * - Clock stop for reduced power usage when the driver is in stop state.
 * - Each USART can be independently enabled and programmed. Unused
 *   peripherals are left in low power mode.
 * - Fully interrupt driven.
 * - Programmable priority levels for each USART.
 * .
 * @ingroup AT91SAM7
 */

/**
 * @defgroup AT91SAM7_SPI AT91SAM7 SPI Support
 * @details The SPI driver supports the AT91SAM7 SPI peripherals using DMA
 *          channels for maximum performance.
 *
 * @section at91sam7_spi_1 Supported HW resources
 * - SPI1.
 * - SPI2.
 * .
 * @section at91sam7_spi_2 AT91SAM7 SPI driver implementation features
 * - Clock stop for reduced power usage when the driver is in stop state.
 * - Each SPI can be independently enabled and programmed. Unused
 *   peripherals are left in low power mode.
 * - Programmable interrupt priority levels for each SPI.
 * - DMA is used for receiving and transmitting.
 * .
 * @ingroup AT91SAM7
 */
