fix: prevents slamming the led driver over i2c

This commit is contained in:
Florian Didron
2023-05-17 14:59:35 +08:00
parent 6405e6b367
commit 48b8c809ea
3 changed files with 9 additions and 1 deletions

View File

@@ -96,6 +96,8 @@ void IS31FL3731_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) == 0) break;
}
#else
if (addr == DRIVER_ADDR_1 && IS31FL3731_initd[0] == false) return;
if (addr == DRIVER_ADDR_2 && IS31FL3731_initd[1] == false) return;
if (MSG_OK != i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT)) {
if (addr == DRIVER_ADDR_1) {
IS31FL3731_initd[0] = false;
@@ -130,6 +132,8 @@ void IS31FL3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) == 0) break;
}
#else
if (addr == DRIVER_ADDR_1 && IS31FL3731_initd[0] == false) return;
if (addr == DRIVER_ADDR_2 && IS31FL3731_initd[1] == false) return;
if (MSG_OK != i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT)) {
if (addr == DRIVER_ADDR_1) {
IS31FL3731_initd[0] = false;

View File

@@ -140,3 +140,7 @@
#define MOUSEKEY_WHEEL_TIME_TO_MAX MOUSEKEY_TIME_TO_MAX
#define TAPPING_TOGGLE 1
// A small delay between selecting rows and reading columns
// via I2C is needed for the IO expander to settle.
#define IO_EXPANDER_DELAY 500

View File

@@ -199,7 +199,7 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) {
// Reading the right side of the keyboard.
if (mcp23018_initd) {
for (uint16_t i = 0; i < 500; i++) {
for (uint16_t i = 0; i < IO_EXPANDER_DELAY; i++) {
__asm__("nop");
}