~ruther/qmk_firmware

d96ac7084e213de1b1714d7299f3c390aed84105 — Ryan 1 year, 6 months ago e446366
LED drivers: remove `write_pwm_buffer()` from public API (#22884)

44 files changed, 99 insertions(+), 120 deletions(-)

M drivers/led/issi/is31fl3218-mono.c
M drivers/led/issi/is31fl3218.c
M drivers/led/issi/is31fl3731-mono.c
M drivers/led/issi/is31fl3731-mono.h
M drivers/led/issi/is31fl3731.c
M drivers/led/issi/is31fl3731.h
M drivers/led/issi/is31fl3733-mono.c
M drivers/led/issi/is31fl3733-mono.h
M drivers/led/issi/is31fl3733.c
M drivers/led/issi/is31fl3733.h
M drivers/led/issi/is31fl3736-mono.c
M drivers/led/issi/is31fl3736-mono.h
M drivers/led/issi/is31fl3736.c
M drivers/led/issi/is31fl3736.h
M drivers/led/issi/is31fl3737-mono.c
M drivers/led/issi/is31fl3737-mono.h
M drivers/led/issi/is31fl3737.c
M drivers/led/issi/is31fl3737.h
M drivers/led/issi/is31fl3741-mono.c
M drivers/led/issi/is31fl3741-mono.h
M drivers/led/issi/is31fl3741.c
M drivers/led/issi/is31fl3741.h
M drivers/led/issi/is31fl3742a-mono.c
M drivers/led/issi/is31fl3742a-mono.h
M drivers/led/issi/is31fl3742a.c
M drivers/led/issi/is31fl3742a.h
M drivers/led/issi/is31fl3743a-mono.c
M drivers/led/issi/is31fl3743a-mono.h
M drivers/led/issi/is31fl3743a.c
M drivers/led/issi/is31fl3743a.h
M drivers/led/issi/is31fl3745-mono.c
M drivers/led/issi/is31fl3745-mono.h
M drivers/led/issi/is31fl3745.c
M drivers/led/issi/is31fl3745.h
M drivers/led/issi/is31fl3746a-mono.c
M drivers/led/issi/is31fl3746a-mono.h
M drivers/led/issi/is31fl3746a.c
M drivers/led/issi/is31fl3746a.h
M drivers/led/snled27351-mono.c
M drivers/led/snled27351-mono.h
M drivers/led/snled27351.c
M drivers/led/snled27351.h
M keyboards/input_club/k_type/is31fl3733-dual.c
M keyboards/input_club/k_type/is31fl3733-dual.h
M drivers/led/issi/is31fl3218-mono.c => drivers/led/issi/is31fl3218-mono.c +4 -4
@@ 45,13 45,13 @@ void is31fl3218_write_register(uint8_t reg, uint8_t data) {
#endif
}

void is31fl3218_write_pwm_buffer(uint8_t *pwm_buffer) {
void is31fl3218_write_pwm_buffer(void) {
#if IS31FL3218_I2C_PERSISTENCE > 0
    for (uint8_t i = 0; i < IS31FL3218_I2C_PERSISTENCE; i++) {
        if (i2c_writeReg(IS31FL3218_I2C_ADDRESS << 1, IS31FL3218_REG_PWM, pwm_buffer, 18, IS31FL3218_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        if (i2c_writeReg(IS31FL3218_I2C_ADDRESS << 1, IS31FL3218_REG_PWM, g_pwm_buffer, 18, IS31FL3218_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
    }
#else
    i2c_writeReg(IS31FL3218_I2C_ADDRESS << 1, IS31FL3218_REG_PWM, pwm_buffer, 18, IS31FL3218_I2C_TIMEOUT);
    i2c_writeReg(IS31FL3218_I2C_ADDRESS << 1, IS31FL3218_REG_PWM, g_pwm_buffer, 18, IS31FL3218_I2C_TIMEOUT);
#endif
}



@@ 123,7 123,7 @@ void is31fl3218_set_led_control_register(uint8_t index, bool value) {

void is31fl3218_update_pwm_buffers(void) {
    if (g_pwm_buffer_update_required) {
        is31fl3218_write_pwm_buffer(g_pwm_buffer);
        is31fl3218_write_pwm_buffer();
        // Load PWM registers and LED Control register data
        is31fl3218_write_register(IS31FL3218_REG_UPDATE, 0x01);


M drivers/led/issi/is31fl3218.c => drivers/led/issi/is31fl3218.c +4 -4
@@ 45,13 45,13 @@ void is31fl3218_write_register(uint8_t reg, uint8_t data) {
#endif
}

void is31fl3218_write_pwm_buffer(uint8_t *pwm_buffer) {
void is31fl3218_write_pwm_buffer(void) {
#if IS31FL3218_I2C_PERSISTENCE > 0
    for (uint8_t i = 0; i < IS31FL3218_I2C_PERSISTENCE; i++) {
        if (i2c_writeReg(IS31FL3218_I2C_ADDRESS << 1, IS31FL3218_REG_PWM, pwm_buffer, 18, IS31FL3218_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        if (i2c_writeReg(IS31FL3218_I2C_ADDRESS << 1, IS31FL3218_REG_PWM, g_pwm_buffer, 18, IS31FL3218_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
    }
#else
    i2c_writeReg(IS31FL3218_I2C_ADDRESS << 1, IS31FL3218_REG_PWM, pwm_buffer, 18, IS31FL3218_I2C_TIMEOUT);
    i2c_writeReg(IS31FL3218_I2C_ADDRESS << 1, IS31FL3218_REG_PWM, g_pwm_buffer, 18, IS31FL3218_I2C_TIMEOUT);
#endif
}



@@ 139,7 139,7 @@ void is31fl3218_set_led_control_register(uint8_t index, bool red, bool green, bo

void is31fl3218_update_pwm_buffers(void) {
    if (g_pwm_buffer_update_required) {
        is31fl3218_write_pwm_buffer(g_pwm_buffer);
        is31fl3218_write_pwm_buffer();
        // Load PWM registers and LED Control register data
        is31fl3218_write_register(IS31FL3218_REG_UPDATE, 0x01);


M drivers/led/issi/is31fl3731-mono.c => drivers/led/issi/is31fl3731-mono.c +4 -4
@@ 57,7 57,7 @@ void is31fl3731_select_page(uint8_t addr, uint8_t page) {
    is31fl3731_write_register(addr, IS31FL3731_REG_COMMAND, page);
}

void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assumes page 0 is already selected.
    // Transmit PWM registers in 9 transfers of 16 bytes.



@@ 65,10 65,10 @@ void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
    for (uint8_t i = 0; i < IS31FL3731_PWM_REGISTER_COUNT; i += 16) {
#if IS31FL3731_I2C_PERSISTENCE > 0
        for (uint8_t j = 0; j < IS31FL3731_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(addr << 1, IS31FL3731_FRAME_REG_PWM + i, pwm_buffer + i, 16, IS31FL3731_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
            if (i2c_writeReg(addr << 1, IS31FL3731_FRAME_REG_PWM + i, g_pwm_buffer[index] + i, 16, IS31FL3731_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(addr << 1, IS31FL3731_FRAME_REG_PWM + i, pwm_buffer + i, 16, IS31FL3731_I2C_TIMEOUT);
        i2c_writeReg(addr << 1, IS31FL3731_FRAME_REG_PWM + i, g_pwm_buffer[index] + i, 16, IS31FL3731_I2C_TIMEOUT);
#endif
    }
}


@@ 194,7 194,7 @@ void is31fl3731_set_led_control_register(uint8_t index, bool value) {

void is31fl3731_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        is31fl3731_write_pwm_buffer(addr, g_pwm_buffer[index]);
        is31fl3731_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M drivers/led/issi/is31fl3731-mono.h => drivers/led/issi/is31fl3731-mono.h +0 -1
@@ 108,7 108,6 @@ void is31fl3731_init_drivers(void);
void is31fl3731_init(uint8_t addr);
void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3731_select_page(uint8_t addr, uint8_t page);
void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);

void is31fl3731_set_value(int index, uint8_t value);
void is31fl3731_set_value_all(uint8_t value);

M drivers/led/issi/is31fl3731.c => drivers/led/issi/is31fl3731.c +4 -4
@@ 56,7 56,7 @@ void is31fl3731_select_page(uint8_t addr, uint8_t page) {
    is31fl3731_write_register(addr, IS31FL3731_REG_COMMAND, page);
}

void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assumes page 0 is already selected.
    // Transmit PWM registers in 9 transfers of 16 bytes.



@@ 64,10 64,10 @@ void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
    for (uint8_t i = 0; i < IS31FL3731_PWM_REGISTER_COUNT; i += 16) {
#if IS31FL3731_I2C_PERSISTENCE > 0
        for (uint8_t j = 0; j < IS31FL3731_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(addr << 1, IS31FL3731_FRAME_REG_PWM + i, pwm_buffer + i, 16, IS31FL3731_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
            if (i2c_writeReg(addr << 1, IS31FL3731_FRAME_REG_PWM + i, g_pwm_buffer[index] + i, 16, IS31FL3731_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(addr << 1, IS31FL3731_FRAME_REG_PWM + i, pwm_buffer + i, 16, IS31FL3731_I2C_TIMEOUT);
        i2c_writeReg(addr << 1, IS31FL3731_FRAME_REG_PWM + i, g_pwm_buffer[index] + i, 16, IS31FL3731_I2C_TIMEOUT);
#endif
    }
}


@@ 209,7 209,7 @@ void is31fl3731_set_led_control_register(uint8_t index, bool red, bool green, bo

void is31fl3731_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        is31fl3731_write_pwm_buffer(addr, g_pwm_buffer[index]);
        is31fl3731_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M drivers/led/issi/is31fl3731.h => drivers/led/issi/is31fl3731.h +0 -1
@@ 109,7 109,6 @@ void is31fl3731_init_drivers(void);
void is31fl3731_init(uint8_t addr);
void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3731_select_page(uint8_t addr, uint8_t page);
void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);

void is31fl3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
void is31fl3731_set_color_all(uint8_t red, uint8_t green, uint8_t blue);

M drivers/led/issi/is31fl3733-mono.c => drivers/led/issi/is31fl3733-mono.c +4 -4
@@ 89,7 89,7 @@ void is31fl3733_select_page(uint8_t addr, uint8_t page) {
    is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, page);
}

void is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
void is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assumes page 1 is already selected.
    // Transmit PWM registers in 12 transfers of 16 bytes.



@@ 97,10 97,10 @@ void is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
    for (uint8_t i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i += 16) {
#if IS31FL3733_I2C_PERSISTENCE > 0
        for (uint8_t j = 0; j < IS31FL3733_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(addr << 1, i, pwm_buffer + i, 16, IS31FL3733_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
            if (i2c_writeReg(addr << 1, i, g_pwm_buffer[index] + i, 16, IS31FL3733_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(addr << 1, i, pwm_buffer + i, 16, IS31FL3733_I2C_TIMEOUT);
        i2c_writeReg(addr << 1, i, g_pwm_buffer[index] + i, 16, IS31FL3733_I2C_TIMEOUT);
#endif
    }
}


@@ 213,7 213,7 @@ void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        is31fl3733_select_page(addr, IS31FL3733_COMMAND_PWM);

        is31fl3733_write_pwm_buffer(addr, g_pwm_buffer[index]);
        is31fl3733_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M drivers/led/issi/is31fl3733-mono.h => drivers/led/issi/is31fl3733-mono.h +0 -1
@@ 118,7 118,6 @@ void is31fl3733_init_drivers(void);
void is31fl3733_init(uint8_t addr, uint8_t sync);
void is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3733_select_page(uint8_t addr, uint8_t page);
void is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);

void is31fl3733_set_value(int index, uint8_t value);
void is31fl3733_set_value_all(uint8_t value);

M drivers/led/issi/is31fl3733.c => drivers/led/issi/is31fl3733.c +4 -4
@@ 88,7 88,7 @@ void is31fl3733_select_page(uint8_t addr, uint8_t page) {
    is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, page);
}

void is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
void is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assumes page 1 is already selected.
    // Transmit PWM registers in 12 transfers of 16 bytes.



@@ 96,10 96,10 @@ void is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
    for (uint8_t i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i += 16) {
#if IS31FL3733_I2C_PERSISTENCE > 0
        for (uint8_t j = 0; j < IS31FL3733_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(addr << 1, i, pwm_buffer + i, 16, IS31FL3733_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
            if (i2c_writeReg(addr << 1, i, g_pwm_buffer[index] + i, 16, IS31FL3733_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(addr << 1, i, pwm_buffer + i, 16, IS31FL3733_I2C_TIMEOUT);
        i2c_writeReg(addr << 1, i, g_pwm_buffer[index] + i, 16, IS31FL3733_I2C_TIMEOUT);
#endif
    }
}


@@ 228,7 228,7 @@ void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        is31fl3733_select_page(addr, IS31FL3733_COMMAND_PWM);

        is31fl3733_write_pwm_buffer(addr, g_pwm_buffer[index]);
        is31fl3733_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M drivers/led/issi/is31fl3733.h => drivers/led/issi/is31fl3733.h +0 -1
@@ 143,7 143,6 @@ void is31fl3733_init_drivers(void);
void is31fl3733_init(uint8_t addr, uint8_t sync);
void is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3733_select_page(uint8_t addr, uint8_t page);
void is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);

void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
void is31fl3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue);

M drivers/led/issi/is31fl3736-mono.c => drivers/led/issi/is31fl3736-mono.c +4 -4
@@ 73,7 73,7 @@ void is31fl3736_select_page(uint8_t addr, uint8_t page) {
    is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, page);
}

void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assumes page 1 is already selected.
    // Transmit PWM registers in 12 transfers of 16 bytes.



@@ 81,10 81,10 @@ void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
    for (uint8_t i = 0; i < IS31FL3736_PWM_REGISTER_COUNT; i += 16) {
#if IS31FL3736_I2C_PERSISTENCE > 0
        for (uint8_t j = 0; j < IS31FL3736_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(addr << 1, i, pwm_buffer + i, 16, IS31FL3736_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
            if (i2c_writeReg(addr << 1, i, g_pwm_buffer[index] + i, 16, IS31FL3736_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(addr << 1, i, pwm_buffer + i, 16, IS31FL3736_I2C_TIMEOUT);
        i2c_writeReg(addr << 1, i, g_pwm_buffer[index] + i, 16, IS31FL3736_I2C_TIMEOUT);
#endif
    }
}


@@ 202,7 202,7 @@ void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        is31fl3736_select_page(addr, IS31FL3736_COMMAND_PWM);

        is31fl3736_write_pwm_buffer(addr, g_pwm_buffer[index]);
        is31fl3736_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M drivers/led/issi/is31fl3736-mono.h => drivers/led/issi/is31fl3736-mono.h +0 -1
@@ 113,7 113,6 @@ void is31fl3736_init_drivers(void);
void is31fl3736_init(uint8_t addr);
void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3736_select_page(uint8_t addr, uint8_t page);
void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);

void is31fl3736_set_value(int index, uint8_t value);
void is31fl3736_set_value_all(uint8_t value);

M drivers/led/issi/is31fl3736.c => drivers/led/issi/is31fl3736.c +4 -4
@@ 73,7 73,7 @@ void is31fl3736_select_page(uint8_t addr, uint8_t page) {
    is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, page);
}

void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assumes page 1 is already selected.
    // Transmit PWM registers in 12 transfers of 16 bytes.



@@ 81,10 81,10 @@ void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
    for (uint8_t i = 0; i < IS31FL3736_PWM_REGISTER_COUNT; i += 16) {
#if IS31FL3736_I2C_PERSISTENCE > 0
        for (uint8_t j = 0; j < IS31FL3736_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(addr << 1, i, pwm_buffer + i, 16, IS31FL3736_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
            if (i2c_writeReg(addr << 1, i, g_pwm_buffer[index] + i, 16, IS31FL3736_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(addr << 1, i, pwm_buffer + i, 16, IS31FL3736_I2C_TIMEOUT);
        i2c_writeReg(addr << 1, i, g_pwm_buffer[index] + i, 16, IS31FL3736_I2C_TIMEOUT);
#endif
    }
}


@@ 219,7 219,7 @@ void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        is31fl3736_select_page(addr, IS31FL3736_COMMAND_PWM);

        is31fl3736_write_pwm_buffer(addr, g_pwm_buffer[index]);
        is31fl3736_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M drivers/led/issi/is31fl3736.h => drivers/led/issi/is31fl3736.h +0 -1
@@ 127,7 127,6 @@ void is31fl3736_init_drivers(void);
void is31fl3736_init(uint8_t addr);
void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3736_select_page(uint8_t addr, uint8_t page);
void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);

void is31fl3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
void is31fl3736_set_color_all(uint8_t red, uint8_t green, uint8_t blue);

M drivers/led/issi/is31fl3737-mono.c => drivers/led/issi/is31fl3737-mono.c +4 -4
@@ 76,7 76,7 @@ void is31fl3737_select_page(uint8_t addr, uint8_t page) {
    is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, page);
}

void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assumes page 1 is already selected.
    // Transmit PWM registers in 12 transfers of 16 bytes.



@@ 84,10 84,10 @@ void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
    for (uint8_t i = 0; i < IS31FL3737_PWM_REGISTER_COUNT; i += 16) {
#if IS31FL3737_I2C_PERSISTENCE > 0
        for (uint8_t j = 0; j < IS31FL3737_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(addr << 1, i, pwm_buffer + i, 16, IS31FL3737_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
            if (i2c_writeReg(addr << 1, i, g_pwm_buffer[index] + i, 16, IS31FL3737_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(addr << 1, i, pwm_buffer + i, 16, IS31FL3737_I2C_TIMEOUT);
        i2c_writeReg(addr << 1, i, g_pwm_buffer[index] + i, 16, IS31FL3737_I2C_TIMEOUT);
#endif
    }
}


@@ 199,7 199,7 @@ void is31fl3737_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        is31fl3737_select_page(addr, IS31FL3737_COMMAND_PWM);

        is31fl3737_write_pwm_buffer(addr, g_pwm_buffer[index]);
        is31fl3737_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M drivers/led/issi/is31fl3737-mono.h => drivers/led/issi/is31fl3737-mono.h +0 -1
@@ 103,7 103,6 @@ void is31fl3737_init_drivers(void);
void is31fl3737_init(uint8_t addr);
void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3737_select_page(uint8_t addr, uint8_t page);
void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);

void is31fl3737_set_value(int index, uint8_t value);
void is31fl3737_set_value_all(uint8_t value);

M drivers/led/issi/is31fl3737.c => drivers/led/issi/is31fl3737.c +4 -4
@@ 76,7 76,7 @@ void is31fl3737_select_page(uint8_t addr, uint8_t page) {
    is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, page);
}

void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assumes page 1 is already selected.
    // Transmit PWM registers in 12 transfers of 16 bytes.



@@ 84,10 84,10 @@ void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
    for (uint8_t i = 0; i < IS31FL3737_PWM_REGISTER_COUNT; i += 16) {
#if IS31FL3737_I2C_PERSISTENCE > 0
        for (uint8_t j = 0; j < IS31FL3737_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(addr << 1, i, pwm_buffer + i, 16, IS31FL3737_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
            if (i2c_writeReg(addr << 1, i, g_pwm_buffer[index] + i, 16, IS31FL3737_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(addr << 1, i, pwm_buffer + i, 16, IS31FL3737_I2C_TIMEOUT);
        i2c_writeReg(addr << 1, i, g_pwm_buffer[index] + i, 16, IS31FL3737_I2C_TIMEOUT);
#endif
    }
}


@@ 215,7 215,7 @@ void is31fl3737_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        is31fl3737_select_page(addr, IS31FL3737_COMMAND_PWM);

        is31fl3737_write_pwm_buffer(addr, g_pwm_buffer[index]);
        is31fl3737_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M drivers/led/issi/is31fl3737.h => drivers/led/issi/is31fl3737.h +0 -1
@@ 120,7 120,6 @@ void is31fl3737_init_drivers(void);
void is31fl3737_init(uint8_t addr);
void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3737_select_page(uint8_t addr, uint8_t page);
void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);

void is31fl3737_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
void is31fl3737_set_color_all(uint8_t red, uint8_t green, uint8_t blue);

M drivers/led/issi/is31fl3741-mono.c => drivers/led/issi/is31fl3741-mono.c +6 -6
@@ 79,7 79,7 @@ void is31fl3741_select_page(uint8_t addr, uint8_t page) {
    is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, page);
}

void is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
void is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assume page 0 is already selected

    for (uint16_t i = 0; i < 342; i += 18) {


@@ 89,20 89,20 @@ void is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {

#if IS31FL3741_I2C_PERSISTENCE > 0
        for (uint8_t j = 0; j < IS31FL3741_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(addr << 1, i % 180, pwm_buffer + i, 18, IS31FL3741_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
            if (i2c_writeReg(addr << 1, i % 180, g_pwm_buffer[index] + i, 18, IS31FL3741_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(addr << 1, i % 180, pwm_buffer + i, 18, IS31FL3741_I2C_TIMEOUT);
        i2c_writeReg(addr << 1, i % 180, g_pwm_buffer[index] + i, 18, IS31FL3741_I2C_TIMEOUT);
#endif
    }

    // transfer the left cause the total number is 351
#if IS31FL3741_I2C_PERSISTENCE > 0
    for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) {
        if (i2c_writeReg(addr << 1, 162, pwm_buffer + 342, 9, IS31FL3741_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        if (i2c_writeReg(addr << 1, 162, g_pwm_buffer[index] + 342, 9, IS31FL3741_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
    }
#else
    i2c_writeReg(addr << 1, 162, pwm_buffer + 342, 9, IS31FL3741_I2C_TIMEOUT);
    i2c_writeReg(addr << 1, 162, g_pwm_buffer[index] + 342, 9, IS31FL3741_I2C_TIMEOUT);
#endif
}



@@ 199,7 199,7 @@ void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        is31fl3741_select_page(addr, IS31FL3741_COMMAND_PWM_0);

        is31fl3741_write_pwm_buffer(addr, g_pwm_buffer[index]);
        is31fl3741_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M drivers/led/issi/is31fl3741-mono.h => drivers/led/issi/is31fl3741-mono.h +0 -1
@@ 105,7 105,6 @@ void is31fl3741_init_drivers(void);
void is31fl3741_init(uint8_t addr);
void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3741_select_page(uint8_t addr, uint8_t page);
void is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);

void is31fl3741_set_value(int index, uint8_t value);
void is31fl3741_set_value_all(uint8_t value);

M drivers/led/issi/is31fl3741.c => drivers/led/issi/is31fl3741.c +6 -6
@@ 79,7 79,7 @@ void is31fl3741_select_page(uint8_t addr, uint8_t page) {
    is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, page);
}

void is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
void is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assume page 0 is already selected

    for (uint16_t i = 0; i < 342; i += 18) {


@@ 89,20 89,20 @@ void is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {

#if IS31FL3741_I2C_PERSISTENCE > 0
        for (uint8_t j = 0; j < IS31FL3741_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(addr << 1, i % 180, pwm_buffer + i, 18, IS31FL3741_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
            if (i2c_writeReg(addr << 1, i % 180, g_pwm_buffer[index] + i, 18, IS31FL3741_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(addr << 1, i % 180, pwm_buffer + i, 18, IS31FL3741_I2C_TIMEOUT);
        i2c_writeReg(addr << 1, i % 180, g_pwm_buffer[index] + i, 18, IS31FL3741_I2C_TIMEOUT);
#endif
    }

    // transfer the left cause the total number is 351
#if IS31FL3741_I2C_PERSISTENCE > 0
    for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) {
        if (i2c_writeReg(addr << 1, 162, pwm_buffer + 342, 9, IS31FL3741_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        if (i2c_writeReg(addr << 1, 162, g_pwm_buffer[index] + 342, 9, IS31FL3741_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
    }
#else
    i2c_writeReg(addr << 1, 162, pwm_buffer + 342, 9, IS31FL3741_I2C_TIMEOUT);
    i2c_writeReg(addr << 1, 162, g_pwm_buffer[index] + 342, 9, IS31FL3741_I2C_TIMEOUT);
#endif
}



@@ 213,7 213,7 @@ void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        is31fl3741_select_page(addr, IS31FL3741_COMMAND_PWM_0);

        is31fl3741_write_pwm_buffer(addr, g_pwm_buffer[index]);
        is31fl3741_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M drivers/led/issi/is31fl3741.h => drivers/led/issi/is31fl3741.h +0 -1
@@ 122,7 122,6 @@ void is31fl3741_init_drivers(void);
void is31fl3741_init(uint8_t addr);
void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3741_select_page(uint8_t addr, uint8_t page);
void is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);

void is31fl3741_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
void is31fl3741_set_color_all(uint8_t red, uint8_t green, uint8_t blue);

M drivers/led/issi/is31fl3742a-mono.c => drivers/led/issi/is31fl3742a-mono.c +4 -4
@@ 74,7 74,7 @@ void is31fl3742a_select_page(uint8_t addr, uint8_t page) {
    is31fl3742a_write_register(addr, IS31FL3742A_REG_COMMAND, page);
}

void is31fl3742a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
void is31fl3742a_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assumes page 0 is already selected.
    // Transmit PWM registers in 6 transfers of 30 bytes.



@@ 82,10 82,10 @@ void is31fl3742a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
    for (uint8_t i = 0; i < IS31FL3742A_PWM_REGISTER_COUNT; i += 30) {
#if IS31FL3742A_I2C_PERSISTENCE > 0
        for (uint8_t j = 0; j < IS31FL3742A_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(addr << 1, i, pwm_buffer + i, 30, IS31FL3742A_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
            if (i2c_writeReg(addr << 1, i, g_pwm_buffer[index] + i, 30, IS31FL3742A_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(addr << 1, i, pwm_buffer + i, 30, IS31FL3742A_I2C_TIMEOUT);
        i2c_writeReg(addr << 1, i, g_pwm_buffer[index] + i, 30, IS31FL3742A_I2C_TIMEOUT);
#endif
    }
}


@@ 183,7 183,7 @@ void is31fl3742a_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        is31fl3742a_select_page(addr, IS31FL3742A_COMMAND_PWM);

        is31fl3742a_write_pwm_buffer(addr, g_pwm_buffer[index]);
        is31fl3742a_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M drivers/led/issi/is31fl3742a-mono.h => drivers/led/issi/is31fl3742a-mono.h +0 -1
@@ 75,7 75,6 @@ void is31fl3742a_init_drivers(void);
void is31fl3742a_init(uint8_t addr);
void is31fl3742a_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3742a_select_page(uint8_t addr, uint8_t page);
void is31fl3742a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);

void is31fl3742a_set_value(int index, uint8_t value);
void is31fl3742a_set_value_all(uint8_t value);

M drivers/led/issi/is31fl3742a.c => drivers/led/issi/is31fl3742a.c +4 -4
@@ 74,7 74,7 @@ void is31fl3742a_select_page(uint8_t addr, uint8_t page) {
    is31fl3742a_write_register(addr, IS31FL3742A_REG_COMMAND, page);
}

void is31fl3742a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
void is31fl3742a_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assumes page 0 is already selected.
    // Transmit PWM registers in 6 transfers of 30 bytes.



@@ 82,10 82,10 @@ void is31fl3742a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
    for (uint8_t i = 0; i < IS31FL3742A_PWM_REGISTER_COUNT; i += 30) {
#if IS31FL3742A_I2C_PERSISTENCE > 0
        for (uint8_t j = 0; j < IS31FL3742A_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(addr << 1, i, pwm_buffer + i, 30, IS31FL3742A_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
            if (i2c_writeReg(addr << 1, i, g_pwm_buffer[index] + i, 30, IS31FL3742A_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(addr << 1, i, pwm_buffer + i, 30, IS31FL3742A_I2C_TIMEOUT);
        i2c_writeReg(addr << 1, i, g_pwm_buffer[index] + i, 30, IS31FL3742A_I2C_TIMEOUT);
#endif
    }
}


@@ 187,7 187,7 @@ void is31fl3742a_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        is31fl3742a_select_page(addr, IS31FL3742A_COMMAND_PWM);

        is31fl3742a_write_pwm_buffer(addr, g_pwm_buffer[index]);
        is31fl3742a_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M drivers/led/issi/is31fl3742a.h => drivers/led/issi/is31fl3742a.h +0 -1
@@ 77,7 77,6 @@ void is31fl3742a_init_drivers(void);
void is31fl3742a_init(uint8_t addr);
void is31fl3742a_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3742a_select_page(uint8_t addr, uint8_t page);
void is31fl3742a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);

void is31fl3742a_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
void is31fl3742a_set_color_all(uint8_t red, uint8_t green, uint8_t blue);

M drivers/led/issi/is31fl3743a-mono.c => drivers/led/issi/is31fl3743a-mono.c +4 -4
@@ 83,7 83,7 @@ void is31fl3743a_select_page(uint8_t addr, uint8_t page) {
    is31fl3743a_write_register(addr, IS31FL3743A_REG_COMMAND, page);
}

void is31fl3743a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
void is31fl3743a_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assumes page 0 is already selected.
    // Transmit PWM registers in 11 transfers of 18 bytes.



@@ 91,10 91,10 @@ void is31fl3743a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
    for (uint8_t i = 0; i < IS31FL3743A_PWM_REGISTER_COUNT; i += 18) {
#if IS31FL3743A_I2C_PERSISTENCE > 0
        for (uint8_t j = 0; j < IS31FL3743A_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(addr << 1, i + 1, pwm_buffer + i, 18, IS31FL3743A_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
            if (i2c_writeReg(addr << 1, i + 1, g_pwm_buffer[index] + i, 18, IS31FL3743A_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(addr << 1, i + 1, pwm_buffer + i, 18, IS31FL3743A_I2C_TIMEOUT);
        i2c_writeReg(addr << 1, i + 1, g_pwm_buffer[index] + i, 18, IS31FL3743A_I2C_TIMEOUT);
#endif
    }
}


@@ 192,7 192,7 @@ void is31fl3743a_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        is31fl3743a_select_page(addr, IS31FL3743A_COMMAND_PWM);

        is31fl3743a_write_pwm_buffer(addr, g_pwm_buffer[index]);
        is31fl3743a_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M drivers/led/issi/is31fl3743a-mono.h => drivers/led/issi/is31fl3743a-mono.h +0 -1
@@ 85,7 85,6 @@ void is31fl3743a_init_drivers(void);
void is31fl3743a_init(uint8_t addr, uint8_t sync);
void is31fl3743a_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3743a_select_page(uint8_t addr, uint8_t page);
void is31fl3743a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);

void is31fl3743a_set_value(int index, uint8_t value);
void is31fl3743a_set_value_all(uint8_t value);

M drivers/led/issi/is31fl3743a.c => drivers/led/issi/is31fl3743a.c +4 -4
@@ 83,7 83,7 @@ void is31fl3743a_select_page(uint8_t addr, uint8_t page) {
    is31fl3743a_write_register(addr, IS31FL3743A_REG_COMMAND, page);
}

void is31fl3743a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
void is31fl3743a_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assumes page 0 is already selected.
    // Transmit PWM registers in 11 transfers of 18 bytes.



@@ 91,10 91,10 @@ void is31fl3743a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
    for (uint8_t i = 0; i < IS31FL3743A_PWM_REGISTER_COUNT; i += 18) {
#if IS31FL3743A_I2C_PERSISTENCE > 0
        for (uint8_t j = 0; j < IS31FL3743A_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(addr << 1, i + 1, pwm_buffer + i, 18, IS31FL3743A_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
            if (i2c_writeReg(addr << 1, i + 1, g_pwm_buffer[index] + i, 18, IS31FL3743A_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(addr << 1, i + 1, pwm_buffer + i, 18, IS31FL3743A_I2C_TIMEOUT);
        i2c_writeReg(addr << 1, i + 1, g_pwm_buffer[index] + i, 18, IS31FL3743A_I2C_TIMEOUT);
#endif
    }
}


@@ 196,7 196,7 @@ void is31fl3743a_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        is31fl3743a_select_page(addr, IS31FL3743A_COMMAND_PWM);

        is31fl3743a_write_pwm_buffer(addr, g_pwm_buffer[index]);
        is31fl3743a_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M drivers/led/issi/is31fl3743a.h => drivers/led/issi/is31fl3743a.h +0 -1
@@ 87,7 87,6 @@ void is31fl3743a_init_drivers(void);
void is31fl3743a_init(uint8_t addr, uint8_t sync);
void is31fl3743a_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3743a_select_page(uint8_t addr, uint8_t page);
void is31fl3743a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);

void is31fl3743a_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
void is31fl3743a_set_color_all(uint8_t red, uint8_t green, uint8_t blue);

M drivers/led/issi/is31fl3745-mono.c => drivers/led/issi/is31fl3745-mono.c +4 -4
@@ 83,7 83,7 @@ void is31fl3745_select_page(uint8_t addr, uint8_t page) {
    is31fl3745_write_register(addr, IS31FL3745_REG_COMMAND, page);
}

void is31fl3745_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
void is31fl3745_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assumes page 0 is already selected.
    // Transmit PWM registers in 8 transfers of 18 bytes.



@@ 91,10 91,10 @@ void is31fl3745_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
    for (uint8_t i = 0; i < IS31FL3745_PWM_REGISTER_COUNT; i += 18) {
#if IS31FL3745_I2C_PERSISTENCE > 0
        for (uint8_t j = 0; j < IS31FL3745_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(addr << 1, i + 1, pwm_buffer + i, 18, IS31FL3745_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
            if (i2c_writeReg(addr << 1, i + 1, g_pwm_buffer[index] + i, 18, IS31FL3745_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(addr << 1, i + 1, pwm_buffer + i, 18, IS31FL3745_I2C_TIMEOUT);
        i2c_writeReg(addr << 1, i + 1, g_pwm_buffer[index] + i, 18, IS31FL3745_I2C_TIMEOUT);
#endif
    }
}


@@ 192,7 192,7 @@ void is31fl3745_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        is31fl3745_select_page(addr, IS31FL3745_COMMAND_PWM);

        is31fl3745_write_pwm_buffer(addr, g_pwm_buffer[index]);
        is31fl3745_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M drivers/led/issi/is31fl3745-mono.h => drivers/led/issi/is31fl3745-mono.h +0 -1
@@ 85,7 85,6 @@ void is31fl3745_init_drivers(void);
void is31fl3745_init(uint8_t addr, uint8_t sync);
void is31fl3745_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3745_select_page(uint8_t addr, uint8_t page);
void is31fl3745_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);

void is31fl3745_set_value(int index, uint8_t value);
void is31fl3745_set_value_all(uint8_t value);

M drivers/led/issi/is31fl3745.c => drivers/led/issi/is31fl3745.c +4 -4
@@ 83,7 83,7 @@ void is31fl3745_select_page(uint8_t addr, uint8_t page) {
    is31fl3745_write_register(addr, IS31FL3745_REG_COMMAND, page);
}

void is31fl3745_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
void is31fl3745_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assumes page 0 is already selected.
    // Transmit PWM registers in 8 transfers of 18 bytes.



@@ 91,10 91,10 @@ void is31fl3745_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
    for (uint8_t i = 0; i < IS31FL3745_PWM_REGISTER_COUNT; i += 18) {
#if IS31FL3745_I2C_PERSISTENCE > 0
        for (uint8_t j = 0; j < IS31FL3745_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(addr << 1, i + 1, pwm_buffer + i, 18, IS31FL3745_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
            if (i2c_writeReg(addr << 1, i + 1, g_pwm_buffer[index] + i, 18, IS31FL3745_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(addr << 1, i + 1, pwm_buffer + i, 18, IS31FL3745_I2C_TIMEOUT);
        i2c_writeReg(addr << 1, i + 1, g_pwm_buffer[index] + i, 18, IS31FL3745_I2C_TIMEOUT);
#endif
    }
}


@@ 196,7 196,7 @@ void is31fl3745_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        is31fl3745_select_page(addr, IS31FL3745_COMMAND_PWM);

        is31fl3745_write_pwm_buffer(addr, g_pwm_buffer[index]);
        is31fl3745_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M drivers/led/issi/is31fl3745.h => drivers/led/issi/is31fl3745.h +0 -1
@@ 87,7 87,6 @@ void is31fl3745_init_drivers(void);
void is31fl3745_init(uint8_t addr, uint8_t sync);
void is31fl3745_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3745_select_page(uint8_t addr, uint8_t page);
void is31fl3745_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);

void is31fl3745_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
void is31fl3745_set_color_all(uint8_t red, uint8_t green, uint8_t blue);

M drivers/led/issi/is31fl3746a-mono.c => drivers/led/issi/is31fl3746a-mono.c +4 -4
@@ 74,7 74,7 @@ void is31fl3746a_select_page(uint8_t addr, uint8_t page) {
    is31fl3746a_write_register(addr, IS31FL3746A_REG_COMMAND, page);
}

void is31fl3746a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
void is31fl3746a_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assumes page 0 is already selected.
    // Transmit PWM registers in 4 transfers of 18 bytes.



@@ 82,10 82,10 @@ void is31fl3746a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
    for (uint8_t i = 0; i < IS31FL3746A_PWM_REGISTER_COUNT; i += 18) {
#if IS31FL3746A_I2C_PERSISTENCE > 0
        for (uint8_t j = 0; j < IS31FL3746A_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(addr << 1, i + 1, pwm_buffer + i, 18, IS31FL3746A_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
            if (i2c_writeReg(addr << 1, i + 1, g_pwm_buffer[index] + i, 18, IS31FL3746A_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(addr << 1, i + 1, pwm_buffer + i, 18, IS31FL3746A_I2C_TIMEOUT);
        i2c_writeReg(addr << 1, i + 1, g_pwm_buffer[index] + i, 18, IS31FL3746A_I2C_TIMEOUT);
#endif
    }
}


@@ 184,7 184,7 @@ void is31fl3746a_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        is31fl3746a_select_page(addr, IS31FL3746A_COMMAND_PWM);

        is31fl3746a_write_pwm_buffer(addr, g_pwm_buffer[index]);
        is31fl3746a_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M drivers/led/issi/is31fl3746a-mono.h => drivers/led/issi/is31fl3746a-mono.h +0 -1
@@ 87,7 87,6 @@ void is31fl3746a_init_drivers(void);
void is31fl3746a_init(uint8_t addr);
void is31fl3746a_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3746a_select_page(uint8_t addr, uint8_t page);
void is31fl3746a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);

void is31fl3746a_set_value(int index, uint8_t value);
void is31fl3746a_set_value_all(uint8_t value);

M drivers/led/issi/is31fl3746a.c => drivers/led/issi/is31fl3746a.c +4 -4
@@ 74,7 74,7 @@ void is31fl3746a_select_page(uint8_t addr, uint8_t page) {
    is31fl3746a_write_register(addr, IS31FL3746A_REG_COMMAND, page);
}

void is31fl3746a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
void is31fl3746a_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assumes page 0 is already selected.
    // Transmit PWM registers in 4 transfers of 18 bytes.



@@ 82,10 82,10 @@ void is31fl3746a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
    for (uint8_t i = 0; i < IS31FL3746A_PWM_REGISTER_COUNT; i += 18) {
#if IS31FL3746A_I2C_PERSISTENCE > 0
        for (uint8_t j = 0; j < IS31FL3746A_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(addr << 1, i + 1, pwm_buffer + i, 18, IS31FL3746A_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
            if (i2c_writeReg(addr << 1, i + 1, g_pwm_buffer[index] + i, 18, IS31FL3746A_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(addr << 1, i + 1, pwm_buffer + i, 18, IS31FL3746A_I2C_TIMEOUT);
        i2c_writeReg(addr << 1, i + 1, g_pwm_buffer[index] + i, 18, IS31FL3746A_I2C_TIMEOUT);
#endif
    }
}


@@ 188,7 188,7 @@ void is31fl3746a_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        is31fl3746a_select_page(addr, IS31FL3746A_COMMAND_PWM);

        is31fl3746a_write_pwm_buffer(addr, g_pwm_buffer[index]);
        is31fl3746a_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M drivers/led/issi/is31fl3746a.h => drivers/led/issi/is31fl3746a.h +0 -1
@@ 89,7 89,6 @@ void is31fl3746a_init_drivers(void);
void is31fl3746a_init(uint8_t addr);
void is31fl3746a_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3746a_select_page(uint8_t addr, uint8_t page);
void is31fl3746a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);

void is31fl3746a_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
void is31fl3746a_set_color_all(uint8_t red, uint8_t green, uint8_t blue);

M drivers/led/snled27351-mono.c => drivers/led/snled27351-mono.c +4 -4
@@ 63,7 63,7 @@ void snled27351_select_page(uint8_t addr, uint8_t page) {
    snled27351_write_register(addr, SNLED27351_REG_COMMAND, page);
}

void snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
void snled27351_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assumes PG1 is already selected.
    // Transmit PWM registers in 12 transfers of 16 bytes.



@@ 71,10 71,10 @@ void snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
    for (uint8_t i = 0; i < SNLED27351_PWM_REGISTER_COUNT; i += 16) {
#if SNLED27351_I2C_PERSISTENCE > 0
        for (uint8_t j = 0; j < SNLED27351_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(addr << 1, i, pwm_buffer + i, 16, SNLED27351_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
            if (i2c_writeReg(addr << 1, i, g_pwm_buffer[index] + i, 16, SNLED27351_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(addr << 1, i, pwm_buffer + i, 16, SNLED27351_I2C_TIMEOUT);
        i2c_writeReg(addr << 1, i, g_pwm_buffer[index] + i, 16, SNLED27351_I2C_TIMEOUT);
#endif
    }
}


@@ 196,7 196,7 @@ void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        snled27351_select_page(addr, SNLED27351_COMMAND_PWM);

        snled27351_write_pwm_buffer(addr, g_pwm_buffer[index]);
        snled27351_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M drivers/led/snled27351-mono.h => drivers/led/snled27351-mono.h +0 -1
@@ 157,7 157,6 @@ void snled27351_init_drivers(void);
void snled27351_init(uint8_t addr);
void snled27351_select_page(uint8_t addr, uint8_t page);
void snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);

void snled27351_set_value(int index, uint8_t value);
void snled27351_set_value_all(uint8_t value);

M drivers/led/snled27351.c => drivers/led/snled27351.c +4 -4
@@ 63,7 63,7 @@ void snled27351_select_page(uint8_t addr, uint8_t page) {
    snled27351_write_register(addr, SNLED27351_REG_COMMAND, page);
}

void snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
void snled27351_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assumes PG1 is already selected.
    // Transmit PWM registers in 12 transfers of 16 bytes.



@@ 71,10 71,10 @@ void snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
    for (uint8_t i = 0; i < SNLED27351_PWM_REGISTER_COUNT; i += 16) {
#if SNLED27351_I2C_PERSISTENCE > 0
        for (uint8_t j = 0; j < SNLED27351_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(addr << 1, i, pwm_buffer + i, 16, SNLED27351_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
            if (i2c_writeReg(addr << 1, i, g_pwm_buffer[index] + i, 16, SNLED27351_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(addr << 1, i, pwm_buffer + i, 16, SNLED27351_I2C_TIMEOUT);
        i2c_writeReg(addr << 1, i, g_pwm_buffer[index] + i, 16, SNLED27351_I2C_TIMEOUT);
#endif
    }
}


@@ 212,7 212,7 @@ void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        snled27351_select_page(addr, SNLED27351_COMMAND_PWM);

        snled27351_write_pwm_buffer(addr, g_pwm_buffer[index]);
        snled27351_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M drivers/led/snled27351.h => drivers/led/snled27351.h +0 -1
@@ 171,7 171,6 @@ void snled27351_init_drivers(void);
void snled27351_init(uint8_t addr);
void snled27351_select_page(uint8_t addr, uint8_t page);
void snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);

void snled27351_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
void snled27351_set_color_all(uint8_t red, uint8_t green, uint8_t blue);

M keyboards/input_club/k_type/is31fl3733-dual.c => keyboards/input_club/k_type/is31fl3733-dual.c +7 -7
@@ 75,7 75,7 @@ bool    g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT]        
void is31fl3733_write_register(uint8_t index, uint8_t addr, uint8_t reg, uint8_t data) {
#if IS31FL3733_I2C_PERSISTENCE > 0
    for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) {
        if (i2c_writeReg(index, addr << 1, reg, &data, 1, IS31FL3733_I2C_TIMEOUT) == 0) break;
        if (i2c_writeReg(index, addr << 1, reg, &data, 1, IS31FL3733_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
    }
#else
    i2c_writeReg(index, addr << 1, reg, &data, 1, IS31FL3733_I2C_TIMEOUT);


@@ 87,18 87,18 @@ void is31fl3733_select_page(uint8_t index, uint8_t addr, uint8_t page) {
    is31fl3733_write_register(index, addr, IS31FL3733_REG_COMMAND, page);
}

void is31fl3733_write_pwm_buffer(uint8_t index, uint8_t addr, uint8_t *pwm_buffer) {
void is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t index) {
    // Assumes page 1 is already selected.
    // Transmit PWM registers in 12 transfers of 16 bytes.

    // Iterate over the pwm_buffer contents at 16 byte intervals.
    for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i += 16) {
    for (uint8_t i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i += 16) {
#if IS31FL3733_I2C_PERSISTENCE > 0
        for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) {
            if (i2c_writeReg(index, addr << 1, i, pwm_buffer + i, 16, IS31FL3733_I2C_TIMEOUT) == 0) break;
        for (uint8_t j = 0; j < IS31FL3733_I2C_PERSISTENCE; j++) {
            if (i2c_writeReg(index, addr << 1, i, g_pwm_buffer[index] + i, 16, IS31FL3733_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
        }
#else
        i2c_writeReg(index, addr << 1, i, pwm_buffer + i, 16, IS31FL3733_I2C_TIMEOUT);
        i2c_writeReg(index, addr << 1, i, g_pwm_buffer[index] + i, 16, IS31FL3733_I2C_TIMEOUT);
#endif
    }
}


@@ 216,7 216,7 @@ void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) {
    if (g_pwm_buffer_update_required[index]) {
        is31fl3733_select_page(index, addr, IS31FL3733_COMMAND_PWM);

        is31fl3733_write_pwm_buffer(index, addr, g_pwm_buffer[index]);
        is31fl3733_write_pwm_buffer(addr, index);

        g_pwm_buffer_update_required[index] = false;
    }

M keyboards/input_club/k_type/is31fl3733-dual.h => keyboards/input_club/k_type/is31fl3733-dual.h +0 -1
@@ 86,7 86,6 @@ void is31fl3733_init_drivers(void);
void is31fl3733_init(uint8_t bus, uint8_t addr, uint8_t sync);
void is31fl3733_write_register(uint8_t index, uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3733_select_page(uint8_t index, uint8_t addr, uint8_t page);
void is31fl3733_write_pwm_buffer(uint8_t index, uint8_t addr, uint8_t *pwm_buffer);

void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
void is31fl3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue);