OSStatus MicoI2cTransfer( mico_i2c_device_t* device, mico_i2c_message_t* messages, uint16_t number_of_messages ) { platform_i2c_config_t config; if ( device->port >= MICO_I2C_NONE ) return kUnsupportedErr; config.address = device->address; config.address_width = device->address_width; config.flags &= ~I2C_DEVICE_USE_DMA ; config.speed_mode = device->speed_mode; return (OSStatus) platform_i2c_transfer( &platform_i2c_peripherals[device->port], &config, messages, number_of_messages ); }
OSStatus MicoI2cTransfer( mico_i2c_device_t* device, mico_i2c_message_t* messages, uint16_t number_of_messages ) { OSStatus err = kNoErr; platform_i2c_config_t config; if ( device->port >= MICO_I2C_NONE ) return kUnsupportedErr; config.address = device->address; config.address_width = device->address_width; config.flags &= ~I2C_DEVICE_USE_DMA ; config.speed_mode = device->speed_mode; mico_rtos_lock_mutex( &platform_i2c_drivers[device->port].i2c_mutex ); err = platform_i2c_transfer( &platform_i2c_peripherals[device->port], &config, messages, number_of_messages ); mico_rtos_unlock_mutex( &platform_i2c_drivers[device->port].i2c_mutex ); return err; }