mbed library sources for GR-PEACH rev.B.

Fork of mbed-src by mbed official

Revision:
178:a873352662d8
Parent:
82:0b31dbcd4769
Child:
182:242346c42295
--- 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;