aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/templates
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2009-11-29 08:25:31 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2009-11-29 08:25:31 +0000
commit0d0e4d619185ad86270ca5c0212c314f7f4529d5 (patch)
treefc147672ae3e49134251d25fe82902d51ace500b /os/hal/templates
parent10bec8e1297d92e7b96d1b9932d24afb62a88fac (diff)
downloadChibiOS-0d0e4d619185ad86270ca5c0212c314f7f4529d5.tar.gz
ChibiOS-0d0e4d619185ad86270ca5c0212c314f7f4529d5.tar.bz2
ChibiOS-0d0e4d619185ad86270ca5c0212c314f7f4529d5.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1342 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal/templates')
-rw-r--r--os/hal/templates/adc_lld.c101
-rw-r--r--os/hal/templates/adc_lld.h141
-rw-r--r--os/hal/templates/can_lld.c159
-rw-r--r--os/hal/templates/can_lld.h154
-rw-r--r--os/hal/templates/hal_lld.c57
-rw-r--r--os/hal/templates/hal_lld.h56
-rw-r--r--os/hal/templates/halconf.h88
-rw-r--r--os/hal/templates/mac_lld.c153
-rw-r--r--os/hal/templates/mac_lld.h121
-rw-r--r--os/hal/templates/meta/driver.c87
-rw-r--r--os/hal/templates/meta/driver.h54
-rw-r--r--os/hal/templates/meta/driver_lld.c79
-rw-r--r--os/hal/templates/meta/driver_lld.h81
-rw-r--r--os/hal/templates/mii_lld.c70
-rw-r--r--os/hal/templates/pal_lld.c54
-rw-r--r--os/hal/templates/pal_lld.h326
-rw-r--r--os/hal/templates/serial_lld.c91
-rw-r--r--os/hal/templates/serial_lld.h113
-rw-r--r--os/hal/templates/spi_lld.c160
-rw-r--r--os/hal/templates/spi_lld.h108
20 files changed, 0 insertions, 2253 deletions
diff --git a/os/hal/templates/adc_lld.c b/os/hal/templates/adc_lld.c
deleted file mode 100644
index 9aabc4bcd..000000000
--- a/os/hal/templates/adc_lld.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 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/>.
-*/
-
-/**
- * @file templates/adc_lld.c
- * @brief ADC Driver subsystem low level driver source template
- * @addtogroup ADC_LLD
- * @{
- */
-
-#include "ch.h"
-#include "hal.h"
-
-#if CH_HAL_USE_ADC
-
-/*===========================================================================*/
-/* Low Level Driver exported variables. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver local variables. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver local functions. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver interrupt handlers. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver exported functions. */
-/*===========================================================================*/
-
-/**
- * @brief Low level ADC driver initialization.
- */
-void adc_lld_init(void) {
-
-}
-
-/**
- * @brief Configures and activates the ADC peripheral.
- *
- * @param[in] adcp pointer to the @p ADCDriver object
- */
-void adc_lld_start(ADCDriver *adcp) {
-
- if (adcp->adc_state == ADC_STOP) {
- /* Clock activation.*/
- }
- /* Configuration.*/
-}
-
-/**
- * @brief Deactivates the ADC peripheral.
- *
- * @param[in] adcp pointer to the @p ADCDriver object
- */
-void adc_lld_stop(ADCDriver *adcp) {
-
-}
-
-/**
- * @brief Starts an ADC conversion.
- *
- * @param[in] adcp pointer to the @p ADCDriver object
- */
-void adc_lld_start_conversion(ADCDriver *adcp) {
-
-}
-
-/**
- * @brief Stops an ongoing conversion.
- *
- * @param[in] adcp pointer to the @p ADCDriver object
- */
-void adc_lld_stop_conversion(ADCDriver *adcp) {
-
-}
-
-#endif /* CH_HAL_USE_ADC */
-
-/** @} */
diff --git a/os/hal/templates/adc_lld.h b/os/hal/templates/adc_lld.h
deleted file mode 100644
index ca14577f0..000000000
--- a/os/hal/templates/adc_lld.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 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/>.
-*/
-
-/**
- * @file templates/adc_lld.h
- * @brief ADC Driver subsystem low level driver header template
- * @addtogroup ADC_LLD
- * @{
- */
-
-#ifndef _ADC_LLD_H_
-#define _ADC_LLD_H_
-
-#if CH_HAL_USE_ADC
-
-/*===========================================================================*/
-/* Driver pre-compile time settings. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver constants. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver data structures and types. */
-/*===========================================================================*/
-
-/**
- * @brief ADC sample data type.
- */
-typedef uint16_t adcsample_t;
-
-/**
- * @brief Channels number in a conversion group.
- */
-typedef uint16_t adc_channels_num_t;
-
-/**
- * @brief ADC notification callback type.
- * @param[in] buffer pointer to the most recent samples data
- * @param[in] n number of buffer rows available starting from @p buffer
- */
-typedef void (*adccallback_t)(adcsample_t *buffer, size_t n);
-
-/**
- * @brief Conversion group configuration structure.
- * @details This implementation-dependent structure describes a conversion
- * operation.
- */
-typedef struct {
- /**
- * @brief Enables the circular buffer mode for the group.
- */
- bool_t acg_circular;
- /**
- * @brief Number of the analog channels belonging to the conversion group.
- */
- adc_channels_num_t acg_num_channels;
- /* End of the mandatory fields.*/
-} ADCConversionGroup;
-
-/**
- * @brief Driver configuration structure.
- * @note It could be empty on some architectures.
- */
-typedef struct {
-
-} ADCConfig;
-
-/**
- * @brief Structure representing an ADC driver.
- */
-typedef struct {
- /**
- * @brief Driver state.
- */
- adcstate_t ad_state;
- /**
- * @brief Current configuration data.
- */
- const ADCConfig *ad_config;
- /**
- * @brief Synchronization semaphore.
- */
- Semaphore ad_sem;
- /**
- * @brief Current callback function or @p NULL.
- */
- adccallback_t ad_callback;
- /**
- * @brief Current samples buffer pointer or @p NULL.
- */
- adcsample_t *ad_samples;
- /**
- * @brief Current samples buffer depth or @p 0.
- */
- size_t ad_depth;
- /**
- * @brief Current conversion group pointer or @p NULL.
- */
- const ADCConversionGroup *ad_grpp;
- /* End of the mandatory fields.*/
-} ADCDriver;
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
- void adc_lld_init(void);
- void adc_lld_start(ADCDriver *adcp);
- void adc_lld_stop(ADCDriver *adcp);
- void adc_lld_start_conversion(ADCDriver *adcp);
- void adc_lld_stop_conversion(ADCDriver *adcp);
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* CH_HAL_USE_ADC */
-
-#endif /* _ADC_LLD_H_ */
-
-/** @} */
diff --git a/os/hal/templates/can_lld.c b/os/hal/templates/can_lld.c
deleted file mode 100644
index 7c56acad1..000000000
--- a/os/hal/templates/can_lld.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 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/>.
-*/
-
-/**
- * @file templates/can_lld.c
- * @brief CAN Driver subsystem low level driver source template
- * @addtogroup CAN_LLD
- * @{
- */
-
-#include "ch.h"
-#include "hal.h"
-
-#if CH_HAL_USE_CAN
-
-/*===========================================================================*/
-/* Low Level Driver exported variables. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver local variables. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver local functions. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver interrupt handlers. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver exported functions. */
-/*===========================================================================*/
-
-/**
- * @brief Low level CAN driver initialization.
- */
-void can_lld_init(void) {
-
-}
-
-/**
- * @brief Configures and activates the CAN peripheral.
- *
- * @param[in] canp pointer to the @p CANDriver object
- */
-void can_lld_start(CANDriver *canp) {
-
- if (canp->can_state == CAN_STOP) {
- /* Clock activation.*/
- }
- /* Configuration.*/
-}
-
-/**
- * @brief Deactivates the CAN peripheral.
- *
- * @param[in] canp pointer to the @p CANDriver object
- */
-void can_lld_stop(CANDriver *canp) {
-
-}
-
-/**
- * @brief Determines whether a frame can be transmitted.
- *
- * @param[in] canp pointer to the @p CANDriver object
- *
- * @return The queue space availability.
- * @retval FALSE no space in the transmit queue.
- * @retval TRUE transmit slot available.
- */
-bool_t can_lld_can_transmit(CANDriver *canp) {
-
- return FALSE;
-}
-
-/**
- * @brief Inserts a frame into the transmit queue.
- *
- * @param[in] canp pointer to the @p CANDriver object
- * @param[in] cfp pointer to the CAN frame to be transmitted
- *
- * @return The operation status.
- * @retval RDY_OK frame transmitted.
- */
-msg_t can_lld_transmit(CANDriver *canp, const CANFrame *cfp) {
-
- return RDY_OK;
-}
-
-/**
- * @brief Determines whether a frame has been received.
- *
- * @param[in] canp pointer to the @p CANDriver object
- *
- * @return The queue space availability.
- * @retval FALSE no space in the transmit queue.
- * @retval TRUE transmit slot available.
- */
-bool_t can_lld_can_receive(CANDriver *canp) {
-
- return FALSE;
-}
-
-/**
- * @brief Receives a frame from the input queue.
- *
- * @param[in] canp pointer to the @p CANDriver object
- * @param[out] cfp pointer to the buffer where the CAN frame is copied
- *
- * @return The operation status.
- * @retval RDY_OK frame received.
- */
-msg_t can_lld_receive(CANDriver *canp, CANFrame *cfp) {
-
- return RDY_OK;
-}
-
-#if CAN_USE_SLEEP_MODE || defined(__DOXYGEN__)
-/**
- * @brief Enters the sleep mode.
- *
- * @param[in] canp pointer to the @p CANDriver object
- */
-void can_lld_sleep(CANDriver *canp) {
-
-}
-
-/**
- * @brief Enforces leaving the sleep mode.
- *
- * @param[in] canp pointer to the @p CANDriver object
- */
-void can_lld_wakeup(CANDriver *canp) {
-
-}
-#endif /* CAN_USE_SLEEP_MODE */
-
-#endif /* CH_HAL_USE_CAN */
-
-/** @} */
diff --git a/os/hal/templates/can_lld.h b/os/hal/templates/can_lld.h
deleted file mode 100644
index c899055c6..000000000
--- a/os/hal/templates/can_lld.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 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/>.
-*/
-
-/**
- * @file templates/can_lld.h
- * @brief CAN Driver subsystem low level driver header template
- * @addtogroup CAN_LLD
- * @{
- */
-
-#ifndef _CAN_LLD_H_
-#define _CAN_LLD_H_
-
-#if CH_HAL_USE_CAN
-
-/**
- * @brief This switch defines whether the driver implementation supports
- * a low power switch mode with automatic an wakeup feature.
- */
-#define CAN_SUPPORTS_SLEEP TRUE
-
-/*===========================================================================*/
-/* Driver pre-compile time settings. */
-/*===========================================================================*/
-
-/**
- * @brief Sleep mode related APIs inclusion switch.
- * @note This switch is enforced to @p FALSE if the driver implementation
- * does not support the sleep mode.
- */
-#if CAN_SUPPORTS_SLEEP || defined(__DOXYGEN__)
-#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__)
-#define CAN_USE_SLEEP_MODE TRUE
-#endif
-#else /* !CAN_SUPPORTS_SLEEP */
-#define CAN_USE_SLEEP_MODE FALSE
-#endif /* !CAN_SUPPORTS_SLEEP */
-
-/*===========================================================================*/
-/* Driver constants. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver data structures and types. */
-/*===========================================================================*/
-
-/**
- * @brief CAN frame.
- * @note Accessing the frame data as word16 or word32 is not portable because
- * machine data endianness, it can be still useful for a quick filling.
- */
-typedef struct {
- uint8_t cf_DLC:4; /**< @brief Data length. */
- uint8_t cf_IDE:1; /**< @brief Identifier type. */
- uint8_t cf_RTR:1; /**< @brief Frame type. */
- uint32_t cf_id; /**< @brief Frame identifier. */
- union {
- uint8_t cf_data8[8]; /**< @brief Frame data. */
- uint16_t cf_data16[4]; /**< @brief Frame data. */
- uint32_t cf_data32[2]; /**< @brief Frame data. */
- };
-} CANFrame;
-
-/**
- * @brief Driver configuration structure.
- * @note It could be empty on some architectures.
- */
-typedef struct {
-} CANConfig;
-
-/**
- * @brief Structure representing an CAN driver.
- */
-typedef struct {
- /**
- * @brief Driver state.
- */
- canstate_t can_state;
- /**
- * @brief Current configuration data.
- */
- const CANConfig *can_config;
- /**
- * @brief Transmission queue semaphore.
- */
- Semaphore can_txsem;
- /**
- * @brief Receive queue semaphore.
- */
- Semaphore can_rxsem;
- /**
- * @brief One or more frames become available.
- */
- EventSource can_rxfull_event;
- /**
- * @brief One or more transmission slots become available.
- */
- EventSource can_txempty_event;
-#if CAN_USE_SLEEP_MODE || defined (__DOXYGEN__)
- /**
- * @brief Entering sleep state event.
- */
- EventSource can_sleep_event;
- /**
- * @brief Exiting sleep state event.
- */
- EventSource can_wakeup_event;
-#endif /* CAN_USE_SLEEP_MODE */
- /* End of the mandatory fields.*/
-} CANDriver;
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
- void can_lld_init(void);
- void can_lld_start(CANDriver *canp);
- void can_lld_stop(CANDriver *canp);
- bool_t can_lld_can_transmit(CANDriver *canp);
- msg_t can_lld_transmit(CANDriver *canp, const CANFrame *cfp);
- bool_t can_lld_can_receive(CANDriver *canp);
- msg_t can_lld_receive(CANDriver *canp, CANFrame *cfp);
-#if CAN_USE_SLEEP_MODE
- void can_lld_sleep(CANDriver *canp);
- void can_lld_wakeup(CANDriver *canp);
-#endif /* CAN_USE_SLEEP_MODE */
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* CH_HAL_USE_CAN */
-
-#endif /* _CAN_LLD_H_ */
-
-/** @} */
diff --git a/os/hal/templates/hal_lld.c b/os/hal/templates/hal_lld.c
deleted file mode 100644
index 0d2d46dcc..000000000
--- a/os/hal/templates/hal_lld.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 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/>.
-*/
-
-/**
- * @file templates/hal_lld.c
- * @brief HAL Driver subsystem low level driver source template
- * @addtogroup HAL_LLD
- * @{
- */
-
-#include <ch.h>
-#include <hal.h>
-
-/*===========================================================================*/
-/* Low Level Driver exported variables. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver local variables. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver local functions. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver interrupt handlers. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver exported functions. */
-/*===========================================================================*/
-
-/**
- * @brief Low level HAL driver initialization.
- */
-void hal_lld_init(void) {
-
-}
-
-/** @} */
diff --git a/os/hal/templates/hal_lld.h b/os/hal/templates/hal_lld.h
deleted file mode 100644
index b401e4217..000000000
--- a/os/hal/templates/hal_lld.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 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/>.
-*/
-
-/**
- * @file templates/hal_lld.h
- * @brief HAL subsystem low level driver header template
- * @addtogroup HAL_LLD
- * @{
- */
-
-#ifndef _HAL_LLD_H_
-#define _HAL_LLD_H_
-
-/*===========================================================================*/
-/* Driver pre-compile time settings. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver constants. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver data structures and types. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
- void hal_lld_init(void);
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _HAL_LLD_H_ */
-
-/** @} */
diff --git a/os/hal/templates/halconf.h b/os/hal/templates/halconf.h
deleted file mode 100644
index f08ffcda5..000000000
--- a/os/hal/templates/halconf.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 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/>.
-*/
-
-/**
- * @file templates/halconf.h
- * @brief HAL configuration header.
- * @addtogroup HAL_CONF
- * @{
- */
-
-#ifndef _HALCONF_H_
-#define _HALCONF_H_
-
-/**
- * @brief Enables the PAL subsystem.
- */
-#if !defined(CH_HAL_USE_PAL) || defined(__DOXYGEN__)
-#define CH_HAL_USE_PAL TRUE
-#endif
-
-/**
- * @brief Enables the ADC subsystem.
- */
-#if !defined(CH_HAL_USE_ADC) || defined(__DOXYGEN__)
-#define CH_HAL_USE_ADC TRUE
-#endif
-
-/**
- * @brief Enables the CAN subsystem.
- */
-#if !defined(CH_HAL_USE_CAN) || defined(__DOXYGEN__)
-#define CH_HAL_USE_CAN TRUE
-#endif
-
-/**
- * @brief Enables the MAC subsystem.
- */
-#if !defined(CH_HAL_USE_MAC) || defined(__DOXYGEN__)
-#define CH_HAL_USE_MAC TRUE
-#endif
-
-/**
- * @brief Enables the MII subsystem.
- */
-#if !defined(CH_HAL_USE_MII) || defined(__DOXYGEN__)
-#define CH_HAL_USE_MII TRUE
-#endif
-
-/**
- * @brief Enables the SERIAL subsystem.
- */
-#if !defined(CH_HAL_USE_SERIAL) || defined(__DOXYGEN__)
-#define CH_HAL_USE_SERIAL TRUE
-#endif
-
-/**
- * @brief Enables the SPI subsystem.
- */
-#if !defined(CH_HAL_USE_SPI) || defined(__DOXYGEN__)
-#define CH_HAL_USE_SPI TRUE
-#endif
-
-/**
- * @brief Enables the MMC_SPI subsystem.
- */
-#if !defined(CH_HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
-#define CH_HAL_USE_MMC_SPI TRUE
-#endif
-
-#endif /* _HALCONF_H_ */
-
-/** @} */
diff --git a/os/hal/templates/mac_lld.c b/os/hal/templates/mac_lld.c
deleted file mode 100644
index fa6ef7a9e..000000000
--- a/os/hal/templates/mac_lld.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 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/>.
-*/
-
-/**
- * @file templates/mac_lld.c
- * @brief MAC Driver subsystem low level driver source template
- * @addtogroup MAC_LLD
- * @{
- */
-
-#include "ch.h"
-#include "hal.h"
-
-#if CH_HAL_USE_MAC
-
-/**
- * @brief Low level MAC initialization.
- */
-void mac_lld_init(void) {
-
-}
-
-/**
- * @brief Low level MAC address setup.
- *
- * @param[in] macp pointer to the @p MACDriver object
- * @param[in] p pointer to a six bytes buffer containing the MAC address. If
- * this parameter is set to @p NULL then a system default MAC is
- * used.
- */
-void mac_lld_set_address(MACDriver *macp, const uint8_t *p) {
-
-}
-
-/**
- * @brief Returns a transmission descriptor.
- * @details One of the available transmission descriptors is locked and
- * returned.
- *
- * @param[in] macp pointer to the @p MACDriver object
- * @param[out] tdp pointer to a @p MACTransmitDescriptor structure
- * @return The operation status.
- * @retval RDY_OK the descriptor was obtained.
- * @retval RDY_TIMEOUT descriptor not available.
- */
-msg_t max_lld_get_transmit_descriptor(MACDriver *macp,
- MACTransmitDescriptor *tdp) {
-
- return RDY_OK;
-}
-
-/**
- * @brief Writes to a transmit descriptor's stream.
- *
- * @param[in] tdp pointer to a @p MACTransmitDescriptor structure
- * @param[in] buf pointer to the buffer cointaining the data to be written
- * @param[in] size number of bytes to be written
- * @return The number of bytes written into the descriptor's stream, this
- * value can be less than the amount specified in the parameter
- * @p size if the maximum frame size is reached.
- */
-size_t mac_lld_write_transmit_descriptor(MACTransmitDescriptor *tdp,
- uint8_t *buf,
- size_t size) {
-
- return 0;
-}
-
-/**
- * @brief Releases a transmit descriptor and starts the transmission of the
- * enqueued data as a single frame.
- *
- * @param[in] tdp the pointer to the @p MACTransmitDescriptor structure
- */
-void mac_lld_release_transmit_descriptor(MACTransmitDescriptor *tdp) {
-
-}
-
-/**
- * @brief Returns a receive descriptor.
- *
- * @param[in] macp pointer to the @p MACDriver object
- * @param[out] rdp pointer to a @p MACReceiveDescriptor structure
- * @return The operation status.
- * @retval RDY_OK the descriptor was obtained.
- * @retval RDY_TIMEOUT descriptor not available.
- */
-msg_t max_lld_get_receive_descriptor(MACDriver *macp,
- MACReceiveDescriptor *rdp) {
-
- return RDY_OK;
-}
-
-/**
- * @brief Reads from a receive descriptor's stream.
- *
- * @param[in] rdp pointer to a @p MACReceiveDescriptor structure
- * @param[in] buf pointer to the buffer that will receive the read data
- * @param[in] size number of bytes to be read
- * @return The number of bytes read from the descriptor's stream, this
- * value can be less than the amount specified in the parameter
- * @p size if there are no more bytes to read.
- */
-size_t mac_lld_read_receive_descriptor(MACReceiveDescriptor *rdp,
- uint8_t *buf,
- size_t size) {
-
- return 0;
-}
-
-/**
- * @brief Releases a receive descriptor.
- * @details The descriptor and its buffer are made available for more incoming
- * frames.
- *
- * @param[in] rdp the pointer to the @p MACReceiveDescriptor structure
- */
-void mac_lld_release_receive_descriptor(MACReceiveDescriptor *rdp) {
-
-}
-
-/**
- * @brief Updates and returns the link status.
- *
- * @param[in] macp pointer to the @p MACDriver object
- * @return The link status.
- * @retval TRUE if the link is active.
- * @retval FALSE if the link is down.
- */
-bool_t mac_lld_poll_link_status(MACDriver *macp) {
-
- return FALSE;
-}
-
-#endif /* CH_HAL_USE_MAC */
-
-/** @} */
diff --git a/os/hal/templates/mac_lld.h b/os/hal/templates/mac_lld.h
deleted file mode 100644
index 07a199f7e..000000000
--- a/os/hal/templates/mac_lld.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 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/>.
-*/
-
-/**
- * @file templates/mac_lld.h
- * @brief MAC Driver subsystem low level driver header template
- * @addtogroup MAC_LLD
- * @{
- */
-
-#ifndef _MAC_LLD_H_
-#define _MAC_LLD_H_
-
-#if CH_HAL_USE_MAC
-
-/*===========================================================================*/
-/* Driver pre-compile time settings. */
-/*===========================================================================*/
-
-/**
- * @brief Number of available transmit buffers.
- */
-#if !defined(MAC_TRANSMIT_BUFFERS) || defined(__DOXYGEN__)
-#define MAC_TRANSMIT_BUFFERS 2
-#endif
-
-/**
- * @brief Number of available receive buffers.
- */
-#if !defined(MAC_RECEIVE_BUFFERS) || defined(__DOXYGEN__)
-#define MAC_RECEIVE_BUFFERS 2
-#endif
-
-/**
- * @brief Maximum supported frame size.
- */
-#if !defined(MAC_BUFFERS_SIZE) || defined(__DOXYGEN__)
-#define MAC_BUFFERS_SIZE 1518
-#endif
-
-/*===========================================================================*/
-/* Driver data structures and types. */
-/*===========================================================================*/
-
-/**
- * @brief Structure representing a MAC driver.
- */
-typedef struct {
- Semaphore md_tdsem; /**< Transmit semaphore. */
- Semaphore md_rdsem; /**< Receive semaphore. */
-#if CH_USE_EVENTS
- EventSource md_rdevent; /**< Receive event source. */
-#endif
- /* End of the mandatory fields.*/
-} MACDriver;
-
-/**
- * @brief Structure representing a transmit descriptor.
- */
-typedef struct {
- size_t td_offset; /**< Current write offset. */
- size_t td_size; /**< Available space size. */
- /* End of the mandatory fields.*/
-} MACTransmitDescriptor;
-
-/**
- * @brief Structure representing a receive descriptor.
- */
-typedef struct {
- size_t rd_offset; /**< Current read offset. */
- size_t rd_size; /**< Available data size. */
- /* End of the mandatory fields.*/
-} MACReceiveDescriptor;
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
- void mac_lld_init(void);
- void mac_lld_set_address(MACDriver *macp, const uint8_t *p);
- msg_t max_lld_get_transmit_descriptor(MACDriver *macp,
- MACTransmitDescriptor *tdp);
- size_t mac_lld_write_transmit_descriptor(MACTransmitDescriptor *tdp,
- uint8_t *buf,
- size_t size);
- void mac_lld_release_transmit_descriptor(MACTransmitDescriptor *tdp);
- msg_t max_lld_get_receive_descriptor(MACDriver *macp,
- MACReceiveDescriptor *rdp);
- size_t mac_lld_read_receive_descriptor(MACReceiveDescriptor *rdp,
- uint8_t *buf,
- size_t size);
- void mac_lld_release_receive_descriptor(MACReceiveDescriptor *rdp);
- bool_t mac_lld_poll_link_status(MACDriver *macp);
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* CH_HAL_USE_MAC */
-
-#endif /* _MAC_LLD_H_ */
-
-/** @} */
diff --git a/os/hal/templates/meta/driver.c b/os/hal/templates/meta/driver.c
deleted file mode 100644
index 9bf785ed2..000000000
--- a/os/hal/templates/meta/driver.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 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/>.
-*/
-
-/**
- * @file XXX.c
- * @brief XXX Driver code.
- * @addtogroup XXX
- * @{
- */
-
-#include <ch.h>
-#include <xxx.h>
-
-/**
- * @brief XXX Driver initialization.
- */
-void xxxInit(void) {
-
- xxx_lld_init();
-}
-
-/**
- * @brief Initializes the standard part of a @p XXXDriver structure.
- *
- * @param[in] xxxp pointer to the @p XXXDriver object
- */
-void xxxObjectInit(XXXDriver *xxxp) {
-
- xxxp->xxx_state = XXX_STOP;
- xxxp->xxx_config = NULL;
-}
-
-/**
- * @brief Configures and activates the XXX peripheral.
- *
- * @param[in] xxxp pointer to the @p XXXDriver object
- * @param[in] config pointer to the @p XXXConfig object
- */
-void xxxStart(XXXDriver *xxxp, const XXXConfig *config) {
-
- chDbgCheck((xxxp != NULL) && (config != NULL), "xxxStart");
-
- chSysLock();
- chDbgAssert((xxxp->xxx_state == XXX_STOP) || (xxxp->xxx_state == XXX_READY),
- "xxxStart(), #1",
- "invalid state");
- xxxp->xxx_config = config;
- xxx_lld_start(xxxp);
- xxxp->xxx_state = XXX_READY;
- chSysUnlock();
-}
-
-/**
- * @brief Deactivates the XXX peripheral.
- *
- * @param[in] xxxp pointer to the @p XXXDriver object
- */
-void xxxStop(XXXDriver *xxxp) {
-
- chDbgCheck(xxxp != NULL, "xxxStop");
-
- chSysLock();
- chDbgAssert((xxxp->xxx_state == XXX_STOP) || (xxxp->xxx_state == XXX_READY),
- "xxxStop(), #1",
- "invalid state");
- xxx_lld_stop(xxxp);
- xxxp->xxx_state = XXX_STOP;
- chSysUnlock();
-}
-
-/** @} */
diff --git a/os/hal/templates/meta/driver.h b/os/hal/templates/meta/driver.h
deleted file mode 100644
index 675bc6689..000000000
--- a/os/hal/templates/meta/driver.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 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/>.
-*/
-
-/**
- * @file xxx.h
- * @brief XXX Driver macros and structures.
- * @addtogroup XXX
- * @{
- */
-
-#ifndef _XXX_H_
-#define _XXX_H_
-
-/**
- * @brief Driver state machine possible states.
- */
-typedef enum {
- XXX_UNINIT = 0, /**< @brief Not initialized. */
- XXX_STOP = 1, /**< @brief Stopped. */
- XXX_READY = 2, /**< @brief Ready. */
-} xxxstate_t;
-
-#include "xxx_lld.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
- void xxxInit(void);
- void xxxObjectInit(XXXDriver *xxxp);
- void xxxStart(XXXDriver *xxxp, const XXXConfig *config);
- void xxxStop(XXXDriver *xxxp);
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _XXX_H_ */
-
-/** @} */
diff --git a/os/hal/templates/meta/driver_lld.c b/os/hal/templates/meta/driver_lld.c
deleted file mode 100644
index df91ed21b..000000000
--- a/os/hal/templates/meta/driver_lld.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 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/>.
-*/
-
-/**
- * @file templates/xxx_lld.c
- * @brief XXX Driver subsystem low level driver source template
- * @addtogroup XXX_LLD
- * @{
- */
-
-#include <ch.h>
-#include <xxx.h>
-
-/*===========================================================================*/
-/* Low Level Driver exported variables. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver local variables. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver local functions. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver interrupt handlers. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver exported functions. */
-/*===========================================================================*/
-
-/**
- * @brief Low level XXX driver initialization.
- */
-void xxx_lld_init(void) {
-
-}
-
-/**
- * @brief Configures and activates the XXX peripheral.
- *
- * @param[in] xxxp pointer to the @p XXXDriver object
- */
-void xxx_lld_start(XXXDriver *xxxp) {
-
- if (xxxp->xxx_state == XXX_STOP) {
- /* Clock activation.*/
- }
- /* Configuration.*/
-}
-
-/**
- * @brief Deactivates the XXX peripheral.
- *
- * @param[in] xxxp pointer to the @p XXXDriver object
- */
-void xxx_lld_stop(XXXDriver *xxxp) {
-
-}
-
-/** @} */
diff --git a/os/hal/templates/meta/driver_lld.h b/os/hal/templates/meta/driver_lld.h
deleted file mode 100644
index 92194664e..000000000
--- a/os/hal/templates/meta/driver_lld.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 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/>.
-*/
-
-/**
- * @file templates/xxx_lld.h
- * @brief XXX Driver subsystem low level driver header template
- * @addtogroup XXX_LLD
- * @{
- */
-
-#ifndef _XXX_LLD_H_
-#define _XXX_LLD_H_
-
-/*===========================================================================*/
-/* Driver pre-compile time settings. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver constants. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver data structures and types. */
-/*===========================================================================*/
-
-/**
- * @brief Driver configuration structure.
- * @note It could be empty on some architectures.
- */
-typedef struct {
-
-} XXXConfig;
-
-/**
- * @brief Structure representing an XXX driver.
- */
-typedef struct {
- /**
- * @brief Driver state.
- */
- xxxstate_t xxx_state;
- /**
- * @brief Current configuration data.
- */
- const XXXConfig *xxx_config;
- /* End of the mandatory fields.*/
-} XXXDriver;
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
- void xxx_lld_init(void);
- void xxx_lld_start(XXXDriver *xxxp);
- void xxx_lld_stop(XXXDriver *xxxp);
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _XXX_LLD_H_ */
-
-/** @} */
diff --git a/os/hal/templates/mii_lld.c b/os/hal/templates/mii_lld.c
deleted file mode 100644
index 2381c4f1e..000000000
--- a/os/hal/templates/mii_lld.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 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/>.
-*/
-
-/**
- * @file templates/mii_lld.c
- * @brief MII Driver subsystem low level driver source template
- * @addtogroup MII_LLD
- * @{
- */
-
-#include "ch.h"
-#include "mac.h"
-#include "mii.h"
-
-/**
- * @brief Low level MII driver initialization.
- */
-void mii_lld_init(void) {
-
-}
-
-/**
- * Resets a PHY device.
- *
- * @param[in] macp pointer to the @p MACDriver object
- */
-void mii_lld_reset(MACDriver *macp) {
-
-}
-
-/**
- * @brief Reads a PHY register through the MII interface.
- *
- * @param[in] macp pointer to the @p MACDriver object
- * @param addr the register address
- * @return The register value.
- */
-phyreg_t mii_lld_get(MACDriver *macp, phyaddr_t addr) {
-
- return 0;
-}
-
-/**
- * @brief Writes a PHY register through the MII interface.
- *
- * @param[in] macp pointer to the @p MACDriver object
- * @param addr the register address
- * @param value the new register value
- */
-void mii_lld_put(MACDriver *macp, phyaddr_t addr, phyreg_t value) {
-
-}
-
-/** @} */
diff --git a/os/hal/templates/pal_lld.c b/os/hal/templates/pal_lld.c
deleted file mode 100644
index 598832d09..000000000
--- a/os/hal/templates/pal_lld.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 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/>.
-*/
-
-/**
- * @file templates/pal_lld.c
- * @brief PAL subsystem low level driver template
- * @addtogroup PAL_LLD
- * @{
- */
-
-#include "ch.h"
-#include "hal.h"
-
-#if CH_HAL_USE_PAL
-
-/*===========================================================================*/
-/* Low Level Driver exported variables. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver local variables. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver local functions. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver interrupt handlers. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver exported functions. */
-/*===========================================================================*/
-
-#endif /* CH_HAL_USE_PAL */
-
-/** @} */
diff --git a/os/hal/templates/pal_lld.h b/os/hal/templates/pal_lld.h
deleted file mode 100644
index a8caf089b..000000000
--- a/os/hal/templates/pal_lld.h
+++ /dev/null
@@ -1,326 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 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/>.
-*/
-
-/**
- * @file templates/pal_lld.h
- * @brief PAL subsystem low level driver header template
- * @addtogroup PAL_LLD
- * @{
- */
-
-#ifndef _PAL_LLD_H_
-#define _PAL_LLD_H_
-
-#if CH_HAL_USE_PAL
-
-/*===========================================================================*/
-/* Unsupported modes and specific modes */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* I/O Ports Types and constants. */
-/*===========================================================================*/
-
-/**
- * @brief Generic I/O ports static initializer.
- * @details An instance of this structure must be passed to @p palInit() at
- * system startup time in order to initialized the digital I/O
- * subsystem. This represents only the initial setup, specific pads
- * or whole ports can be reprogrammed at later time.
- *
- * @note This structure content is architecture dependent. The nome should be
- * changed to include the architecture name following this pattern:<br>
- * - [ARCH][CELL]Config.
- * .
- * As example:<br>
- * - MSP430DIOConfig.
- * .
- */
-typedef struct {
-
-} GenericConfig;
-
-/**
- * @brief Width, in bits, of an I/O port.
- */
-#define PAL_IOPORTS_WIDTH 32
-
-/**
- * @brief Whole port mask.
- * @brief This macro specifies all the valid bits into a port.
- */
-#define PAL_WHOLE_PORT ((ioportmask_t)0xFFFFFFFF)
-
-/**
- * @brief Digital I/O port sized unsigned type.
- */
-typedef uint32_t ioportmask_t;
-
-/**
- * @brief Port Identifier.
- * @details This type can be a scalar or some kind of pointer, do not make
- * any assumption about it, use the provided macros when populating
- * variables of this type.
- */
-typedef uint32_t ioportid_t;
-
-/*===========================================================================*/
-/* I/O Ports Identifiers. */
-/*===========================================================================*/
-
-/**
- * @brief First I/O port identifier.
- * @details Low level drivers can define multiple ports, it is suggested to
- * use this naming convention.
- */
-#define IOPORT1 0
-
-/*===========================================================================*/
-/* Implementation, some of the following macros could be implemented as */
-/* functions, if so please put them in pal_lld.c. */
-/*===========================================================================*/
-
-/**
- * @brief Low level PAL subsystem initialization.
- *
- * @param[in] config the architecture-dependent ports configuration
- */
-#define pal_lld_init(config)
-
-/**
- * @brief Reads the physical I/O port states.
- *
- * @param[in] port the port identifier
- * @return The port bits.
- *
- * @note This function is not meant to be invoked directly by the application
- * code.
- */
-#define pal_lld_readport(port)
-
-/**
- * @brief Reads the output latch.
- * @details The purpose of this function is to read back the latched output
- * value.
- *
- * @param[in] port the port identifier
- * @return The latched logical states.
- *
- * @note This function is not meant to be invoked directly by the application
- * code.
- */
-#define pal_lld_readlatch(port)
-
-/**
- * @brief Writes a bits mask on a I/O port.
- *
- * @param[in] port the port identifier
- * @param[in] bits the bits to be written on the specified port
- *
- * @note This function is not meant to be invoked directly by the application
- * code.
- */
-#define pal_lld_writeport(port, bits)
-
-/**
- * @brief Sets a bits mask on a I/O port.
- *
- * @param[in] port the port identifier
- * @param[in] bits the bits to be ORed on the specified port
- *
- * @note This function is not meant to be invoked directly by the application
- * code.
- * @note The @ref PAL provides a default software implementation of this
- * functionality, implement this function if can optimize it by using
- * special hardware functionalities or special coding.
- */
-#define pal_lld_setport(port, bits)
-
-/**
- * @brief Clears a bits mask on a I/O port.
- *
- * @param[in] port the port identifier
- * @param[in] bits the bits to be cleared on the specified port
- *
- * @note This function is not meant to be invoked directly by the application
- * code.
- * @note The @ref PAL provides a default software implementation of this
- * functionality, implement this function if can optimize it by using
- * special hardware functionalities or special coding.
- */
-#define pal_lld_clearport(port, bits)
-
-/**
- * @brief Toggles a bits mask on a I/O port.
- *
- * @param[in] port the port identifier
- * @param[in] bits the bits to be XORed on the specified port
- *
- * @note This function is not meant to be invoked directly by the application
- * code.
- * @note The @ref PAL provides a default software implementation of this
- * functionality, implement this function if can optimize it by using
- * special hardware functionalities or special coding.
- */
-#define pal_lld_toggleport(port, bits)
-
-/**
- * @brief Reads a group of bits.
- *
- * @param[in] port the port identifier
- * @param[in] mask the group mask
- * @param[in] offset the group bit offset within the port
- * @return The group logical states.
- *
- * @note This function is not meant to be invoked directly by the application
- * code.
- * @note The @ref PAL provides a default software implementation of this
- * functionality, implement this function if can optimize it by using
- * special hardware functionalities or special coding.
- */
-#define pal_lld_readgroup(port, mask, offset)
-
-/**
- * @brief Writes a group of bits.
- *
- * @param[in] port the port identifier
- * @param[in] mask the group mask
- * @param[in] offset the group bit offset within the port
- * @param[in] bits the bits to be written. Values exceeding the group width
- * are masked.
- *
- * @note This function is not meant to be invoked directly by the application
- * code.
- * @note The @ref PAL provides a default software implementation of this
- * functionality, implement this function if can optimize it by using
- * special hardware functionalities or special coding.
- */
-#define pal_lld_writegroup(port, mask, offset, bits)
-
-/**
- * @brief Pads group mode setup.
- * @details This function programs a pads group belonging to the same port
- * with the specified mode.
- *
- * @param[in] port the port identifier
- * @param[in] mask the group mask
- * @param[in] mode the mode
- *
- * @note This function is not meant to be invoked directly by the application
- * code.
- * @note Programming an unknown or unsupported mode is silently ignored.
- */
-#define pal_lld_setgroupmode(port, mask, mode)
-
-/**
- * @brief Reads a logical state from an I/O pad.
- *
- * @param[in] port the port identifier
- * @param[in] pad the pad number within the port
- * @return The logical state.
- * @retval 0 low logical state.
- * @retval 1 high logical state.
- *
- * @note This function is not meant to be invoked directly by the application
- * code.
- * @note The @ref PAL provides a default software implementation of this
- * functionality, implement this function if can optimize it by using
- * special hardware functionalities or special coding.
- */
-#define pal_lld_readpad(port, pad)
-
-/**
- * @brief Writes a logical state on an output pad.
- *
- * @param[in] port the port identifier
- * @param[in] pad the pad number within the port
- * @param[out] bit the logical value, the value must be @p 0 or @p 1
- *
- * @note This function is not meant to be invoked directly by the application
- * code.
- * @note The @ref PAL provides a default software implementation of this
- * functionality, implement this function if can optimize it by using
- * special hardware functionalities or special coding.
- */
-#define pal_lld_writepad(port, pad, bit)
-
-/**
- * @brief Sets a pad logical state to @p 1.
- *
- * @param[in] port the port identifier
- * @param[in] pad the pad number within the port
- *
- * @note This function is not meant to be invoked directly by the application
- * code.
- * @note The @ref PAL provides a default software implementation of this
- * functionality, implement this function if can optimize it by using
- * special hardware functionalities or special coding.
- */
-#define pal_lld_setpad(port, pad)
-
-/**
- * @brief Clears a pad logical state to @p 0.
- *
- * @param[in] port the port identifier
- * @param[in] pad the pad number within the port
- *
- * @note This function is not meant to be invoked directly by the application
- * code.
- * @note The @ref PAL provides a default software implementation of this
- * functionality, implement this function if can optimize it by using
- * special hardware functionalities or special coding.
- */
-#define pal_lld_clearpad(port, pad)
-
-/**
- * @brief Toggles a pad logical state.
- *
- * @param[in] port the port identifier
- * @param[in] pad the pad number within the port
- *
- * @note This function is not meant to be invoked directly by the application
- * code.
- * @note The @ref PAL provides a default software implementation of this
- * functionality, implement this function if can optimize it by using
- * special hardware functionalities or special coding.
- */
-#define pal_lld_togglepad(port, pad)
-
-/**
- * @brief Pad mode setup.
- * @details This function programs a pad with the specified mode.
- *
- * @param[in] port the port identifier
- * @param[in] pad the pad number within the port
- * @param[in] mode the mode
- *
- * @note This function is not meant to be invoked directly by the application
- * code.
- * @note The @ref PAL provides a default software implementation of this
- * functionality, implement this function if can optimize it by using
- * special hardware functionalities or special coding.
- * @note Programming an unknown or unsupported mode is silently ignored.
- */
-#define pal_lld_setpadmode(port, pad, mode)
-
-#endif /* CH_HAL_USE_PAL */
-
-#endif /* _PAL_LLD_H_ */
-
-/** @} */
diff --git a/os/hal/templates/serial_lld.c b/os/hal/templates/serial_lld.c
deleted file mode 100644
index c4d63ed76..000000000
--- a/os/hal/templates/serial_lld.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 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/>.
-*/
-
-/**
- * @file templates/serial_lld.c
- * @brief Serial Driver subsystem low level driver source template
- * @addtogroup SERIAL_LLD
- * @{
- */
-
-#include "ch.h"
-#include "hal.h"
-
-#if CH_HAL_USE_SERIAL
-
-/** @brief Driver default configuration.*/
-static const SerialDriverConfig default_config = {
-};
-
-/*===========================================================================*/
-/* Low Level Driver exported variables. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver local variables. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver local functions. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver interrupt handlers. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver exported functions. */
-/*===========================================================================*/
-
-/**
- * Low level serial driver initialization.
- */
-void sd_lld_init(void) {
-
-}
-
-/**
- * @brief Low level serial driver configuration and (re)start.
- *
- * @param[in] sdp pointer to a @p SerialDriver object
- * @param[in] config the architecture-dependent serial driver configuration.
- * If this parameter is set to @p NULL then a default
- * configuration is used.
- */
-void sd_lld_start(SerialDriver *sdp, const SerialDriverConfig *config) {
-
- if (config == NULL)
- config = &default_config;
-
-}
-
-/**
- * @brief Low level serial driver stop.
- * @details De-initializes the USART, stops the associated clock, resets the
- * interrupt vector.
- *
- * @param[in] sdp pointer to a @p SerialDriver object
- */
-void sd_lld_stop(SerialDriver *sdp) {
-
-}
-
-#endif /* CH_HAL_USE_SERIAL */
-
-/** @} */
diff --git a/os/hal/templates/serial_lld.h b/os/hal/templates/serial_lld.h
deleted file mode 100644
index 53cf2ce25..000000000
--- a/os/hal/templates/serial_lld.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 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/>.
-*/
-
-/**
- * @file templates/serial_lld.h
- * @brief Serial Driver subsystem low level driver header template
- * @addtogroup SERIAL_LLD
- * @{
- */
-
-#ifndef _SERIAL_LLD_H_
-#define _SERIAL_LLD_H_
-
-#if CH_HAL_USE_SERIAL
-
-/*===========================================================================*/
-/* Driver pre-compile time settings. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver constants. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver data structures and types. */
-/*===========================================================================*/
-
-/**
- * Serial Driver condition flags type.
- */
-typedef uint8_t sdflags_t;
-
-/**
- * @brief @p SerialDriver specific data.
- */
-struct _serial_driver_data {
- /**
- * Input queue, incoming data can be read from this input queue by
- * using the queues APIs.
- */
- InputQueue iqueue;
- /**
- * Output queue, outgoing data can be written to this output queue by
- * using the queues APIs.
- */
- OutputQueue oqueue;
- /**
- * Status Change @p EventSource. This event is generated when one or more
- * condition flags change.
- */
- EventSource sevent;
- /**
- * I/O driver status flags.
- */
- sdflags_t flags;
- /**
- * Input circular buffer.
- */
- uint8_t ib[SERIAL_BUFFERS_SIZE];
- /**
- * Output circular buffer.
- */
- uint8_t ob[SERIAL_BUFFERS_SIZE];
-};
-
-/**
- * @brief Generic Serial Driver configuration structure.
- * @details An instance of this structure must be passed to @p sdStart()
- * in order to configure and start a serial driver operations.
- *
- * @note This structure content is architecture dependent, each driver
- * implementation defines its own version and the custom static
- * initializers.
- */
-typedef struct {
-
-} SerialDriverConfig;
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
- void sd_lld_init(void);
- void sd_lld_start(SerialDriver *sdp, const SerialDriverConfig *config);
- void sd_lld_stop(SerialDriver *sdp);
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* CH_HAL_USE_SERIAL */
-
-#endif /* _SERIAL_LLD_H_ */
-
-/** @} */
diff --git a/os/hal/templates/spi_lld.c b/os/hal/templates/spi_lld.c
deleted file mode 100644
index 5fd6295d2..000000000
--- a/os/hal/templates/spi_lld.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 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/>.
-*/
-
-/**
- * @file templates/spi_lld.c
- * @brief SPI Driver subsystem low level driver source template
- * @addtogroup SPI_LLD
- * @{
- */
-
-#include "ch.h"
-#include "hal.h"
-
-#if CH_HAL_USE_SPI
-
-/*===========================================================================*/
-/* Low Level Driver exported variables. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver local variables. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver local functions. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver interrupt handlers. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Low Level Driver exported functions. */
-/*===========================================================================*/
-
-/**
- * @brief Low level SPI driver initialization.
- */
-void spi_lld_init(void) {
-
-}
-
-/**
- * @brief Configures and activates the SPI peripheral.
- *
- * @param[in] spip pointer to the @p SPIDriver object
- */
-void spi_lld_start(SPIDriver *spip) {
-
- if (spip->spd_state == SPI_STOP) {
- /* Clock activation.*/
- }
- /* Configuration.*/
-}
-
-/**
- * @brief Deactivates the SPI peripheral.
- *
- * @param[in] spip pointer to the @p SPIDriver object
- */
-void spi_lld_stop(SPIDriver *spip) {
-
-}
-
-/**
- * @brief Asserts the slave select signal and prepares for transfers.
- *
- * @param[in] spip pointer to the @p SPIDriver object
- */
-void spi_lld_select(SPIDriver *spip) {
-
-}
-
-/**
- * @brief Deasserts the slave select signal.
- * @details The previously selected peripheral is unselected.
- *
- * @param[in] spip pointer to the @p SPIDriver object
- */
-void spi_lld_unselect(SPIDriver *spip) {
-
-}
-
-/**
- * @brief Ignores data on the SPI bus.
- * @details This function transmits a series of idle words on the SPI bus and
- * ignores the received data. This function can be invoked even
- * when a slave select signal has not been yet asserted.
- *
- * @param[in] spip pointer to the @p SPIDriver object
- * @param[in] n number of words to be ignored
- */
-void spi_lld_ignore(SPIDriver *spip, size_t n) {
-
-}
-
-/**
- * @brief Exchanges data on the SPI bus.
- * @details This function performs a simultaneous transmit/receive operation.
- *
- * @param[in] spip pointer to the @p SPIDriver object
- * @param[in] n number of words to be exchanged
- * @param[in] txbuf the pointer to the transmit buffer
- * @param[out] rxbuf the pointer to the receive buffer
- *
- * @note The buffers are organized as uint8_t arrays for data sizes below or
- * equal to 8 bits else it is organized as uint16_t arrays.
- */
-void spi_lld_exchange(SPIDriver *spip, size_t n,
- const void *txbuf, void *rxbuf) {
-
-}
-
-/**
- * @brief Sends data ever the SPI bus.
- *
- * @param[in] spip pointer to the @p SPIDriver object
- * @param[in] n number of words to send
- * @param[in] txbuf the pointer to the transmit buffer
- *
- * @note The buffers are organized as uint8_t arrays for data sizes below or
- * equal to 8 bits else it is organized as uint16_t arrays.
- */
-void spi_lld_send(SPIDriver *spip, size_t n, const void *txbuf) {
-
-}
-
-/**
- * @brief Receives data from the SPI bus.
- *
- * @param[in] spip pointer to the @p SPIDriver object
- * @param[in] n number of words to receive
- * @param[out] rxbuf the pointer to the receive buffer
- *
- * @note The buffers are organized as uint8_t arrays for data sizes below or
- * equal to 8 bits else it is organized as uint16_t arrays.
- */
-void spi_lld_receive(SPIDriver *spip, size_t n, void *rxbuf) {
-
-}
-
-#endif /* CH_HAL_USE_SPI */
-
-/** @} */
diff --git a/os/hal/templates/spi_lld.h b/os/hal/templates/spi_lld.h
deleted file mode 100644
index 907bad859..000000000
--- a/os/hal/templates/spi_lld.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 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/>.
-*/
-
-/**
- * @file templates/spi_lld.h
- * @brief SPI Driver subsystem low level driver header template
- * @addtogroup SPI_LLD
- * @{
- */
-
-#ifndef _SPI_LLD_H_
-#define _SPI_LLD_H_
-
-#if CH_HAL_USE_SPI
-
-/*===========================================================================*/
-/* Driver pre-compile time settings. */
-/*===========================================================================*/
-
-/**
- * @brief Enables the mutual exclusion APIs on the SPI bus.
- */
-#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
-#define SPI_USE_MUTUAL_EXCLUSION TRUE
-#endif
-
-#if SPI_USE_MUTUAL_EXCLUSION && !CH_USE_MUTEXES && !CH_USE_SEMAPHORES
-#error "SPI_USE_MUTUAL_EXCLUSION requires CH_USE_MUTEXES and/or CH_USE_SEMAPHORES"
-#endif
-
-/*===========================================================================*/
-/* Driver data structures and types. */
-/*===========================================================================*/
-
-/**
- * @brief Driver configuration structure.
- */
-typedef struct {
-
-} SPIConfig;
-
-/**
- * @brief Structure representing a SPI driver.
- */
-typedef struct {
- /**
- * @brief Driver state.
- */
- spistate_t spd_state;
-#if SPI_USE_MUTUAL_EXCLUSION || defined(__DOXYGEN__)
-#if CH_USE_MUTEXES || defined(__DOXYGEN__)
- /**
- * @brief Mutex protecting the bus.
- */
- Mutex spd_mutex;
-#elif CH_USE_SEMAPHORES
- Semaphore spd_semaphore;
-#endif
-#endif /* SPI_USE_MUTUAL_EXCLUSION */
- /**
- * @brief Current configuration data.
- */
- const SPIConfig *spd_config;
- /* End of the mandatory fields.*/
-} SPIDriver;
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
- void spi_lld_init(void);
- void spi_lld_start(SPIDriver *spip);
- void spi_lld_stop(SPIDriver *spip);
- void spi_lld_select(SPIDriver *spip);
- void spi_lld_unselect(SPIDriver *spip);
- void spi_lld_ignore(SPIDriver *spip, size_t n);
- void spi_lld_exchange(SPIDriver *spip, size_t n,
- const void *txbuf, void *rxbuf);
- void spi_lld_send(SPIDriver *spip, size_t n, const void *txbuf);
- void spi_lld_receive(SPIDriver *spip, size_t n, void *rxbuf);
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* CH_HAL_USE_SPI */
-
-#endif /* _SPI_LLD_H_ */
-
-/** @} */