aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/platforms/LPC11xx
diff options
context:
space:
mode:
Diffstat (limited to 'os/hal/platforms/LPC11xx')
-rw-r--r--os/hal/platforms/LPC11xx/pal_lld.c12
-rw-r--r--os/hal/platforms/LPC11xx/pal_lld.h2
2 files changed, 12 insertions, 2 deletions
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.