aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/platforms/SPC5xx
diff options
context:
space:
mode:
Diffstat (limited to 'os/hal/platforms/SPC5xx')
-rw-r--r--os/hal/platforms/SPC5xx/EDMA_v1/spc5_edma.c65
-rw-r--r--os/hal/platforms/SPC5xx/EDMA_v1/spc5_edma.h102
-rw-r--r--os/hal/platforms/SPC5xx/EQADC_v1/adc_lld.c2
-rw-r--r--os/hal/platforms/SPC5xx/ESCI_v1/serial_lld.c2
-rw-r--r--os/hal/platforms/SPC5xx/LINFlex_v1/serial_lld.c2
-rw-r--r--os/hal/platforms/SPC5xx/SIUL_v1/pal_lld.c2
-rw-r--r--os/hal/platforms/SPC5xx/SIU_v1/pal_lld.c2
7 files changed, 172 insertions, 5 deletions
diff --git a/os/hal/platforms/SPC5xx/EDMA_v1/spc5_edma.c b/os/hal/platforms/SPC5xx/EDMA_v1/spc5_edma.c
new file mode 100644
index 000000000..f2d9a58fa
--- /dev/null
+++ b/os/hal/platforms/SPC5xx/EDMA_v1/spc5_edma.c
@@ -0,0 +1,65 @@
+/*
+ ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010,
+ 2011,2012,2013 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 SPC5xx/edma.c
+ * @brief EDMA helper driver code.
+ *
+ * @addtogroup SPC5xx_EDMA
+ * @{
+ */
+
+#include "ch.h"
+#include "hal.h"
+
+/*===========================================================================*/
+/* Driver local definitions. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver exported variables. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver local variables and types. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver local functions. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver interrupt handlers. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver exported functions. */
+/*===========================================================================*/
+
+/**
+ * @brief EDMA driver initialization.
+ *
+ * @special
+ */
+void edmaInit(void) {
+
+}
+
+/** @} */
diff --git a/os/hal/platforms/SPC5xx/EDMA_v1/spc5_edma.h b/os/hal/platforms/SPC5xx/EDMA_v1/spc5_edma.h
new file mode 100644
index 000000000..39508fa6b
--- /dev/null
+++ b/os/hal/platforms/SPC5xx/EDMA_v1/spc5_edma.h
@@ -0,0 +1,102 @@
+/*
+ ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010,
+ 2011,2012,2013 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 SPC5xx/edma.h
+ * @brief EDMA helper driver header.
+ *
+ * @addtogroup SPC5xx_EDMA
+ * @{
+ */
+
+#ifndef _EDMA_H_
+#define _EDMA_H_
+
+/*===========================================================================*/
+/* Driver constants. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver pre-compile time settings. */
+/*===========================================================================*/
+
+/**
+ * @name Configuration options
+ * @{
+ */
+/**
+ * @brief XXX driver enable switch.
+ * @details If set to @p TRUE the support for XXX1 is included.
+ */
+#if !defined(PLATFORM_XXX_USE_XXX1) || defined(__DOXYGEN__)
+#define PLATFORM_XXX_USE_XXX1 FALSE
+#endif
+/** @} */
+
+/*===========================================================================*/
+/* Derived constants and error checks. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver data structures and types. */
+/*===========================================================================*/
+
+/**
+ * @brief Type of an EDMA TCD.
+ */
+typedef struct {
+ uint32_t word[8];
+} edma_tcd_t;
+
+/**
+ * @brief DMA ISR function type.
+ *
+ * @param[in] tcd pointer to the TCD associated to this ISR
+ * @param[in] p parameter for the registered function
+ */
+typedef void (*edma_isr_t)(edma_tcd_t *tcd, void *p);
+
+typedef struct {
+ stm32_dmaisr_t dma_func; /**< @brief DMA callback function. */
+ void *dma_param; /**< @brief DMA callback parameter. */
+
+} edma_channel_descriptor;
+
+/*===========================================================================*/
+/* Driver macros. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* External declarations. */
+/*===========================================================================*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+ void edmaInit(void);
+ edma_tcd_t *edmaAllocChannel(uint32_t periph_id, edma_isr_t isr);
+ void edmaReleaseChannel(edma_tcd_t *tcd);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _EDMA_H_ */
+
+/** @} */
diff --git a/os/hal/platforms/SPC5xx/EQADC_v1/adc_lld.c b/os/hal/platforms/SPC5xx/EQADC_v1/adc_lld.c
index 7aa82fb5d..28ff64d96 100644
--- a/os/hal/platforms/SPC5xx/EQADC_v1/adc_lld.c
+++ b/os/hal/platforms/SPC5xx/EQADC_v1/adc_lld.c
@@ -82,7 +82,7 @@ ADCDriver ADCD6;
#endif
/*===========================================================================*/
-/* Driver local variables. */
+/* Driver local variables and types. */
/*===========================================================================*/
/*===========================================================================*/
diff --git a/os/hal/platforms/SPC5xx/ESCI_v1/serial_lld.c b/os/hal/platforms/SPC5xx/ESCI_v1/serial_lld.c
index daa3ab86a..15cfb2a02 100644
--- a/os/hal/platforms/SPC5xx/ESCI_v1/serial_lld.c
+++ b/os/hal/platforms/SPC5xx/ESCI_v1/serial_lld.c
@@ -44,7 +44,7 @@ SerialDriver SD2;
#endif
/*===========================================================================*/
-/* Driver local variables. */
+/* Driver local variables and types. */
/*===========================================================================*/
/**
diff --git a/os/hal/platforms/SPC5xx/LINFlex_v1/serial_lld.c b/os/hal/platforms/SPC5xx/LINFlex_v1/serial_lld.c
index 9516a7f6a..b6c144b89 100644
--- a/os/hal/platforms/SPC5xx/LINFlex_v1/serial_lld.c
+++ b/os/hal/platforms/SPC5xx/LINFlex_v1/serial_lld.c
@@ -58,7 +58,7 @@ SerialDriver SD4;
#endif
/*===========================================================================*/
-/* Driver local variables. */
+/* Driver local variables and types. */
/*===========================================================================*/
/**
diff --git a/os/hal/platforms/SPC5xx/SIUL_v1/pal_lld.c b/os/hal/platforms/SPC5xx/SIUL_v1/pal_lld.c
index a5354f431..ba1577bac 100644
--- a/os/hal/platforms/SPC5xx/SIUL_v1/pal_lld.c
+++ b/os/hal/platforms/SPC5xx/SIUL_v1/pal_lld.c
@@ -34,7 +34,7 @@
/*===========================================================================*/
/*===========================================================================*/
-/* Driver local variables. */
+/* Driver local variables and types. */
/*===========================================================================*/
#if defined(SPC5_SIUL_SYSTEM_PINS)
diff --git a/os/hal/platforms/SPC5xx/SIU_v1/pal_lld.c b/os/hal/platforms/SPC5xx/SIU_v1/pal_lld.c
index 5619ed4e0..aab5b0b4d 100644
--- a/os/hal/platforms/SPC5xx/SIU_v1/pal_lld.c
+++ b/os/hal/platforms/SPC5xx/SIU_v1/pal_lld.c
@@ -34,7 +34,7 @@
/*===========================================================================*/
/*===========================================================================*/
-/* Driver local variables. */
+/* Driver local variables and types. */
/*===========================================================================*/
#if defined(SPC5_SIU_SYSTEM_PINS)