aboutsummaryrefslogtreecommitdiffstats
path: root/os
diff options
context:
space:
mode:
authortheShed <theShed@35acf78f-673a-0410-8e92-d51de3d6d3f4>2013-03-15 21:57:43 +0000
committertheShed <theShed@35acf78f-673a-0410-8e92-d51de3d6d3f4>2013-03-15 21:57:43 +0000
commitf0b4615ece04a96c3b0e8ee23af775abacbc875b (patch)
tree4e148ee17b19e417eeab89c6dc7a869130a71b2e /os
parentb3b08c8230666b29f814be862ffc94c28a61bd53 (diff)
downloadChibiOS-f0b4615ece04a96c3b0e8ee23af775abacbc875b.tar.gz
ChibiOS-f0b4615ece04a96c3b0e8ee23af775abacbc875b.tar.bz2
ChibiOS-f0b4615ece04a96c3b0e8ee23af775abacbc875b.zip
LPC8xx EXT driver
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@5436 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os')
-rw-r--r--os/hal/platforms/LPC8xx/LPC8xx.h2
-rw-r--r--os/hal/platforms/LPC8xx/ext_lld.c172
-rw-r--r--os/hal/platforms/LPC8xx/ext_lld.h156
-rw-r--r--os/hal/platforms/LPC8xx/ext_lld_isr.c198
-rw-r--r--os/hal/platforms/LPC8xx/ext_lld_isr.h133
-rw-r--r--os/hal/platforms/LPC8xx/pal_lld.c2
-rw-r--r--os/hal/platforms/LPC8xx/platform.mk4
7 files changed, 664 insertions, 3 deletions
diff --git a/os/hal/platforms/LPC8xx/LPC8xx.h b/os/hal/platforms/LPC8xx/LPC8xx.h
index 6cb473ee2..41fe7da21 100644
--- a/os/hal/platforms/LPC8xx/LPC8xx.h
+++ b/os/hal/platforms/LPC8xx/LPC8xx.h
@@ -89,7 +89,7 @@ typedef enum IRQn
Reserved9_IRQn = 21, /*!< Reserved Interrupt */
Reserved10_IRQn = 22, /*!< Reserved Interrupt */
Reserved11_IRQn = 23, /*!< Reserved Interrupt */
- PININT0_IRQn = 24, /*!< External Interrupt 0 */
+ PININT0_IRQn = 24, /*!< External Interrupt 0 */
PININT1_IRQn = 25, /*!< External Interrupt 1 */
PININT2_IRQn = 26, /*!< External Interrupt 2 */
PININT3_IRQn = 27, /*!< External Interrupt 3 */
diff --git a/os/hal/platforms/LPC8xx/ext_lld.c b/os/hal/platforms/LPC8xx/ext_lld.c
new file mode 100644
index 000000000..5c2a729f8
--- /dev/null
+++ b/os/hal/platforms/LPC8xx/ext_lld.c
@@ -0,0 +1,172 @@
+/*
+ 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 LPC8xx/ext_lld.c
+ * @brief LPC8xx EXT subsystem low level driver source.
+ *
+ * @addtogroup EXT
+ * @{
+ */
+
+#include "ch.h"
+#include "hal.h"
+
+#if HAL_USE_EXT || defined(__DOXYGEN__)
+
+#include "ext_lld_isr.h"
+
+/*===========================================================================*/
+/* Driver local definitions. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver exported variables. */
+/*===========================================================================*/
+
+/**
+ * @brief EXTD1 driver identifier.
+ */
+EXTDriver EXTD1;
+
+/*===========================================================================*/
+/* Driver local variables and types. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver local functions. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver interrupt handlers. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver exported functions. */
+/*===========================================================================*/
+
+/**
+ * @brief Low level EXT driver initialization.
+ *
+ * @notapi
+ */
+void ext_lld_init(void) {
+
+ /* Driver initialization.*/
+ extObjectInit(&EXTD1);
+}
+
+/**
+ * @brief Configures and activates the EXT peripheral.
+ *
+ * @param[in] extp pointer to the @p EXTDriver object
+ *
+ * @notapi
+ */
+void ext_lld_start(EXTDriver *extp) {
+ int i;
+
+ LPC_SYSCON->SYSAHBCLKCTRL |= (1<<6);
+ /* Configuration of automatic channels.*/
+ for (i = 0; i < EXT_MAX_CHANNELS; i++)
+ if (extp->config->channels[i].mode & EXT_CH_MODE_AUTOSTART)
+ ext_lld_channel_enable(extp, i);
+ else
+ ext_lld_channel_disable(extp, i);
+}
+
+/**
+ * @brief Deactivates the EXT peripheral.
+ *
+ * @param[in] extp pointer to the @p EXTDriver object
+ *
+ * @notapi
+ */
+void ext_lld_stop(EXTDriver *extp) {
+ int i;
+
+ if (extp->state == EXT_ACTIVE)
+ for (i = 0; i < EXT_MAX_CHANNELS; i++)
+ ext_lld_exti_irq_disable(i);
+
+ LPC_PIN_INT->ISEL = 0;
+ LPC_PIN_INT->CIENR = EXT_CHANNELS_MASK;
+ LPC_PIN_INT->RISE = EXT_CHANNELS_MASK;
+ LPC_PIN_INT->FALL = EXT_CHANNELS_MASK;
+ LPC_PIN_INT->IST = EXT_CHANNELS_MASK;
+
+ /* Leave clock enabled, its shared with GPIO */
+ /*LPC_SYSCON->SYSAHBCLKCTRL &= ~(1<<6);*/
+}
+
+/**
+ * @brief Enables an EXT channel.
+ *
+ * @param[in] extp pointer to the @p EXTDriver object
+ * @param[in] channel channel to be enabled
+ *
+ * @notapi
+ */
+void ext_lld_channel_enable(EXTDriver *extp, expchannel_t channel) {
+
+ /* program the IOpin for this channel */
+ LPC_SYSCON->PINTSEL[channel] = extp->config->channels[channel].iopin;
+
+ /* Programming edge irq enables */
+ if (extp->config->channels[channel].mode & EXT_CH_MODE_RISING_EDGE)
+ LPC_PIN_INT->SIENR = (1 << channel);
+ else
+ LPC_PIN_INT->CIENR = (1 << channel);
+
+ if (extp->config->channels[channel].mode & EXT_CH_MODE_FALLING_EDGE)
+ LPC_PIN_INT->SIENF = (1 << channel);
+ else
+ LPC_PIN_INT->CIENF = (1 << channel);
+
+ LPC_PIN_INT->RISE = (1<<channel);
+ LPC_PIN_INT->FALL = (1<<channel);
+ LPC_PIN_INT->IST = (1<<channel);
+
+ ext_lld_exti_irq_enable( channel );
+}
+
+/**
+ * @brief Disables an EXT channel.
+ *
+ * @param[in] extp pointer to the @p EXTDriver object
+ * @param[in] channel channel to be disabled
+ *
+ * @notapi
+ */
+void ext_lld_channel_disable(EXTDriver *extp, expchannel_t channel) {
+ (void)extp;
+
+ ext_lld_exti_irq_disable(channel);
+
+ LPC_PIN_INT->ISEL &= ~(1 << channel);
+ LPC_PIN_INT->CIENR = (1 << channel);
+ LPC_PIN_INT->RISE = (1 << channel);
+ LPC_PIN_INT->FALL = (1 << channel);
+ LPC_PIN_INT->IST = (1 << channel);
+}
+
+#endif /* HAL_USE_EXT */
+
+/** @} */
diff --git a/os/hal/platforms/LPC8xx/ext_lld.h b/os/hal/platforms/LPC8xx/ext_lld.h
new file mode 100644
index 000000000..25cf0b123
--- /dev/null
+++ b/os/hal/platforms/LPC8xx/ext_lld.h
@@ -0,0 +1,156 @@
+/*
+ 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 LPC8xx/ext_lld.h
+ * @brief LPC8xx EXT subsystem low level driver header.
+ *
+ * @addtogroup EXT
+ * @{
+ */
+
+#ifndef _EXT_LLD_H_
+#define _EXT_LLD_H_
+
+#if HAL_USE_EXT || defined(__DOXYGEN__)
+
+/*===========================================================================*/
+/* Driver constants. */
+/*===========================================================================*/
+
+/**
+ * @brief Available number of EXT channels.
+ */
+#define EXT_MAX_CHANNELS 8
+
+/**
+ * @brief Mask of the available channels.
+ */
+#define EXT_CHANNELS_MASK ((1 << EXT_MAX_CHANNELS) - 1)
+
+/** @} */
+
+/*===========================================================================*/
+/* Driver pre-compile time settings. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Derived constants and error checks. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver data structures and types. */
+/*===========================================================================*/
+
+/**
+ * @brief EXT channel identifier.
+ */
+typedef uint32_t expchannel_t;
+
+/**
+
+ * @brief EXT channel callback reason.
+ */
+typedef uint32_t expreason_t;
+
+/**
+ * @brief Type of an EXT generic notification callback.
+ *
+ * @param[in] extp pointer to the @p EXPDriver object triggering the
+ * callback
+ */
+typedef void (*extcallback_t)(EXTDriver *extp,
+ expchannel_t channel,
+ expreason_t reason);
+
+/**
+ * @brief Channel configuration structure.
+ */
+typedef struct {
+ /**
+ * @brief Channel mode.
+ */
+ uint8_t mode;
+ /**
+ * @brief IO Pin.
+ */
+ uint8_t iopin;
+ /**
+ * @brief Channel callback.
+ */
+ extcallback_t cb;
+} EXTChannelConfig;
+
+/**
+ * @brief Driver configuration structure.
+ * @note It could be empty on some architectures.
+ */
+typedef struct {
+ /**
+ * @brief Channel configurations.
+ */
+ EXTChannelConfig channels[EXT_MAX_CHANNELS];
+ /* End of the mandatory fields.*/
+} EXTConfig;
+
+/**
+ * @brief Structure representing an EXT driver.
+ */
+struct EXTDriver {
+ /**
+ * @brief Driver state.
+ */
+ extstate_t state;
+ /**
+ * @brief Current configuration data.
+ */
+ const EXTConfig *config;
+ /* End of the mandatory fields.*/
+};
+
+/*===========================================================================*/
+/* Driver macros. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* External declarations. */
+/*===========================================================================*/
+
+#if !defined(__DOXYGEN__)
+extern EXTDriver EXTD1;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+ void ext_lld_init(void);
+ void ext_lld_start(EXTDriver *extp);
+ void ext_lld_stop(EXTDriver *extp);
+ void ext_lld_channel_enable(EXTDriver *extp, expchannel_t channel);
+ void ext_lld_channel_disable(EXTDriver *extp, expchannel_t channel);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* HAL_USE_EXT */
+
+#endif /* _EXT_LLD_H_ */
+
+/** @} */
diff --git a/os/hal/platforms/LPC8xx/ext_lld_isr.c b/os/hal/platforms/LPC8xx/ext_lld_isr.c
new file mode 100644
index 000000000..58331eddc
--- /dev/null
+++ b/os/hal/platforms/LPC8xx/ext_lld_isr.c
@@ -0,0 +1,198 @@
+/*
+ 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 LPC8xx/ext_lld_isr.c
+ * @brief LPC8xx EXT subsystem low level driver ISR code.
+ *
+ * @addtogroup EXT
+ * @{
+ */
+
+#include "ch.h"
+#include "hal.h"
+
+#if HAL_USE_EXT || defined(__DOXYGEN__)
+
+#include "ext_lld_isr.h"
+
+/*===========================================================================*/
+/* Driver local definitions. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver exported variables. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver local variables and types. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver local functions. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver interrupt handlers. */
+/*===========================================================================*/
+static void ext_lld_interrupt( uint32_t n ) {
+ uint32_t reason;
+
+ reason = ((LPC_PIN_INT->RISE)>> n ) & 0x01;
+ reason |= ((LPC_PIN_INT->FALL)>>(n-1)) & 0x02;
+ LPC_PIN_INT->RISE = (1<<n);
+ LPC_PIN_INT->FALL = (1<<n);
+ LPC_PIN_INT->IST = (1<<n);
+ EXTD1.config->channels[n].cb(&EXTD1, n, reason);
+}
+
+/**
+ * @brief EXT[0] interrupt handler.
+ *
+ * @isr
+ */
+CH_IRQ_HANDLER(VectorA0) {
+
+ CH_IRQ_PROLOGUE();
+ ext_lld_interrupt(0);
+ CH_IRQ_EPILOGUE();
+}
+
+/**
+ * @brief EXT[1] interrupt handler.
+ *
+ * @isr
+ */
+CH_IRQ_HANDLER(VectorA4) {
+
+ CH_IRQ_PROLOGUE();
+ ext_lld_interrupt(1);
+ CH_IRQ_EPILOGUE();
+}
+
+/**
+ * @brief EXT[2] interrupt handler.
+ *
+ * @isr
+ */
+CH_IRQ_HANDLER(VectorA8) {
+
+ CH_IRQ_PROLOGUE();
+ ext_lld_interrupt(2);
+ CH_IRQ_EPILOGUE();
+}
+
+/**
+ * @brief EXT[3] interrupt handler.
+ *
+ * @isr
+ */
+CH_IRQ_HANDLER(VectorAC) {
+
+ CH_IRQ_PROLOGUE();
+ ext_lld_interrupt(3);
+ CH_IRQ_EPILOGUE();
+}
+
+/**
+ * @brief EXT[4] interrupt handler.
+ *
+ * @isr
+ */
+CH_IRQ_HANDLER(VectorB0) {
+
+ CH_IRQ_PROLOGUE();
+ ext_lld_interrupt(4);
+ CH_IRQ_EPILOGUE();
+}
+
+/**
+ * @brief EXT[5] interrupt handler.
+ *
+ * @isr
+ */
+CH_IRQ_HANDLER(VectorB4) {
+
+ CH_IRQ_PROLOGUE();
+ ext_lld_interrupt(5);
+ CH_IRQ_EPILOGUE();
+}
+
+/**
+ * @brief EXT[6] interrupt handler.
+ *
+ * @isr
+ */
+CH_IRQ_HANDLER(VectorB8) {
+
+ CH_IRQ_PROLOGUE();
+ ext_lld_interrupt(6);
+ CH_IRQ_EPILOGUE();
+}
+
+/**
+ * @brief EXT[7] interrupt handler.
+ *
+ * @isr
+ */
+CH_IRQ_HANDLER(VectorBC) {
+
+ CH_IRQ_PROLOGUE();
+ ext_lld_interrupt(7);
+ CH_IRQ_EPILOGUE();
+}
+
+/*===========================================================================*/
+/* Driver exported functions. */
+/*===========================================================================*/
+static const uint8_t LPC8xx_EXT_EXTIn_IRQ_PRIORITY[] =
+ { LPC8xx_EXT_EXTI0_IRQ_PRIORITY,
+ LPC8xx_EXT_EXTI1_IRQ_PRIORITY,
+ LPC8xx_EXT_EXTI2_IRQ_PRIORITY,
+ LPC8xx_EXT_EXTI3_IRQ_PRIORITY,
+ LPC8xx_EXT_EXTI4_IRQ_PRIORITY,
+ LPC8xx_EXT_EXTI5_IRQ_PRIORITY,
+ LPC8xx_EXT_EXTI6_IRQ_PRIORITY,
+ LPC8xx_EXT_EXTI7_IRQ_PRIORITY };
+
+/**
+ * @brief Enables EXTI IRQ sources.
+ *
+ * @notapi
+ */
+void ext_lld_exti_irq_enable( uint32_t exti_n ) {
+
+ nvicEnableVector(PININT0_IRQn + exti_n,
+ CORTEX_PRIORITY_MASK(LPC8xx_EXT_EXTIn_IRQ_PRIORITY[exti_n]));
+}
+
+/**
+ * @brief Disables EXTI IRQ sources.
+ *
+ * @notapi
+ */
+void ext_lld_exti_irq_disable( uint32_t exti_n ) {
+
+ nvicDisableVector(PININT0_IRQn + exti_n);
+}
+
+#endif /* HAL_USE_EXT */
+
+/** @} */
diff --git a/os/hal/platforms/LPC8xx/ext_lld_isr.h b/os/hal/platforms/LPC8xx/ext_lld_isr.h
new file mode 100644
index 000000000..a79c04b31
--- /dev/null
+++ b/os/hal/platforms/LPC8xx/ext_lld_isr.h
@@ -0,0 +1,133 @@
+/*
+ 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 LPC8xx/ext_lld_isr.h
+ * @brief LPC8xx EXT subsystem low level driver ISR header.
+ *
+ * @addtogroup EXT
+ * @{
+ */
+
+#ifndef _EXT_LLD_ISR_H_
+#define _EXT_LLD_ISR_H_
+
+#if HAL_USE_EXT || defined(__DOXYGEN__)
+
+/*===========================================================================*/
+/* Driver constants. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver pre-compile time settings. */
+/*===========================================================================*/
+
+/**
+ * @name Configuration options
+ * @{
+ */
+/**
+ * @brief EXTI0 interrupt priority level setting.
+ */
+#if !defined(LPC8xx_EXT_EXTI0_IRQ_PRIORITY) || defined(__DOXYGEN__)
+#define LPC8xx_EXT_EXTI0_IRQ_PRIORITY 3
+#endif
+
+/**
+ * @brief EXTI1 interrupt priority level setting.
+ */
+#if !defined(LPC8xx_EXT_EXTI1_IRQ_PRIORITY) || defined(__DOXYGEN__)
+#define LPC8xx_EXT_EXTI1_IRQ_PRIORITY 3
+#endif
+
+/**
+ * @brief EXTI2 interrupt priority level setting.
+ */
+#if !defined(LPC8xx_EXT_EXTI2_IRQ_PRIORITY) || defined(__DOXYGEN__)
+#define LPC8xx_EXT_EXTI2_IRQ_PRIORITY 3
+#endif
+
+/**
+ * @brief EXTI3 interrupt priority level setting.
+ */
+#if !defined(LPC8xx_EXT_EXTI3_IRQ_PRIORITY) || defined(__DOXYGEN__)
+#define LPC8xx_EXT_EXTI3_IRQ_PRIORITY 3
+#endif
+
+/**
+ * @brief EXTI4 interrupt priority level setting.
+ */
+#if !defined(LPC8xx_EXT_EXTI4_IRQ_PRIORITY) || defined(__DOXYGEN__)
+#define LPC8xx_EXT_EXTI4_IRQ_PRIORITY 3
+#endif
+
+/**
+ * @brief EXTI5 interrupt priority level setting.
+ */
+#if !defined(LPC8xx_EXT_EXTI5_IRQ_PRIORITY) || defined(__DOXYGEN__)
+#define LPC8xx_EXT_EXTI5_IRQ_PRIORITY 3
+#endif
+
+/**
+ * @brief EXTI6 interrupt priority level setting.
+ */
+#if !defined(LPC8xx_EXT_EXTI6_IRQ_PRIORITY) || defined(__DOXYGEN__)
+#define LPC8xx_EXT_EXTI6_IRQ_PRIORITY 3
+#endif
+
+/**
+ * @brief EXTI7 interrupt priority level setting.
+ */
+#if !defined(LPC8xx_EXT_EXTI7_IRQ_PRIORITY) || defined(__DOXYGEN__)
+#define LPC8xx_EXT_EXTI7_IRQ_PRIORITY 3
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/* Derived constants and error checks. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver data structures and types. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver macros. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* External declarations. */
+/*===========================================================================*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+ void ext_lld_exti_irq_enable( uint32_t exti_n );
+ void ext_lld_exti_irq_disable( uint32_t exti_n );
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* HAL_USE_EXT */
+
+#endif /* _EXT_LLD_ISR_H_ */
+
+/** @} */
diff --git a/os/hal/platforms/LPC8xx/pal_lld.c b/os/hal/platforms/LPC8xx/pal_lld.c
index 50bf20870..4f080775c 100644
--- a/os/hal/platforms/LPC8xx/pal_lld.c
+++ b/os/hal/platforms/LPC8xx/pal_lld.c
@@ -54,7 +54,7 @@
* @brief LPC8xx I/O ports configuration.
* @details GPIO unit registers initialization.
*
- * @param[in] config the LPC11xx ports configuration
+ * @param[in] config the LPC8xx ports configuration
*
* @notapi
*/
diff --git a/os/hal/platforms/LPC8xx/platform.mk b/os/hal/platforms/LPC8xx/platform.mk
index 3818f1021..be0190665 100644
--- a/os/hal/platforms/LPC8xx/platform.mk
+++ b/os/hal/platforms/LPC8xx/platform.mk
@@ -2,7 +2,9 @@
PLATFORMSRC = ${CHIBIOS}/os/hal/platforms/LPC8xx/hal_lld.c \
${CHIBIOS}/os/hal/platforms/LPC8xx/gpt_lld.c \
${CHIBIOS}/os/hal/platforms/LPC8xx/pal_lld.c \
- ${CHIBIOS}/os/hal/platforms/LPC8xx/serial_lld.c
+ ${CHIBIOS}/os/hal/platforms/LPC8xx/serial_lld.c \
+ ${CHIBIOS}/os/hal/platforms/LPC8xx/ext_lld.c \
+ ${CHIBIOS}/os/hal/platforms/LPC8xx/ext_lld_isr.c
# Required include directories
PLATFORMINC = ${CHIBIOS}/os/hal/platforms/LPC8xx