diff --git a/os/hal/platforms/AT91SAM7/hal_lld.c b/os/hal/platforms/AT91SAM7/hal_lld.c
index 4f2845411..c70badb08 100644
--- a/os/hal/platforms/AT91SAM7/hal_lld.c
+++ b/os/hal/platforms/AT91SAM7/hal_lld.c
@@ -21,7 +21,7 @@
* @file AT91SAM7/hal_lld.c
* @brief AT91SAM7 HAL subsystem low level driver source.
*
- * @addtogroup AT91SAM7_HAL
+ * @addtogroup HAL
* @{
*/
diff --git a/os/hal/platforms/AT91SAM7/hal_lld.h b/os/hal/platforms/AT91SAM7/hal_lld.h
index d75fc8317..c033f13e8 100644
--- a/os/hal/platforms/AT91SAM7/hal_lld.h
+++ b/os/hal/platforms/AT91SAM7/hal_lld.h
@@ -21,7 +21,7 @@
* @file AT91SAM7/hal_lld.h
* @brief AT91SAM7 HAL subsystem low level driver header.
*
- * @addtogroup AT91SAM7_HAL
+ * @addtogroup HAL
* @{
*/
diff --git a/os/hal/platforms/AT91SAM7/mac_lld.c b/os/hal/platforms/AT91SAM7/mac_lld.c
index 0a03d192a..089554c6c 100644
--- a/os/hal/platforms/AT91SAM7/mac_lld.c
+++ b/os/hal/platforms/AT91SAM7/mac_lld.c
@@ -21,7 +21,7 @@
* @file AT91SAM7/mac_lld.c
* @brief AT91SAM7 low level MAC driver code.
*
- * @addtogroup AT91SAM7_MAC
+ * @addtogroup MAC
* @{
*/
diff --git a/os/hal/platforms/AT91SAM7/mac_lld.h b/os/hal/platforms/AT91SAM7/mac_lld.h
index ff8638d75..1535b06f4 100644
--- a/os/hal/platforms/AT91SAM7/mac_lld.h
+++ b/os/hal/platforms/AT91SAM7/mac_lld.h
@@ -21,7 +21,7 @@
* @file AT91SAM7/mac_lld.h
* @brief AT91SAM7 low level MAC driver header.
*
- * @addtogroup AT91SAM7_MAC
+ * @addtogroup MAC
* @{
*/
diff --git a/os/hal/platforms/AT91SAM7/pal_lld.c b/os/hal/platforms/AT91SAM7/pal_lld.c
index 6545be0e6..ffbe05578 100644
--- a/os/hal/platforms/AT91SAM7/pal_lld.c
+++ b/os/hal/platforms/AT91SAM7/pal_lld.c
@@ -21,7 +21,7 @@
* @file AT91SAM7/pal_lld.c
* @brief AT91SAM7 PIO low level driver code.
*
- * @addtogroup AT91SAM7_PAL
+ * @addtogroup PAL
* @{
*/
diff --git a/os/hal/platforms/AT91SAM7/pal_lld.h b/os/hal/platforms/AT91SAM7/pal_lld.h
index 07e17caff..1fe386068 100644
--- a/os/hal/platforms/AT91SAM7/pal_lld.h
+++ b/os/hal/platforms/AT91SAM7/pal_lld.h
@@ -21,7 +21,7 @@
* @file AT91SAM7/pal_lld.h
* @brief AT91SAM7 PIO low level driver header.
*
- * @addtogroup AT91SAM7_PAL
+ * @addtogroup PAL
* @{
*/
diff --git a/os/hal/platforms/AT91SAM7/platform.dox b/os/hal/platforms/AT91SAM7/platform.dox
index 186eff6f1..9e1736256 100644
--- a/os/hal/platforms/AT91SAM7/platform.dox
+++ b/os/hal/platforms/AT91SAM7/platform.dox
@@ -20,34 +20,66 @@
/**
* @defgroup AT91SAM7 AT91SAM7 Drivers
* @brief AT91SAM7 specific support.
- * @details The AT91SAM7 support includes:
- * - Buffered, interrupt driven, serial driver.
- * - EMAC driver with MII support.
- * - A demo supporting the kernel test suite.
- * - A Web server demo using the uIP TCP/IP stack.
- * - A Web server demo using the lwIP TCP/IP stack.
- * .
+ *
* @ingroup platforms
*/
/**
* @defgroup AT91SAM7_HAL AT91SAM7 HAL Support
* @brief HAL 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
+ * - PLLs startup and stabilization.
+ * - Clock source selection.
+ * - Flash wait states.
+ * .
+* @ingroup AT91SAM7
+ */
+
+/**
+ * @defgroup AT91SAM7_MAC AT91SAM7 EMAC Support
+ * @brief EMAC+PHY peripheral support.
+ * @details This driver supports the AT91SAM7 EMAC peripheral.
+ *
+ * @section at91sam7_mac_1 Supported HW resources
+ * - EMAC.
+ * .
+ * @ingroup AT91SAM7
+ */
+
+/**
+ * @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.
*
* @ingroup AT91SAM7
*/
/**
- * @defgroup AT91SAM7_PAL AT91SAM7 I/O Ports Support
+ * @defgroup AT91SAM7_PAL AT91SAM7 PIO Support
* @brief I/O Ports peripherals support.
- * @details This module supports the AT91SAM7 PIO controller. The controller
- * supports the following features (see @ref PAL):
+ *
+ * @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.
* .
- *
Supported Setup Modes
+ * @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.
@@ -58,8 +90,9 @@
* .
* Any attempt to setup an invalid mode is ignored.
*
- * Suboptimal Behavior
- * Some PIO features are less than optimal:
+ * @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:
* - Pad/port toggling operations are not atomic.
* - Pad/group mode setup is not atomic.
* .
@@ -67,36 +100,42 @@
*/
/**
- * @defgroup AT91SAM7_SERIAL AT91SAM7 USART Support
+ * @defgroup AT91SAM7_SPI AT91SAM7 SPI Support
+ * @brief SPI peripheral support.
+ * @details The SPI driver supports the AT91SAM7 SPIs using DMA channels for
+ * improved 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
+ */
+
+/**
+ * @defgroup AT91SAM7_SERIAL AT91SAM7 USART Support (buffered)
* @brief USART peripherals support.
* @details The serial driver supports the AT91SAM7 USART peripherals.
*
- * @ingroup AT91SAM7
- */
-
-/**
- * @defgroup AT91SAM7_SPI AT91SAM7 SPI Support
- * @brief SPI peripheral support.
- * @details The SPI driver supports the AT91SAM7 SPI, the driver works in
- * polling mode.
- *
- * @ingroup AT91SAM7
- */
-
-/**
- * @defgroup AT91SAM7_MAC AT91SAM7 EMAC Support
- * @brief EMAC peripheral support.
- * @details the @ref MAC supports the AT91SAM7 EMAC peripheral.
- *
- * @ingroup AT91SAM7
- */
-
-/**
- * @defgroup AT91SAM7_MII AT91SAM7 MII Support
- * @brief EMAC+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.
- *
+ * @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
*/
diff --git a/os/hal/platforms/AT91SAM7/serial_lld.c b/os/hal/platforms/AT91SAM7/serial_lld.c
index 10833f497..72207a249 100644
--- a/os/hal/platforms/AT91SAM7/serial_lld.c
+++ b/os/hal/platforms/AT91SAM7/serial_lld.c
@@ -21,7 +21,7 @@
* @file AT91SAM7/serial_lld.c
* @brief AT91SAM7 low level serial driver code.
*
- * @addtogroup AT91SAM7_SERIAL
+ * @addtogroup SERIAL
* @{
*/
diff --git a/os/hal/platforms/AT91SAM7/serial_lld.h b/os/hal/platforms/AT91SAM7/serial_lld.h
index cfae4eb72..0b9b1973e 100644
--- a/os/hal/platforms/AT91SAM7/serial_lld.h
+++ b/os/hal/platforms/AT91SAM7/serial_lld.h
@@ -21,7 +21,7 @@
* @file AT91SAM7/serial_lld.h
* @brief AT91SAM7 low level serial driver header.
*
- * @addtogroup AT91SAM7_SERIAL
+ * @addtogroup SERIAL
* @{
*/
diff --git a/os/hal/platforms/AT91SAM7/spi_lld.c b/os/hal/platforms/AT91SAM7/spi_lld.c
index 5023eda9e..4bb0ea40c 100644
--- a/os/hal/platforms/AT91SAM7/spi_lld.c
+++ b/os/hal/platforms/AT91SAM7/spi_lld.c
@@ -21,7 +21,7 @@
* @file AT91SAM7/spi_lld.c
* @brief AT91SAM7 low level SPI driver code.
*
- * @addtogroup AT91SAM7_SPI
+ * @addtogroup SPI
* @{
*/
diff --git a/os/hal/platforms/AT91SAM7/spi_lld.h b/os/hal/platforms/AT91SAM7/spi_lld.h
index d887ad04b..173ad10c3 100644
--- a/os/hal/platforms/AT91SAM7/spi_lld.h
+++ b/os/hal/platforms/AT91SAM7/spi_lld.h
@@ -21,7 +21,7 @@
* @file AT91SAM7/spi_lld.h
* @brief AT91SAM7 low level SPI driver header.
*
- * @addtogroup AT91SAM7_SPI
+ * @addtogroup SPI
* @{
*/
diff --git a/os/hal/platforms/STM32/platform.dox b/os/hal/platforms/STM32/platform.dox
index fa4c700c1..295f6a2fc 100644
--- a/os/hal/platforms/STM32/platform.dox
+++ b/os/hal/platforms/STM32/platform.dox
@@ -24,6 +24,30 @@
* @ingroup platforms
*/
+/**
+ * @defgroup STM32_HAL STM32 HAL Support
+ * @brief HAL support.
+ * @details The STM32 HAL support is responsible for system initialization.
+ *
+ * @section stm32_hal_1 Supported HW resources
+ * - PLL1.
+ * - PLL2 (where present).
+ * - RCC.
+ * - Flash.
+ * - DMA1.
+ * - DMA2 (where present).
+ * .
+ * @section stm32_hal_2 STM32 HAL driver implementation features
+ * - PLLs 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 STM32
+ */
+
/**
* @defgroup STM32_ADC STM32 ADC Support
* @brief ADC peripheral support.
@@ -59,30 +83,6 @@
* @ingroup STM32
*/
-/**
- * @defgroup STM32_HAL STM32 Clock Support
- * @brief Clock support.
- * @details The STM32 Clock support is responsible for system initialization.
- *
- * @section stm32_hal_1 Supported HW resources
- * - PLL1.
- * - PLL2 (where present).
- * - RCC.
- * - Flash.
- * - DMA1.
- * - DMA2 (where present).
- * .
- * @section stm32_hal_2 STM32 HAL driver implementation features
- * - PLLs 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 STM32
- */
-
/**
* @defgroup STM32_DMA STM32 DMA Support
* @brief DMA helper driver.
@@ -139,7 +139,7 @@
* Any attempt to setup an invalid mode is ignored.
*
* @section stm32_pal_4 Suboptimal behavior
- * The GPIO is less than optimal in several areas, the limitations should
+ * 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.