aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/platforms
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2010-04-02 13:28:54 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2010-04-02 13:28:54 +0000
commit946e895798593421d93e9d5f510504405f9e1c8d (patch)
treefc0b893e0145b8063e2d697a1e9189a7195e4924 /os/hal/platforms
parent3b451678d40e481f5ffd05b93c40aeaa812991b6 (diff)
downloadChibiOS-946e895798593421d93e9d5f510504405f9e1c8d.tar.gz
ChibiOS-946e895798593421d93e9d5f510504405f9e1c8d.tar.bz2
ChibiOS-946e895798593421d93e9d5f510504405f9e1c8d.zip
LPC111x PAL driver complete except pin setup functions.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1833 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal/platforms')
-rw-r--r--os/hal/platforms/LPC111x/pal_lld.c1
-rw-r--r--os/hal/platforms/LPC111x/pal_lld.h82
2 files changed, 17 insertions, 66 deletions
diff --git a/os/hal/platforms/LPC111x/pal_lld.c b/os/hal/platforms/LPC111x/pal_lld.c
index dac2fe584..5d2c56fe5 100644
--- a/os/hal/platforms/LPC111x/pal_lld.c
+++ b/os/hal/platforms/LPC111x/pal_lld.c
@@ -87,6 +87,7 @@ void _pal_lld_setgroupmode(ioportid_t port,
ioportmask_t mask,
uint_fast8_t mode) {
+ (void)port; (void)mask; (void)mode;
}
#endif /* CH_HAL_USE_PAL */
diff --git a/os/hal/platforms/LPC111x/pal_lld.h b/os/hal/platforms/LPC111x/pal_lld.h
index f3f1c7fc6..23b93ac50 100644
--- a/os/hal/platforms/LPC111x/pal_lld.h
+++ b/os/hal/platforms/LPC111x/pal_lld.h
@@ -176,7 +176,7 @@ typedef LPC_GPIO_TypeDef *ioportid_t;
* @param[in] port port identifier
* @param[in] bits bits to be ORed on the specified port
*/
-//#define pal_lld_setport(port, bits)
+#define pal_lld_setport(port, bits) ((port)->MASKED_ACCESS[bits] = 0xFFFFFFFF)
/**
* @brief Clears a bits mask on a I/O port.
@@ -189,20 +189,7 @@ typedef LPC_GPIO_TypeDef *ioportid_t;
* @param[in] port port identifier
* @param[in] bits bits to be cleared on the specified port
*/
-//#define pal_lld_clearport(port, bits)
-
-/**
- * @brief Toggles a bits mask on a I/O port.
- * @note This function is not meant to be invoked directly by the
- * application code.
- * @note The @ref PAL provides a default software implementation of this
- * functionality, implement this function if can optimize it by using
- * special hardware functionalities or special coding.
- *
- * @param[in] port port identifier
- * @param[in] bits bits to be XORed on the specified port
- */
-//#define pal_lld_toggleport(port, bits)
+#define pal_lld_clearport(port, bits) ((port)->MASKED_ACCESS[bits] = 0)
/**
* @brief Reads a group of bits.
@@ -217,7 +204,8 @@ typedef LPC_GPIO_TypeDef *ioportid_t;
* @param[in] offset group bit offset within the port
* @return The group logical states.
*/
-//#define pal_lld_readgroup(port, mask, offset)
+#define pal_lld_readgroup(port, mask, offset) \
+ ((port)->MASKED_ACCESS[(mask) << (offset)])
/**
* @brief Writes a group of bits.
@@ -233,7 +221,8 @@ typedef LPC_GPIO_TypeDef *ioportid_t;
* @param[in] bits bits to be written. Values exceeding the group width
* are masked.
*/
-//#define pal_lld_writegroup(port, mask, offset, bits)
+#define pal_lld_writegroup(port, mask, offset, bits) \
+ ((port)->MASKED_ACCESS[(mask) << (offset)] = (bits))
/**
* @brief Pads group mode setup.
@@ -247,23 +236,8 @@ typedef LPC_GPIO_TypeDef *ioportid_t;
* @param[in] mask group mask
* @param[in] mode group mode
*/
-//#define pal_lld_setgroupmode(port, mask, mode)
-
-/**
- * @brief Reads a logical state from an I/O pad.
- * @note This function is not meant to be invoked directly by the
- * application code.
- * @note The @ref PAL provides a default software implementation of this
- * functionality, implement this function if can optimize it by using
- * special hardware functionalities or special coding.
- *
- * @param[in] port port identifier
- * @param[in] pad pad number within the port
- * @return The logical state.
- * @retval PAL_LOW low logical state.
- * @retval PAL_HIGH high logical state.
- */
-//#define pal_lld_readpad(port, pad)
+#define pal_lld_setgroupmode(port, mask, mode) \
+ _pal_lld_setgroupmode(port, mask, mode)
/**
* @brief Writes a logical state on an output pad.
@@ -278,7 +252,8 @@ typedef LPC_GPIO_TypeDef *ioportid_t;
* @param[out] bit logical value, the value must be @p PAL_LOW or
* @p PAL_HIGH
*/
-//#define pal_lld_writepad(port, pad, bit)
+#define pal_lld_writepad(port, pad, bit) \
+ ((port)->MASKED_ACCESS[(mask) << (pad)] = (bit) << (pad))
/**
* @brief Sets a pad logical state to @p PAL_HIGH.
@@ -291,7 +266,8 @@ typedef LPC_GPIO_TypeDef *ioportid_t;
* @param[in] port port identifier
* @param[in] pad pad number within the port
*/
-//#define pal_lld_setpad(port, pad)
+#define pal_lld_setpad(port, pad) \
+ ((port)->MASKED_ACCESS[1 << (pad)] = 1 << (pad))
/**
* @brief Clears a pad logical state to @p PAL_LOW.
@@ -304,38 +280,12 @@ typedef LPC_GPIO_TypeDef *ioportid_t;
* @param[in] port port identifier
* @param[in] pad pad number within the port
*/
-//#define pal_lld_clearpad(port, pad)
-
-/**
- * @brief Toggles a pad logical state.
- * @note This function is not meant to be invoked directly by the
- * application code.
- * @note The @ref PAL provides a default software implementation of this
- * functionality, implement this function if can optimize it by using
- * special hardware functionalities or special coding.
- *
- * @param[in] port port identifier
- * @param[in] pad pad number within the port
- */
-//#define pal_lld_togglepad(port, pad)
-
-/**
- * @brief Pad mode setup.
- * @details This function programs a pad with the specified mode.
- * @note This function is not meant to be invoked directly by the
- * application code.
- * @note The @ref PAL provides a default software implementation of this
- * functionality, implement this function if can optimize it by using
- * special hardware functionalities or special coding.
- * @note Programming an unknown or unsupported mode is silently ignored.
- *
- * @param[in] port port identifier
- * @param[in] pad pad number within the port
- * @param[in] mode pad mode
- */
-//#define pal_lld_setpadmode(port, pad, mode)
+#define pal_lld_clearpad(port, pad) \
+ ((port)->MASKED_ACCESS[1 << (pad)] = 0)
+#if !defined(__DOXYGEN__)
extern const PALConfig pal_default_config;
+#endif
#ifdef __cplusplus
extern "C" {