Skip to content

Commit

Permalink
i2c: amend 2be8d10 and at least make brzo buildable
Browse files Browse the repository at this point in the history
  • Loading branch information
mcspr committed Jun 22, 2021
1 parent c056c54 commit 19f3214
Showing 1 changed file with 15 additions and 17 deletions.
32 changes: 15 additions & 17 deletions code/espurna/i2c.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -120,52 +120,50 @@ int _i2cClearbus(int sda, int scl) {
#if I2C_USE_BRZO

void i2c_wakeup(uint8_t address) {
brzo_i2c_start_transaction(_address, _i2c_scl_frequency);
brzo_i2c_start_transaction(address, _i2c_scl_frequency);
brzo_i2c_end_transaction();
}

uint8_t i2c_write_uint8(uint8_t address, uint8_t value) {
uint8_t buffer[1] = {value};
brzo_i2c_start_transaction(_address, _i2c_scl_frequency);
brzo_i2c_write_uint8(buffer, 1, false);
uint8_t i2c_write_buffer(uint8_t address, uint8_t * buffer, size_t len) {
brzo_i2c_start_transaction(address, _i2c_scl_frequency);
brzo_i2c_write(buffer, len, false);
return brzo_i2c_end_transaction();
}

uint8_t i2c_write_buffer(uint8_t address, uint8_t * buffer, size_t len) {
brzo_i2c_start_transaction(_address, _i2c_scl_frequency);
brzo_i2c_write_uint8(buffer, len, false);
return brzo_i2c_end_transaction();
uint8_t i2c_write_uint8(uint8_t address, uint8_t value) {
uint8_t buffer[1] = {value};
return i2c_write_buffer(address, buffer, sizeof(buffer));
}

uint8_t i2c_read_uint8(uint8_t address) {
uint8_t buffer[1] = {reg};
brzo_i2c_start_transaction(_address, _i2c_scl_frequency);
uint8_t buffer[1] = {0};
brzo_i2c_start_transaction(address, _i2c_scl_frequency);
brzo_i2c_read(buffer, 1, false);
brzo_i2c_end_transaction();
return buffer[0];
};

uint8_t i2c_read_uint8(uint8_t address, uint8_t reg) {
uint8_t buffer[1] = {reg};
brzo_i2c_start_transaction(_address, _i2c_scl_frequency);
brzo_i2c_write_uint8(buffer, 1, false);
brzo_i2c_start_transaction(address, _i2c_scl_frequency);
brzo_i2c_write(buffer, 1, true);
brzo_i2c_read(buffer, 1, false);
brzo_i2c_end_transaction();
return buffer[0];
};

uint16_t i2c_read_uint16(uint8_t address) {
uint8_t buffer[2] = {reg, 0};
brzo_i2c_start_transaction(_address, _i2c_scl_frequency);
uint8_t buffer[2] = {0, 0};
brzo_i2c_start_transaction(address, _i2c_scl_frequency);
brzo_i2c_read(buffer, 2, false);
brzo_i2c_end_transaction();
return (buffer[0] * 256) | buffer[1];
};

uint16_t i2c_read_uint16(uint8_t address, uint8_t reg) {
uint8_t buffer[2] = {reg, 0};
brzo_i2c_start_transaction(_address, _i2c_scl_frequency);
brzo_i2c_write_uint8(buffer, 1, false);
brzo_i2c_start_transaction(address, _i2c_scl_frequency);
brzo_i2c_write(buffer, 1, true);
brzo_i2c_read(buffer, 2, false);
brzo_i2c_end_transaction();
return (buffer[0] * 256) | buffer[1];
Expand Down

0 comments on commit 19f3214

Please sign in to comment.