aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/platforms/SPC5xx/LINFlex_v1/serial_lld.h
diff options
context:
space:
mode:
Diffstat (limited to 'os/hal/platforms/SPC5xx/LINFlex_v1/serial_lld.h')
-rw-r--r--os/hal/platforms/SPC5xx/LINFlex_v1/serial_lld.h69
1 files changed, 47 insertions, 22 deletions
diff --git a/os/hal/platforms/SPC5xx/LINFlex_v1/serial_lld.h b/os/hal/platforms/SPC5xx/LINFlex_v1/serial_lld.h
index fcc2273bd..0568310a3 100644
--- a/os/hal/platforms/SPC5xx/LINFlex_v1/serial_lld.h
+++ b/os/hal/platforms/SPC5xx/LINFlex_v1/serial_lld.h
@@ -40,41 +40,60 @@
/*===========================================================================*/
/**
- * @brief eSCI-A driver enable switch.
- * @details If set to @p TRUE the support for eSCI-A is included.
- * @note The default is @p TRUE.
+ * @brief LINFlex-0 driver enable switch.
+ * @details If set to @p TRUE the support for LINFlex-0 is included.
*/
-#if !defined(USE_SPC563_ESCIA) || defined(__DOXYGEN__)
-#define USE_SPC563_ESCIA FALSE
+#if !defined(SPC5_SERIAL_USE_LINFLEX0) || defined(__DOXYGEN__)
+#define SPC5_SERIAL_USE_LINFLEX0 TRUE
#endif
/**
- * @brief eSCI-B driver enable switch.
- * @details If set to @p TRUE the support for eSCI-B is included.
- * @note The default is @p TRUE.
+ * @brief LINFlex-1 driver enable switch.
+ * @details If set to @p TRUE the support for LINFlex-1 is included.
*/
-#if !defined(USE_SPC563_ESCIB) || defined(__DOXYGEN__)
-#define USE_SPC563_ESCIB FALSE
+#if !defined(SPC5_SERIAL_USE_LINFLEX1) || defined(__DOXYGEN__)
+#define SPC5_SERIAL_USE_LINFLEX1 TRUE
#endif
/**
- * @brief eSCI-A interrupt priority level setting.
+ * @brief LINFlex-0 interrupt priority level setting.
*/
-#if !defined(SPC563_ESCIA_PRIORITY) || defined(__DOXYGEN__)
-#define SPC563_ESCIA_PRIORITY 8
+#if !defined(SPC5_SERIAL_LINFLEX0_PRIORITY) || defined(__DOXYGEN__)
+#define SPC5_SERIAL_LINFLEX0_PRIORITY 8
#endif
/**
- * @brief eSCI-B interrupt priority level setting.
+ * @brief LINFlex-1 interrupt priority level setting.
*/
-#if !defined(SPC563_ESCIB_PRIORITY) || defined(__DOXYGEN__)
-#define SPC563_ESCIB_PRIORITY 8
+#if !defined(SPC5_SERIAL_LINFLEX1_PRIORITY) || defined(__DOXYGEN__)
+#define SPC5_SERIAL_LINFLEX1_PRIORITY 8
#endif
/*===========================================================================*/
/* Derived constants and error checks. */
/*===========================================================================*/
+#if SPC5_SERIAL_USE_LINFLEX0 && !SPC5_HAS_LINFLEX0
+#error "LINFlex-0 not present in the selected device"
+#endif
+
+#if SPC5_SERIAL_USE_LINFLEX1 && !SPC5_HAS_LINFLEX1
+#error "LINFlex-1 not present in the selected device"
+#endif
+
+#if SPC5_SERIAL_USE_LINFLEX2 && !SPC5_HAS_LINFLEX2
+#error "LINFlex-2 not present in the selected device"
+#endif
+
+#if SPC5_SERIAL_USE_LINFLEX3 && !SPC5_HAS_LINFLEX3
+#error "LINFlex-3 not present in the selected device"
+#endif
+
+#if !SPC5_SERIAL_USE_LINFLEX0 && !SPC5_SERIAL_USE_LINFLEX1 && \
+ !SPC5_SERIAL_USE_LINFLEX2 && !SPC5_SERIAL_USE_LINFLEX3
+#error "SERIAL driver activated but no LINFlex peripheral assigned"
+#endif
+
/*===========================================================================*/
/* Driver data structures and types. */
/*===========================================================================*/
@@ -91,11 +110,11 @@ typedef struct {
/**
* @brief Bit rate.
*/
- uint32_t sc_speed;
+ uint32_t speed;
/**
* @brief Mode flags.
*/
- uint8_t sc_mode;
+ uint8_t mode;
} SerialConfig;
/**
@@ -114,8 +133,8 @@ typedef struct {
/* Output circular buffer.*/ \
uint8_t ob[SERIAL_BUFFERS_SIZE]; \
/* End of the mandatory fields.*/ \
- /* Pointer to the volatile eSCI registers block.*/ \
- volatile struct ESCI_tag *escip;
+ /* Pointer to the volatile LINFlex registers block.*/ \
+ volatile struct LINFLEX_tag *linflexp;
/*===========================================================================*/
/* Driver macros. */
@@ -125,12 +144,18 @@ typedef struct {
/* External declarations. */
/*===========================================================================*/
-#if USE_SPC563_ESCIA && !defined(__DOXYGEN__)
+#if SPC5_SERIAL_USE_LINFLEX0 && !defined(__DOXYGEN__)
extern SerialDriver SD1;
#endif
-#if USE_SPC563_ESCIB && !defined(__DOXYGEN__)
+#if SPC5_SERIAL_USE_LINFLEX1 && !defined(__DOXYGEN__)
extern SerialDriver SD2;
#endif
+#if SPC5_SERIAL_USE_LINFLEX2 && !defined(__DOXYGEN__)
+extern SerialDriver SD3;
+#endif
+#if SPC5_SERIAL_USE_LINFLEX3 && !defined(__DOXYGEN__)
+extern SerialDriver SD4;
+#endif
#ifdef __cplusplus
extern "C" {