|
|
@ -74,23 +74,17 @@ bool g_pwm_buffer_update_required[IS31FL3733_DRIVER_COUNT] = {false}; |
|
|
|
uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][IS31FL3733_LED_CONTROL_REGISTER_COUNT] = {0}; |
|
|
|
bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT] = {false}; |
|
|
|
|
|
|
|
bool is31fl3733_write_register(uint8_t index, uint8_t addr, uint8_t reg, uint8_t data) { |
|
|
|
// If the transaction fails function returns false. |
|
|
|
void is31fl3733_write_register(uint8_t index, uint8_t addr, uint8_t reg, uint8_t data) { |
|
|
|
i2c_transfer_buffer[0] = reg; |
|
|
|
i2c_transfer_buffer[1] = data; |
|
|
|
|
|
|
|
#if IS31FL3733_I2C_PERSISTENCE > 0 |
|
|
|
for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) { |
|
|
|
if (i2c_transmit(index, addr << 1, i2c_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
if (i2c_transmit(index, addr << 1, i2c_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) == 0) break; |
|
|
|
} |
|
|
|
#else |
|
|
|
if (i2c_transmit(index, addr << 1, i2c_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
i2c_transmit(index, addr << 1, i2c_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT); |
|
|
|
#endif |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
void is31fl3733_select_page(uint8_t index, uint8_t addr, uint8_t page) { |
|
|
|