aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2010-10-26 17:39:29 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2010-10-26 17:39:29 +0000
commit487a81e29725d598cf0ccdd8c9cd59c5c03634d9 (patch)
treed0c0277547cc71dc3f258880c9d1ee5257ec1b94 /os/hal
parentacbea2f1f39f4e4726d3eebf90c27563002f3cf5 (diff)
downloadChibiOS-487a81e29725d598cf0ccdd8c9cd59c5c03634d9.tar.gz
ChibiOS-487a81e29725d598cf0ccdd8c9cd59c5c03634d9.tar.bz2
ChibiOS-487a81e29725d598cf0ccdd8c9cd59c5c03634d9.zip
Documentation related changes.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@2293 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal')
-rw-r--r--os/hal/platforms/AT91SAM7/platform.dox30
-rw-r--r--os/hal/platforms/AVR/hal_lld.c2
-rw-r--r--os/hal/platforms/AVR/hal_lld.h2
-rw-r--r--os/hal/platforms/AVR/platform.dox25
-rw-r--r--os/hal/platforms/AVR/serial_lld.c2
-rw-r--r--os/hal/platforms/AVR/serial_lld.h2
-rw-r--r--os/hal/platforms/LPC11xx/hal_lld.c2
-rw-r--r--os/hal/platforms/LPC11xx/hal_lld.h2
-rw-r--r--os/hal/platforms/LPC11xx/pal_lld.c2
-rw-r--r--os/hal/platforms/LPC11xx/pal_lld.h2
-rw-r--r--os/hal/platforms/LPC11xx/platform.dox83
-rw-r--r--os/hal/platforms/LPC11xx/serial_lld.c2
-rw-r--r--os/hal/platforms/LPC11xx/serial_lld.h2
-rw-r--r--os/hal/platforms/LPC11xx/spi_lld.c2
-rw-r--r--os/hal/platforms/LPC11xx/spi_lld.h2
-rw-r--r--os/hal/platforms/LPC13xx/hal_lld.c2
-rw-r--r--os/hal/platforms/LPC13xx/hal_lld.h2
-rw-r--r--os/hal/platforms/LPC13xx/pal_lld.c2
-rw-r--r--os/hal/platforms/LPC13xx/pal_lld.h2
-rw-r--r--os/hal/platforms/LPC13xx/platform.dox83
-rw-r--r--os/hal/platforms/LPC13xx/serial_lld.c2
-rw-r--r--os/hal/platforms/LPC13xx/serial_lld.h4
-rw-r--r--os/hal/platforms/LPC214x/hal_lld.c2
-rw-r--r--os/hal/platforms/LPC214x/hal_lld.h2
-rw-r--r--os/hal/platforms/LPC214x/pal_lld.c2
-rw-r--r--os/hal/platforms/LPC214x/pal_lld.h2
-rw-r--r--os/hal/platforms/LPC214x/platform.dox93
-rw-r--r--os/hal/platforms/LPC214x/serial_lld.c2
-rw-r--r--os/hal/platforms/LPC214x/serial_lld.h2
-rw-r--r--os/hal/platforms/LPC214x/spi_lld.c2
-rw-r--r--os/hal/platforms/LPC214x/spi_lld.h2
-rw-r--r--os/hal/platforms/MSP430/hal_lld.c2
-rw-r--r--os/hal/platforms/MSP430/hal_lld.h2
-rw-r--r--os/hal/platforms/MSP430/pal_lld.c2
-rw-r--r--os/hal/platforms/MSP430/pal_lld.h2
-rw-r--r--os/hal/platforms/MSP430/platform.dox59
-rw-r--r--os/hal/platforms/MSP430/serial_lld.c2
-rw-r--r--os/hal/platforms/MSP430/serial_lld.h2
-rw-r--r--os/hal/platforms/SPC56x/hal_lld.c2
-rw-r--r--os/hal/platforms/SPC56x/hal_lld.h2
-rw-r--r--os/hal/platforms/SPC56x/platform.dox48
-rw-r--r--os/hal/platforms/SPC56x/serial_lld.c2
-rw-r--r--os/hal/platforms/SPC56x/serial_lld.h2
-rw-r--r--os/hal/platforms/STM32/platform.dox80
-rw-r--r--os/hal/platforms/STM8/hal_lld.c2
-rw-r--r--os/hal/platforms/STM8/hal_lld.h2
-rw-r--r--os/hal/platforms/STM8/pal_lld.c2
-rw-r--r--os/hal/platforms/STM8/pal_lld.h2
-rw-r--r--os/hal/platforms/STM8/platform.dox65
-rw-r--r--os/hal/platforms/STM8/serial_lld.c2
-rw-r--r--os/hal/platforms/STM8/serial_lld.h2
51 files changed, 440 insertions, 212 deletions
diff --git a/os/hal/platforms/AT91SAM7/platform.dox b/os/hal/platforms/AT91SAM7/platform.dox
index 9e1736256..af4816486 100644
--- a/os/hal/platforms/AT91SAM7/platform.dox
+++ b/os/hal/platforms/AT91SAM7/platform.dox
@@ -19,21 +19,21 @@
/**
* @defgroup AT91SAM7 AT91SAM7 Drivers
- * @brief AT91SAM7 specific support.
+ * @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 HAL Support
- * @brief HAL support.
+ * @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 STM32 HAL driver implementation features
+ * @section at91sam7_hal_2 AT91SAM7 HAL driver implementation features
* - PLLs startup and stabilization.
* - Clock source selection.
* - Flash wait states.
@@ -43,8 +43,7 @@
/**
* @defgroup AT91SAM7_MAC AT91SAM7 EMAC Support
- * @brief EMAC+PHY peripheral support.
- * @details This driver supports the AT91SAM7 EMAC peripheral.
+ * @details The AT91SAM7 MAC driver supports the EMAC peripheral.
*
* @section at91sam7_mac_1 Supported HW resources
* - EMAC.
@@ -54,17 +53,17 @@
/**
* @defgroup AT91SAM7_MII AT91SAM7 MII Support
- * @brief PHY peripheral 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.
+ * the Micrel KS8721 PHY and the Davicom DV9161 modules. This driver
+ * is used internally by the MAC driver.
*
* @ingroup AT91SAM7
*/
/**
* @defgroup AT91SAM7_PAL AT91SAM7 PIO Support
- * @brief I/O Ports peripherals support.
+ * @details The AT91SAM7 PAL driver supports the PIO peripherals.
*
* @section at91sam7_pal_1 Supported HW resources
* - PIOA.
@@ -91,8 +90,8 @@
* Any attempt to setup an invalid mode is ignored.
*
* @section at91sam7_pal_4 Suboptimal behavior
- * The STM32 PIO is less than optimal in several areas, the limitations should
- * be taken in account while using the PAL driver:
+ * 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.
* .
@@ -101,9 +100,8 @@
/**
* @defgroup AT91SAM7_SPI AT91SAM7 SPI Support
- * @brief SPI peripheral support.
- * @details The SPI driver supports the AT91SAM7 SPIs using DMA channels for
- * improved performance.
+ * @details The SPI driver supports the AT91SAM7 SPI peripherals using DMA
+ * channels for maximum performance.
*
* @section at91sam7_spi_1 Supported HW resources
* - SPI1.
@@ -121,8 +119,8 @@
/**
* @defgroup AT91SAM7_SERIAL AT91SAM7 USART Support (buffered)
- * @brief USART peripherals support.
- * @details The serial driver supports the AT91SAM7 USART peripherals.
+ * @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:
diff --git a/os/hal/platforms/AVR/hal_lld.c b/os/hal/platforms/AVR/hal_lld.c
index c0e694804..a3d3f4ab8 100644
--- a/os/hal/platforms/AVR/hal_lld.c
+++ b/os/hal/platforms/AVR/hal_lld.c
@@ -21,7 +21,7 @@
* @file AVR/hal_lld.c
* @brief AVR HAL subsystem low level driver code.
*
- * @addtogroup AVR_HAL
+ * @addtogroup HAL
* @{
*/
diff --git a/os/hal/platforms/AVR/hal_lld.h b/os/hal/platforms/AVR/hal_lld.h
index 9ffd46d7a..647c2f142 100644
--- a/os/hal/platforms/AVR/hal_lld.h
+++ b/os/hal/platforms/AVR/hal_lld.h
@@ -21,7 +21,7 @@
* @file AVR/hal_lld.h
* @brief AVR HAL subsystem low level driver header.
*
- * @addtogroup AVR_HAL
+ * @addtogroup HAL
* @{
*/
diff --git a/os/hal/platforms/AVR/platform.dox b/os/hal/platforms/AVR/platform.dox
index b14441ebc..9b8cf3e6b 100644
--- a/os/hal/platforms/AVR/platform.dox
+++ b/os/hal/platforms/AVR/platform.dox
@@ -19,23 +19,34 @@
/**
* @defgroup AVR_DRIVERS AVR Drivers
- * @brief AVR specific support.
+ * @details This section describes all the supported drivers on the AVR
+ * platform and the implementation details of the single drivers.
*
* @ingroup platforms
*/
/**
- * @defgroup AVR_HAL AVR HAL Support
- * @brief HAL support.
+ * @defgroup AVR_HAL AVR Initialization Support
+ * @details On the AVR platform the HAL driver is a stub and does not perform
+ * any platform-specific initialization, it still performs the
+ * initialization of the other drivers.
*
* @ingroup AVR_DRIVERS
*/
/**
- * @defgroup AVR_SERIAL AVR USART Support
- * @brief USART support.
- * @details The serial driver supports both the AVR USARTs in asynchronous
- * mode.
+ * @defgroup AVR_SERIAL AVR USART Support (buffered)
+ * @details The AVR Serial driver uses the USART peripherals in a
+ * buffered, interrupt driven, implementation.
*
+ * @section avr_serial_1 Supported HW resources
+ * The serial driver can support any of the following hardware resources:
+ * - USART0.
+ * - USART1.
+ * .
+ * @section avr_serial_2 AVR Serial driver implementation features
+ * - Each USART can be independently enabled and programmed.
+ * - Fully interrupt driven.
+ * .
* @ingroup AVR_DRIVERS
*/
diff --git a/os/hal/platforms/AVR/serial_lld.c b/os/hal/platforms/AVR/serial_lld.c
index 74f8c63b4..8fc091bed 100644
--- a/os/hal/platforms/AVR/serial_lld.c
+++ b/os/hal/platforms/AVR/serial_lld.c
@@ -21,7 +21,7 @@
* @file AVR/serial_lld.c
* @brief AVR low level serial driver code.
*
- * @addtogroup AVR_SERIAL
+ * @addtogroup SERIAL
* @{
*/
diff --git a/os/hal/platforms/AVR/serial_lld.h b/os/hal/platforms/AVR/serial_lld.h
index 604a46c99..0c558ab34 100644
--- a/os/hal/platforms/AVR/serial_lld.h
+++ b/os/hal/platforms/AVR/serial_lld.h
@@ -21,7 +21,7 @@
* @file AVR/serial_lld.h
* @brief AVR low level serial driver header.
*
- * @addtogroup AVR_SERIAL
+ * @addtogroup SERIAL
* @{
*/
diff --git a/os/hal/platforms/LPC11xx/hal_lld.c b/os/hal/platforms/LPC11xx/hal_lld.c
index efaf4c98f..29ff0a9ec 100644
--- a/os/hal/platforms/LPC11xx/hal_lld.c
+++ b/os/hal/platforms/LPC11xx/hal_lld.c
@@ -21,7 +21,7 @@
* @file LPC11xx/hal_lld.c
* @brief LPC11xx HAL subsystem low level driver source.
*
- * @addtogroup LPC11xx_HAL
+ * @addtogroup HAL
* @{
*/
diff --git a/os/hal/platforms/LPC11xx/hal_lld.h b/os/hal/platforms/LPC11xx/hal_lld.h
index 35e8db6a6..718e9457a 100644
--- a/os/hal/platforms/LPC11xx/hal_lld.h
+++ b/os/hal/platforms/LPC11xx/hal_lld.h
@@ -21,7 +21,7 @@
* @file LPC11xx/hal_lld.h
* @brief HAL subsystem low level driver header template.
*
- * @addtogroup LPC11xx_HAL
+ * @addtogroup HAL
* @{
*/
diff --git a/os/hal/platforms/LPC11xx/pal_lld.c b/os/hal/platforms/LPC11xx/pal_lld.c
index 769dcba17..f48ae8529 100644
--- a/os/hal/platforms/LPC11xx/pal_lld.c
+++ b/os/hal/platforms/LPC11xx/pal_lld.c
@@ -21,7 +21,7 @@
* @file LPC11xx/pal_lld.c
* @brief LPC11xx GPIO low level driver code.
*
- * @addtogroup LPC11xx_PAL
+ * @addtogroup PAL
* @{
*/
diff --git a/os/hal/platforms/LPC11xx/pal_lld.h b/os/hal/platforms/LPC11xx/pal_lld.h
index 42e2ac247..83605cb65 100644
--- a/os/hal/platforms/LPC11xx/pal_lld.h
+++ b/os/hal/platforms/LPC11xx/pal_lld.h
@@ -21,7 +21,7 @@
* @file LPC11xx/pal_lld.h
* @brief LPC11xx GPIO low level driver header.
*
- * @addtogroup LPC11xx_PAL
+ * @addtogroup PAL
* @{
*/
diff --git a/os/hal/platforms/LPC11xx/platform.dox b/os/hal/platforms/LPC11xx/platform.dox
index 89a10f6c0..82d0b0a6e 100644
--- a/os/hal/platforms/LPC11xx/platform.dox
+++ b/os/hal/platforms/LPC11xx/platform.dox
@@ -19,34 +19,47 @@
/**
* @defgroup LPC11xx LPC11xx Drivers
- * @brief LPC11xx specific support.
- * @details The LPC11xx support includes:
- * - I/O ports driver.
- * - Buffered, interrupt driven, serial driver.
- * - A demo supporting the kernel test suite.
- * .
+ * @details This section describes all the supported drivers on the LPC11xx
+ * platform and the implementation details of the single drivers.
+ *
* @ingroup platforms
*/
/**
- * @defgroup LPC11xx_HAL LPC11xx HAL Support
- * @brief HAL support.
+ * @defgroup LPC11xx_HAL LPC11xx Initialization Support
+ * @details The LPC11xx HAL support is responsible for system initialization.
*
+ * @section lpc11xx_hal_1 Supported HW resources
+ * - SYSCON.
+ * - Flash.
+ * .
+ * @section lpc11xx_hal_2 LPC11xx HAL driver implementation features
+ * - Clock tree initialization.
+ * - Clock source selection.
+ * - Flash controller initialization.
+ * - SYSTICK initialization based on current clock and kernel required rate.
+ * .
* @ingroup LPC11xx
*/
/**
- * @defgroup LPC11xx_PAL LPC11xx I/O Ports Support
- * @brief I/O Ports peripherals support.
- * @details This module supports the LPC11xx GPIO controller. The controller
- * supports the following features (see @ref PAL):
+ * @defgroup LPC11xx_PAL LPC11xx GPIO Support
+ * @details The LPC11xx PAL driver uses the GPIO peripherals.
+ *
+ * @section lpc11xx_pal_1 Supported HW resources
+ * - GPIO0.
+ * - GPIO1.
+ * - GPIO2.
+ * - GPIO3.
+ * .
+ * @section lpc11xx_pal_2 LPC11xx PAL driver implementation features
* - 12 bits wide ports.
* - Atomic set/reset functions.
* - Atomic set+reset function (atomic bus operations).
* - Output latched regardless of the pad setting.
* - Direct read of input pads regardless of the pad setting.
* .
- * <h2>Supported Setup Modes</h2>
+ * @section lpc11xx_pal_3 Supported PAL setup modes
* - @p PAL_MODE_RESET.
* - @p PAL_MODE_UNCONNECTED.
* - @p PAL_MODE_INPUT.
@@ -54,11 +67,11 @@
* .
* Any attempt to setup an invalid mode is ignored.
*
- * <h2>Suboptimal Behavior</h2>
+ * @section lpc11xx_pal_4 Suboptimal behavior
* Some GPIO features are less than optimal:
* - Pad/port toggling operations are not atomic.
* - Pull-up and Pull-down resistors cannot be programmed through the PAL
- * driver and must be programmed separately.
+ * driver and must be programmed separately using the IOCON peripheral.
* - Reading of the output latch for pads programmed as input is not possible,
* the input pin value is returned instead.
* .
@@ -66,10 +79,42 @@
*/
/**
- * @defgroup LPC11xx_SERIAL LPC11xx UART Support
- * @brief UART peripherals support.
- * @details The serial driver supports the LPC11xx UART taking advantage of
- * its deep hardware buffers.
+ * @defgroup LPC11xx_SPI LPC11xx SPI Support
+ * @details The SPI driver supports the LPC11xx SSP peripherals 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 lpc11xx_spi_1 Supported HW resources
+ * - SSP0.
+ * - SSP1 (where present).
+ * .
+ * @section lpc11xx_spi_2 LPC11xx SPI driver implementation features
+ * - Clock stop for reduced power usage when the driver is in stop state.
+ * - Each SSP can be independently enabled and programmed. Unused
+ * peripherals are left in low power mode.
+ * - Programmable interrupt priority levels for each SSP.
+ * .
+ * @ingroup LPC11xx
+ */
+
+/**
+ * @defgroup LPC11xx_SERIAL LPC11xx UART Support (buffered)
+ * @details The LPC11xx Serial driver uses the UART peripheral in a
+ * buffered, interrupt driven, implementation. The serial driver
+ * also takes advantage of the LPC11xx UARTs deep hardware buffers.
+ *
+ * @section lpc11xx_serial_1 Supported HW resources
+ * The serial driver can support any of the following hardware resources:
+ * - UART.
+ * .
+ * @section lpc11xx_serial_2 LPC11xx Serial driver implementation features
+ * - Clock stop for reduced power usage when the driver is in stop state.
+ * - Fully interrupt driven.
+ * - Programmable priority level.
+ * - Takes advantage of the input and output FIFOs.
+ * .
* @ingroup LPC11xx
*/
diff --git a/os/hal/platforms/LPC11xx/serial_lld.c b/os/hal/platforms/LPC11xx/serial_lld.c
index 42bc5ebb3..563c5bcf7 100644
--- a/os/hal/platforms/LPC11xx/serial_lld.c
+++ b/os/hal/platforms/LPC11xx/serial_lld.c
@@ -21,7 +21,7 @@
* @file LPC11xx/serial_lld.c
* @brief LPC11xx low level serial driver code.
*
- * @addtogroup LPC11xx_SERIAL
+ * @addtogroup SERIAL
* @{
*/
diff --git a/os/hal/platforms/LPC11xx/serial_lld.h b/os/hal/platforms/LPC11xx/serial_lld.h
index cd2acdbf4..aae1e423c 100644
--- a/os/hal/platforms/LPC11xx/serial_lld.h
+++ b/os/hal/platforms/LPC11xx/serial_lld.h
@@ -21,7 +21,7 @@
* @file LPC11xx/serial_lld.h
* @brief LPC11xx low level serial driver header.
*
- * @addtogroup LPC11xx_SERIAL
+ * @addtogroup SERIAL
* @{
*/
diff --git a/os/hal/platforms/LPC11xx/spi_lld.c b/os/hal/platforms/LPC11xx/spi_lld.c
index 884cdab75..becf691a3 100644
--- a/os/hal/platforms/LPC11xx/spi_lld.c
+++ b/os/hal/platforms/LPC11xx/spi_lld.c
@@ -21,7 +21,7 @@
* @file LPC11xx/spi_lld.c
* @brief LPC11xx low level SPI driver code.
*
- * @addtogroup LPC11xx_SPI
+ * @addtogroup SPI
* @{
*/
diff --git a/os/hal/platforms/LPC11xx/spi_lld.h b/os/hal/platforms/LPC11xx/spi_lld.h
index 580787bb1..021099097 100644
--- a/os/hal/platforms/LPC11xx/spi_lld.h
+++ b/os/hal/platforms/LPC11xx/spi_lld.h
@@ -21,7 +21,7 @@
* @file LPC11xx/spi_lld.h
* @brief LPC11xx low level SPI driver header.
*
- * @addtogroup LPC11xx_SPI
+ * @addtogroup SPI
* @{
*/
diff --git a/os/hal/platforms/LPC13xx/hal_lld.c b/os/hal/platforms/LPC13xx/hal_lld.c
index 37421f752..33d5f2f11 100644
--- a/os/hal/platforms/LPC13xx/hal_lld.c
+++ b/os/hal/platforms/LPC13xx/hal_lld.c
@@ -21,7 +21,7 @@
* @file LPC13xx/hal_lld.c
* @brief LPC13xx HAL subsystem low level driver source.
*
- * @addtogroup LPC13xx_HAL
+ * @addtogroup HAL
* @{
*/
diff --git a/os/hal/platforms/LPC13xx/hal_lld.h b/os/hal/platforms/LPC13xx/hal_lld.h
index abe15ada5..63f1c6110 100644
--- a/os/hal/platforms/LPC13xx/hal_lld.h
+++ b/os/hal/platforms/LPC13xx/hal_lld.h
@@ -21,7 +21,7 @@
* @file LPC13xx/hal_lld.h
* @brief HAL subsystem low level driver header template.
*
- * @addtogroup LPC13xx_HAL
+ * @addtogroup HAL
* @{
*/
diff --git a/os/hal/platforms/LPC13xx/pal_lld.c b/os/hal/platforms/LPC13xx/pal_lld.c
index f1e766c4d..d0f9ca3e5 100644
--- a/os/hal/platforms/LPC13xx/pal_lld.c
+++ b/os/hal/platforms/LPC13xx/pal_lld.c
@@ -21,7 +21,7 @@
* @file LPC13xx/pal_lld.c
* @brief LPC13xx GPIO low level driver code.
*
- * @addtogroup LPC13xx_PAL
+ * @addtogroup PAL
* @{
*/
diff --git a/os/hal/platforms/LPC13xx/pal_lld.h b/os/hal/platforms/LPC13xx/pal_lld.h
index aefaa3be2..eec4a5596 100644
--- a/os/hal/platforms/LPC13xx/pal_lld.h
+++ b/os/hal/platforms/LPC13xx/pal_lld.h
@@ -21,7 +21,7 @@
* @file LPC13xx/pal_lld.h
* @brief LPC13xx GPIO low level driver header.
*
- * @addtogroup LPC13xx_PAL
+ * @addtogroup PAL
* @{
*/
diff --git a/os/hal/platforms/LPC13xx/platform.dox b/os/hal/platforms/LPC13xx/platform.dox
index 4baeeedaa..9f22a0252 100644
--- a/os/hal/platforms/LPC13xx/platform.dox
+++ b/os/hal/platforms/LPC13xx/platform.dox
@@ -19,34 +19,47 @@
/**
* @defgroup LPC13xx LPC13xx Drivers
- * @brief LPC13xx specific support.
- * @details The LPC13xx support includes:
- * - I/O ports driver.
- * - Buffered, interrupt driven, serial driver.
- * - A demo supporting the kernel test suite.
- * .
+ * @details This section describes all the supported drivers on the LPC13xx
+ * platform and the implementation details of the single drivers.
+ *
* @ingroup platforms
*/
/**
- * @defgroup LPC13xx_HAL LPC13xx HAL Support
- * @brief HAL support.
+ * @defgroup LPC13xx_HAL LPC13xx Initialization Support
+ * @details The LPC13xx HAL support is responsible for system initialization.
*
+ * @section lpc13xx_hal_1 Supported HW resources
+ * - SYSCON.
+ * - Flash.
+ * .
+ * @section lpc13xx_hal_2 LPC13xx HAL driver implementation features
+ * - Clock tree initialization.
+ * - Clock source selection.
+ * - Flash controller initialization.
+ * - SYSTICK initialization based on current clock and kernel required rate.
+ * .
* @ingroup LPC13xx
*/
/**
- * @defgroup LPC13xx_PAL LPC13xx I/O Ports Support
- * @brief I/O Ports peripherals support.
- * @details This module supports the LPC13xx GPIO controller. The controller
- * supports the following features (see @ref PAL):
+ * @defgroup LPC13xx_PAL LPC13xx GPIO Support
+ * @details The LPC13xx PAL driver uses the GPIO peripherals.
+ *
+ * @section lpc13xx_pal_1 Supported HW resources
+ * - GPIO0.
+ * - GPIO1.
+ * - GPIO2.
+ * - GPIO3.
+ * .
+ * @section lpc13xx_pal_2 LPC13xx PAL driver implementation features
* - 12 bits wide ports.
* - Atomic set/reset functions.
* - Atomic set+reset function (atomic bus operations).
* - Output latched regardless of the pad setting.
* - Direct read of input pads regardless of the pad setting.
* .
- * <h2>Supported Setup Modes</h2>
+ * @section lpc13xx_pal_3 Supported PAL setup modes
* - @p PAL_MODE_RESET.
* - @p PAL_MODE_UNCONNECTED.
* - @p PAL_MODE_INPUT.
@@ -54,11 +67,11 @@
* .
* Any attempt to setup an invalid mode is ignored.
*
- * <h2>Suboptimal Behavior</h2>
+ * @section lpc13xx_pal_4 Suboptimal behavior
* Some GPIO features are less than optimal:
* - Pad/port toggling operations are not atomic.
* - Pull-up and Pull-down resistors cannot be programmed through the PAL
- * driver and must be programmed separately.
+ * driver and must be programmed separately using the IOCON peripheral.
* - Reading of the output latch for pads programmed as input is not possible,
* the input pin value is returned instead.
* .
@@ -66,10 +79,42 @@
*/
/**
- * @defgroup LPC13xx_SERIAL LPC13xx UART Support
- * @brief UART peripherals support.
- * @details The serial driver supports the LPC13xx UART taking advantage of
- * its deep hardware buffers.
+ * @defgroup LPC13xx_SPI LPC13xx SPI Support
+ * @details The SPI driver supports the LPC13xx SSP peripherals 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 lpc13xx_spi_1 Supported HW resources
+ * - SSP0.
+ * - SSP1 (where present).
+ * .
+ * @section lpc13xx_spi_2 LPC13xx SPI driver implementation features
+ * - Clock stop for reduced power usage when the driver is in stop state.
+ * - Each SSP can be independently enabled and programmed. Unused
+ * peripherals are left in low power mode.
+ * - Programmable interrupt priority levels for each SSP.
+ * .
+ * @ingroup LPC13xx
+ */
+
+/**
+ * @defgroup LPC13xx_SERIAL LPC13xx UART Support (buffered)
+ * @details The LPC13xx Serial driver uses the UART peripheral in a
+ * buffered, interrupt driven, implementation. The serial driver
+ * also takes advantage of the LPC13xx UARTs deep hardware buffers.
+ *
+ * @section lpc13xx_serial_1 Supported HW resources
+ * The serial driver can support any of the following hardware resources:
+ * - UART.
+ * .
+ * @section lpc13xx_serial_2 LPC13xx Serial driver implementation features
+ * - Clock stop for reduced power usage when the driver is in stop state.
+ * - Fully interrupt driven.
+ * - Programmable priority level.
+ * - Takes advantage of the input and output FIFOs.
+ * .
* @ingroup LPC13xx
*/
diff --git a/os/hal/platforms/LPC13xx/serial_lld.c b/os/hal/platforms/LPC13xx/serial_lld.c
index 12da197e8..6e186efc5 100644
--- a/os/hal/platforms/LPC13xx/serial_lld.c
+++ b/os/hal/platforms/LPC13xx/serial_lld.c
@@ -21,7 +21,7 @@
* @file LPC13xx/serial_lld.c
* @brief LPC13xx low level serial driver code.
*
- * @addtogroup LPC13xx_SERIAL
+ * @addtogroup SERIAL
* @{
*/
diff --git a/os/hal/platforms/LPC13xx/serial_lld.h b/os/hal/platforms/LPC13xx/serial_lld.h
index 54207d39d..4a4a5fa81 100644
--- a/os/hal/platforms/LPC13xx/serial_lld.h
+++ b/os/hal/platforms/LPC13xx/serial_lld.h
@@ -21,7 +21,7 @@
* @file LPC13xx/serial_lld.h
* @brief LPC13xx low level serial driver header.
*
- * @addtogroup LPC13xx_SERIAL
+ * @addtogroup SERIAL
* @{
*/
@@ -109,7 +109,7 @@
* @brief UART0 interrupt priority level setting.
*/
#if !defined(LPC13xx_UART0_PRIORITY) || defined(__DOXYGEN__)
-#define LPC13xx_UART0_PRIORITY 3
+#define LPC13xx_UART0_PRIORITY 6
#endif
/*===========================================================================*/
diff --git a/os/hal/platforms/LPC214x/hal_lld.c b/os/hal/platforms/LPC214x/hal_lld.c
index 352f5c736..beee5f40b 100644
--- a/os/hal/platforms/LPC214x/hal_lld.c
+++ b/os/hal/platforms/LPC214x/hal_lld.c
@@ -21,7 +21,7 @@
* @file LPC214x/hal_lld.c
* @brief LPC214x HAL subsystem low level driver source.
*
- * @addtogroup LPC214x_HAL
+ * @addtogroup HAL
* @{
*/
diff --git a/os/hal/platforms/LPC214x/hal_lld.h b/os/hal/platforms/LPC214x/hal_lld.h
index 4b88f13fc..54d91b881 100644
--- a/os/hal/platforms/LPC214x/hal_lld.h
+++ b/os/hal/platforms/LPC214x/hal_lld.h
@@ -21,7 +21,7 @@
* @file LPC214x/hal_lld.h
* @brief LPC214x HAL subsystem low level driver header.
*
- * @addtogroup LPC214x_HAL
+ * @addtogroup HAL
* @{
*/
diff --git a/os/hal/platforms/LPC214x/pal_lld.c b/os/hal/platforms/LPC214x/pal_lld.c
index 9e145ed48..f860bfb9f 100644
--- a/os/hal/platforms/LPC214x/pal_lld.c
+++ b/os/hal/platforms/LPC214x/pal_lld.c
@@ -21,7 +21,7 @@
* @file LPC214x/pal_lld.c
* @brief LPC214x FIO low level driver code.
*
- * @addtogroup LPC214x_PAL
+ * @addtogroup PAL
* @{
*/
diff --git a/os/hal/platforms/LPC214x/pal_lld.h b/os/hal/platforms/LPC214x/pal_lld.h
index f9e41b358..4137f19f9 100644
--- a/os/hal/platforms/LPC214x/pal_lld.h
+++ b/os/hal/platforms/LPC214x/pal_lld.h
@@ -21,7 +21,7 @@
* @file LPC214x/pal_lld.h
* @brief LPC214x FIO low level driver header.
*
- * @addtogroup LPC214x_PAL
+ * @addtogroup PAL
* @{
*/
diff --git a/os/hal/platforms/LPC214x/platform.dox b/os/hal/platforms/LPC214x/platform.dox
index 48df22f36..10cac7bf1 100644
--- a/os/hal/platforms/LPC214x/platform.dox
+++ b/os/hal/platforms/LPC214x/platform.dox
@@ -19,44 +19,44 @@
/**
* @defgroup LPC214x LPC214x Drivers
- * @brief LPC214x specific support.
- * @details The LPC214x support includes:
- * - VIC support code.
- * - I/O ports driver.
- * - Buffered, interrupt driven, serial driver.
- * - SPI driver.
- * - A demo supporting the kernel test suite.
- * - A C++ demo supporting the kernel test suite.
- * - A demo integrating ChibiOS/RT with FatFS.
- * .
+ * @details This section describes all the supported drivers on the LPC214x
+ * platform and the implementation details of the single drivers.
+ *
* @ingroup platforms
*/
/**
- * @defgroup LPC214x_VIC VIC Support
- * @brief VIC peripheral support.
+ * @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_HAL LPC214x HAL Support
- * @brief HAL support.
+ * @defgroup LPC214x_PAL LPC214x FIO Support
+ * @details The LPC214x PAL driver uses the FIO peripherals.
*
- * @ingroup LPC214x
- */
-
-/**
- * @defgroup LPC214x_PAL LPC214x I/O Ports Support
- * @brief I/O Ports peripherals support.
- * @details This module supports the LPC214x FIO controller. The controller
- * supports the following features (see @ref PAL):
+ * @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.
* .
- * <h2>Supported Setup Modes</h2>
+ * @section lpc214x_pal_3 Supported PAL setup modes
* - @p PAL_MODE_RESET.
* - @p PAL_MODE_UNCONNECTED.
* - @p PAL_MODE_INPUT.
@@ -65,7 +65,8 @@
* .
* Any attempt to setup an invalid mode is ignored.
*
- * <h2>Suboptimal Behavior</h2>
+ * @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.
* .
@@ -73,18 +74,48 @@
*/
/**
- * @defgroup LPC214x_SERIAL LPC214x UART Support
- * @brief UART peripherals support.
- * @details The serial driver supports the LPC214x UART peripherals.
+ * @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_SERIAL LPC214x UART Support (buffered)
+ * @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
- * @brief SSP peripheral support.
- * @details The SPI driver supports the LPC214x SSP, the driver works in
- * polling mode.
+ * @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
*/
diff --git a/os/hal/platforms/LPC214x/serial_lld.c b/os/hal/platforms/LPC214x/serial_lld.c
index cec8f5c7a..4390941c1 100644
--- a/os/hal/platforms/LPC214x/serial_lld.c
+++ b/os/hal/platforms/LPC214x/serial_lld.c
@@ -21,7 +21,7 @@
* @file LPC214x/serial_lld.c
* @brief LPC214x low level serial driver code.
*
- * @addtogroup LPC214x_SERIAL
+ * @addtogroup SERIAL
* @{
*/
diff --git a/os/hal/platforms/LPC214x/serial_lld.h b/os/hal/platforms/LPC214x/serial_lld.h
index 7b11cad38..b41845624 100644
--- a/os/hal/platforms/LPC214x/serial_lld.h
+++ b/os/hal/platforms/LPC214x/serial_lld.h
@@ -21,7 +21,7 @@
* @file LPC214x/serial_lld.h
* @brief LPC214x low level serial driver header.
*
- * @addtogroup LPC214x_SERIAL
+ * @addtogroup SERIAL
* @{
*/
diff --git a/os/hal/platforms/LPC214x/spi_lld.c b/os/hal/platforms/LPC214x/spi_lld.c
index 69d0b6a44..7c3287298 100644
--- a/os/hal/platforms/LPC214x/spi_lld.c
+++ b/os/hal/platforms/LPC214x/spi_lld.c
@@ -21,7 +21,7 @@
* @file LPC214x/spi_lld.c
* @brief LPC214x low level SPI driver code.
*
- * @addtogroup LPC214x_SPI
+ * @addtogroup SPI
* @{
*/
diff --git a/os/hal/platforms/LPC214x/spi_lld.h b/os/hal/platforms/LPC214x/spi_lld.h
index 57d02d4de..eafa23f88 100644
--- a/os/hal/platforms/LPC214x/spi_lld.h
+++ b/os/hal/platforms/LPC214x/spi_lld.h
@@ -21,7 +21,7 @@
* @file LPC214x/spi_lld.h
* @brief LPC214x low level SPI driver header.
*
- * @addtogroup LPC214x_SPI
+ * @addtogroup SPI
* @{
*/
diff --git a/os/hal/platforms/MSP430/hal_lld.c b/os/hal/platforms/MSP430/hal_lld.c
index 6cbc0c2f1..dd36e5ae1 100644
--- a/os/hal/platforms/MSP430/hal_lld.c
+++ b/os/hal/platforms/MSP430/hal_lld.c
@@ -21,7 +21,7 @@
* @file MSP430/hal_lld.c
* @brief MSP430 HAL subsystem low level driver source.
*
- * @addtogroup MSP430_HAL
+ * @addtogroup HAL
* @{
*/
diff --git a/os/hal/platforms/MSP430/hal_lld.h b/os/hal/platforms/MSP430/hal_lld.h
index 681392645..8f9ae59af 100644
--- a/os/hal/platforms/MSP430/hal_lld.h
+++ b/os/hal/platforms/MSP430/hal_lld.h
@@ -21,7 +21,7 @@
* @file MSP430/hal_lld.h
* @brief MSP430 HAL subsystem low level driver header.
*
- * @addtogroup MSP430_HAL
+ * @addtogroup HAL
* @{
*/
diff --git a/os/hal/platforms/MSP430/pal_lld.c b/os/hal/platforms/MSP430/pal_lld.c
index 419b1ca82..767692efa 100644
--- a/os/hal/platforms/MSP430/pal_lld.c
+++ b/os/hal/platforms/MSP430/pal_lld.c
@@ -21,7 +21,7 @@
* @file MSP430/pal_lld.c
* @brief MSP430 Digital I/O low level driver code.
*
- * @addtogroup MSP430_PAL
+ * @addtogroup PAL
* @{
*/
diff --git a/os/hal/platforms/MSP430/pal_lld.h b/os/hal/platforms/MSP430/pal_lld.h
index e9b67bf18..954f6b5c2 100644
--- a/os/hal/platforms/MSP430/pal_lld.h
+++ b/os/hal/platforms/MSP430/pal_lld.h
@@ -21,7 +21,7 @@
* @file MSP430/pal_lld.h
* @brief MSP430 Digital I/O low level driver header.
*
- * @addtogroup MSP430_PAL
+ * @addtogroup PAL
* @{
*/
diff --git a/os/hal/platforms/MSP430/platform.dox b/os/hal/platforms/MSP430/platform.dox
index 4bcb197ba..ec6bbd535 100644
--- a/os/hal/platforms/MSP430/platform.dox
+++ b/os/hal/platforms/MSP430/platform.dox
@@ -19,29 +19,49 @@
/**
* @defgroup MSP430_DRIVERS MSP430 Drivers
- * @brief MSP430 specific support.
+ * @details This section describes all the supported drivers on the MSP430
+ * platform and the implementation details of the single drivers.
*
* @ingroup platforms
*/
/**
- * @defgroup MSP430_HAL MSP430 HAL Support
- * @brief HAL support.
+ * @defgroup MSP430_HAL MSP430 Initialization Support
+ * @details The MSP430 HAL support is responsible for system initialization.
*
+ * @section msp430_hal_1 Supported HW resources
+ * - DCOCTL.
+ * - BCSCTL1.
+ * - BCSCTL2.
+ * .
+ * @section msp430_hal_2 MSP430 HAL driver implementation features
+ * - Clock source selection.
+ * .
* @ingroup MSP430_DRIVERS
*/
/**
- * @defgroup MSP430_PAL MSP430 I/O Ports Support
- * @brief I/O Ports peripherals support.
- * @details This module supports the MSP430 Digital I/O controller. The
- * controller supports the following features (see @ref PAL):
+ * @defgroup MSP430_PAL MSP430 PORT Support
+ * @details The MSP430 PAL driver uses the PORT peripherals.
+ *
+ * @section msp430_pal_1 Supported HW resources
+ * - PORT1 (where present).
+ * - PORT2 (where present).
+ * - PORT3 (where present).
+ * - PORT4 (where present).
+ * - PORT5 (where present).
+ * - PORT6 (where present).
+ * .
+ * @section msp430_pal_2 MSP430 PAL driver implementation features
+ * The PAL driver implementation fully supports the following hardware
+ * capabilities:
* - 8 bits wide ports.
* - Atomic set/reset/toggle functions because special MSP430 instruction set.
* - Output latched regardless of the pad setting.
* - Direct read of input pads regardless of the pad setting.
* .
- * <h2>Supported Setup Modes</h2>
+ * @section msp430_pal_3 Supported PAL setup modes
+ * The MSP430 PAL driver supports the following I/O modes:
* - @p PAL_MODE_RESET.
* - @p PAL_MODE_UNCONNECTED.
* - @p PAL_MODE_INPUT.
@@ -49,19 +69,28 @@
* .
* Any attempt to setup an invalid mode is ignored.
*
- * <h2>Suboptimal Behavior</h2>
- * Some MSP430 I/O ports features are less than optimal:
- * - Bus/group writing is not atomic.
+ * @section msp430_pal_4 Suboptimal behavior
+ * The MSP430 PORT is less than optimal in several areas, the limitations
+ * should be taken in account while using the PAL driver:
+ * - Bus/group writes is not atomic.
* - Pad/group mode setup is not atomic.
* .
* @ingroup MSP430_DRIVERS
*/
/**
- * @defgroup MSP430_SERIAL MSP430 USART Support
- * @brief USART support.
- * @details The serial driver supports both the MSP430 USARTs in asynchronous
- * mode.
+ * @defgroup MSP430_SERIAL MSP430 USART Support (buffered)
+ * @details The MSP430 Serial driver uses the USART peripherals in a
+ * buffered, interrupt driven, implementation.
*
+ * @section msp430_serial_1 Supported HW resources
+ * The serial driver can support any of the following hardware resources:
+ * - USART0.
+ * - USART1.
+ * .
+ * @section msp430_serial_2 MSP430 Serial driver implementation features
+ * - Each USART can be independently enabled and programmed.
+ * - Fully interrupt driven.
+ * .
* @ingroup MSP430_DRIVERS
*/
diff --git a/os/hal/platforms/MSP430/serial_lld.c b/os/hal/platforms/MSP430/serial_lld.c
index 25d3d06cd..4b5dcf1ee 100644
--- a/os/hal/platforms/MSP430/serial_lld.c
+++ b/os/hal/platforms/MSP430/serial_lld.c
@@ -21,7 +21,7 @@
* @file MSP430/serial_lld.c
* @brief MSP430 low level serial driver code.
*
- * @addtogroup MSP430_SERIAL
+ * @addtogroup SERIAL
* @{
*/
diff --git a/os/hal/platforms/MSP430/serial_lld.h b/os/hal/platforms/MSP430/serial_lld.h
index b81333133..c6205f64b 100644
--- a/os/hal/platforms/MSP430/serial_lld.h
+++ b/os/hal/platforms/MSP430/serial_lld.h
@@ -21,7 +21,7 @@
* @file MSP430/serial_lld.h
* @brief MSP430 low level serial driver header.
*
- * @addtogroup MSP430_SERIAL
+ * @addtogroup SERIAL
* @{
*/
diff --git a/os/hal/platforms/SPC56x/hal_lld.c b/os/hal/platforms/SPC56x/hal_lld.c
index a855a70a2..4d4a10c41 100644
--- a/os/hal/platforms/SPC56x/hal_lld.c
+++ b/os/hal/platforms/SPC56x/hal_lld.c
@@ -21,7 +21,7 @@
* @file SPC56x/hal_lld.c
* @brief SPC563 HAL subsystem low level driver source.
*
- * @addtogroup SPC563_HAL
+ * @addtogroup HAL
* @{
*/
diff --git a/os/hal/platforms/SPC56x/hal_lld.h b/os/hal/platforms/SPC56x/hal_lld.h
index e34fe7e3b..c61089a38 100644
--- a/os/hal/platforms/SPC56x/hal_lld.h
+++ b/os/hal/platforms/SPC56x/hal_lld.h
@@ -21,7 +21,7 @@
* @file SPC56x/hal_lld.h
* @brief SPC563 HAL subsystem low level driver header.
*
- * @addtogroup SPC563_HAL
+ * @addtogroup HAL
* @{
*/
diff --git a/os/hal/platforms/SPC56x/platform.dox b/os/hal/platforms/SPC56x/platform.dox
index a97718c0f..3308731e9 100644
--- a/os/hal/platforms/SPC56x/platform.dox
+++ b/os/hal/platforms/SPC56x/platform.dox
@@ -18,24 +18,52 @@
*/
/**
- * @defgroup SPC563_DRIVERS SPC563 Drivers
- * @brief SPC563 specific support.
+ * @defgroup SPC563 SPC563Mx Drivers
+ * @details This section describes all the supported drivers on the
+ * SPC563Mx/MPC563xM platform and the implementation details
+ * of the single drivers.
*
* @ingroup platforms
*/
/**
- * @defgroup SPC563_HAL SPC563 HAL Support
- * @brief HAL support.
+ * @defgroup SPC563_HAL SPC563Mx Initialization Support
+ * @details The SPC563Mx/MPC563xM HAL support is responsible for system
+ * initialization.
*
- * @ingroup SPC563_DRIVERS
+ * @section spc563_hal_1 Supported HW resources
+ * - FMPLL.
+ * - INTC.
+ * - XBAR.
+ * - CFLASH0.
+ * .
+ * @section spc563_hal_2 SPC563Mx HAL driver implementation features
+ * - FMPLL startup and stabilization.
+ * - Clock tree initialization.
+ * - Clock source selection.
+ * - Flash wait states initialization based on the selected clock options.
+ * - SYSTICK initialization based on current clock and kernel required rate.
+ * - DMA support initialization.
+ * .
+ * @ingroup SPC563
*/
/**
- * @defgroup SPC563_SERIAL SPC563 ESCI Support
- * @brief ESCI support.
- * @details The serial driver supports both the SPC563 ESCIs in asynchronous
- * mode.
+ * @defgroup SPC563_SERIAL SPC563Mx ESCI Support (buffered)
+ * @details The SPC563Mx/MPC563xM Serial driver uses the ESCI peripherals
+ * in a buffered, interrupt driven, implementation.
*
- * @ingroup SPC563_DRIVERS
+ * @section spc563_serial_1 Supported HW resources
+ * The serial driver can support any of the following hardware resources:
+ * - ESCIA.
+ * - ESCIB.
+ * .
+ * @section spc563_serial_2 SPC563Mx Serial driver implementation features
+ * - Clock stop for reduced power usage when the driver is in stop state.
+ * - Each ESCI can be independently enabled and programmed. Unused
+ * peripherals are left in low power mode.
+ * - Fully interrupt driven.
+ * - Programmable priority levels for each ESCI.
+ * .
+ * @ingroup SPC563
*/
diff --git a/os/hal/platforms/SPC56x/serial_lld.c b/os/hal/platforms/SPC56x/serial_lld.c
index 363381750..74b7da68a 100644
--- a/os/hal/platforms/SPC56x/serial_lld.c
+++ b/os/hal/platforms/SPC56x/serial_lld.c
@@ -21,7 +21,7 @@
* @file SPC56x/serial_lld.c
* @brief SPC563 low level serial driver code.
*
- * @addtogroup SPC563_SERIAL
+ * @addtogroup SERIAL
* @{
*/
diff --git a/os/hal/platforms/SPC56x/serial_lld.h b/os/hal/platforms/SPC56x/serial_lld.h
index 5dc9c8c64..3fd61ef1d 100644
--- a/os/hal/platforms/SPC56x/serial_lld.h
+++ b/os/hal/platforms/SPC56x/serial_lld.h
@@ -21,7 +21,7 @@
* @file SPC56x/serial_lld.h
* @brief SPC563 low level serial driver header.
*
- * @addtogroup SPC563_SERIAL
+ * @addtogroup SERIAL
* @{
*/
diff --git a/os/hal/platforms/STM32/platform.dox b/os/hal/platforms/STM32/platform.dox
index 295f6a2fc..91f0addca 100644
--- a/os/hal/platforms/STM32/platform.dox
+++ b/os/hal/platforms/STM32/platform.dox
@@ -18,15 +18,15 @@
*/
/**
- * @defgroup STM32 STM32 Drivers
- * @brief STM32 specific support.
+ * @defgroup STM32_DRIVERS STM32 Drivers
+ * @details This section describes all the supported drivers on the STM32
+ * platform and the implementation details of the single drivers.
*
* @ingroup platforms
*/
/**
- * @defgroup STM32_HAL STM32 HAL Support
- * @brief HAL support.
+ * @defgroup STM32_HAL STM32 Initialization Support
* @details The STM32 HAL support is responsible for system initialization.
*
* @section stm32_hal_1 Supported HW resources
@@ -34,8 +34,6 @@
* - PLL2 (where present).
* - RCC.
* - Flash.
- * - DMA1.
- * - DMA2 (where present).
* .
* @section stm32_hal_2 STM32 HAL driver implementation features
* - PLLs startup and stabilization.
@@ -45,17 +43,17 @@
* - SYSTICK initialization based on current clock and kernel required rate.
* - DMA support initialization.
* .
- * @ingroup STM32
+ * @ingroup STM32_DRIVERS
*/
/**
* @defgroup STM32_ADC STM32 ADC Support
- * @brief ADC peripheral support.
- * @details The ADC driver supports the STM32 ADCs using DMA channels for
- * improved performance.
+ * @details The STM32 ADC driver supports the ADC peripherals using DMA
+ * channels for maximum performance.
*
* @section stm32_adc_1 Supported HW resources
* - ADC1.
+ * - DMA1.
* .
* @section stm32_adc_2 STM32 ADC driver implementation features
* - Clock stop for reduced power usage when the driver is in stop state.
@@ -65,12 +63,12 @@
* - Programmable DMA interrupt priority for each DMA channel.
* - Programmable DMA error hook for each DMA channel.
* .
- * @ingroup STM32
+ * @ingroup STM32_DRIVERS
*/
/**
* @defgroup STM32_CAN STM32 CAN Support
- * @brief CAN peripheral support.
+ * @details The STM32 CAN driver uses the CAN peripherals.
*
* @section stm32_can_1 Supported HW resources
* - bxCAN1.
@@ -80,29 +78,30 @@
* - Support for bxCAN sleep mode.
* - Programmable bxCAN interrupts priority level.
* .
- * @ingroup STM32
+ * @ingroup STM32_DRIVERS
*/
/**
* @defgroup STM32_DMA STM32 DMA Support
- * @brief DMA helper driver.
+ * @details This DMA helper driver is used by the other drivers in order to
+ * access the shared DMA resources in a consistent way.
*
* @section stm32_dma_1 Supported HW resources
* The DMA driver can support any of the following hardware resources:
* - DMA1.
- * - DMA2.
+ * - DMA2 (where present).
* .
* @section stm32_dma_2 STM32 DMA driver implementation features
* - Automatic DMA clock stop when not in use by other drivers.
* - Exports helper functions/macros to the other drivers that share the
* DMA resource.
* .
- * @ingroup STM32
+ * @ingroup STM32_DRIVERS
*/
/**
* @defgroup STM32_PAL STM32 GPIO Support
- * @brief GPIO peripherals support.
+ * @details The STM32 PAL driver uses the GPIO peripherals.
*
* @section stm32_pal_1 Supported HW resources
* - AFIO.
@@ -110,9 +109,9 @@
* - GPIOB.
* - GPIOC.
* - GPIOD.
- * - GPIOE.
- * - GPIOF.
- * - GPIOG.
+ * - GPIOE (where present).
+ * - GPIOF (where present).
+ * - GPIOG (where present).
* .
* @section stm32_pal_2 STM32 PAL driver implementation features
* The PAL driver implementation fully supports the following hardware
@@ -139,20 +138,20 @@
* Any attempt to setup an invalid mode is ignored.
*
* @section stm32_pal_4 Suboptimal behavior
- * The STM32 GPIO is less than optimal in several areas, the limitations should
- * be taken in account while using the PAL driver:
+ * The STM32 GPIO 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.
* - Writing on pads/groups/ports programmed as input with pull-up/down
* resistor can change the resistor setting because the output latch is
* used for resistor selection.
* .
- * @ingroup STM32
+ * @ingroup STM32_DRIVERS
*/
/**
* @defgroup STM32_PWM STM32 PWM Support
- * @brief TIMx peripherals as PWM generators support.
+ * @details The STM32 PWM driver uses the TIMx peripherals.
*
* @section stm32_pwm_1 Supported HW resources
* - TIM1.
@@ -166,19 +165,20 @@
* - Four independent PWM channels per timer.
* - Programmable TIMx interrupts priority level.
* .
- * @ingroup STM32
+ * @ingroup STM32_DRIVERS
*/
/**
* @defgroup STM32_SPI STM32 SPI Support
- * @brief SPI peripherals support.
- * @details The SPI driver supports the STM32 SPIs using DMA channels for
- * improved performance.
+ * @details The SPI driver supports the STM32 SPI peripherals using DMA
+ * channels for maximum performance.
*
* @section stm32_spi_1 Supported HW resources
* - SPI1.
* - SPI2.
- * - SPI3.
+ * - SPI3 (where present).
+ * - DMA1.
+ * - DMA2 (where present).
* .
* @section stm32_spi_2 STM32 SPI driver implementation features
* - Clock stop for reduced power usage when the driver is in stop state.
@@ -190,20 +190,21 @@
* - Programmable DMA interrupt priority for each DMA channel.
* - Programmable DMA error hook for each DMA channel.
* .
- * @ingroup STM32
+ * @ingroup STM32_DRIVERS
*/
/**
* @defgroup STM32_SERIAL STM32 USART Support (buffered)
- * @brief UART/USART peripherals support.
+ * @details The STM32 Serial driver uses the USART/UART peripherals in a
+ * buffered, interrupt driven, implementation.
*
* @section stm32_serial_1 Supported HW resources
* The serial driver can support any of the following hardware resources:
* - USART1.
* - USART2.
- * - USART3.
- * - UART4.
- * - UART5.
+ * - USART3 (where present).
+ * - UART4 (where present).
+ * - UART5 (where present).
* .
* @section stm32_serial_2 STM32 Serial driver implementation features
* - Clock stop for reduced power usage when the driver is in stop state.
@@ -212,18 +213,21 @@
* - Fully interrupt driven.
* - Programmable priority levels for each UART/USART.
* .
- * @ingroup STM32
+ * @ingroup STM32_DRIVERS
*/
/**
* @defgroup STM32_UART STM32 USART Support (unbuffered)
- * @brief UART/USART peripherals support.
+ * @details The UART driver supports the STM32 USART peripherals using DMA
+ * channels for maximum performance.
*
* @section stm32_uart_1 Supported HW resources
* The UART driver can support any of the following hardware resources:
* - USART1.
* - USART2.
- * - USART3.
+ * - USART3 (where present).
+ * - DMA1.
+ * - DMA2 (where present).
* .
* @section stm32_uart_2 STM32 UART driver implementation features
* - Clock stop for reduced power usage when the driver is in stop state.
@@ -235,5 +239,5 @@
* - Programmable DMA interrupt priority for each DMA channel.
* - Programmable DMA error hook for each DMA channel.
* .
- * @ingroup STM32
+ * @ingroup STM32_DRIVERS
*/
diff --git a/os/hal/platforms/STM8/hal_lld.c b/os/hal/platforms/STM8/hal_lld.c
index b67513f5b..edd36a6f3 100644
--- a/os/hal/platforms/STM8/hal_lld.c
+++ b/os/hal/platforms/STM8/hal_lld.c
@@ -21,7 +21,7 @@
* @file STM8/hal_lld.c
* @brief STM8 HAL subsystem low level driver source.
*
- * @addtogroup STM8_HAL
+ * @addtogroup HAL
* @{
*/
diff --git a/os/hal/platforms/STM8/hal_lld.h b/os/hal/platforms/STM8/hal_lld.h
index 786843ffc..a7bcbe89a 100644
--- a/os/hal/platforms/STM8/hal_lld.h
+++ b/os/hal/platforms/STM8/hal_lld.h
@@ -21,7 +21,7 @@
* @file STM8/hal_lld.h
* @brief STM8 HAL subsystem low level driver source.
*
- * @addtogroup STM8_HAL
+ * @addtogroup HAL
* @{
*/
diff --git a/os/hal/platforms/STM8/pal_lld.c b/os/hal/platforms/STM8/pal_lld.c
index 14b5fe8c7..56bae5cc3 100644
--- a/os/hal/platforms/STM8/pal_lld.c
+++ b/os/hal/platforms/STM8/pal_lld.c
@@ -21,7 +21,7 @@
* @file STM8/pal_lld.c
* @brief STM8 GPIO low level driver code.
*
- * @addtogroup STM8_PAL
+ * @addtogroup PAL
* @{
*/
diff --git a/os/hal/platforms/STM8/pal_lld.h b/os/hal/platforms/STM8/pal_lld.h
index ae992594f..8fb511cf1 100644
--- a/os/hal/platforms/STM8/pal_lld.h
+++ b/os/hal/platforms/STM8/pal_lld.h
@@ -21,7 +21,7 @@
* @file STM8/pal_lld.h
* @brief STM8 GPIO low level driver header.
*
- * @addtogroup STM8_PAL
+ * @addtogroup PAL
* @{
*/
diff --git a/os/hal/platforms/STM8/platform.dox b/os/hal/platforms/STM8/platform.dox
index 20a2637af..2b6e34f59 100644
--- a/os/hal/platforms/STM8/platform.dox
+++ b/os/hal/platforms/STM8/platform.dox
@@ -18,30 +18,54 @@
*/
/**
- * @defgroup STM8_DRIVERS STM8 Drivers
- * @brief STM8 specific support.
+ * @defgroup STM8_DRIVERS STM8x Drivers
+ * @details This section describes all the supported drivers on the STM8S and
+ * STM8A platforms and the implementation details of the single
+ * drivers.
*
* @ingroup platforms
*/
/**
- * @defgroup STM8_HAL STM8 HAL Support
- * @brief HAL support.
+ * @defgroup STM8_HAL STM8 Initialization Support
+ * @details The STM8 HAL support is responsible for system initialization.
*
+ * @section stm8_hal_1 Supported HW resources
+ * - CLK.
+ * .
+ * @section stm8_hal_2 STM8 HAL driver implementation features
+ * - Clock tree initialization.
+ * - Clock source selection.
+ * .
* @ingroup STM8_DRIVERS
*/
/**
- * @defgroup STM8_PAL STM8 I/O Ports Support
- * @brief I/O Ports peripherals support.
- * @details This module supports the STM8 GPIO controller. The controller
- * supports the following features (see @ref PAL):
+ * @defgroup STM8_PAL STM8 GPIO Support
+ * @details The STM8 PAL driver uses the GPIO peripherals.
+ *
+ * @section stm8_pal_1 Supported HW resources
+ * - AFIO.
+ * - GPIOA.
+ * - GPIOB.
+ * - GPIOC.
+ * - GPIOD.
+ * - GPIOE.
+ * - GPIOF.
+ * - GPIOG (where present).
+ * - GPIOH (where present).
+ * - GPIOI (where present).
+ * .
+ * @section stm8_pal_2 STM8 PAL driver implementation features
+ * The PAL driver implementation fully supports the following hardware
+ * capabilities:
* - 8 bits wide ports.
* - Atomic set/reset/toggle functions because special STM8 instruction set.
* - Output latched regardless of the pad setting.
* - Direct read of input pads regardless of the pad setting.
* .
- * <h2>Supported Setup Modes</h2>
+ * @section stm8_pal_3 Supported PAL setup modes
+ * The STM8 PAL driver supports the following I/O modes:
* - @p PAL_MODE_RESET.
* - @p PAL_MODE_UNCONNECTED.
* - @p PAL_MODE_INPUT.
@@ -51,8 +75,9 @@
* .
* Any attempt to setup an invalid mode is ignored.
*
- * <h2>Suboptimal Behavior</h2>
- * Some STM8 I/O ports features are less than optimal:
+ * @section stm8_pal_4 Suboptimal behavior
+ * The STM8 GPIO is less than optimal in several areas, the limitations
+ * should be taken in account while using the PAL driver:
* - Bus/group writing is not atomic.
* - Pad/group mode setup is not atomic.
* .
@@ -60,9 +85,21 @@
*/
/**
- * @defgroup STM8_SERIAL STM8 UART Support
- * @brief USART support.
- * @details The serial driver supports the STM8 USARTs in asynchronous mode.
+ * @defgroup STM8_SERIAL STM8 UART Support (buffered)
+ * @details The STM8 Serial driver uses the UART peripherals in a
+ * buffered, interrupt driven, implementation.
*
+ * @section stm8_serial_1 Supported HW resources
+ * The serial driver can support any of the following hardware resources:
+ * - UART1.
+ * - UART2 (where present).
+ * - UART3 (where present).
+ * .
+ * @section stm8_serial_2 STM8 Serial driver implementation features
+ * - Clock stop for reduced power usage when the driver is in stop state.
+ * - Each UART can be independently enabled and programmed. Unused
+ * peripherals are left in low power mode.
+ * - Fully interrupt driven.
+ * .
* @ingroup STM8_DRIVERS
*/
diff --git a/os/hal/platforms/STM8/serial_lld.c b/os/hal/platforms/STM8/serial_lld.c
index b60c20130..eeda867f9 100644
--- a/os/hal/platforms/STM8/serial_lld.c
+++ b/os/hal/platforms/STM8/serial_lld.c
@@ -21,7 +21,7 @@
* @file STM8/serial_lld.c
* @brief STM8 low level serial driver code.
*
- * @addtogroup STM8_SERIAL
+ * @addtogroup SERIAL
* @{
*/
diff --git a/os/hal/platforms/STM8/serial_lld.h b/os/hal/platforms/STM8/serial_lld.h
index f0bea84f7..ee7848870 100644
--- a/os/hal/platforms/STM8/serial_lld.h
+++ b/os/hal/platforms/STM8/serial_lld.h
@@ -21,7 +21,7 @@
* @file STM8/serial_lld.h
* @brief STM8 low level serial driver header.
*
- * @addtogroup STM8_SERIAL
+ * @addtogroup SERIAL
* @{
*/