mbed library sources
Fork of mbed-src by
Revision 178:a873352662d8, committed 2014-05-07
- Comitter:
- mbed_official
- Date:
- Wed May 07 09:00:07 2014 +0100
- Parent:
- 177:d57c40a064c8
- Child:
- 179:fdae7a0cf091
- Commit message:
- Synchronized with git revision 42a3edb815167b2aed138226781ff2ebcac662e4
Full URL: https://github.com/mbedmicro/mbed/commit/42a3edb815167b2aed138226781ff2ebcac662e4/
Changed in this revision
--- a/targets/hal/TARGET_Freescale/TARGET_K20D5M/i2c_api.c Thu May 01 13:00:08 2014 +0100 +++ b/targets/hal/TARGET_Freescale/TARGET_K20D5M/i2c_api.c Wed May 07 09:00:07 2014 +0100 @@ -48,8 +48,6 @@ 2304, 2560, 3072, 3840 }; -static uint8_t first_read; - void i2c_init(i2c_t *obj, PinName sda, PinName scl) { // determine the I2C to use @@ -70,8 +68,6 @@ pinmap_pinout(sda, PinMap_I2C_SDA); pinmap_pinout(scl, PinMap_I2C_SCL); - - first_read = 1; } int i2c_start(i2c_t *obj) { @@ -83,7 +79,6 @@ obj->i2c->C1 |= I2C_C1_MST_MASK; obj->i2c->C1 |= I2C_C1_TX_MASK; } - first_read = 1; return 0; } @@ -98,7 +93,6 @@ // code provided with the freedom board for (n = 0; n < 100; n++) __NOP(); - first_read = 1; return 0; } @@ -279,30 +273,19 @@ int i2c_byte_read(i2c_t *obj, int last) { char data; - + // set rx mode obj->i2c->C1 &= ~I2C_C1_TX_MASK; - - if(first_read) { - // first dummy read - i2c_do_read(obj, &data, 0); - first_read = 0; - } - - if (last) { - // set tx mode - obj->i2c->C1 |= I2C_C1_TX_MASK; - return obj->i2c->D; - } - + + // Setup read i2c_do_read(obj, &data, last); - return data; + // set tx mode + obj->i2c->C1 |= I2C_C1_TX_MASK; + return obj->i2c->D; } int i2c_byte_write(i2c_t *obj, int data) { - first_read = 1; - // set tx mode obj->i2c->C1 |= I2C_C1_TX_MASK;
--- a/targets/hal/TARGET_Freescale/TARGET_KLXX/i2c_api.c Thu May 01 13:00:08 2014 +0100 +++ b/targets/hal/TARGET_Freescale/TARGET_KLXX/i2c_api.c Wed May 07 09:00:07 2014 +0100 @@ -37,8 +37,6 @@ 2304, 2560, 3072, 3840 }; -static uint8_t first_read; - void i2c_init(i2c_t *obj, PinName sda, PinName scl) { // determine the I2C to use @@ -63,8 +61,6 @@ pinmap_pinout(sda, PinMap_I2C_SDA); pinmap_pinout(scl, PinMap_I2C_SCL); - - first_read = 1; } int i2c_start(i2c_t *obj) { @@ -84,7 +80,6 @@ obj->i2c->C1 |= I2C_C1_MST_MASK; obj->i2c->C1 |= I2C_C1_TX_MASK; } - first_read = 1; return 0; } @@ -98,7 +93,6 @@ // This wait is also included on the samples // code provided with the freedom board for (n = 0; n < 100; n++) __NOP(); - first_read = 1; return 0; } @@ -284,26 +278,15 @@ // set rx mode obj->i2c->C1 &= ~I2C_C1_TX_MASK; - if(first_read) { - // first dummy read - i2c_do_read(obj, &data, 0); - first_read = 0; - } - - if (last) { - // set tx mode - obj->i2c->C1 |= I2C_C1_TX_MASK; - return obj->i2c->D; - } - + // Setup read i2c_do_read(obj, &data, last); - - return data; + + // set tx mode + obj->i2c->C1 |= I2C_C1_TX_MASK; + return obj->i2c->D; } int i2c_byte_write(i2c_t *obj, int data) { - first_read = 1; - // set tx mode obj->i2c->C1 |= I2C_C1_TX_MASK;
--- a/targets/hal/TARGET_Freescale/TARGET_KPSDK_MCUS/TARGET_K64F/i2c_api.c Thu May 01 13:00:08 2014 +0100 +++ b/targets/hal/TARGET_Freescale/TARGET_KPSDK_MCUS/TARGET_K64F/i2c_api.c Wed May 07 09:00:07 2014 +0100 @@ -44,8 +44,6 @@ {NC , NC , 0} }; -static uint8_t first_read; - void i2c_init(i2c_t *obj, PinName sda, PinName scl) { uint32_t i2c_sda = pinmap_peripheral(sda, PinMap_I2C_SDA); uint32_t i2c_scl = pinmap_peripheral(scl, PinMap_I2C_SCL); @@ -60,12 +58,10 @@ pinmap_pinout(sda, PinMap_I2C_SDA); pinmap_pinout(scl, PinMap_I2C_SCL); - first_read = 1; } int i2c_start(i2c_t *obj) { i2c_hal_send_start(obj->instance); - first_read = 1; return 0; } @@ -78,7 +74,6 @@ // This wait is also included on the samples // code provided with the freedom board for (n = 0; n < 100; n++) __NOP(); - first_read = 1; return 0; } @@ -229,26 +224,15 @@ // set rx mode i2c_hal_set_direction(obj->instance, kI2CReceive); - if(first_read) { - // first dummy read - i2c_do_read(obj, &data, 0); - first_read = 0; - } - - if (last) { - // set tx mode - i2c_hal_set_direction(obj->instance, kI2CTransmit); - return i2c_hal_read(obj->instance); - } - + // Setup read i2c_do_read(obj, &data, last); - return data; + // set tx mode + i2c_hal_set_direction(obj->instance, kI2CTransmit); + return i2c_hal_read(obj->instance); } int i2c_byte_write(i2c_t *obj, int data) { - first_read = 1; - // set tx mode i2c_hal_set_direction(obj->instance, kI2CTransmit);