From b5b34a5b9b97fa19bac7c5c830885c757223bbe2 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sun, 16 May 2010 12:17:39 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1928 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/platforms/LPC11xx/pal_lld.c | 12 +++++++++++- os/hal/platforms/LPC11xx/pal_lld.h | 2 +- os/hal/platforms/LPC13xx/pal_lld.c | 12 +++++++++++- os/hal/platforms/LPC13xx/pal_lld.h | 2 +- 4 files changed, 24 insertions(+), 4 deletions(-) (limited to 'os') diff --git a/os/hal/platforms/LPC11xx/pal_lld.c b/os/hal/platforms/LPC11xx/pal_lld.c index 7c04673ca..d4112fe2c 100644 --- a/os/hal/platforms/LPC11xx/pal_lld.c +++ b/os/hal/platforms/LPC11xx/pal_lld.c @@ -87,7 +87,17 @@ void _pal_lld_setgroupmode(ioportid_t port, ioportmask_t mask, uint_fast8_t mode) { - (void)port; (void)mask; (void)mode; + switch (mode & PAL_MODE_MASK) { + case PAL_MODE_RESET: + case PAL_MODE_INPUT: + port->DIR &= ~mask; + break; + case PAL_MODE_UNCONNECTED: + palSetPort(port, PAL_WHOLE_PORT); + case PAL_MODE_OUTPUT_PUSHPULL: + port->DIR |= mask; + break; + } } #endif /* CH_HAL_USE_PAL */ diff --git a/os/hal/platforms/LPC11xx/pal_lld.h b/os/hal/platforms/LPC11xx/pal_lld.h index a1bff17f3..55f2ea2b9 100644 --- a/os/hal/platforms/LPC11xx/pal_lld.h +++ b/os/hal/platforms/LPC11xx/pal_lld.h @@ -85,7 +85,7 @@ typedef struct { * @brief Whole port mask. * @brief This macro specifies all the valid bits into a port. */ -#define PAL_WHOLE_PORT ((ioportmask_t)0xFFFFFFFF) +#define PAL_WHOLE_PORT ((ioportmask_t)0xFFF) /** * @brief Digital I/O port sized unsigned type. diff --git a/os/hal/platforms/LPC13xx/pal_lld.c b/os/hal/platforms/LPC13xx/pal_lld.c index a38b79e09..f63650c0f 100644 --- a/os/hal/platforms/LPC13xx/pal_lld.c +++ b/os/hal/platforms/LPC13xx/pal_lld.c @@ -87,7 +87,17 @@ void _pal_lld_setgroupmode(ioportid_t port, ioportmask_t mask, uint_fast8_t mode) { - (void)port; (void)mask; (void)mode; + switch (mode & PAL_MODE_MASK) { + case PAL_MODE_RESET: + case PAL_MODE_INPUT: + port->DIR &= ~mask; + break; + case PAL_MODE_UNCONNECTED: + palSetPort(port, PAL_WHOLE_PORT); + case PAL_MODE_OUTPUT_PUSHPULL: + port->DIR |= mask; + break; + } } #endif /* CH_HAL_USE_PAL */ diff --git a/os/hal/platforms/LPC13xx/pal_lld.h b/os/hal/platforms/LPC13xx/pal_lld.h index b8dd9d4d9..9e3c33695 100644 --- a/os/hal/platforms/LPC13xx/pal_lld.h +++ b/os/hal/platforms/LPC13xx/pal_lld.h @@ -85,7 +85,7 @@ typedef struct { * @brief Whole port mask. * @brief This macro specifies all the valid bits into a port. */ -#define PAL_WHOLE_PORT ((ioportmask_t)0xFFFFFFFF) +#define PAL_WHOLE_PORT ((ioportmask_t)0xFFF) /** * @brief Digital I/O port sized unsigned type. -- cgit v1.2.3