From 83e065d1bc887190f8856c19c493971469b5a0fa Mon Sep 17 00:00:00 2001 From: Toyomasa Watarai Date: Wed, 14 Aug 2013 22:28:30 +0900 Subject: [PATCH 1/3] Fixed missing mask register setting for I2C --- libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11XX/i2c_api.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11XX/i2c_api.c b/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11XX/i2c_api.c index 6fb7b23850..9a58c8e93a 100644 --- a/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11XX/i2c_api.c +++ b/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11XX/i2c_api.c @@ -383,5 +383,7 @@ void i2c_slave_address(i2c_t *obj, int idx, uint32_t address, uint32_t mask) { if ((idx >= 0) && (idx <= 3)) { addr = ((uint32_t)obj->i2c) + I2C_addr_offset[0][idx]; *((uint32_t *) addr) = address & 0xFF; + addr = ((uint32_t)obj->i2c) + I2C_addr_offset[1][idx]; + *((uint32_t *) addr) = mask & 0xFE; } } From b632d8db46d1864a3e5629e7a82674423d165cce Mon Sep 17 00:00:00 2001 From: Toyomasa Watarai Date: Wed, 14 Aug 2013 22:29:31 +0900 Subject: [PATCH 2/3] Removed redundant code in serial_api --- .../mbed/targets/hal/TARGET_NXP/TARGET_LPC11XX/serial_api.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11XX/serial_api.c b/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11XX/serial_api.c index 6b12c50345..18b1bd9a7e 100644 --- a/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11XX/serial_api.c +++ b/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11XX/serial_api.c @@ -249,12 +249,6 @@ int serial_getc(serial_t *obj) { void serial_putc(serial_t *obj, int c) { while (!serial_writable(obj)); obj->uart->THR = c; - -#warning TODO(@toyowata): need to fix a full-duplex bug? https://mbed.org/forum/bugs-suggestions/topic/4473/ - uint32_t lsr = obj->uart->LSR; - lsr = lsr; - uint32_t thr = obj->uart->THR; - thr = thr; } int serial_readable(serial_t *obj) { From 9f2a930f3156ade312672b35948f5ef205c9882d Mon Sep 17 00:00:00 2001 From: Toyomasa Watarai Date: Wed, 14 Aug 2013 22:43:03 +0900 Subject: [PATCH 3/3] Fixed GPIO read operation --- libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11XX/gpio_api.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11XX/gpio_api.c b/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11XX/gpio_api.c index ffdad22b9f..4efcc46283 100644 --- a/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11XX/gpio_api.c +++ b/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11XX/gpio_api.c @@ -37,7 +37,7 @@ void gpio_init(gpio_t *obj, PinName pin, PinDirection direction) { obj->pin = pin; LPC_GPIO_TypeDef *port_reg = ((LPC_GPIO_TypeDef *) (LPC_GPIO0_BASE + (((pin & 0xF000) >> PORT_SHIFT) * 0x10000))); - obj->reg_mask_read = &port_reg->MASKED_ACCESS[gpio_set(pin) + 1]; + obj->reg_mask_read = &port_reg->MASKED_ACCESS[1 << gpio_set(pin)]; obj->reg_dir = &port_reg->DIR; obj->reg_write = &port_reg->DATA;