mirror of
https://github.com/zsa/qmk_firmware.git
synced 2026-04-28 02:18:59 +00:00
fix: prevents slamming the led driver over i2c
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user