~ruther/qmk_firmware

fb739a67c92483f6c072886b9ffbb90e55b6582d — Joel Challis 3 years ago 5851ac1
Enable configuration of PWM frequency for IS31FL3733B (#14983)

* Enable PWM frequency for IS31FL3733B

* Document config option

* clang
2 files changed, 6 insertions(+), 1 deletions(-)

M docs/feature_rgb_matrix.md
M drivers/led/issi/is31fl3733.c
M docs/feature_rgb_matrix.md => docs/feature_rgb_matrix.md +1 -0
@@ 82,6 82,7 @@ You can use between 1 and 4 IS31FL3733 IC's. Do not specify `DRIVER_ADDR_<N>` de
|----------|-------------|---------|
| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
| `ISSI_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3733B only | 0 |
| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
| `DRIVER_LED_TOTAL` | (Required) How many RGB lights are present across all drivers | |
| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | |

M drivers/led/issi/is31fl3733.c => drivers/led/issi/is31fl3733.c +5 -1
@@ 56,6 56,10 @@
#    define ISSI_PERSISTENCE 0
#endif

#ifndef ISSI_PWM_FREQUENCY
#    define ISSI_PWM_FREQUENCY 0b000  // PFS - IS31FL3733B only
#endif

// Transfer buffer for TWITransmitData()
uint8_t g_twi_transfer_buffer[20];



@@ 157,7 161,7 @@ void IS31FL3733_init(uint8_t addr, uint8_t sync) {
    // Set global current to maximum.
    IS31FL3733_write_register(addr, ISSI_REG_GLOBALCURRENT, 0xFF);
    // Disable software shutdown.
    IS31FL3733_write_register(addr, ISSI_REG_CONFIGURATION, (sync << 6) | 0x01);
    IS31FL3733_write_register(addr, ISSI_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01);

    // Wait 10ms to ensure the device has woken up.
    wait_ms(10);